Optimierung von SAN-Connectivity für VMware vSphere-Umgebungen Workshop: Server-Virtualisierung mit Emulex-Adaptern und VMware

Autor / Redakteur: Steve Abbott / Ulrike Ostler

Dies ist ein Leitfaden für IT-Administratoren zur Server-Virtualisierung mit „One Connect“ 10GbE Adapter und „VMware vSphere 4“. Schrittweise wird die optimale Implementierungweise beschrieben. Die Darstellung konzentriert sich auf die Komponenten: Multi-Core-Server mit MSI-X und PCI-Express 2.0, VMware vSphere 4.1, „Emulex One Connect OCe10102-N“ und „OCe11102-N“ 10GbE Adapter sowie „Emulex One Command Manager“.

Firma zum Thema

Emulex bohrt die Connectivität in VMware-virtualisierten Umgebungen für einen Workshop auf
Emulex bohrt die Connectivität in VMware-virtualisierten Umgebungen für einen Workshop auf
( Archiv: Vogel Business Media )

Server-Virtualisierung ist eine Schlüsseltechnologie, die Kosten reduziert und Ressourcen in Rechenzentren optimiert. Neue High-Performance- und Multi-Core-Server können mit wesentlich mehr virtuellen Maschinen (VMs) und dementsprechend mehr geschäftskritischen Anwendungen betrieben werden. Hierdurch entsteht die Forderung nach höheren I/O-Kapazitäten, welche die Einführung von Ethernet-Netzwerken mit 10 Gigabit pro Sekunde (10GbE) vorantreibt.

Emulex „One Connect“-Adapter sind bei führenden Server- und Storage-Lieferanten erhältlich. Sie sind als zusätzliche Netzwerkkarten (NICs), Mezzanine-Karten für Blade-Server oder als integrierte Lösung (LAN on Motherboard (LOM)) verfügbar. „OCe10102-N“-Adapter nutzen die BE2-Controller der zweiten Generation, „OCe11102-N“ Adapter nutzen die BE3-Controller der dritten Generation.

Bildergalerie
Bildergalerie mit 20 Bildern

Beide Adaptertypen werden von „VMware vSphere“ unterstützt, einer weitverbreiteten Virtualisierungssoftware in Rechenzentren für Unternehmensanwendungen.

Die Emulex One Connect Produktfamilie bietet 10-GbE-Netzwerk-Connectivity und unterstützt Protokoll-Offload für iSCSI und Fibre Channel über Ethernet (FCoE). Emulex One Command Manager indes bietet ein zentralisiertes Management für Emulex Fibre Channel Host Bus Adapter (HBAs) und OneConnect 10GbE Netzwerk Adapter, einschließlich Unterstützung für die iSCSI- und FCoE-Protokolle. Das Tool verfügt über ein weitreichendes Management sowie Diagnosemöglichkeiten für eine Administration in einer VMware-Umgebung.

Generieren von Adapter Uplinks und Entities auf einem VMware Virtual Switch

1. VMware vSphere 4.1 vSwitch

Nachdem der Adapter und One Command Manager installiert ist, besteht der nächste Schritt in der Generierung der physischen Uplinks auf einem VMware Virtual Switch (vSwitch) wie nachfolgend beschrieben. (Details zur Installation von OneCommand Manager finden Sie unten, im Whitepaper“ Deploying One Connect 10 GbE…“ zum Download)

Den Kern eines virtuellen Netzwerks bildet der vSwitch, der aus einem virtualisierten Layer-2-Switch besteht. Dieser verbindet VMs zu einem virtuellen Netzwerk und erlaubt den Zugriff auf ein physisches Netzwerk. Ein vSwitch kann komplexe Operationen durchführen und erlaubt dadurch die Unterstützung für, unter anderem, virtuelle Netzwerke (VLANs), die Überprüfung und das Handling von Security Policies, Traffic Shaping sowie NIC-Teaming.

Eine virtuelle Netzwerkkarte (vNIC) ist einer VM zugeordnet und verbindet diese über einen vSwitch mit einem virtuellen Netzwerk. Jede vNIC verfügt über ihre eigene MAC-Adresse und kann einer oder mehrer IP-Adressen zugeordnet werden, ähnlich einer physischen NIC in einem nichtvirtualisierten Rechner.

