Shift Toolkit を使用して VM を移行する
Shift Toolkit を使用して、VMware ESXi から Microsoft Hyper-V へ VM を移行します。このプロセスには、VM の準備、ディスク形式の変換、ターゲット環境でのネットワーク設定が含まれます。
移住
ブループリントが作成されると、「移行」オプションを実行できます。移行オプションの実行中、Shift Toolkit は一連の手順を実行してディスク形式を変換し、変換されたディスクを使用してブループリントの定義に従って Hyper-V ホスト上に仮想マシンを作成します。
実行される手順の概要は次のとおりです。
前提条件: 移行を開始する前に、移行がアドホックであるか、計画されたメンテナンス時間に基づいてスケジュールされているかに関係なく、仮想マシン (VM) の電源が正常にオフになっていることを確認します。 VM が完全にシャットダウンされていることを確認します。オペレーティング システムの更新が保留中の場合は、VM が完全にシャットダウンした後にのみ移行をトリガーします。
-
ブループリント内のすべてのVMの既存のスナップショットを削除します
-
ブループリントのVMスナップショットをソースでトリガー
-
ディスク変換前にボリュームスナップショットをトリガーする
-
すべてのVMのVMDKをクローンしてVHDx形式に変換する
-
保護グループ内のVMをターゲットでパワーオン
-
各VMにネットワークを登録する
-
VMwareツールを削除し、OSの種類に応じてトリガースクリプトまたはcronジョブを使用してIPアドレスを割り当てます。
考慮すべき要素
移行を開始する前に、すべての前提条件が満たされていることを確認してください (このドキュメントの前提条件のセクションで詳しく説明されています)。要約のための簡単なチェックリストは次のとおりです。
-
Shift VMがドメインの一部であることを確認する
-
CIFS共有が適切な権限で設定されていることを確認する
-
移行または変換に使用されるqtreeには適切なセキュリティスタイルがあります
-
簡単なテストとして、クラスター内の任意の Hyper-V ホストから Hyper-V マネージャーを使用して VM を作成し、VHDX を CIFS 共有 (箇条書きの a で参照) に配置してみます。 Shift ツールキット VM から同じ操作を試して、Hyper-V 管理ツールを追加します (「プログラムと機能」または「PowerShell」を使用 - add-windowsfeature rsat-hyper-v-tools)
|
失敗があった場合、"任意の認証プロトコルを使用して委任を有効にする" 。 |
ネットワークのヒントと考慮事項
次のネットワークの考慮事項を考慮する必要があります。
-
静的IPアドレスが利用可能であり、別のVMに割り当てられていないことを確認します。
Windows VM の場合:
-
準備スクリプトは、ネットワーク構成の詳細 (IP アドレス空間、ゲートウェイ アドレス、DNS サーバー) のコピーを作成し、トリガー スクリプト (移行中) は、ブループリント マッピングに基づいて、単一の NIC または複数の NIC のネットワーク設定を再適用します。
-
移行後、Windows デバイス マネージャーには移行前の古いネットワーク アダプター情報が引き続き表示される場合があります。これは移行後に作成された新しいネットワーク アダプターには影響せず、IP の競合も発生しませんが、スクリプトは現在この古い登録を削除しないため、表示されたままになります。
Linux VM の場合:
-
準備スクリプトは、ネットワーク構成の詳細 (IP アドレス空間、ルート、DNS サーバー、ネットワーク デバイス名) のコピーを作成し、Linux ディストリビューションに応じて、使用されているネットワーク タイプを識別し、IP 設定を適用します。ネットワーク再割り当てスクリプトは、crontab を使用して cron ジョブとして設定され、起動時にトリガーされます。たとえば、cronjob はインスタンス上でスクリプト (移行後) を実行し、ブループリント マッピングに基づいて単一の NIC または複数の NIC のネットワーク設定を再適用します。
-
特定のシナリオでは、変換された Hyper-V VM のインターフェース名は、ソース側の ens192 や 33 ではなく、eth0 や eth1 などになります。この場合、スクリプトは新しいインターフェース名に合わせてネットワーク構成の詳細を更新します。予測可能な名前が使用されていて (最新のシステムなど)、インターフェース名が Hyper-V 側で保持されている場合、スクリプトはネットワーク側をスキップし、VMware ツールのみを削除して VM を再起動します。
-
Shift ツールキットは現在、NetworkManager、Netplan、ifconfig メカニズムをサポートしており、ブループリントで指定されたとおりに IP を保持します。
フェーズとオプション
移行プロセスの主なフェーズとオプションは次のとおりです。
-
VM の準備 – 移行のために VM を準備し、すべての前提条件が完全に完了していることを確認します。
-
移行 - 準備が完了したら、VMware VM を選択して Hyper-V に移行します。移行が完了したら、VM が正常に起動し、データが正しく移行されていることを確認します。
-
テスト移行 - テスト移行は、VMDK を VHDX に変換し、SMB 共有にある変換された VHDX ファイルを使用して Hyper-V VM を作成することで、移行をシミュレートします。テスト移行ではネットワーク マッピングの構成は許可されません。通常、このタスクはバブル ネットワークに対して手動で実行する必要があります。
-
移行の再試行 – 移行が失敗した場合、Shift ツールキットは再試行オプションを提供します。この機能により、移行ジョブを障害発生時点から再開できます。操作を再試行する前に、エラー メッセージを確認して修正することが重要です。
|
Shift ツールキットは、VM の準備に必要なスクリプトをコピーする以外は、ソース VM を変更しません。これにより、変換が失敗した場合に迅速なロールバックが可能になります。 |
ブループリントで指定された構成で移行ワークフローをトリガーするには、「移行」をクリックします。
開始されると、ワークフローがアクティブになり、変換プロセスは概説された手順に従って VM を登録します。ブループリント内の VM の電源がオフになっていない場合、Shift ツールキットは続行する前に正常なシャットダウンを要求します。
|
同じESXiソースから同じHyper-Vターゲットへの変換は、10回までしか同時に実行しないことを推奨します。 |
VMDK から VHDx への変換は数秒で行われるため、このアプローチは追加コストで利用できるすべてのオプションの中で最も高速です。これにより、移行中の VM のダウンタイムも短縮されます。
ジョブが完了すると、ブループリントのステータスが「移行完了」に変わります。
移行が完了したら、Hyper-V 側で VM を検証します。以下のスクリーンショットは、ブループリントの作成中に指定された Hyper-V ホスト上で実行されている VM を示しています。
|
Shift ツールキットは、起動時に実行される cron ジョブを使用します。 VM が Hyper-V ホストで購入されると、Linux ベースの VM に対して ssh 接続または同等の接続は作成されません。 |
|
Windows VM の場合、Shift Toolkit は PowerShell を直接使用してこれらの Windows ベースのゲスト VM に接続します。 PowerShell Direct を使用すると、ネットワーク構成やリモート管理設定に関係なく、Windows ベースのゲスト VM に接続できます。 |
|
変換後、OS ディスクを除く Windows OS 上のすべての VM ディスクはオフラインになります。これは、VMware VM では NewDiskPolicy パラメータがデフォルトで offlineALL に設定されているためです。この問題は、デフォルトの Microsoft Windows SAN ポリシーによって発生します。このポリシーは、複数のサーバーから LUN にアクセスしている場合に、Windows Server の起動時に LUN がアクティブ化されるのを防止するように設計されています。これは、潜在的なデータ破損の問題を回避するために行われます。これは、PowerShellコマンドを実行することで処理できます: Set-StorageSetting -NewDiskPolicy OnlineAll |
|
VM のステージングには複数のボリュームを利用します。つまり、必要に応じて VM を異なるボリュームに svmotion する必要があります。リソース グループに大きな VMDK を持つ VM が含まれている場合は、変換のためにそれらを異なるボリュームに分散します。このアプローチでは、クローンの分割がバックグラウンドで行われている間に、別々のボリュームでクローン操作を並行して実行することで、スナップショットのビジー エラーを防ぐことができます。 |