2015年5月にリリースされたWindows Server Technical Preview 2のインストール方法と注目すべき新機能、プロダクションチェックポイントについて2回にわたってご紹介しました。第3回では、この次期Hyper-Vの注意すべき変更点についてご紹介します。
仮想マシンの構成バージョンが6.2に
WIN2012R2 のHyper-Vでは仮想マシンのバージョンは5.0となっていました。vNext のHyper-Vで新規で仮想マシンを作成すると、仮想マシンのOSの種類には関係なくバージョンはすべて6.2となります。
仮想マシンのバージョンは、vNext のHyper-VではHyper-Vマネージャーからか、もしくはPowerShellのコマンドは以下で確認することができます。
Get-VM * | Format-Table Name, Version
WIN2012 のHyper-VではVersionという項目が確認できませんが、WIN2012 のHyper-V 上で作成した仮想マシンをWIN2012R2 のHyper-Vに一方向にライブマイグレーションすることができます。ライブマイグレーションの過程で仮想マシンの構成はアップグレードされ、バーションは5.0として確認することができます(5.0以前には戻せません)。
ライブマイグレーションなどでWIN2012R2 のHyper-V上の仮想マシンをvNext のHyper-Vに移動してきた場合は、バージョン5.0の仮想マシンを6.2にアップグレードすることが可能です。仮想マシンに関連づけられているチェックポイントも実はチェックポインとごとに構成ファイルを持っているので、これらも同時にアップグレードされます。ただし、チェックポイント取得時に作成される仮想マシンのメモリの状態などを保存する.binファイルと.vsvファイルは強制的に削除されてしまうので、バージョン6.2にアップグレードした後、仮想マシンのチェックポイントを適用した場合は、すべてシャットダウンされた状態からのブートスタートとなりますのでご注意ください。
仮想マシンのバージョンのアップグレード方法としては、アップグレードを実施したい仮想マシンが停止状態のときにvNext 上のPowerShellのコマンドで以下を実行します。
Update-VmVersion "仮想マシン名"
一度5.0から6.2へバージョンアップした仮想マシンは、たとえチェックポイントを取得していたとしても、5.0には戻すことができません。どうしても5.0のバージョンで仮想マシンを作成したい場合は、仮想はドディスクファイルだけ抜き出して、WIN2012R2 のHyper-V上で仮想マシンとして作り直す必要があります。
Update-VmVersion コマンドで6.2にバージョンアップ
仮想マシンの構成ファイルがxml形式のファイルからバイナリファイルに
バージョン6.2の仮想マシンでは構成状態を保存する.VMCXファイル(これまでの.XMLファイル相当)と、メモリやデバイスの状態を保存する.VMRSファイル(これまでの.VSV .BINファイル相当)の2つバイナリファイルが仮想マシンの構成情報ファイルとなります。
バージョン5.0の構成ファイル
バージョン6.2の構成ファイル
統合サービスの提供方法の変更
これまで統合サービスはHyper-Vホストの%Windir%\System32\vmguest.isoを用いてインストールを行っていましたが、vNextではWindows Update や Windows Server Update Services (WSUS) を通じて仮想マシンへの統合サービスが提供されることになります。Hyper-Vマネージャーから利用できるVirtual Machien Connection(vmconnect.ext)の操作メニューからは「統合サービス セットアップ ディスクの挿入」のメニューは削除されています。
vNextが正式に製品版となったタイミングで、新しいHyper-V上で仮想マシンを作成した場合は、WIN2012R2やWindows8.1などのOSの場合はWindows Updateを通じで新しい統合サービスをダウンロード、インストールすることとなります。(サーバポートされるOSのみ)Hyper-VがサポートしているLinuxやFreeBSD 10.0については、OSのカーネル自体に統合サービスが含まれているのでそのまま利用することができます。
Second Level Address Translation(SLAT)が必須に
Hyper-V上の仮想マシンが利用しているメモリは仮想化技術によって論理的に割り振られたものなので、実際に使う場合にはホストサーバー上の物理メモリにアクセスする必要があります。このとき仮想マシンとホストサーバーの間でメモリアドレスの変換が必要となります。この変換作業をソフトウェア的に行っていたものを、ハードウェアを使用して高速に処理してしまおうという機能がSecond Level Address Translation(SLAT)と呼ばれるものです。Intel製CPUではEPT(Extended Page Table)、AMD製CPUではNPT(Nested Page Table)と呼ばれています。
WIN2012R2 のHyper-VではSLATは必須要件ではなく推奨要件だったのですが、vNextのHyper-Vでは必須要件となりそうです。Windows 8.1などのクライアントHyper-VではSLATが必須要件となっており、SLATが有効でない場合はHyper-Vの機能がインストールできないといった制限があります。vNextでは役割と機能の追加でHyper-Vの機能追加をするときにはSLATの有無のチェックがまだ無いようですが、正式に必須要件となった場合にはこの時点でSLATのチェックが入ることになります。
また、vNextのHyper-Vの新機能でHyper-Vホストクラスターに参加しているWIN2012R2を、仮想マシンを停止することなくvNextにアップグレードできる、Hyper-Vクラスタローリングアップデートという機能があります。この機能の要件としてSLATが必須要件となっています。
クラスターローリングアップグレード要件
サーバーがSLATに対応しているかの確認は以下の方法となります。
SLATの確認はハイパーバイザーを無効にして、サーバーを再起動する必要があります。稼働中の仮想マシンはシャットダウン後、SLATの確認中は起動できませんのでご注意ください。
1bcdedit コマンドで、「Windows ブート ローダー」にある「hypervisorlaunchtype」の項目の値が"Auto"になっている場合は、以下のコマンドでブートにハイパーバイザーの起動を無効にします。2bcdedit /set {current} hypervisorlaunchtype Offコマンドが成功したら、サーバーを再起動します。3起動完了後ログインして、管理者権限にてコマンドプロンプトを開きます。4以下のコマンドを入力してSLATの確認をします。WMIC CPU Get SecondLevelAddressTranslationExtensions戻り値が Second Level Address Translation TRUEとなっていればSLAT対応のCPUということになります。5ハイパーバイザーを有効にするために bcdedit /set {current} hypervisorlaunchtype Autoこのコマンド入力後再起動します。
次回は、Hyper-Vの互換性やライブマイグレーションについてご紹介します。
*本文中に記載されている会社名および商品名・サービス名は、各社の商標 または登録商標です。