2. VMware vNetwork Distributed Switch

Der “Cisco 1000V” Series Switch ist ein VMware vNetwork Distributed Switch (VDS). Er stellt einen vollwertigen, virtuellen, Layer-2-Switch dar, welcher innerhalb des ESX Hypervisors läuft und das Cisco NX-OS Betriebssystem nutzt. Er verfügt über Sicherheits-Mechanismen und Mechanismen zur Unterstützung von 802.3ad, 802.1q sowie anderer Protokolle, die in heutigen Switch-Netzwerken Anwendung finden. (siehe Anhang: Details zu VMware VDS und Cisco Nexus 1000V Series Switches).

weiter mit: Konfiguration eines Emulex One Connect 10GbE Adapter als vSwitch Uplink

Konfiguration eines Emulex One Connect 10GbE Adapter als vSwitch Uplink

Als nächstes wird erklärt, wie ein Adapter als vSwitch Uplink konfiguriert wird. Zunächst ist der Reiter “vSphereClient Configuration” auszuwählen, um sich verfügbare Netzwerkadapter anzeigen zu lassen (siehe: Abbildung 1).

In diesem Beispiel war vmnic0 zuvor zum Switch vSwitch1 konfiguriert. vmnic1 ist ein One-Connect-Adapter und derzeit keinem vSwitch zugeordnet. Acht VMs (VM0 – VM7) sind dem Netzwerk „OC Network1“ zugeordnet und können Daten untereinander austauschen. Um vmnic1 zu vSwitch1 zuzuordnen, gehen Admins im vSphere Client wie folgt vor:

  • 1. Klicken Sie auf „vSwitch1 Properties“
  • 2. Wählen Sie „Network Adapters“ (siehe: Abbildung 2)
  • 3. Klicken Sie auf “Add” - eine Liste nicht zugeordneter Adapter erscheint (siehe: Abbildung 3):
  • 4. Wählen Sie vmnic1 aus dieser Liste. vmnic1 erscheint jetzt in der Liste aktiver Adapter und ist nun zu vSwitch1 konfiguriert, wie in Abbildung 4 und Abbildung 5 gezeigt.

De Funktion Teaming

Teaming unterstützt redundante NICs, die als vSwitch Upling (VMNICs) auf einen physischen Switch konfiguriert sind. Redundante Uplink-Ports bieten eine hohe Verfügbarkeit. Außerdem kann die Bandbreite erhöht werden, indem mehrere physische Ports zusammengeschaltet werden und gegebenenfalls unterschiedliche Netzwerkpfade bedienen.

NIC-Teaming bietet unterschiedliche Konfigurationsmöglichkeiten, die auf vSwitch-Basis oder Port-Basis definiert sein können.

  • Active/Standby
  • Active/Active mit Load-balancing basiert auf VM Port-ID
  • Active/Active mit Load-balancing basiert auf dem Hash-Algorithmus mit VM MAC-Addresse
  • Active/Active mit Load-balancing based basiert auf dem Hash-Algorithmus mit Quell- und Ziel-IP-Addresse.

Zur Konfiguration von Emulex Adaptern für Teaming und Failover führen Sie folgende Schritte im VMware vCenter 4.1 durch:

  • 1. Klicken Sie auf „vSwitch1 Properties“
  • 2. Klicken Sie auf „Ports“
  • 3. Wählen Sie „OC Network1“ aus
  • 4. Klicken Sie auf „Edit“ (siehe: Abbildung 6)

Klicken Sie auf den Reiter „NIC Teaming“, um Ausnahmen (Policy Exceptions) zu definieren. Sie können die Failover-Optionen ändern, indem Sie auf „Override vSwitch Failover Order“ klicken. Hier können Sie „Active“, „Standby“ oder „Unused“ auswählen und über „Move Up/ Down“ einen Adapter zuordnen.

weiter mit: Load Balancing

Load Balancing

ESX bietet drei verschiedene Methoden für Load Balancing:

  • Die Route basieret auf der originären Port-ID (dieses ist die Voreinstellung – „default“)

