動的プロセッサ互換モード

適用対象: Windows Server 2025

適用対象: Azure Stack HCI バージョン 22H2

動的プロセッサ互換性モードが更新され、クラスター化された環境で新しいプロセッサ機能が利用されます。 プロセッサ互換性は、クラスター内の各ノードでサポートされているプロセッサ機能を特定し、すべてのプロセッサ全体の共通項を計算することによって機能します。 仮想マシン (VM) は、クラスター内のすべてのサーバーで使用できる最大数の機能を使用するように構成されます。 これにより、最小限の固定のプロセッサ機能セットを既定としていた、以前のバージョンのプロセッサ互換性と比較してパフォーマンスが向上します。

プロセッサ互換性モードを使用するタイミング

プロセッサ互換モードを使用すると、ライブ VM を移動 (ライブ マイグレーション) したり、異なるプロセス機能セットを持つノード間で保存されている VM を移動したりできます。 ただし、プロセッサ互換性が有効になっている場合でも、プロセッサ製造元が異なるホスト間で VM を移動することはできません。 たとえば、実行中の VM や保存された状態の VM を、Intel プロセッサを搭載したホストから AMD プロセッサを搭載したホストに移動することはできません。 この方法で VM を移動する必要がある場合は、まず VM をシャットダウンしてから、新しいホストで再起動します。

重要

動的構成から利点が得られるのは、最新の構成バージョン (10.0) の Hyper-V VM だけです。 古いバージョンの VM は動的構成の恩恵を受けず、以前のバージョンの 修正されたプロセッサ機能 引き続き使用しません。

Azure Stack HCI で実行されている VM のプロセッサ互換性モードを有効にすることが推奨されます。 これにより、最高レベルの機能が提供され、新しいハードウェアへの移行時に VM を移動する際にダウンタイムは必要ありません。

Note

VM の停止と再起動を計画している場合は、プロセッサ互換性モードを使用する必要はありません。 VM が再起動されるたびに、ゲスト オペレーティング システムは、新しいホスト コンピューターで使用可能なプロセッサの互換性を列挙します。

プロセッサ互換性モードが必要な理由

プロセッサの製造元は、多くの場合に、プロセッサに最適化と機能を導入しています。 これらの機能では、多くの場合に、特定のタスクに専用のハードウェアを使用することで、パフォーマンスやセキュリティを向上しています。 たとえば、多くのメディア アプリケーションでは、プロセッサの機能を使用してベクトル計算を高速化します。 これらの機能は、アプリケーションを実行するためにほとんど必要ありません。パフォーマンスを向上させます。

プロセッサで使用できる機能セットは、その製造元、モデル、および有効期間によって異なります。 オペレーティング システムとアプリケーション ソフトウェアは、通常、システムのプロセッサ機能セットを最初に起動したときに列挙します。 プロセッサのアップグレードを除き、プロセッサ機能は静的であるため、ソフトウェアでは、使用可能なプロセッサ機能が有効期間中に変更されるとは想定していません。これは、物理コンピューターで実行されている場合には発生しません。

しかし、VM モビリティ機能により、実行中の VM を新しい仮想化ホストに移行できます。 VM 内のソフトウェアが特定のプロセッサ機能を検出して使用を開始し、その機能を持たない新しい仮想化ホストに VM が移動された場合、ソフトウェアは失敗する可能性があります。 これにより、アプリケーションまたは VM がクラッシュする可能性があります。

エラーを回避するために、Hyper-V は、VM のライブ マイグレーションまたは保存/復元操作が開始されるたびに、"プレフライト" チェックを実行します。 これらのチェックでは、ソース ホスト上の VM で使用可能な一連のプロセッサ機能を、ターゲット ホストで使用可能な一連の機能と比較します。 これらの機能セットが一致しない場合、移行または復元操作は取り消されます。

プロセッサ互換性モードの新機能

以前は、すべての新しいプロセッサ命令セットが非表示でした。つまり、ゲスト オペレーティング システムとアプリケーション ソフトウェアでプロセッサ命令セットの拡張機能を使用して、アプリケーションと VM のパフォーマンスを維持することができませんでした。

この制限を克服するために、プロセッサ互換モードでは、第 2 レベルのアドレス変換 (SLAT) が可能なプロセッサに対して強化された動的機能が提供されるようになりました。 この新しい機能では、クラスター内のノードでサポートされている CPU 機能の共通項を計算し、VM の既存のプロセッサ互換性モードを、以前のハードコーディングされた機能セットではなく、この動的に計算される機能セットを使用するように更新します。

