ra2 studio - Fotolia

So nutzen Sie Single-Root I/O-Virtualisierung (SR-IOV)

SR-IOV ermöglicht PCIe-Geräten, als mehrere virtuelle Geräte zu erscheinen. Es nutzt physische und virtuelle Funktionen, um die VM-Leistung zu verbessern und CPU-Last zu reduzieren.

Obwohl neuere Technologien wie Software-Defined Networking (SDN) verfügbar sind, bleibt SR-IOV (Single-Root I/O-Virtualisierung) weiterhin eine relevante Technologie zur Optimierung der I/O-Leistung in virtualisierten Umgebungen. Das gilt insbesondere in Szenarien, die hohe Netzwerkleistung und geringe Latenz erfordern. Microsoft bietet diese Technologie seit der Einführung von Windows Server 2012 Hyper-V an.

Funktionsweise und Vorteile von SR-IOV

Die Single-Root I/O-Virtualisierung (SR-IOV) ist eine Technologie, die die Leistung von virtualisierten Netzwerken verbessert. Sie funktioniert folgendermaßen:

SR-IOV ermöglicht es einem einzelnen physischen PCI-Gerät, wie einer Netzwerkkarte (NIC), als mehrere separate virtuelle Geräte zu erscheinen. Dies geschieht, indem das Gerät in eine physische Funktion (PF) und mehrere virtuelle Funktionen (VFs) aufgeteilt wird. Die physische Funktion stellt die eigentliche Hardware dar und verwaltet die grundlegenden Funktionen des Geräts. Die virtuellen Funktionen sind logische Repräsentationen des Geräts, die direkt virtuellen Maschinen (VMs) zugewiesen werden können.

Durch diese Aufteilung können VMs direkt mit der Netzwerkhardware kommunizieren, ohne den Umweg über den Hypervisor gehen zu müssen. Dies reduziert den CPU-Overhead und verbessert die I/O-Leistung erheblich. Bei herkömmlichen virtualisierten Netzwerken muss der Hypervisor den gesamten Netzwerkverkehr verarbeiten und weiterleiten, was zu Leistungseinbußen führen kann.

SR-IOV nutzt den Direct Memory Access (DMA), um Netzwerkpakete direkt in den Speicher der entsprechenden VM zu übertragen. Dadurch wird die CPU-Auslastung minimiert, da nur noch die tatsächlich benötigten Pakete verarbeitet werden müssen. Dies ist besonders vorteilhaft für Anwendungen, die eine garantierte Bandbreite oder strenge Leistungsanforderungen haben.

Die Technologie ist besonders effektiv bei Nord-Süd-Verkehr, also bei Datenverkehr zwischen verschiedenen Servern. In solchen Szenarien bietet SR-IOV einen einfachen und effizienten Pfad für die Verarbeitung des Datenverkehrs, da die Pakete ohnehin die physische Netzwerkkarte passieren müssen.

Um SR-IOV nutzen zu können, müssen sowohl die Hardware (CPU, Mainboard, Netzwerkkarte) als auch das Betriebssystem und der Hypervisor die Technologie unterstützen. In modernen Rechenzentrumsumgebungen ist diese Unterstützung jedoch meist gegeben.

Zu den Vorteilen, die der Einsatz dieser Technologie mit sich bringt, gehören die folgenden:

  • Verbesserte Leistung: SR-IOV ermöglicht es virtuellen Maschinen (VMs), direkt mit physischen Netzwerkadaptern zu kommunizieren, was zu einer signifikanten Verbesserung des I/O-Durchsatzes und einer Verringerung der Latenz führt.
  • Reduzierte CPU-Auslastung: Durch die Umgehung der Virtualisierungsschicht bei I/O-Operationen wird die CPU-Auslastung auf den Hypervisor-Hosts reduziert.
  • Erhöhte Effizienz: SR-IOV optimiert die Nutzung von Hardwareressourcen, indem es mehreren VMs erlaubt, einen einzelnen physischen Netzwerkadapter zu teilen.
  • Unterstützung moderner Virtualisierungsplattformen: Sowohl Microsoft Hyper-V als auch VMware vSphereunterstützen SR-IOV, was seine anhaltende Relevanz in Enterprise-Umgebungen unterstreicht.
  • Skalierbarkeit: Mit der zunehmenden Anzahl virtualisierter Server in Rechenzentren bleibt die Optimierung der I/O-Leistung durch Technologien wie SR-IOV wichtig.
  • Flexibilität: SR-IOV ermöglicht die Migration aktiver VMs unabhängig von der Hardware des Host-Servers und erhöht die Flexibilität des vorhandenen I/O-Geräts durch Aufteilung der Bandbreite.

Voraussetzungen für den Einsatz und Aktivierung

