Einleitung
Dieses Dokument beschreibt die Konfiguration und Fehlerbehebung von VMQ für Windows Server 2019 auf Servern der C-Serie mit VIC 1400.
Voraussetzungen
Anforderungen
Es gibt keine spezifischen Anforderungen für dieses Dokument.
Verwendete Komponenten
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
- UCS C220 M6
- VIC 1467
- CIMC 4.2(2a)
- Windows Server 2019
- 5.11.14.1 NENIC-Treiber
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Konfigurieren
CIMC
Navigieren Sie im Cisco Integrated Management Controller (CIMC) zuerst zu Networking > Adapter Card MLOM (1) > vNICs (2) und wählen Sie dann die virtuelle Netzwerkkarte (vNIC) aus, die Sie konfigurieren möchten (3).
Verwenden von CIMC zum Suchen von vNICS
Stellen Sie sicher, dass das Kontrollkästchen VMQ aktivieren aktiviert ist (4).
Aktivieren von VMQ über die vNIC
Als Nächstes wird die Definition der Warteschlangenstruktur beschrieben. Die Warteschlangenstruktur besteht aus vier Hauptkomponenten aus CIMC-Sicht: Ethernet Interrupt, Ethernet Receive Queue (Rx Queue), Ethernet Transmit Queue (Tx Queue) und Completion Queue (CQ).
Dies ist das Whitepaper zur VIC 1400-Serie, in dem die Berechnung der Warteschlangenstrukturen beschrieben wird. Es wird empfohlen, dies zu lesen, um besser zu verstehen, wie diese Berechnungen durchgeführt werden.
Cisco UCS VIC 1400: Best Practices für Ethernet-Fabric - Whitepaper
Die wichtigsten Parameter sind jedoch:
● TX-Warteschlange = Sub vNIC oder vPort
● RX-Warteschlange = 8 * (Tx-Warteschlange)
● CQ = TX + RX
● Interrupt = Max of (RX-Warteschlange oder mindestens 2xCPU+ 4)
Es gibt einen Wert, der nicht berechnet wird und vor der Ausführung der Berechnungen festgelegt werden muss. Dabei handelt es sich um Sub-vNICs oder -vPorts. Für diese Übung werden 4 virtuelle Systeme verwendet, die 4 vPorts entsprechen. Daher:
● TX-Warteschlange = 4
● RX-Warteschlange = 8 * (4) = 32
● CQ = 4 + 32 = 36
● Interrupt = Max. von (32 oder mindestens 2x2+ 4 = 8
(32 wird verwendet, da es größer als 8 ist)
Wenn Sie die Warteschlangenparameter aus den Berechnungen erhalten haben, scrollen Sie auf der Seite vNIC nach unten und geben Sie den Interrupt-Wert in das Feld Ethernet Interrupt (1), den RX-Warteschlangenwert in das Feld Ethernet Receive Queue (2), Ethernet Transmit Queue (3) und Completion Queue (4) ein.
Dies ist der wichtigste Teil der VMQ-Konfiguration (Virtual Machine Multi Queue), da VMQ unter Windows nicht funktioniert, wenn die Warteschlangenstruktur nicht korrekt berechnet wird.
Hinweis: Wenn Sie einen vSwitch mit gruppierten NICs in Windows verwenden, MÜSSEN Sie alle vNICs im CIMC identisch konfigurieren.
Windows
Überprüfen Sie in Windows Server, ob VMQ auf den gewünschten virtuellen Systemen aktiviert ist. VMQ ist in den meisten Fällen standardmäßig aktiviert, Sie müssen dies jedoch überprüfen.
Um sicherzustellen, dass VMQ aktiviert ist, drücken Sie die Windows-Taste, und suchen Sie nach Hyper-V Manager.
Wenn Sie sich in Hyper-V Manager befinden, klicken Sie links (1) auf Ihren lokalen Host, und klicken Sie dann mit der rechten Maustaste auf die virtuelle Maschine (2), auf der Sie überprüfen möchten, ob VMQ aktiviert ist, und klicken Sie auf Einstellungen (3).
Navigieren Sie in den Einstellungen zu Netzwerkadapter (1), und erweitern Sie ihn. Klicken Sie nach der Erweiterung auf Hardware Acceleration (2) (Hardwarebeschleunigung). Überprüfen Sie abschließend, ob das Kontrollkästchen Enable Virtual Machine Queue (Warteschlange für virtuelle Computer aktivieren) aktiviert ist (3).
Während Sie hier sind, müssen Sie auch sicherstellen, dass SR-IOV aktivieren NICHT aktiviert ist (4).
Stellen Sie anschließend sicher, dass die Microsoft Windows-Plattformfilterung auf dem verwendeten virtuellen Switch deaktiviert ist. Navigieren Sie dazu zum Hyper-V Manager, und klicken Sie auf Virtual Switch Manager (1).
Erweitern Sie von dort den verwendeten Switch (1), und klicken Sie auf Erweiterungen (2). Deaktivieren Sie anschließend Microsoft Windows Platform Filtering (3).
Microsoft Windows-Filterplattform deaktivieren
Hinweis: Wenn Sie einen vSwitch mit gruppierten NICs in Windows verwenden, MÜSSEN Sie alle vNICs im CIMC identisch konfigurieren.
Stellen Sie außerdem sicher, dass RSS (Receive Side Scaling) für jede Schnittstelle aktiviert ist, für die VMQ aktiviert werden soll. Drücken Sie dazu die Windows-Taste, und suchen Sie nach dem Geräte-Manager.
Suchen Sie im Gerätemanager nach Netzwerkadapter (1), und wählen Sie die Eigenschaften (2) für die Schnittstellen aus, für die VMQ aktiviert werden soll.
Navigieren Sie zu Erweitert (1), und scrollen Sie dann nach unten, um Empfangsseitige Skalierung (2) zu finden, und stellen Sie sicher, dass diese aktiviert ist (3).
Überprüfung
CIMC
Aus CIMC-Sicht ist keine Überprüfung möglich.
Windows
Die erste Stelle, an der überprüft werden kann, ob VMQ aktiv ist, ist Windows im Hyper-V-Manager.
Öffnen Sie Hyper-V Manage, und klicken Sie auf das virtuelle System, das Sie überprüfen möchten. Klicken Sie dann unten auf Networking (1). Unterhalb von Status (2) kann OK (VMQ Aktiv) beobachtet werden.
Überprüfen, ob VMQ in Windows aktiv ist
Wenn unter "Status" nur "OK" und nicht "OK" (VMQ aktiv) angezeigt wird, wurde VMQ nicht erfolgreich konfiguriert, und VMQ funktioniert nicht.
Als Nächstes wird in Powershell überprüft, ob VMQ aktiv ist. Drücken Sie die Windows-Taste, suchen Sie nach Powershell, und führen Sie dann die folgenden Befehle aus:
Get-NetAdapterVmqQueue
Get-VM | get-vmnetworkadapter | vmname, vmqusage auswählen
Überprüfen Sie, ob VMQ über Powershell aktiv ist.
In den Outputs müssen zwei Dinge berücksichtigt werden. Stellen Sie zunächst sicher, dass unter QueueID (1) mehrere Warteschlangen verwendet werden. Wenn die Warteschlangen-IDs 1 und 2 angezeigt werden, funktioniert VMQ.
Überprüfen Sie zweitens, ob die VmqUsage (2) größer als 0 ist. Solange der Wert größer als 0 ist, wird VMQ verwendet.
Fehlerbehebung
Windows
Überprüfen Sie zunächst, ob CIMC VMQ für Windows Server präsentiert. Drücken Sie die Windows-Taste, und suchen Sie nach Powershell, und geben Sie dann den folgenden Befehl ein:
Get-NetAdapterVmq
Aktivieren Sie anschließend die Spalte Enabled (Aktiviert). Wenn VMQ als deaktiviert angezeigt wird, bedeutet dies, dass VMQ auf Hardwareebene nicht aktiviert ist. Navigieren Sie zur vNIC-Konfiguration im CIMC, und stellen Sie sicher, dass VMQ aktiviert ist.
Wenn VMQ aktiviert angezeigt wird, aber auf der Registerkarte "Networking" im Hyper-V-Manager der Status "OK" angezeigt wird, wurden die VMQ-Warteschlangenparameter wahrscheinlich nicht ordnungsgemäß konfiguriert. Führen Sie die Berechnungen erneut durch, und aktualisieren Sie die Parameter.
VMQ in Windows nicht aktiv
Das folgende Beispiel zeigt eine fehlerhafte VMQ-Warteschlangenkonfiguration. (Basiert weiterhin auf 4 VMs):
Bei dieser Konfiguration treten folgende Probleme auf:
● TX-Warteschlange = 4 beginnend mit der richtigen Nummer
● RX-Warteschlange = 8 * (4) != 4 Fehlkalkulation
● CQ = 4 + 4 = 8 Während die Mathematik überprüft, Müll hinein/Müll heraus. Aufgrund der falschen RX-Warteschlangenberechnung ist der CQ-Wert falsch.
● Interrupt = Max of (RX-Warteschlange oder mindestens 2xCPU+ 4) Der eingegebene Wert von 16 ist nicht gleich der RX-Warteschlange oder (2x2cpus +4).
Um dies zu korrigieren, korrigieren Sie die RX-Warteschlangenberechnung auf 32. Anschließend können die richtigen CQ- und Interrupt-Zähler berechnet werden.
Schlussfolgerung
Eine ordnungsgemäße Konfiguration von VMQ kann frustrierend und schwierig sein. Sie müssen sicherstellen, dass die VMQ-Warteschlangenstruktur im CIMC ordnungsgemäß konfiguriert ist.