かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.154 Hyper-V環境の移行: VMの移行(移動)|Windows Server 2016 EOSまであと425日
2025年11月13日配信
執筆者:山内 和朗
Windows Server 2016の製品ライフサイクルとサポート終了日(End of LifeCycle《EOL》、End of Support《EOS》)である2027年1月12日までまだ1年以上ありますが、対策に着手するには遅すぎるくらいです。前回までに、サーバーの役割と機能の違い、非推奨または削除された機能について詳しく説明してきました。前々回、前回と、Hyper-Vホストのインプレースアップグレードについて説明しましたが、今回はHyper-Vホスト上の仮想マシン(VM)だけを新しいWindows ServerバージョンのHyper-Vホストに移行(移動)することによる移行について説明します。
Windows Server 2016がリリースされた当時の物理サーバーハードウェアは、老朽化や性能不足の問題があるかもしれません。Windows Server 2025は、最新のハードウェアでこそ、最新の仮想化技術やセキュリティ機能、スケーラビリティを最大限に活用できることが期待できます。この機会に、新しいサーバーハードウェアにリプレースするというのも有効な選択です。Hyper-Vホスト上のVMは、基本的にハードウェアに依存しないため(個別デバイスの割り当て《DDA》機能によるPCIeデバイス割り当てなど例外はあります)、Windows Server 2025で新規に構築したHyper-Vホストに移動するだけで、容易に最新環境に移行できます。もちろん、VMのゲストOSはまた別の話です。ゲストOSとしてWindows Server 2016を実行している場合は、EOL/EOSまでに対応する必要があることは、物理環境と変わりません。
Hyper-Vホスト間でのVMの移行(移動)方法はいくつかあります。Hyper-Vホストクラスターでは、クラスターのノードであるHyper-Vホスト間でVMをライブマイグレーションで稼働中のまま移行できます。非クラスター構成においても、VMをホスト間で移行する複数の方法が用意されています。ホストクラスターと非クラスター構成の両方とも、異なるバージョンのWindows Serverを実行するホスト間でのクロスバージョンマイグレーションに対応しています。*1 VMのダウンタイムが長くなりますが、VMをエクスポート/インポートして別のHyper-Vホストに移行することもできます。さらに、Hyper-Vが備えるHyper-Vレプリカを利用して、VMを別のホストに移行することもできます。Hyper-Vレプリカを利用する場合、レプリケーションには時間がかかりますが、VMの切り替えは短時間で行えます。
*1 Hyper-Vホストクラスターはローリングアップグレードの方法で新しいWindows Serverバージョンにアップグレードできますが、その場合、アップグレード可能なバージョンは次のバージョン(例、Windows Server 2016からWindows Server 2019)に制限されます(vol.152を参照)。そのため、ホストクラスターによるVMの移行については説明しません。
Windows Server 2016のHyper-Vホストから、Windows Server 2025のHyper-VホストにVMを移動する方法の1つは、ファイルを介したVMのエクスポート/インポートです。「Hyper-Vマネージャー」の「仮想マシンの移動ウィザード」を使用すれば、GUIを使用して、VMをファイルにエクスポートし、新しいHyper-Vホストにインポートできます(画面1、画面2)。インポート後、仮想マシンの構成バージョンを最新の12.0に手動でアップグレードすることで移行が完了します。エクスポート/インポートをスムーズに進めるのは、移行元と移行先で同じ名前のHyper-V仮想スイッチを用意しておくことです。

画面1 移行元のWindows Server 2016のHyper-VホストからVMをエクスポートする

画面2 移行先のWindows Server 2025の新しいHyper-VホストにVMをインポートする
VMのエクスポートは、VMの状態に関係なく実行できます。VMに作成済みのチェックポイントをエクスポートすることもできます。実行中のVMをエクスポートした場合、エクスポート時点の状態が保存された形でエクスポートされます。ただし、実行中のVMをエクスポートした場合、エクスポート後に変更された内容は、移行先のVMには反映されません。
PowerShellを使用する場合は、Export-VM/Import-VMコマンドレットを使用します。例えば、次のように実行することでHyper-Vホストに存在するVMを一括でエクスポート/インポートできます(画面3)。
| Get-VM | Export-VM -Path "エクスポート先パス" Import-VM -Path "インポート元パス" |

