RackWare を使用して、 IBM Cloud、 VMware、 VCF を VPC 仮想サーバーに移行する RMM
IBM Cloud VMware VCF の仮想マシンを、 RackWare RMM を使用して VPC 仮想サーバーに移行し、Direct Sync およびブリッジサーバーを介して IP アドレスを維持します。
このガイドでは、 RackWare 管理モジュール( RMM )を使用して、 IBM Cloud VCF-Automatedの仮想マシンを、 IBM Cloud の仮想プライベートクラウド(VPC)仮想サーバーインスタンスへ移行する方法について解説します。 チュートリアルがありますので、そちらをご覧ください。
IBM Cloud VCF-仮想マシンのOSライセンスの自動取得については、 お客様責任において行っていただく必要があり、 では提供しておりません。 IBM Cloud 対象の仮想サーバーインスタンスを作成する際は、「 Bring Your Own License (BYOL)」のプロビジョニングオプションに注意してください。
IBM Cloud VCF-Automated でホストされている仮想マシンの大部分は、 IBM Cloud Classic ネットワークへのネイティブアクセス権を持たない NSX オーバーレイセグメントに接続されています。 対象の仮想サーバーインスタンスが、ソースの仮想マシンと同じIPアドレスを持つようにするには、NSXオーバーレイセグメントと、対象の仮想サーバーインスタンスのVPCサブネットを分離する必要があります。 これを実現するには、 RMM の以下の機能を使用します:
- ダイレクト同期(ホスト同期) - データは、 RMM サーバーに保存されることなく、ソース仮想マシンからターゲット仮想サーバーインスタンスへ直接転送されます。 RMM が操作を調整します。
- パススルー - 対象の仮想サーバーインスタンスはソースの仮想マシンに直接アクセスできないため、 RMM はSecure Shell(SSH)を使用して対象の仮想サーバーインスタンスに接続し、そこからソースの仮想マシンへのリバースSSHトンネルを確立します。 データの流れ:送信元 → RMM → 送信先。この際、 RMM がデータ転送のためのネットワーク中継/プロキシとして機能します。
RackWare RMM ブリッジサーバーは、分離されたネットワーク間の移行を可能にする:
- ブリッジのネットワークアドレス変換(NAT):NATを介して RMM から送信元にアクセスできるようにする
- リバースSSHトンネル:対象の仮想サーバーインスタンスが、 RMM サーバーを経由して送信元の仮想マシンにアクセスできるようにします
- 鍵ベースの認証:対象の仮想サーバーインスタンスは、 RMM のSSH鍵を使用して、ソースの仮想マシンに対して認証を行います
- トンネル経由のデータ同期:対象の仮想サーバーインスタンスは、セキュアなSSHトンネルを介してソースの仮想マシンからデータを取得します
- ブートローダーのインストール: RMM を実行すると、適切な GRUB 設定が適用され、ターゲットが起動可能になります
このプロセスはエレガントで、セキュリティとネットワークの分離を維持しながら、あらゆる移行を可能にする。
このガイドでは、ダイレクト・シンクに代わる、ステージド・シンク(ステージ1+ステージ2)については説明しません:
- ステージ1:データをソースから RMM のZFSストレージプールにコピーし、一時的に保存する。
- ステージ2: RMM のストレージからターゲットにデータをコピーする。
ダイレクト・シンクを希望しない場合や、ソースとターゲットの操作を切り離したい場合に使用する。
IPアドレスの保持
仮想マシンからVPC仮想サーバーへの移行のほとんどにおいて、移行対象のワークロードではIPアドレスの維持が必要となります。 ほとんどの仮想マシンではこれが可能ですが、VPCサブネットには予約済みのIPアドレスが割り当てられています。 たとえば、以下は 192.168.10.0/24:
- ibm-network-address: 192.168.10.0
- ibm-default-gateway: 192.168.10.1
- ibm-dns-address: 192.168.10.2
- ibm-reserved-address: 192.168.10.3
- ibm-broadcast-address: 192.168.10.255
したがって、サブネットごとに数台のVMを再IPする必要がある。
サポートされるシステム
サポートされている最新のオペレーティング・システムについては、リファレンスに記載されているドキュメントを確認してください:
- RHEL 5.2 から 5.11, 6.x, 7.x. 8.x, 9.x
- Centos 5.2 から 5.11、 6.x、 7.x、 8.x
- Oracle Linux 5.6 through 5.11, 6.x, 7.x, 8.x、 9.x
- SLES11(32ビット版を含む)
- SLES12(btrfsなし)
- SLES 15 (btrfsなし)
- Ubuntu 12(32ビット版を含む)、14、16、18、20、22、24
- Debian 8、9、10、11、12
- AlmaLinux 8、9
- ロッキー Linux 8, 9
- Windows 2008、 R2、2012、2016、2019、2022
アーキテクチャー・コンポーネント
このガイド
- 知識の伝達を助けるためにIPアドレスの例を使用していますが、あなたのIPアドレスは異なるでしょう。
- Linux 移籍に焦点を当てているが、 Microsoft Windows も同様。
IBM Cloud VMware-Automated Bridge Server IBM Cloud VPC
┌──────────────┐ ┌───────────────┐ ┌───────────────┐
│ │ │ens192: │ │ │
│ Source VM │ │192.168.10.254 │ │ RMM Server │
│ 192.168.10.11├────────────►│ │◄─────────┤ 10.68.70.11 │
│ │ │ ens224: │ │ │
└──────────────┘ │ 10.134.54.62│ └───────────────┘
│ │ │
└───────────────┘ │
│
┌───────▼───────┐
│ Target VSI │
│ 192.168.10.11 │
└───────────────┘
上図は、コンポーネントの論理的な接続図である。 レイヤー2のブリッジングではなく、レイヤー3のNATを使用するため、 bridge server の名前は誤解を招く。
出典 VM:
- 場所 IBM Cloud VCF 自動化された VMware インスタンス
- 例: VM Ubuntu 22.04
- リアルIP: 192.168.10.11 (NSX オーバーレイセグメント)
- 経由でのアクセス: VM はSNAT経由でインターネットにアクセスでき、クライアントネットワークにはネイティブアクセスできるが、 IBM Cloud ネットワークにはアクセスできない
ブリッジサーバー:
- 目的:分離されたネットワーク間のレイヤー3ネットワーク接続を提供する
- 機能SNAT を使用して、孤立した NSX オーバーレイセグメントを IBM Cloud VPC ネットワークからアクセス可能にする
- インターフェース
ens192: 192.168.10.254- インサイドネットワーク ( 192.168.10.0/24 )ens22410.134.54.62- 外部ネットワーク ( ) 10.134.54.0/26
RMM サーバー
- 場所: IBM Cloud VPC
- 目的:マイグレーション/同期処理のオーケストレーション
- IPだ: 10.68.70.11
- 実行: RackWare ソフトウェア、UIのホスト、データ転送の調整、パススルー・モードでのネットワーク通信のプロキシとして動作
ターゲット VSI
- 場所: IBM Cloud VPC
- 例:仮想サーバーインスタンス(VSI)
- IPだ: 192.168.10.11
- 目的:移行されたデータの保存先
IBM Cloud Private 静的サブネット:
- 場所: IBM Cloud Classic
- 例30ポータブルサブネット(4 IP)の展開
- IP: 10.194.177.82/30. 使用可能IP: 10.194.177.82- 10.194.177.85
- 目的: IBM Cloud クラシックネットワークが 10.134.54.62 (ブリッジサーバーの ens224 IP)にルーティングするNAT用IPアドレスを提供する。 IBM のネットワーク・インフラストラクチャーは、 10.194.177.82/30 宛のトラフィックはすべて、以下に送信されるべきであることを知っている。 10.134.54.62
ブリッジサーバー
ブリッジサーバーは iptables を使ってNATを提供する:
-
RMM が
10.194.177.82に接続すると、ブリッジは宛先を192.168.10.11(実際のソース VM のIPアドレス) に変換する。 -
送信元 VM が返信すると、NAT IPから送信されているように見える。
10.194.177.82RMM が
10.194.177.82に到達しようとするとき:- RMM パケット送信
- SRC: 10.68.70.11
- DST: 10.194.177.82
- VPC Routes to Transit Gateway これは、クラシック・ネットワークへのルートである:
- 「 10.194.177.82 はサブネット 10.194.177.82/30 にある
- 「このサブネットを 10.134.54.62 "
- ステップ3:ブリッジ・サーバーへのパケット配信
- ens224 ( 10.134.54.62 ) に到着
- サマータイム: 10.194.177.82 (変更なし)
- ブリッジのiptables DNAT
iptables -t nat -A PREROUTING -i ens224 -d 10.194.177.82 -j DNAT --to-destination 192.168.10.11
- 送信元へ転送されたパケット VM
- SRC: 10.68.70.11
- DST: 192.168.10.11 (DNAT経由)
- RMM パケット送信
SSHキーの要件
データ転送のためにトンネルを機能させるには、ターゲットがソースに対して認証を行う必要がある。 ターゲットVSIは、ソース VM のauthorized_keysファイル内の公開鍵と一致するSSH秘密鍵を必要とする。
主要な場所
- RMM:
/root/.ssh/id_rsaRMM 配備後の手動プロセスの一部として作成される - ターゲット Linux VSI:
/root/.ssh/id_rsaRMM と同じキーであり、 RMM 自動化されたプロセスを経由して転送されなければならない - ソース Linux VM:
/home/rackware/.ssh/authorized_keysソース・セットアップのマニュアル・プロセスの一部として作成された
Windowsサーバーの場合は、 RackWare SSHDユーティリティを使用する。 RackWare SSHD for Windowsは、Windowsシステム専用のMSIインストーラーとしてパッケージ化された軽量のSSHサーバー実装で、 RackWare RMM 接続を可能にします。 MSI、 RWSSHDService_x64.msi は、 RMM のサーバーから直接ダウンロードできます: https://<RMM_IP>/windows/RWSSHDService_x64.msi
認証フロー
- RMM → ソース VM (ブリッジサーバー経由)
- 用途: RMM のSSHキー
- 認証者:
rackwareユーザー - 目的:発見、ファイルシステムのマウント、クリーンアップ
- RMM → ターゲットVSI
- 用途: RMM のSSHキー
- 認証者:
rootユーザー - 目的:トンネルの作成、ファイルシステムのマウント、データ転送
- ターゲットVSI → ソース VM (トンネル経由)
- 使用する:コピーされた SSH 鍵 ( RMM と同じ)
- 認証者:
rackwareユーザー - 目的:データ転送
コア RackWare RMM オペレーション
以下は、 RackWare RMM、マイグレーションの中核となる操作である。
発見/検証
目的:情報源に関する情報を収集する VM プロセス
- ユーザーは、送信元のIPアドレスまたはDNSホスト名を指定する VM。 私たちの使用例では、NAT IPアドレスを使用する。
- RMM SSH経由で接続元サーバーに接続する。 VM
- OSの標準的なクエリーを実行し、メタデータを収集する:
- CPUコア、RAM、ディスク構成
- パーティションとボリューム構造
- OSのバージョンとインストールされているパッケージ
- ネットワーク構成
- アプリケーション情報
- RMM の CMDB(構成管理データベース)に保存されているメタデータ
- 必要であれば、 AutoProvisioning ターゲット VSI に後で使用する
鍵の要件 SSH 鍵は、 RMM とソースサーバー間で適切に設定されている必要があります
キャプチャー(ストア&フォワード・アプローチ)
このユースケースでは、ダイレクトアサイン(Flex Sync/Host Sync)アプローチを使用するため、Store-and-Forwardアプローチは使用しない。
目的:ソース VM イメージのスナップショット/クローンを作成する。 RMM プロセス:
- LVMスナップショット( Linux )またはVSSスナップショット(Windows)をソース上に作成します。 VM
- OSは一貫性を保つため、アプリケーションのIOをディスクにフラッシュする
- OSがファイルシステムにブックマークを置く(破壊的ではない)
- RMM 静的スナップショットから RMM ストレージにイメージビットをコピーする
- 使用されたデータのみがコピーされる(ブロックレベルではなくファイルレベル)
- RMM サーバーの保存場所に保存された画像
- CMDBに保存されている画像に関する追加メタデータ
主な機能:
- オリジン・サーバーへの無影響(本番稼動継続)
- ファイル・ベースのレプリケーション(セクタ/ブロックではない)
- 圧縮と暗号化をサポート
- インクルード/エクスクルード・リストを指定し、データを選択することができる
割り当て
目的:キャプチャしたイメージをターゲットVSIにデプロイする。 プロセス
- AutoProvision ターゲットVSI(または事前にプロビジョニングされたサーバーを使用する)
- RMM ディスカバーからのメタデータを使用して、ターゲットのサイズを適切に調整する
- VPCにおけるVSIの規定
- SSHでターゲットに接続する
- ターゲットを調べる
- ターゲット VSI がソース VM イメージを実行できることを確認する
- 基礎となるハードウェアを理解する
- RackWare マイクロカーネルで起動
- マイクロカーネルをターゲットVSIにデプロイする
- ブートローダーのオプションに挿入する
- マイクロカーネルからターゲットVSIをブートする
- ターゲットVSIディスクの準備
- ディスクの再フォーマット
- 論理ボリュームの構造を再作成する(Originと完全一致)
- ベストフィットアルゴリズムを使用してパーティションを作成する
- 転送イメージ
- RMM ストレージからターゲットVSIにイメージビットを転送する
- 新しいハードウェアに必要なデバイスドライバを注入する
- オプションでターゲットVSIのネットワーク設定を変更する
- 設定と再起動
- 実際のOS用にブートローダーを設定する
- 複製されたOSに再起動する
- 検証
- ターゲットVSIが正しく起動することを確認する
- 正しいネットワーキングを確認する
- 正しく複製されたデータを確認する
- オリジンと同じ認証情報を使って、複製されたサーバーにSSH接続する
ダイレクトアサイン(フレックスシンクまたはホストシンクとも呼ばれる)
これがこのユースケースで使っているアプローチだ。
目的中間ストレージを使用せずに、ソース VM からターゲットVSIに直接レプリケートする。 プロセス:
- キャプチャ+アサインを1つの操作に統合
- すべてのディスカバー機能を果たす
- ターゲットサーバーを用意する(または既存のサーバーを使用する)
- ターゲット・サーバーの準備
- ソース VM からターゲット VSI に直接レプリケートする
- ネットワーク接続は、 RMM (ソースとターゲットの直接接続は不要)を経由することができます
シンク(デルタ同期)
目的:ソースから変更されたデータのみでターゲットを更新する VM プロセス
- ソース VM (LVMまたはVSS)でスナップショットを取得します
- 差分を計算(変更されたファイルのみ)
- 変更されたデータのみをターゲットに転送
- どちらかを更新する:
- キャプチャー画像 RMM 保存、OR
- 稼働中のターゲットサーバー、または
- 両方(画像+対象サーバー)
同期オプション
- ステージIシンク
- オリジン → RMM ストレージ(キャプチャ画像)
- 保存画像のみを更新
- ステージIIシンク
- RMM ストレージ → ターゲットサーバー
- 保存されたイメージから実行中のターゲットを更新
- RMM パススルー
- オリジン → RMM → ターゲット
- データは RMM を流れるが、永続しない
- RMM への保存は不要
- ダイレクト・シンク
- オリジン → ターゲット(直結)
- セレクティブ・シンク
- 特定のファイル/ディレクトリのみを同期
- インクルード/除外リストの使用
- ドライブ/ディレクトリのマッピング
- 特定のオリジン・パスを異なるターゲット・パスにマッピングする
シンクエンジン:
- RWSync(デフォルト):
- エージェントレス
- ネットワーク停止に強い
- 大量の同時更新に対応
- 最終チェックサムを含む
- TNGより遅い
- TNG(上級):
- デルタファイルトラッカーのインストールが必要
- より速く、より効率的に
- 大規模サーバー、高更新レート、アグレッシブなRPOの場合
- アンチウイルスのホワイトリスト登録が必要
- ネットワーク停止の影響を受けやすい
- リモートの NFS /CIFSマウントをサポートしていません
RackWare マイクロカーネル起動プロセス
アサイン操作の間、 RMM はターゲットVSIを RackWare マイクロカーネルにブートし、ブートディスクは再フォーマットされ、ファイルシステム、タイプ、サイズがソース VM と一致するようにします。 RMM は、ターゲットのディスクレイアウトと、ソースのディスクレイアウトに基づくパーティションから、ベストフィットを試みます。
マイクロカーネルの展開
RackWare、複製されたイメージを受け取るためにターゲットVSIを準備する:
- RMM RackWare マイクロカーネルをターゲット VSI に配置する
- このマイクロカーネルは、プラットフォームOSの「ブートローダーのオプションに挿入される」
- マイクロカーネルはブートローダ( Linux のGRUB)から起動する
マイクロカーネルは LiveCD,、ブート可能な最小環境と考えることができる:
- ターゲットハードウェアに必要なドライバを格納する
- RMM がターゲットサーバーと通信できるようにする
- ディスクの再フォーマットとパーティション作成が可能
- オリジンからターゲットへの実際のデータ転送を容易にする
- 新しいハードウェア環境にシステムを設定する
アサインの段階で RackWare:
- ターゲットVSIをマイクロカーネルにブートする(GRUBエントリー経由)
- マイクロカーネル中にディスクを再フォーマットする
- ソースと一致するパーティション構造を再作成する VM
- LVM構造を作成するために論理ボリュームを作成する
- ソース VM のデータをターゲット VSI に転送する
- ターゲット・ハードウェアに必要なドライバーを注入する
- 実際のOSをブートするためにGRUBを設定する
- 複製されたOSに再起動
RackWare はGRUBの設定を次のように変更する:
- 割り当てプロセス中に一時的なマイクロカーネル・ブート・エントリーを追加する
- 複製されたOSの正しいブート・パラメーターを設定する
- 転送完了後、複製されたOSにデフォルトのブートオプションを設定する
- 新しいハードウェアに必要なカーネル・パラメータを処理する
Windows システムの場合:
- GRUBの代わりにWindows Boot Managerを使用
- 同じマイクロカーネルのコンセプトが適用される
- マイクロカーネルがWindowsのブート設定に挿入される
- レプリケーション後、ブート構成はレプリケートされたWindows OSを指す
マイクロカーネル環境では、 RackWare :
- 適切なストレージドライバを注入する
- ネットワーク・ドライバーの注入
- 新しいハードウェア用にデバイスドライバを設定する
- 複製されたOSが異なるハードウェアで起動できることを確認する
デルタ・シンク(その後のシンク)のレプリケーション・プロセスは、最初のシンクと同じように機能する。 デルタ同期は、ターゲットサーバーを RackWare マイクロカーネルにリブートした後に実行される。 デルタ同期が完了すると、ターゲットVSIはホストOSにブートバックする、
このマイクロカーネル・アプローチは、 RackWare にとって重要な差別化要因である。なぜなら、重要な転送と設定の段階でターゲット環境を完全に制御することで、クロスプラットフォーム、クロスハイパーバイザー、物理から仮想への移行の複雑さに対処できるからである。
RackWare ダイレクト・シンク・プロセスによるパススルー
その手順は以下の通りです:
- RMM ソースを発見する VM
RMM → Bridge (10.194.177.82) → Source VM (192.168.10.11)
- RMM SSH 経由で
10.194.177.82(NAT IP) に接続する - ブリッジは次のように訳される。
192.168.10.11 - RMM メタデータを収集する:OS、ファイルシステム、ディスクレイアウトなど。
- RMM ターゲットVSIを発見
RMM → Target VSI (192.168.10.11)
- RMM にSSHで接続する。
192.168.10.11 - ターゲットのハードウェアと能力を調べる
- RMM ターゲットVSIへの逆SSHトンネルの作成
RMM オートメーションは、 RMM サーバーを経由して、ターゲットVSIとソース VM の間に逆SSHトンネルを作成する:
Target VSI (192.168.10.11)
│
└─ localhost:23 ──[SSH Tunnel]──► RMM ──► Bridge ──► Source VM:22
-
RMM ターゲットVSIへのSSH接続を開始する
-
ターゲットにリスニング・ポート(23)を作成する
-
ターゲットの
localhost:23:- SSHトンネルを通して RMM
- RMM を
10.194.177.82:22に転送する(ブリッジ経由のソース) - DNATを実際のソースにブリッジする
視覚的な流れ:
Target: [App tries localhost:23] ↓ [SSH tunnel to RMM] ↓ RMM: [Receives and forwards to 10.194.177.82:22] ↓ Bridge: [DNAT: 10.194.177.82 → 192.168.10.11] ↓ Source: [Receives connection on port 22] -
ファイルシステムのマウント
RMM は、以下の例と同様のコマンドを使用して、ソースとターゲットの両方にファイルシステムをマウントする:
ソース VM (ブリッジ経由):
# RMM executes on source
mount --bind / /mnt/rackware/tmp.xxxxx
オン・ターゲットVSI(ダイレクト):
# RMM executes on target
mount /dev/vda2 /mnt/rackware/tmp.yyyyy
- データ転送
RMM は、ターゲットVSI上でデータ転送を実行し、ソース VM からデータを引き出す:
- GRUBのインストール
RMM GRUB をインストールし、UEFI ブート用にターゲット上で設定する:
- GRUBブートローダーのファイルをコピーする
- 正しいカーネルパラメータで
grub.cfgを生成する - UEFIブートエントリーの作成
- 新しいハードウェアドライバの設定
- ファイルシステムのアンマウント
# On both source and target
umount /mnt/rackware/tmp.xxxxx
-
クローズトンネル
-
RMM ターゲットへのSSHトンネルを閉じる
-
ポート23がターゲットからのリッスンを停止
-
ユーティリティの削除
# RMM removes temporary files from source and target
rm -rf /var/tmp/rackware/