Administratoren, die SR-IOV verwenden möchten müssen spezifische Anforderungen erfüllen, damit ein reibungsloser Einsatz garantiert werden kann:

  • Windows Server 2012 oder neuer für Hyper-V
  • Windows 8 oder Windows Server 2012 (oder neuer) für Gastsysteme
  • SR-IOV-kompatibler physischer Netzwerkadapter
  • SR-IOV-Unterstützung im Chipsatz der Hauptplatine

Die Aktivierung von Single Root I/O-Virtualisierung (SR-IOV) in Windows Server Hyper-V erfolgt in zwei Hauptschritten und kann sowohl über die grafische Benutzeroberfläche als auch über PowerShell durchgeführt werden. 

Aktivierung auf dem externen virtuellen Switch

Zuerst muss SR-IOV auf dem externen virtuellen Switch aktiviert werden, der dem physischen SR-IOV-fähigen Netzwerkadapter zugeordnet ist. Der PowerShell-Befehl zum Erstellen eines neuen virtuellen Switches mit aktiviertem SR-IOV ist:

New-VMSwitch -Name "SR-IOV Switch" -NetAdapterName "Ethernet" -EnableIov $true

Soll ein bestehender Switch modifiziert werden, kommt dieser Befehl zum Tragen:

Set-VMSwitch -Name "Existing Switch" -EnableIov $true

Aktivierung für eine virtuelle Maschine

Nachdem SR-IOV auf dem Switch aktiviert wurde, muss es für jede gewünschte VM einzeln aktiviert werden. Der PowerShell-Befehl zum Hinzufügen eines neuen Netzwerkadapters mit aktiviertem SR-IOV zu einer VM lautet:

Add-VMNetworkAdapter -VMName "VM Name" -SwitchName "SR-IOV Switch" -Name "SR-IOV NIC" -DeviceNaming On Set-VMNetworkAdapter -VMName "VM Name" -Name "SR-IOV NIC" -IovWeight 1

Der Parameter -IovWeight 1 aktiviert SR-IOV für diesen Adapter. Ein Wert von 0 würde SR-IOV deaktivieren.

Die Konfiguration überprüfen

Möchte der Admin sicherstellen, dass er richtig konfiguriert hat, kann er auch dies mit PowerShell umsetzen. Dabei kann sowohl der Switch als auch der VM-Netzwerkadapter geprüft werden.

Dies ist der Befehl für einen Switch:

Get-VMSwitch | Select-Object Name, IovEnabled

Der Befehl für einen Netzwerkadapter lautet wie folgt:

Get-VMNetworkAdapter -VMName "VM Name" | Select-Object Name, IovWeight, IovQueuePairsRequested, IovInterruptModeration, IovVirtualFunctionCount

Darüber hinaus lässt sich auch die Anzahl der virtuellen Funktionen (VFs) anpassen, die einer virtuellen Maschine zugewiesen werden. Dies weist der VM zwei VFs zu, was nützlich sein kann, um die Netzwerkleistung weiter zu optimieren. Der Befehl ist:

Set-VMNetworkAdapter -VMName "VM Name" -Name "SR-IOV NIC" -IovQueuePairsRequested 2

Es gilt zu beachten, dass für die Nutzung von SR-IOV sowohl die Hardware (CPU, Mainboard, Netzwerkkarte) als auch das Gastbetriebssystem SR-IOV unterstützen müssen. Außerdem muss SR-IOV im BIOS/UEFI des Servers aktiviert sein.

Diese PowerShell-Befehle bieten eine flexible und skriptbare Methode zur Konfiguration von SR-IOV in einer Hyper-V-Umgebung, was besonders nützlich für die Automatisierung und das Management größerer Infrastrukturen ist.

Weitere Optionen für SR-IOV

Obwohl von Microsoft entwickelt, unterstützt auch VMware diese Virtualisierungstechnologie in seiner vSphere-Plattform. Diesen SR-IOV-Support bietet VMware sowohl für Windows- als auch für Linux-Gastsysteme, allerdings gibt es einige Funktionsbeschränkungen für SR-IOV-aktivierte VMs zu beachten. Bestimmte Funktionen wie vMotion, Storage vMotion, vShield, NetFlow und andere sind für diese VMs nicht verfügbar. Im Gegensatz dazu können SR-IOV-aktivierte VMs unter Microsoft Hyper-V an Livemigrationen teilnehmen.

Es ist wichtig zu beachten, dass die Implementierung und Unterstützung von SR-IOV zwischen den verschiedenen Virtualisierungsplattformen variieren kann. Administratoren sollten die spezifischen Anforderungen und Einschränkungen ihrer jeweiligen Plattform berücksichtigen, wenn sie SR-IOV einsetzen möchten.

Erfahren Sie mehr über Serverbetriebssysteme