Hyper-V 仮想スイッチが LBFO チームにバインドされている場合のイベント ID 106

この記事では、Hyper-V 仮想スイッチが LBFO チームにバインドされている場合のイベント ID 106 を解決するのに役立ちます。

適用対象: Windows Server 2012 R2
元の KB 番号: 2974384

現象

次のような状況で問題が発生します。

  • Windows Server 2012 ベースまたは Windows Server 2012 R2 ベースのコンピューターがあり、1 つ以上の負荷分散とフェールオーバー (LBFO) チームと共に構成されています。
  • Hyper-V 仮想スイッチは、LBFO チームのいずれかにバインドされます。

このシナリオでは、次のいずれかのイベントが断続的にログに記録されます。

原因

エラー 106 で "理由: LBFO が合計キュー モードで構成されている場合にプロセッサ セットが重複する" と表示される場合は、Set-NetAdapterVmq Windows PowerShell コマンドを使用して、チーム内の各ネットワーク アダプターを構成して、異なるプロセッサを使用する必要があります。 (キューの合計には LBFO チーミングが設定されているため、チーム内のネットワーク アダプターでは重複しないプロセッサ セットを使用する必要があります)。

エラー 106 に 「理由: LBFO が最小キュー モードで構成されている場合、プロセッサ セットは同一ではありません」と表示される場合は、Set-NetAdapterVmq Windows PowerShell コマンドを使用して、チーム内の各ネットワーク アダプターが同じプロセッサを使用するように構成する必要があります。 (LBFO チーミングは最小キュー モード用に設定されているため、チーム内のネットワーク アダプターは重複するプロセッサ セットを使用する必要があります)。

解決方法

エラー 106 で "理由: LBFO が合計キュー モードで構成されている場合にプロセッサ セットが重複する" と表示される場合は、次の例の Windows PowerShell コマンドを使用してプロセッサを分離し、各ネットワーク アダプターが仮想マシン キュー (VMQ) に異なるプロセッサを使用するようにすることができます。 また、これらの構成の変更を行った後で他の既知の問題を解決するには 、KB 記事3031598 に修正プログラムをインストールする必要があります。

これらはコマンドの例です。 BaseProcessorNumber と MaxProcessors の設定は、サーバーに搭載されているプロセッサの数と、VMQ に使用しないプロセッサに基づいて変更できます。

Set-NetAdapterVmq -Name NIC1 -BaseProcessorNumber 2 -MaxProcessors 2

注:

このネットワーク アダプターでは、VMQ にプロセッサ 2 と 3 が使用されます。

Set-NetAdapterVmq -Name NIC2 -BaseProcessorNumber 4 -MaxProcessors 2

注:

このネットワーク アダプターでは、VMQ にプロセッサ 4 と 5 が使用されます。

サーバーでプロセッサ Hyper Threading が有効になっている場合は、BaseProcessorNumber と MaxProcessors の設定を変更して、エラー 106 を合計キュー モードで修正する必要があります。

サーバーで Hyper Threading が有効になっているかどうかわからない場合は、Get-NetAdapterRSS Windows PowerShell コマンドレットを実行し、RssProcessorArray の出力行を調べるのが簡単な方法の 1 つです。 0:0/0 0:1/0 0:2/0 と表示されている場合..... Hyper Threading はオフになります。 0:0/0 0:2/0 0:4/0...と表示される場合、Hyper Threading はオンになります。 RSS と VMQ は、Hyper Threading がオンの場合にのみコア プロセッサを使用するため、偶数のプロセッサを意味します。

そのため、Hyper-Threaded サーバーで前述のコマンドを設定する場合は、BaseProcessorNumber を偶数にのみ設定できます。 また、MaxProcessors は、VMQ で使用できる、使用するプロセッサの数に設定する必要があります。

たとえば、(2) のコア プロセッサが 6 つあり、Hyper Threading が有効になっている場合、タスク マネージャーなどのプロセッサを表示する 24 個のプロセッサが Windows ツールに表示されます。 VMQ は、偶数のプロセッサのみを使用するため、それらの 12 個のみを使用できます。 これらのプロセッサを 2 つの NIC に分割し、エラー 106 を修正するには、次のコマンドを使用して、VMQ に異なるプロセッサを使用するように各 NIC を設定します。
Set-NetAdapterVMQ -Name NIC1 -BaseProcessorNumber 0 -MaxProcessors 6 (そのため、この NIC では VMQ にプロセッサ 0,2,4,6,8,10 を使用します)
Set-NetAdapterVMQ -Name NIC2 -BaseProcessorNumber 12 -MaxProcessors 6 (そのため、この NIC では VMQ にプロセッサ 12,14,16,18,20,22 が使用されます)

エラー 106 に「理由: LBFO が最小キュー モードで構成されている場合、プロセッサ セットは同一ではありません」と表示される場合は、次のコマンド例Windows PowerShell使用して、各ネットワーク アダプターが VMQ に同じプロセッサを使用できるようにします。

これらはコマンドの例です。 BaseProcessorNumber と MaxProcessors の設定は、サーバーに搭載されているプロセッサの数と、VMQ に使用しないプロセッサに基づいて変更できます。

Set-NetAdapterVmq -Name NIC1 -BaseProcessorNumber 2 -MaxProcessors 4

注:

このネットワーク アダプターは、VMQ にプロセッサ 2、3、4、および 5 を使用します

Set-NetAdapterVmq -Name NIC2 -BaseProcessorNumber 2 -MaxProcessors 4

注:

このネットワーク アダプターでは、VMQ にプロセッサ 2、3、4、5 も使用されます

VMQ プロセッサを正しく設定して、すべてのネットワーク アダプターが VMQ に同じプロセッサを使用するように設定した後も、特定の NUMA ノードを使用するようにネットワーク アダプターの [優先 NUMA ノード] 設定を調整した場合、エラー 106 "理由: LBFO が最小キュー モードで構成されている場合、プロセッサ セットは同一ではありません" というエラーが発生する可能性があります。 既定の設定は "システムの既定値" であり、VMQ を使用する場合に推奨される設定です。 特定の優先 NUMA ノードを設定し、ネットワーク アダプターで NUMA ノードが異なる場合、ネットワーク アダプターは VMQ に同じプロセッサを使用していません。

例: 上記の例では、NIC1 と NIC2 の両方でプロセッサ 2、3、4、5 を使用するように設定します。 サーバーに各 NUMA ノードに 4 つのプロセッサがある NUMA ノードが 8 つあり、NIC1 を優先 NUMA ノード 0 に設定し、NIC2 を優先 NUMA ノード 1 に設定した場合、実際には、プロセッサ 2、3、NIC2 をプロセッサ 2、3、および NIC2 を使用するように NIC1 を設定します。 4、5 は、プロセッサ 0、1、2、3、4、5、6、7 を表す 2 つの NUMA ノードに分割されます。

詳細

さまざまな LBFO 構成の VMQ と LBFO の設定について説明するブログ
VMQ CPU 割り当てについて説明するブログ