新しいプロセッサ互換モードでは、クラスター内のすべてのサーバーに共通の機能セットを提示することで、仮想化ホスト間で VM で使用できるプロセッサ機能のセットが一致することが保証されます。 各 VM では、クラスター内のすべてのサーバーに存在する最大数のプロセッサ命令セットを受け取ります。 このプロセスは自動的に行われ、常に有効にされ、クラスター全体にレプリケートされるため、このプロセスを有効または無効にするコマンドはありません。

プロセッサ互換モード

Hyper-V でプロセッサ互換モードを使用する場合、理解しておく必要がある重要な概念があります。

  • 実行中の VM は、同じ製造元のプロセッサを使用する仮想化ホスト間でのみ移行できます。

  • プロセッサ互換性モードを有効または無効にする前に、VM をシャットダウンする必要があります。

  • VM の停止と再起動を伴う VM の移動には、プロセッサ互換モードは必要ありません。

  • VM が再起動されるたびに、ゲスト オペレーティング システムは、新しいホスト コンピューターで使用可能なプロセッサ機能を列挙します。

Note

Microsoft は、Windows Server では、VM 移行シナリオの前にのみプロセッサ互換モードを有効にし、移行が完了したらオフに設定することをお勧めします。

クラスター間での実行中の VM の移行

各クラスター内のすべてのサーバーが同じハードウェアを実行していると仮定すると、実行中の VM をクラスター間でライブ マイグレーションできます。 3 つの一般的なシナリオがあります。

  • 新しいプロセッサを搭載したクラスターから同じプロセッサを搭載したクラスターに VM をライブ移行する。 VM の機能は、移行先クラスターに転送されます。 このシナリオでは、プロセッサ互換性モードを有効にする必要はありません。ただし、有効のままにしても問題は発生しません。

  • 古いプロセッサを搭載したクラスターから新しいプロセッサを搭載したクラスターに VM をライブ移行する。 VM の機能は、移行先クラスターに転送されます。 このシナリオでは、VM が再起動されると、ターゲット クラスターの最新の計算機能を受け取ります。

  • 新しいプロセッサを搭載したクラスターから古いプロセッサを搭載したクラスターに VM をライブ移行する。 PowerShell で CompatibilityForMigrationModeパラメーターに MinimumFeatureSet を使用するように VM プロセッサを設定するか、Windows Admin Center の [仮想マシン] > [設定] > [プロセッサ][Compatible across other hosts with the same CPU manufacturer]\(CPU 製造元が同じである他のホスト間で互換性あり\) を選択する必要があります。 この設定により、サーバーで提供される最小プロセッサ機能に VM が割り当てられます。 互換性がクラスター間で互換性 (推奨) に移動され、VM が再起動されると、移行先クラスターの最新の計算機能を受け取ります。

プロセッサ互換モードの使用による影響

プロセッサ互換モードの全体的なパフォーマンス効果を定量化することは困難です。 パフォーマンスの低下は、主に VM で実行されているワークロードによって異なります。 影響を受けないワークロードもあれば、顕著な違いを示すワークロードもあります。 ハードウェアの最適化 (暗号化、圧縮、集中的な浮動小数点計算など) に大きく依存するソフトウェアは、最も影響を受けます。

大量のデータを暗号化または復号化するアプリケーションは、このプロセッサ機能の恩恵を受けるので、プロセッサ互換性モードを有効にして無効にすると、これらの特定の操作のパフォーマンスに影響します。

プロセッサ互換モードのパフォーマンスへの影響が懸念される場合は、VM ワークロードのパフォーマンスを、プロセッサ互換モードが有効で無効な状態で比較することをお勧めします。

プロセッサ互換性モードを使用するように VM を構成する

このセクションでは、プロセッサ互換モードを使用するように VM を構成する方法について説明します。 同じクラスター内で互換性モードを使用している VM と使用していない VM を実行できます。

重要

プロセッサ互換性モードを有効または無効にする前に、VM をシャットダウンする必要があります。

Windows Admin Center を使用してプロセッサ互換性モードを有効にする

Windows Admin Center を使用してプロセッサ互換性モードを有効にするには:

  1. クラスターに接続し、[ツール] ウィンドウで [仮想マシン] を選択します。

  2. [インベントリ] で、プロセッサ互換性モードを有効にする VM を選択し、[電源] メニューを展開して、[シャットダウン] を選択します。

  3. [設定][プロセッサ] の順に選択し、[プロセッサの互換性] のボックスをオンにします。

