Azure Stack HCI の動的プロセッサ互換性モード

適用対象: Azure Stack HCI バージョン 23H2 および 22H2

注意

Azure Stack HCI 23H2 で VM を作成および管理する推奨される方法は、 Azure Arc コントロール プレーンを使用することです。 Azure Arc VM で使用できない機能が必要な場合にのみ、以下で説明するメカニズムを使用して VM を管理します。

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

Windows Server のプロセッサ互換性モードの詳細については、「Hyper-V のプロセッサ互換性モード」を参照してください。

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

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

重要

動的構成から利点が得られるのは、最新の構成バージョン (10.0) の Hyper-V VM だけです。 以前のバージョンの VM では動的構成の利点はなく、以前のバージョンの固定プロセッサ機能を引き続き使用します。

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

注意

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

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

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

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

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

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

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

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

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

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

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

各クラスター内のすべてのサーバーが、Azure Stack HCI の要件である同じハードウェアを実行しているものとして、実行中の 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 が割り当てられます。 互換性が [Compatible across the cluster]\(クラスター全体で互換性あり\) (推奨) に移され、VM が再起動されると、そのVM は移行先クラスターの最新の計算済みの機能を受け取ります。

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

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

重要

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

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

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

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

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

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

    プロセッサの互換性を有効にするボックスをオンにする

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

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

    注意

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

  5. [Save processor settings]\(プロセッサ設定の保存\) を選択し、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

次のステップ

詳細については、次のトピックも参照してください。