2018 年 8 月更新プログラム以降を適用後、仮想マシンのライブマイグレーションが失敗する

こんにちは。Windows プラットフォーム サポートです。
2018 年 8 月更新プログラム (KB4343887) 以降を適用した Windows Server 2016 Hyper-V ホストから未適用の環境に対して仮想マシンのライブマイグレーションを実行すると、イベントログに Hyper-V-VMMS ID:24004 が記録され失敗する場合がございます。

—————————————
ログの名前: Microsoft-Windows-Hyper-V-VMMS/Admin
ソース: Hyper-V-VMMS
日付: XXXX/XX/XX XX:XX:XX
イベント ID: 24004
タスクのカテゴリ: なし
レベル: エラー
キーワード: N/A
ユーザー: SYSTEM
コンピューター: XXXXXXXX
説明:
仮想マシン ‘XXXX’ は、物理コンピューター ‘XXXX’ でサポートされていないプロセッサー固有の機能を使用しています。
異なるプロセッサーを持つ物理コンピューターにこの仮想マシンを移行できるようにするには、仮想マシン設定を変更して、
仮想マシンで使用されるプロセッサー機能を制限します。(仮想マシン ID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
—————————————

※ 仮想マシンの設定でプロセッサの互換性を有効化した後も、同じエラーログ (ID:24004) が記録されて失敗します。

本事象は、以下の条件に全て該当する場合に発生いたします。

[条件]
Hyper-V ホストの条件:
- Windows Server 2016 Hyper-V クラスター環境
- ハードウェア側ファームウェアにプロセッサのマイクロコード修正 (CVE-2018-3639、CVE-2018-3640 への対策) を導入

仮想マシンの条件:
- 2018 年 8 月更新プログラム (KB4343887) 以降を適用した環境で新規作成した仮想マシン、もしくはコールドブートした仮想マシン

シナリオ:
- 2018 年 8 月更新プログラム以降を適用した Hyper-V ホスト (KB4343887) から未適用の Hyper-V ホストへライブマイグレーションを行う

[原因]
8 月以降の更新プログラムではハイパーバイザーでサポートする CPU 機能が追加されており、その結果適用 Hyper-V 環境と未適用の Hyper-V 環境で使用する CPU 機能に差が生じます。
CPUの機能レベルに差が生じている場合、移動先でプロセッサの新しい命令セットに対応できず、ライブマイグレーションに失敗する場合があります。

なお、8 月以降の更新プログラムで追加された CPU 機能は、仮想マシンの設定であるプロセッサの互換性を有効にした場合も失敗します。これは、追加された CPU 機能は互換性リストに含まれる機能であるためです。

[対処]
クラスター環境では、全クラスター ノードでソフトウェア更新プログラム含めて同一構成であることを推奨しております。
そのため、更新プログラム未適用の環境に、対象の更新プログラムを適用いただくことで対処可能です。

直ぐに更新プログラムを適用できない場合には、以下の手順で、仮想マシンに対する CPU 機能レベルを制限する方法で対処可能でございます。

1. Hyper-V ホストにて管理者権限のコマンドプロンプトを起動します。

2. 以下のコマンドを実行します。

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "9.0" /f

[参考情報]
Protecting guest virtual machines from CVE-2017-5715 (branch target injection)
/en-us/virtualization/hyper-v-on-windows/CVE-2017-5715-and-hyper-v-vms

本 Blog が少しでも皆様のお役に立てれば幸いです。