プロセッサの互換性を有効にするチェック ボックスのスクリーンショット。

  1. VM の CPU 機能をクラスター内のすべてのサーバーでサポートされる最大レベルに設定する場合は、[Compatible across the cluster]\(クラスター全体で互換性あり\) (推奨) を選択します。 これにより、実行中の VM をクラスター内の他のサーバーに移動できる状態を維持しながら、VM のパフォーマンスが最大化されます。 これは、Azure Stack HCI 21H2 クラスターで実行されているすべての VM に対して有効にすることをお勧めします。 無効にした場合、VM を再起動して、サポートされている CPU 命令のレベルが異なるホストに移動する必要があります。これは、CPU の世代ごとに共通です。

    または、VM の CPU 機能を最小に設定して、実行中の VM をクラスターの外部にある他の Hyper-V ホストに (それらの CPU 製造元が同じである限り) 移動できるようにする場合は、[Compatible across other hosts with the same CPU manufacturer]\(CPU 製造元が同じである他のホスト間で互換性あり\) を選択します。

    Note

    動的プロセッサ互換モードと同様に、[Compatible across the cluster]\(クラスター全体で互換性あり\) は Azure Stack HCI 21H2 専用であり、他のオペレーティング システムではサポートされていません。

  2. [Save processor settings]\(プロセッサ設定の保存\) を選択し、VM を再起動します。

このセクションでは、Hyper-V マネージャーまたは PowerShell を使用して、プロセッサ互換性モードを使用するように VM を構成する方法について説明します。 同じクラスター内で互換性モードを使用している VM と使用していない VM を実行できます。

重要

プロセッサ互換性モードを有効または無効にする前に、VM をシャットダウンする必要があります。

Hyper-V マネージャーを使用してプロセッサ互換モードを有効にする

Hyper-V マネージャーを使用して VM のプロセッサ互換モードを有効にするには、次の手順を行います。

  1. VM をシャット ダウンします。

  2. Start を選択し、Administrative Tools をポイントして、Hyper-V マネージャーを選択します。

  3. Hyper-V を実行しているサーバーと目的の VM を選択します。

  4. VM が実行されている場合、プロセッサ互換モードの設定を有効にするには、VM をシャットダウンする必要があります。

  5. [操作] ウィンドウで Settings を選択し、 Processor を選択します。

  6. Processor を展開し、Compatibility を選択します。

  7. [ 異なるプロセッサを搭載した物理コンピューターに移行する] を選択しOK 選択

  8. VM を再起動します。

Hyper-V マネージャーを使用してプロセッサ互換モードを無効にする

Hyper-V マネージャーを使用して VM のプロセッサ互換モードを無効にするには、次の手順を行います。

  1. VM をシャット ダウンします。

  2. Start を選択し、Administrative Tools をポイントして、Hyper-V マネージャーを選択します。

  3. Hyper-V を実行しているサーバーと目的の VM を選択します。

  4. VM が実行されている場合、プロセッサ互換モードの設定を無効にするには、VM をシャットダウンする必要があります。

  5. [操作] ウィンドウで Settings を選択し、 Processor を選択します。

  6. Processor を展開し、Compatibility を選択します。

  7. [ プロセッサが異なる物理コンピューターに移行する] チェック ボックスをオフにし OK 選択します

  8. VM を再起動します。

PowerShell を使用してプロセッサ互換性モードを有効にする

プロセッサ互換性モードを有効にするには、次のコマンドレットを実行します。

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true 

VM の CPU 機能を、クラスター内のすべてのサーバーでサポートされる最大レベルに設定することをお勧めします。 これにより、実行中の VM をクラスター内の他のサーバーに移動できる状態を維持しながら、VM のパフォーマンスが最大化されます。

VM でクラスター ノードの共通機能を使用できるようにするには、次のコマンドレットを実行します。

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true -CompatibilityForMigrationMode CommonClusterFeatureSet

または、VM の CPU 機能を最小に設定して、実行中の VM を、CPU 製造元が同じであるクラスター外の他の Hyper-V ホストに移動できるようにします。

VM で既定の最小の機能を使用してクラスター間で移行できるようにするには、次のコマンドレットを実行します。

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true -CompatibilityForMigrationMode MinimumFeatureSet

PowerShell を使用してプロセッサ互換モードを無効にする

PowerShell を使用して VM のプロセッサ互換性モードを無効にするには、VM をシャットダウンし、Set-VMProcessor コマンドレットを実行して、CompatibilityForMigrationEnabled$false に設定します。

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $false

次に、VM を再起動します。