はじめに
このドキュメントでは、VIC 1400を搭載したCシリーズサーバでWindows Server 2019のVMQを設定し、トラブルシューティングする方法について説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- UCS C220M6
- VIC 1467
- CIMC 4.2(2a)
- Windows Server 2019
- 5.11.14.1 NENICドライバ
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
設定
CIMC
Cisco Integrated Management Controller(CIMC)から、Networking > Adapter Card MLOM (1) > vNICs (2)の順に移動し、設定する仮想ネットワークインターフェイスカード(vNIC)(3)を選択します。
CIMCを使用したvNICの特定
ここで、Enable VMQボックスにチェックマークが付いていることを確認します(4)。
vNICからのVMQの有効化
次に、キュー構造の定義を示します。キュー構造は、CIMCの観点から見ると、イーサネット割り込み、イーサネット受信キュー(Rxキュー)、イーサネット送信キュー(Txキュー)、および完了キュー(CQ)の4つの主要コンポーネントで構成されます。
これはVIC 1400シリーズ用のホワイトペーパーで、キュー構造の計算の概要を示しています。これらの計算方法を詳しく理解するために、このドキュメントを読むことをお勧めします。
イーサネットファブリックにおけるCisco UCS VIC 1400シリーズのベストプラクティスのホワイトペーパー
ただし、パラメータは最も重要な距離です。
● TXキュー=サブvNICまたはvPort
● RXキュー= 8 *(Txキュー)
● CQ = TX + RX
● 割り込み=最大(RXキューまたは少なくとも2xCPU+ 4)
計算されない値が1つあり、計算を実行する前に決定する必要があります。これはサブvNICまたはvPortです。この実習では、4vPortに対応する4台の仮想マシンが使用されます。したがって
● TXキュー= 4
● RXキュー= 8 * (4) = 32
● CQ = 4 + 32 = 36
● 割り込み=最大(32または2x2 + 4 = 8)
(32は8より大きいため使用されます)
計算からキューパラメータを取得したら、vNICページをスクロールダウンして、Ethernet Interrupt(1)フィールドにInterrupt値(1)、Ethernet Receive Queue(2)フィールドにRX Queue値(3)、およびCompletion Queue(4)を入力します。
これは仮想マシンマルチキュー(VMQ)設定の最も重要な部分で、キュー構造が正しく計算されず、VMQがWindowsで動作しない場合に発生します。
注:WindowsでチーミングNICを使用するvSwitchを使用している場合は、CIMCですべてのvNICを同じように設定する必要があります。
Windows
Windows Serverから、目的の仮想マシンでVMQが有効になっていることを確認する必要があります。ほとんどの場合、VMQはデフォルトで有効になっていますが、確認する必要があります。
VMQが有効になっていることを確認するには、Windowsキーを押して「Hyper-V Manager」を検索します。
Hyper-V Managerで、左側のローカルホストをクリックし(1)、VMQが有効になっていることを確認する仮想マシンを右クリックして(2)、設定をクリックします(3)。
設定が完了したら、Network Adapter (1)に移動して展開します。展開したら、Hardware Acceleration (2)をクリックします。最後に、Enable Virtual Machine Queueボックスにチェックマークが付いていることを確認します(3)。
ここで、Enable SR-IOVにチェックマークが付いていないことも確認する必要があります(4)。
次に、使用中の仮想スイッチでMicrosoft Windowsプラットフォームフィルタリングが無効になっていることを確認します。これを行うには、Hyper-V Managerに移動し、Virtual Switch Manager (1)をクリックします。
そこから、使用しているスイッチ(1)を展開し、Extensions (2)をクリックします。次に、Microsoft Windows Platform Filtering (3)のチェックマークを外します。
Microsoft Windowsフィルタリングプラットフォームの無効化
注:WindowsでチーミングNICを使用するvSwitchを使用している場合は、CIMCですべてのvNICを同じように設定する必要があります。
また、VMQを有効にする各インターフェイスでReceive Side Scaling(RSS)が有効になっていることを確認します。これを行うには、Windowsキーを押して、「Device Manager」を検索します。
デバイスマネージャで、Network Adapters(1)を探し、VMQを有効にするインターフェイスのProperties(2)を選択します。
Advanced (1)に移動し、下にスクロールしてReceive Side Scaling (2)を見つけ、Enabled (3)になっていることを確認します。
確認
CIMC
CIMCの観点からは検証できません。
Windows
VMQがアクティブかどうかを確認する最初の場所は、Hyper-Vマネージャ内のWindowsです。
Hyper-V Manageを開き、確認する仮想マシンをクリックします。次に、一番下のNetworking (1)をクリックします。Status(2)の下で、OK(VMQ Active)を確認できます。
WindowsでVMQがアクティブかどうかの確認
ステータスの下に「OK」のみが表示され、「OK」(VMQ Active)が表示されていない場合、VMQは正常に設定されておらず、VMQは機能していません。
VMQがアクティブかどうかを確認する次の場所は、Powershellです。Windowsキーを押してPowershellを検索し、次のコマンドを実行します。
Get-NetAdapterVmqQueue
Get-vm | get-vmnetworkadapter | vmname、vmqusageの選択
PowershellによるVMQがアクティブであることの確認
出力で確認する項目が2つあります。まず、QueueID (1)で複数のキューが使用されていることを確認します。キューIDが1と2の場合、VMQが動作していることを意味します。
次に、VmqUsage(2)が0よりも大きいことを確認します。値が0より大きい限り、VMQが使用されていることを意味します。
(「トラブルシューティング」)
Windows
まず、CIMCがWindows ServerにVMQを提示しているかどうかを確認します。Windowsキーを押してPowershellを検索し、次のコマンドを入力します。
Get-NetAdapterVmq
次に、Enabled列をオンにします。VMQが無効として表示される場合は、VMQがハードウェアレベルで有効になっていないことを意味します。CIMCでvNIC設定に移動し、VMQが有効になっていることを確認します。
VMQがenabledと表示されているにもかかわらず、Hyper-VマネージャのNetworkingタブにStatusがOKと表示される場合は、VMQ Queue Parametersが不適切に設定されている可能性があります。計算を再実行し、パラメータを更新します。
WindowsでVMQが非アクティブ
VMQキューの不正な設定の例を次に示します。(4つのVMに基づく):
この設定の問題を次に示します。
● TXキュー= 4正しい番号で始まる
● RXキュー= 8 * (4) != 4誤計算
● CQ = 4 + 4 = 8計算のチェックアウト中に、ガベージイン/ガベージアウトが行われます。RXキューの計算が正しくないため、CQ値が正しくありません。
● 割り込み= Max of (RX queue or atなくとも2xCPU+ 4)入力された16の値は、RXキューまたは(2x2cpu + 4)と等しくありません。
これを修正するには、RXキューの計算を修正します。この計算は32です。その後、正しいCQおよび割り込みカウントを計算できます。
結論
VMQを正しく設定すると、イライラしたり、難しくなったりすることがあります。CIMCでVMQキュー構造が正しく設定されていることが不可欠です。