はじめに
このドキュメントでは、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 =送信+受信
● 割り込み=最大(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)、Ethernet Receive QueueフィールドにRX Queue値(2)、Ethernet Transmit Queue(3)、Completion Queue(4)を入力します。
これは、仮想マシンマルチキュー(VMQ)の設定で最も重要な部分です。キュー構造が正しく計算されず、VMQがWindowsで動作しないためです。
注:Windowsでチーム化されたNICを備えたvSwitchを使用している場合は、CIMCですべてのvNICを同一に設定する必要があります。
Windows
Windowsサーバから、目的の仮想マシンで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 Filtering Platformを無効にする
注:Windowsでチーム化されたNICを備えたvSwitchを使用している場合は、CIMCですべてのvNICを同一に設定する必要があります。
また、VMQを有効にする各インターフェイスでReceive Side Scaling(RSS)が有効になっていることを確認します。これを行うには、Windowsキーを押して、「デバイスマネージャ」を検索します。
デバイスマネージャで、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)をクリックします。ステータス(2)の下で、OK(VMQアクティブ)を確認できます。
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 ManagerのNetworkingタブにステータスOKが表示される場合は、VMQキューパラメータが不適切に設定されている可能性があります。計算を再度実行し、パラメータを更新します。
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キュー構造が正しく設定されていることが不可欠です。