Sergey Nivens - stock.adobe.com

SR-IOV: Chancen und Risiken in virtualisierten Netzwerken

Mit SR-IOV steht Netzwerkadmins ein weiteres Tool für die Workload-Optimierung zur Verfügung. Neben vielen Vorteilen bietet die Spezifikation aber auch einige Nachteile.

Geräte direkt per Peripheral Component Interconnect (PCI) anzubinden, bietet eine Option, den Overhead bei virtuellem oder Soft-Switching zu reduzieren. Aber Single-Root I/O-Virtualisierung (SR-IOV) stellt eine meist überlegene Alternative dar.

Bei SR-IOV handelt es sich um einen PCI-Standard (Peripheral Component Interconnect), der wichtige Performance-Auswirkungen für das virtuelle Networking hat.

Die SR-IOV-Spezifikation unterteilt die Netzwerkkarte eines Hosts in physische und logische Funktionen.

Die physische Funktion kümmert sich um die Link-Charakteristiken, während die virtuelle Funktion eine Reihe von logischen PCI-Schnittstellen bereitstellt, die der Administrator Gästen zuweisen kann.

Diese virtuellen Schnittstellen sind logische – effektiv dedizierte – Geräte. Dadurch ist die Netzwerkkarte in der Lage, Traffic direkt zur richtigen virtuellen Maschine (VM) weiterzuleiten, ohne dass ein virtueller Switch eine Forwarding-Entscheidung duplizieren muss.

Die Reduzierung des Overheads sollte allen Gästen zugutekommen, aber netzwerkintensive Aktionen profitieren am meisten.

Oberflächlich gesehen bringt die SR-IOV-Spezifikation dem Admin jede Menge Vorteile. SR-IOV bietet durch die effizientere Nutzung vorhandener Ressourcen anscheinend einen höheren Durchsatz. Allerdings stellen sich einige recht naheliegende Fragen:

  • Wie komme ich an SR-IOV, und wie aktiviere ich die Funktion?
  • Worin besteht der eigentliche Vorteil?
  • Warum wird diese Virtualisierungstechnik nicht immer eingesetzt?

Die Antworten sind nicht einfach.

Die Funktionsweise von SR-IOV.
Abbildung 1: Die Funktionsweise von SR-IOV.

SR-IOV-Unterstützung schwierig zu evaluieren

Aus einer Hardwareperspektive betrachtet, sind die Voraussetzungen für SR-IOV höchstwahrscheinlich gegeben, wenn Sie Ihre Data-Center-Infrastruktur in den vergangenen fünf Jahren in Betrieb genommen haben. Falls Sie Ihre Hardware kaufen – beziehungsweise mieten –, können Sie darüber hinaus davon ausgehen, dass die SR-IOV-Spezifikation in Ihrer jüngsten Ausschreibung bereits enthalten ist. Aus einer Reihe von Gründen lässt sich SR-IOV jedoch überraschend schwer evaluieren. Sie benötigen dazu Folgendes:

  • eine CPU mit Unterstützung für Intels Virtualization Technology for Directed I/O (VT-d);
  • eine CPU mit einem Treiber für Intels Input/Output Memory Management Unit (IOMMU); und
  • eine Netzwerkkarte, die SR-IOV unterstützt.

In der Regel verfügen nur für Server konzipierte NICs über eine SR-IOV-Funktionalität. Zudem variiert die Anzahl der virtuellen Funktionen, oder logischen Schnittstellen, je nach der verwendeten Karte. Während konvergierte Netzwerkadapter mit 10 GbE (10 Gigabit Ethernet) 60 oder mehr dieser Funktionen unterstützen, sind es bei preisgünstigen Alternativen zirka sieben pro Port. Jede virtuelle Funktion lässt sich einer VM-Schnittstelle (virtuellen Maschine) zuordnen. Abhängig vom Hypervisor kann dies dynamisch oder manuell geschehen. Andere Probleme, die auftreten können:

Netzwerkkarten. Da es sich bei SR-IOV um einen PCI-Standard handelt, sind PCI-Express-Netzwerkkarten notwendig. Um SR-IOV zu testen, benötigen Sie Serverkomponenten. Das bedeutet eine relativ große Investition in Form von Platz und Geld. Ein weiterer Punkt: Einige OEMs deaktivieren bewusst die SR-IOV-Funktionalität in Chipsätzen, die sie ansonsten unterstützen würden. Das ist kein Thema, wenn Sie neue Chipsätze kaufen, aber falls Sie mit dem Gedanken spielen, SR-IOV mit gebrauchtem oder älterem Equipment zu nutzen, kann dies eine Ursache für erheblichen Frust sein.

Access Control Service. Technisch betrachtet zwar keine Voraussetzung, dennoch sollte der Access Control Service (ACS) im PCI-Controller implementiert sein. Ohne ihn ist die Funktion von SR-IOV beeinträchtigt, so dass ein erheblicher Eingriff in den Kernel notwendig ist. Leider hat Intel ACS lediglich im Xeon E5 und einer Handvoll Core-i7-Workstation-CPUs implementiert. Infolgedessen lässt sich SR-IOV auf allen Geräten außer Data-Center-Hardware nur schwierig realisieren.

Softwarevoraussetzungen. Alle gängigen Hypervisoren, zum Beispiel VMware ESXi, KVM, Xen und Microsoft Hyper-V, unterstützen SR-IOV. Allerdings steht im Falle von ESXi die Benutzerschnittstelle erst dann zur Verfügung, wenn auch vSphere vorhanden ist. Größere Instanzen der Amazon Elastic Compute Cloud (Amazon EC2) unterstützen erweitertes Networking für Gast-VMs, und Microsoft Azure bietet eine eingeschränkte Unterstützung. Windows und die meisten Linux-Distributionen können die virtuellen Funktionen von SR-IOV nutzen, aber die Unterstützung der Spezifikation für virtuelle Appliances ist lückenhaft, darunter etliche Cloud-native Produkte. Angesichts der Tatsache, dass es SR-IOV seit 2009 gibt, ist diese fehlende Unterstützung überraschend.

Auf was Sie bei der Aktivierung von SR-IOV achten müssen

Ist SR-IOV aktiviert, kommt es zu einigen Nebeneffekten. Die Zuweisung von virtuellen Netzwerkfunktionen zu einem Gast wird vor dem Booten vorgenommen. Aufgrund dessen sind Features wie das Anhalten von Gästen, Netzwerkfunktionen im laufenden Betrieb und vMotion deaktiviert. Dies bestärkt die Auffassung, dass SR-IOV sich nicht sonderlich gut für dynamische Web- oder Datenbank-Workloads eignet. Für Anforderungen wie eine Edge Firewall oder andere Content-Security-Maßnahmen – die eher relativ statisch bleiben – ist der Verzicht auf diese Funktionen wahrscheinlich akzeptabel.

Fazit

Die SR-IOV-Spezifikation stellt dem Netzwerkadministrator ein zusätzliches Tool für die Workload-Optimierung zur Verfügung. Es ist ganz sicher kein Patentrezept, könnte aber den Lebenszyklus gemieteter oder in eigenem Besitz befindlicher Computing-Ressourcen erheblich verlängern. Wenn Sie vor kurzem Ihrer Buchhaltung mitgeteilt haben, dass – dank Spectre und Meltdown – Abwarten und Nichtstun riskant ist und teuer enden kann, könnten Sie durch den Einsatz von SR-IOV wieder einige Pluspunkte sammeln. Zeit also, sich mit Ihren Serverspezifikationen zu beschäftigen.

Nächste Schritte

Windows Server 2016: Switch Embedded Teaming mit Hyper-V

Hyper-V: Die verschiedenen Modi NIC-Teaming

vDS oder vSS bei VMware Virtual Switches?

Erfahren Sie mehr über Software-defined Networking