画面3 複数のVMを一括でエクスポートする
VMのインポートは、必ずしも移行元からVMをエクスポートしておく必要はありません。VMの構成ファイルや仮想ハードディスク(VHD(x))が格納されているフォルダーを含む記憶域ごと新しいHyper-Vホストに移動できれば、VMの構成ファイル(VMID.vmcx)の存在するパスまたはその上位のパスを指定することで、VMをインポートできます(画面4)。
例えば、移行元からハードディスクを取り出して、新しいHyper-Vホストに接続するでもよいですし、移行元のデータディスクのバックアップを新しいHyper-Vホスト上のパスに復元するのでも構いません。SAN(iSCSIなど)記憶域やSMB共有(スケールアウトファイルサーバーを推奨)にVMが格納されているのであれば、新しいHyper-Vホストからその記憶域にアクセスできさえすれば、そこからVMをインポートできます。移行元のHyper-Vの環境が利用可能であるかどうかは関係ありません。既に移行元の物理サーバーが撤去されていたとしても、バックアップにVMが残っていればなんとでもなります。

画面4 VMをエクスポートしなくても、VMが格納されているフォルダーにアクセスできれば、そこからインポートすることもできる
Windows Server 2012 R2以降では、非クラスター構成のHyper-Vホスト間でのライブマイグレーションをサポートしています。クラスターの共有ボリューム(CSV)やSMB共有を使用するHyper-Vホストクラスターのライブマイグレーションに対して、この機能はシェアードナッシング・ライブマイグレーションと呼ばれます。ライブマイグレーションとはいっても、VMは稼働中でなければないというわけではありません。停止中のVMや保存状態のVMを移動することもできます。
シェアードナッシング・ライブマイグレーションを利用するには、移行元と移行先のHyper-VホストがActive Directoryのドメインに参加しており、両方の「Hyper-Vの設定」で「ライブマイグレーションでの送受信を有効にする」が有効になっている必要があります(画面5)。認証方法としては、CredSSP(既定)とKerberosのいずれかを使用できます(「Hyper-Vの設定」の「ライブマイグレーション¥高度な機能」で設定)。Kerberosを使用する場合、追加の委任設定が必要です。CredSSPに追加の設定は不要ですが、必ず移行元のHyper-Vホストに接続して、VMの移動操作を開始する必要があるという制限があります(画面6)。

画面5 非クラスター構成のHyper-Vホストでライブマイグレーションを有効にする

画面6 移行元のHyper-Vホストに接続し、「仮想マシンの移動ウィザード」を使用して、VMの移動を開始する
参考:
フェールオーバー クラスタ リングのないライブ マイグレーションのためのホストの設定します|Windows Server(Microsoft Learn)
Hyper-Vレプリカ(Windows Server 2012で導入された機能)を使用すると、Hyper-Vホスト間でプライマリサーバーからセカンダリサーバーへVMをレプリケーションして、VMの構成と仮想ハードディスク(VHDX)のレプリカ(複製)を作成できます。プライマリサーバー側のVMは稼働中のまま初期レプリケーションが行われ、その後、定期的(既定は5分)に同期が行われます。Hyper-Vレプリカは本来、プライマリサーバーが障害などで利用できなくなったときに、セカンダリサーバーにVMをフェールオーバーして、短時間でVMを復旧できるようにする機能です。この機能は、VMの移行手段としても利用できます。Hyper-VレプリカはActive Directory要件が必須ではなく(※Active Directoryのメンバーでない場合は、証明書認証を構成する必要があります)、ホスト間、クラスター間で柔軟にレプリケーションを構成できます。
移行元のプライマリサーバーをWindows Server 2016のHyper-Vホスト、移行先のセカンダリサーバーをWindows Server 2025のHyper-Vホストにし、Windows Server 2025のHyper-Vホスト側でレプリカサーバーを有効化します(画面7)。プライマリサーバーでVMのレプリケーションを有効化し(画面8)、初期同期完了後にVMをセカンダリサーバーにフェールオーバーして(画面9)、その後、VMのレプリケーション設定を削除すれば(画面10)、最小のVMのダウンタイムでVMを別のホストに移行することができます。
Hyper-V レプリカを設定する|Windows Server(Microsoft Learn)

画面7 移行先のWindows Server 2025 Hyper-Vホストでレプリカサーバーを有効にする。移行先と移行元の両方がActive DirectoryのメンバーであればKerberos認証が利用できるので、設定が簡単。WindowsファイアウォールでTCPポート80と443の許可も必要

画面8 移行元(プライマリサーバー)の移行対象のVMでレプリケーションを有効にする

画面9 初期レプリケーションが完了したら、移行元のVMをシャットダウンして停止し、最新状態に同期されたら、最後の回復ポイントを使用してフェールオーバーを実行する。フェールオーバーが完了すると、VMが起動され実行中になる

画面10 フェールオーバー後のVMの動作に問題がなければ、VMのレプリケーションを削除する。VMとVMのレプリケーション設定は移行元のHyper-Vホストに残るが、問題がなければVMごと削除する(移行元と移行先で同時実行を避けるため)
Windows Server 2016 EOSまであとX日(1)|...|(11)|(12)|(13)