Uplink basiert auf dem virtuellen Port, auf welchem der Traffic („Datenverkehr“) in den vSwitch gelangt (auch “vSwitch port-based Load Balancing” genannt).

  • Die Route basiert auf einem Hash-Algorithmus, dem die MAC-Adresse der Quelle zugrunde liegt. Der Uplink basiert auf einem Hash-Algorithmus, dem die Ethernet-Adresse der Quelle zugrunde liegt.
  • Die Route basiert auf einem Hash-Algorithmus, der die IP-Adresse zugrunde liegt. Der Uplink basiert auf einem Hash-Algorithmus, dem die Quell- und Ziel-IP-Adressen zugrunde liegen. (Für zusätzliche Informationen zur Konfiguration von NIC Teaming unter EXS 4.1

Routing-Beispiel

Im folgenden Beispiel wird ein Routing benutzt, das auf der Quell-MAC-Adresse basiert. Von der VM ausgehender Traffic basiert auf einem Mapping auf einen pNIC, dem die MAC-Adresse eines vNIC zugrunde liegt. Andere Einstellungen betreffen unter anderem: Netzwerk-Failover, Switch Notification sowie Failback.

Um die Reihenfolge des Failover festzulegen, markieren Sie “Override vSwitch Failover Order”. Konfigurieren Sie den Adapter als Active, Standby oder Unused, in dem Sie ”Move up” oder “Move down” auswählen (siehe: Abbildung 7).

Virtual Switch Tagging (VST) erlaubt dem vSwitch das Tagging entsprechend dem Standard 802.1q. Dieses wiederum erlaubt das „Binding“ eines einzelnen Netzwerk Interfaces auf mehrere VLANs und Broadcast Domains. Ein 32-bit-Feld (Tag) wird in jeden Frame eines Paketes eingefügt. Dieser „Tag“ wird vom Switch ausgewertet und aus dem Frame entfernt, bevor er sein Ziel erreicht.

Der Switch routet das Paket zur entsprechenden Broadcast Domain. Dadurch ist gewährleistest, dass der Datenverkehr isoliert und gesichert vom restlichen Netzwerk abgewickelt wird.

Eien VLAN-ID wird zugeordnet

Eine VLAN ID kann, wie in den folgenden Schritten beschrieben, zugeordnet werden. Auf dem VMware vSphereClient, klicken Sie den Reiter “Configuration” und wählen Sie “Networking” aus (siehe: Abbildung 8).

Klicken Sie den Reiter “Ports” und wählen Sie “Virtual Machine Port Group” (OCNetwork1 im Abbildung 9):

VLANs über virtuelle und physische Netzwerk-Umgebungen

Abbildung 10, 11 zeigt eine ESX-Konfiguration mit drei vSwitches, die an VLAN IDs 1001, 1002 und 1003 angeschlossen sind.

Lediglich virtuelle Hosts, die an einem vSwitch im LAN 1001 angeschlossen sind, dürfen mit physischen Servern im VLAN 1001 kommunizieren. VMs können mit anderen VMs kommunizieren, die an demselben vSwitch angebunden sind. Beispielsweise kann VM3 mit VM2 über den vSwitch Daten austauschen. VMs an einem anderen vSwitch können nur über einen physischen Switch kommunizieren und beide vSwitches müssen mit derselben VLAN ID konfiguriert sein.

weiter mit: Switch-Kommandos zum Setup von VLANs und Trunk Ports

Switch-Kommandos zum Setup von VLANs und Trunk Ports

Der erste Schritt ist die Generierung von VLANs. Die Kommandos hierfür sind:

# configure terminal# vlan {vlan-id | vlan-range}# no shut

Das folgende Beispiel veranschaulicht die Konfiguration eines Switches, um die VLANs 1001-1003 zu aktivieren. Bestätigen Sie die Einstellungen durch die Eingabe des Befehls

„show vlan“.

Als Nächstes müssen die Ethernet-Ports für die VLANs konfiguriert werden. Nutzen Sie hierzu folgende Kommandos:

# configure terminal # interface Ethernet 1/7# switchport mode trunk

Abbildung 12 zeigt die Konfiguration der Ethernet-Ports 1/7, 1/8 und 1/9 für die VLANs 1001-1003.

BIOS-Einstellungen / Faktoren für hohe Performance

In den meisten Fällen sind die standardmäßigen Einstellungen der Hardware im BIOS nicht auf optimale Performance ausgelegt und können durch Modifikation verbessert werden. ESX unterstützt die CPU-Energiemanagement-Technologien Enhanced Intel SpeedStep und Enhanced AMD PowerNOW, die Energie einsparen, wenn der Host nicht voll ausgelastet wird. Allerdings kann diese Einstellung die Leistung beeinträchtigen. Überlegen Sie, ob Sie diese Optionen deaktivieren möchten, um eine optimale Gesamtperformance des Systems zu erzielen.

Da es sehr viele verschiedene Servermodelle und Hardwarevarianten gibt, ist es schwierig, die besten Einstellungen für jeden Server zu bestimmen. Die folgenden Empfehlungen sollten Sie allerdings berücksichtigen:

  • Stellen Sie sicher, dass die aktuellste BIOS-Version verwendet wird
  • Stellen Sie sicher, dass im BIOS alle bereitgestellten Sockets und alle Cores für jedes Socket aktiviert sind
  • Aktivieren Sie „Turbo Mode“ für alle Prozessoren, die diesen unterstützen
  • Aktivieren Sie Hyper-Threading im BIOS
  • Einige NUMA-kompatible Systeme bieten die Möglichkeit, NUMA durch die Aktivierung von Node-Interleaving abzuschalten. In der Regel erzielt man die beste Leistung, wenn Node-Interleaving deaktiviert ist
  • Stellen Sie sicher, dass hardwaregestützte Virtualisierungsfunktionen (VT-x, AMD-V, EPT, RVI) im BIOS aktiviert sind
  • Deaktivieren Sie den C1E-Halt-Befehl (C1E halt state) im BIOS. (Beachten Sie unten stehende Anmerkung bezüglich der Gewichtung von Performance gegenüber Energieverbrauch)

Hinweis: Nach der Änderung dieser Einstellungen erfordern einige Systeme ein vollständiges Herunterfahren (Power down), damit die Einstellungen wirksam werden. Nähere Informationen finden Sie unter diesem Link („Trouble-shooting Intel VT-x Issues“, Fehlerbehebung für Intel VT-x).

  • Deaktivieren Sie alle weiteren Energiesparfunktionen im BIOS.
  • Deaktivieren Sie alle nicht benötigten Geräte im BIOS, zum Beipsiel serielle und USB-Ports.

Weitere Information über die Konfiguration von BIOS-Einstellungen für VMware-Plattformen, finden Sie in den Performance Performance Best Practices for VMware vSphere 4.1 (PDF)

weiter mit: One Connect Performance: MTU, Heap Size, NetQueues

One Connect Performance: MTU, Heap Size, NetQueues

Die Performance von One Connect-10GbE-Adaptern kann durch die unten beschriebenen Änderungen der Einstellungen für Maximum Transfer Unit (MTU), Heap Size und NetQueues optimiert werden.

Maximum Transfer Unit

Erhöhung der MTU zur Unterstützung von Jumbo-Frames kann bei großen Dateien den Durchsatz deutlich erhöhen und die CPU-Auslastung verringern, indem größere Datenmengen pro Paket effizient versendet werden. Das folgende Beispiel veranschaulicht, wie die MTU-Größe im vSwitch und im virtuellen Ethernet-Adapter im Gast-Betriebssystem erhöht wird.

Um die aktuelle MTU aller vSwitches zu überprüfen (siehe: Abbildung 13), geben Sie folgenden Befehl ein:

# esxcfg-vswitch –l

Der MTU-Wert kann in einem Windows-Gastsystem für die Verwendung von Jumbo-Paketen konfiguriert werden, indem die Adaptereinstellungen wie in Abbildung 14 dargestellt gewählt werden.

Die MTU-Größe kann auch in einem Linux-Gastsystem geändert werden. Um die MTU für Jumbo-Frames mit bis zu 9000 Blöcken einzustellen, geben Sie folgenden Befehl ein:

# ifconfig eth mtu 9000

Netzwerk-Heap-Size in ESX Server

Standardmäßig belegt der Netzwerk-Stack in ESX Server 64 MB zur Pufferung von Netzwerkdaten. Sofern die Netzwerkauslastung mehr als 64 Megabyte Speicher benötigt, kann der One-Connect-Treiber keinen weiteren Speicher automatisch belegen, um die zusätzlichen Daten zu verarbeiten. Wenn dieser Fall eintritt, gibt der Treiber Meldungen in die Protokolldatei /proc/vmware/log von ESX Server aus, die besagen, dass der Aufruf „alloc_skb()“ fehlgeschlagen ist. Dies kann sich negativ auf die Netzwerk-Leistung auswirken.

Um die aktuelle Größe des Netzwerk-Heaps in ESX Server auszulesen, geben Sie folgenden Befehl ein:

# esxcfg-advcfg -j netPktHeapMaxSize netPktHeapMaxSize = 0

Der zurückgegebene Wert ist 0.

Das folgende Beispiel zeigt, wie die Heap Size auf 128 MB geändert und anschließend überprüft wird, dass die Änderung auch durchgeführt wurde (der neue Wert wird nach einem Neustart wirksam):

# esxcfg-advcfg -k 128 netPktHeapMaxSize# esxcfg-advcfg -j netPktHeapMaxSizenetPktHeapMaxSize = 128

VMware Net Queues

Net Queue ist eine Performance-Technik von VMware, die die Performance virtueller 10GbE-Umgebungen erheblich steigert. Das Tool erfordert MSI-X-Unterstützung der Server-Plattform. Diese Unterstützung kann auf einigen Systemen eingeschränkt sein. Standardmäßig ist Net Queue deaktiviert und kann in ESX Server oder mit vSphereClient aktiviert werden.

Einen Netzwerk-Queue-Interrupt mit einer CPU zu verknüpfen kann die Interrupt-Verzögerung senken, die Netzwerk-Performance der VM steigern und die CPU-Auslastung reduzieren. Um NetQueue in ESX vSphere 4.1 Server zu aktivieren, geben Sie folgende Befehle ein und starten Sie anschließend den Server neu:

  • Zur Aktivierung:

# esxcfg-advcfg -k TRUE netNetqueueEnabled

  • Zur Überprüfung:

# esxcfg-advcfg -j netNetqueueEnabled netNetqueueEnabled = TRUE

Net Queue kann ebenfalls durch die folgenden Schritte in vSphere Client aktiviert werden (siehe Abbildungen 13 und 24):

1. Klicken Sie auf „Configuration“

2. Wählen Sie „Advanced Setting“ (Erweiterte Einstellungen)

3. Wählen Sie „VMkernel“

4. Wählen Sie „VMkernel.Boot.netNetqueueEnabled“

5. Aktivieren Sie das Kontrollkästchen „VMKernel.boot.netNETqueueEnabled“

weiter mit: Performance-Vorteile von Net Queue

Performance-Vorteile von Net Queue

Wenn Net Queue in ESX aktiviert ist, bietet der Emulex One-Connect-Adapter bis zu acht individuelle Empfangs-Queues pro Port und entlastet den Hypervisor von Funktionen zur Sortierung und Klassifizierung von Layer 2-Paketen. Werden Ethernet-Pakete zu einem One-Connect-Netzwerkadapter geroutet, so werden sie in bestimmten Queues eingereiht, was die Aufteilung der Bearbeitung auf mehreren CPUs erlaubt und die empfangsseitige Netzwerk-Performance erheblich erhöht.

Netzwerkverkehr (Traffic), der über bestimmte Queues eintrifft, löst einen MSI-X-Interrupt für eine oder mehrere CPUs aus, die die Anwendungsaufgabe ausführen. Standardmäßig teilen VMs alle verfügbaren Cores eines Systems, und die erzeugten Interrupts der Netzwerk-Queues werden in ESX automatisch bearbeitet.

ESX erreicht auf den meisten Multi-Prozessor-Systemen eine hervorragende Lastverteilung auf die CPUs und der Unterstützung mehrerer Geräte. Sollte eine weitere Optimierung der Leistung erforderlich sein, kann sie durch Anpassung der Affinitätseinstellungen (Affinity setting) und die Zuordnung von IRQ-Vektoren erreicht werden. Dies erfordert jedoch einiges Experimentieren und hat Auswirkungen auf Virtualisierungsfunktionen wie „VMotion“ und „Dynamic Resource Scheduling“ (Dynamische Ressourcenplanung).

Netzwerktipps für ESX

Die CPU-Auslastung spielt eine erhebliche Rolle für den Netzwerkdurchsatz. Für höhere Durchsatzraten sind zusätzliche CPU-Ressourcen notwendig.

Der Einfluss der Verfügbarkeit von CPU-Ressourcen auf den Netzwerkdurchsatz ist in virtualisierten Anwendungen noch signifikanter. Da unzureichende CPU-Ressourcen den maximalen Durchsatz reduzieren, ist es wichtig, die CPU-Auslastung durchsatzstarker Workloads zu überwachen.

  • Verwenden Sie vSwitches, die jeweils einem eigenen physischen Netzwerkadapter zugeordnet sind, um Konflikte zwischen der ESX-Service-Konsole, dem VMkernel und den VMs (besonders VMs, die hohe Netzwerk-Workloads erzeugen) zu vermeiden.
  • Um eine Netzwerkverbindung zwischen zwei VMs auf demselben ESX-System zu erstellen, verbinden Sie beide VMs mit demselben vSwitch. Sollten die VMs mit verschiedenen vSwitches verbunden sind, wird der Traffic über das externe physische Netzwerk geleitet und erzeugt unnötige CPU- und Netzwerkbelastungen.
  • Der Netzwerkgerätetreiber von VMkernel verwendet standardmäßig die automatische Erkennung (auto-negotiation) der Geschwindigkeits- und Duplexeinstellungen. Diese Einstellung arbeitet korrekt, sofern die Netzwerk-Switches ebenfalls auf die automatische Erkennung (auto-negotiate) konfiguriert sind. Wenn der Switch auf feste Geschwindigkeits- und Duplexeinstellungen konfiguriert ist, erzwingen Sie im Netzwerktreiber dieselben Einstellungen (für Gigabit-Verbindungen sollten die Netzwerkeinstellungen für automatische Erkennung (auto-negotiate) eingestellt sein und nicht erzwungen werden).
  • Die Modelle VMXNET2, VMXNET3 und E1000 unterstützen Jumbo-Frames für bessere Leistung. Zur Aktivierung von Jumbo-Frames stellen Sie die MTU-Größe sowohl im Gastsystem als auch in der vSwitch-Konfiguration auf 9000. Die physischen NICs an beiden Enden sowie alle dazwischenliegenden Hops/Router/Switches müssen ebenfalls Jumbo-Frames unterstützen.

Weitere Information finden Sie in den VMware Performance Best Practices (siehe: Link unten)

Konfiguration von E1000-, VMXNET2- und VMXNET3-Adaptern für ein Windows-Gastsystem

Zum Erreichen der höchsten Leistung empfiehlt VMware die Verwendung des VMXNET3-Netzwerkadapters. Dies erfordert sowohl virtuelle Hardware der Version 7 als auch die Installation der VMware-Tools im Gastbetriebssystem (OS). Um einen VMXNET3-Adapter hinzuzufügen, führen Sie folgende Schritte aus (siehe Abbildungen 25, 26 und 27):

  • 1. Klicken Sie mit der rechten Maustaste auf die VM
  • 2. Wahlen Sie „Edit Setting“ (Einstellungen bearbeiten)
  • 3. Klicken Sie auf „Add“ (Hinzufügen) (siehe: Abbildung 19: Hinzufügen von VMXNET3-Adaptern (Schritte 1 – 3)
  • 4. Wählen Sie den Ethernet-Adapter
  • 5. Klicken Sie auf „Next“, Weiter (siehe: Abbildung 20: Hinzufügen von VMXNET3-Adaptern (Schritte 4 und 5)
  • 6. Wählen Sie den Adaptertyp
  • 7. Klicken Sie auf „Next“ , Weiter (Abbildung 21: Hinzufügen von VMXNET3-Adaptern (Schritte 6 und 7)

Der Autor:

Steve Abbott ist Senior Product Marketing Manager bei Emulex.

Artikelfiles und Artikellinks

(ID:2052432)