前回は物理サーバのレガシーシステムを、最新のハードウェアで動作するWindows Server 2022のHyper-V環境に物理-仮想(P2V)変換方式で移行する方法について説明しました。
Windows Server 2012/2012 R2の導入を機に、Hyper-Vの仮想環境でシステムを構築、運用してきた企業は多いはずです。すでにサーバの多くをHyper-V上の仮想マシンとして構築し、運用しているのであれば、比較的簡単に最新のHyper-V環境に移行することが可能です。これを仮想-仮想(Virtual to Virtual、V2V)方式の移行と呼びます。
今回は最新のハードウェアで動作するWindows Server 2022のHyper-V環境に、V2V方式で移行する方法を説明します。
現在のHyper-Vのベースは、Windows Server 2012/2012 R2から始まった
Microsoftのハイパーバイザー技術である「Hyper-V」は、Windows Server 2008で初めて実装され、Windows Server 2008 R2で主にデスクトップOSを仮想化してユーザーにデスクトップ環境やアプリケーションを提供する仮想デスクトップインフラストラクチャ(VDI)機能が強化されました。
そして、現在につながるHyper-Vは、Windows Server 2012および2012 R2で実装されたものがベースとなっています。かつて、Windows Server 2008で実装されたものをHyper-V 1.0、VDI機能が強化されたものがHyper-V 2.0、Windows Server 2012/2012 R2で実装されたものがHyper-V 3.0と呼ばれていました。
例えば、仮想ハードディスクの新しい形式である「VHDX」はWindows Server 2012で実装されました。UEFIベースの第2世代仮想マシンもWindows Server 2012 R2で実装されました。また、仮想マシンの管理インターフェイスや仮想マシンの構成の持ち方は、Windows Server 2012/2012 R2の前後で大きく変更されました。
そのため、Windows Server 2012/2012 R2とWindows Server 2022のように、Hyper-Vを扱うOSのバージョンが大きく離れていたとしても、仮想マシンの移行は難しくありません。
最新Hyper-Vへの移行には、ローリングアップグレード方式を使えない
Windows Server 2012 R2以降のHyper-Vは、複数のサーバを連携する高可用構成のフェイルオーバークラスターにおいて、クロスバージョンライブマイグレーションに対応しました。クロスバージョンライブマイグレーションは、旧バージョンのノードから新バージョンのノードへ、または新バージョンのノードから旧バージョンのノードへと、仮想マシンをライブマイグレーションすることです。
もし、バージョンを大きく隔てることなく、順次、アップグレードしたい場合は、クロスバージョンライブマイグレーションで仮想マシンを停止することなく、フェイルオーバークラスターのすべてのノードを新バージョンにローリングアップグレードすることができます。
ローリングアップグレードとは、OSのアップグレードインストールではなく、クラスターからノードを削除し、新バージョンのOSを新規インストールしたあと、クラスターにノードを追加して復帰させる手順になります。
クロスバージョンライブマイグレーションで重要になるのが、「仮想マシン構成バージョン」と呼ばれるものです。仮想マシン構成は、Hyper-Vのバージョンごとに新機能をサポートするために変更が加えられますが、クロスバージョンライブマイグレーションでは古い仮想マシン構成バージョンを維持したままライブマイグレーションを行うため、新旧双方向のライブマイグレーションができるのです。
クラスター全体のアップグレードが完了したら、クラスターのバージョンを新バージョンにスイッチし、仮想マシン構成バージョンをアップグレードします。これで、新バージョンのクラスターおよび仮想マシンの新機能のすべてが利用可能になります。
下記の表は、Hyper-Vのバージョンと、サポートする仮想マシン構成バージョンを一覧にしたものです。Windows Server 2012のHyper-Vについては、構成バージョンという概念自体がありませんでした。Windows 10やWindows 11を含めた完全な一覧については、以下のドキュメントで確認することができます。ちなみに、仮想マシン構成バージョンの最新はWindows 11のバージョン11.0です。
Windows Serverは、2つ前のメジャーバージョンからのアップグレードをサポートしているため、Windows Server 2012 R2のフェイルオーバークラスターであれば、Windows Server 2019への移行にローリングアップグレードの方法を利用できます。ただし、最新のWindows Server 2022への移行にはローリングアップグレードを利用できません。
仮想マシンのエクスポート/インポート方式で移行可能
Windows Server 2012/2012 R2以降のHyper-Vは共通の技術がベースになっているため、バージョンが大きく離れていても、スタンドアロンサーバ構成のHyper-Vの場合と同じように、仮想マシンのエクスポート/インポート方式で最新のHyper-V環境に簡単に移行できます。
インポートの種類には3つありますが、通常はインプレースまたは復元を使用します。インプレースは現在エクスポートされた仮想マシンのパスをそのまま使用するオプションです。復元は仮想マシンの構成とVHD/VHDXの保存先を指定するオプションです。仮想スイッチ名が移行元と異なる場合、使用する仮想スイッチを指定する必要がありますが、インポートウィザードの指示に従ってください。
Windows Server 2019にWindows Server 2012/2012 R2の仮想マシンをインポートした場合、仮想マシン構成バージョン5.0としてインポートされます。Windows Server 2022にインポートした場合は、Windows Server 2022でサポートされる仮想マシン構成バージョンの最小バージョンである8.0でインポートされます。そのままでも仮想マシンは問題なく起動できるはずですが、最新のHyper-Vの新機能をすべて利用できるように、「構成バージョンのアップグレード」を実行します。「構成バージョンのアップグレード」は、仮想マシンがオフの状態で行う必要があります。
Windows Server 2012 Hyper-Vユーザーは管理スクリプトの互換性に注意
Windows Server 2012は、Hyper-Vの管理用スクリプトなどで使用するWMI(Windows Management Instrumentation)の名前空間として「\root\virtualization\v2」を使用するようになりました。
しかしこの時は、Windows Server 2008 R2 SP1以前のHyper-Vが使用していた名前空間「\root\virtualization」も引き続きサポートされ、下位互換性を提供していました。この名前空間「\root\virtualization」のサポートは、Windows Server 2012 R2で削除されたことに注意してください。
Hyper-Vのさまざまな管理タスクを簡素化するために作成した古い管理用スクリプトは、そのままでは期待通りに機能しなくなる場合があります。
Microsoft Hyper-V Server 2012/2012 R2への対応をお忘れなく
Microsoftは無料のハイパーバイザーとして、「Microsoft Hyper-V Server」を提供しています。同製品は、ゲストOSのライセンスを必要としないOSの評価版や、Linuxディストリビューションの仮想マシン実行環境として利用することで、物理サーバのOSライセンスコストを不要にできるというメリットがあります。
Windows Server 2012/2012 R2と同じHyper-VバージョンであるHyper-V Server 2012/2012 R2は、Windows Server 2012/2012 R2と同じ2023年10月10日に製品のサポート終了(End of Service、EoS)を迎えるため、利用している場合はこれにも対応する必要があります。
Hyper-V Serverの最新バージョンは2019であり、これが最後のバージョンとなり、EoSは2029年1月9日になります。Microsoftとしては、Azure Stack HCIを薦めたいようですが、無料のHyper-Vは近い将来利用できなくなることに注意してください。