SR-IOV

Kommentieren Drucken
Teil 13 von 19 aus der Serie "Virtualisierungstechniken"

Die besten Konzepte für Netzwerke im Rack und darüber hinaus nützen gar nichts, wenn das Problem der Hypervisor-Überlastung nicht systematisch gelöst wird. Dazu gibt es einen sehr interessanten Standard von PCI-SIG, den sogenannten SR-IOV (Single Root – I/O Virtualization), der vor allem deshalb so eine hohe Bedeutung hat, weil er letztlich eine Erweiterung von PCIe , dem aktuell wichtigsten und erfolgreichsten aller internen Bus-Systeme, ist. Hardware-Hersteller orientieren sich an diesem Standard. Also reicht es aus, sich exemplarisch anzusehen, was der Prozessor-Gigant Intel genau aus diesen Vorgaben macht, welche Anreicherungen es noch zusätzlich gibt und wie sich das Ganze sowohl in der Prozessorarchitektur als auch in erhältlichen Produkten niederschlägt.

IOV ist einfach die Abstraktion der logischen Details der I/O von den physikalischen Details. Das ist wichtig, um die höheren Protokolle von den physikalischen Verbindungs- oder Transportdetails zu befreien. Es gibt hier eine Reihe von Ansätzen, wir beschränken uns aber hier auf die, die mit Server-Virtualisierung zu tun haben, also besonders auf den SR-IOV-Standard. Neben dem bereits diskutierten Ansatz, die I/O durch die Emulation von I/O-Geräten wie NICs durch die Hypervisor-Software zu virtualisieren gibt es ja auch durchaus die Möglichkeit der direkten Zuweisung von I/O-Geräten zu VMs. Das ist natürlich viel schneller, entlastet den Hypervisor maximal, hat aber den gravierenden Nachteil, dass man für jede VM auf einem Server einen individuellen Adapter-Port benötigt, was zu einem Skalierungsproblem führt. Außerdem gehen bestimmte Aspekte der Abstraktion verloren, was die Migration von VMs (die berühmten wandernden virtuellen Maschinen WVMs) sehr kompliziert bis unmöglich macht. Da aber grade WVMs viele moderne Konzepte vom unterbrechungsfreien Betrieb bis hin zur Disaster Recovery ermöglichen, ist die direkte Zuweisung als Konzept zu verwerfen.

SR-IOV ist ein PCI-SIG-Standard, der das effiziente Sharing von PCI-Geräten unter VMs ermöglicht und in Hardware implementiert wurde, um in der Leistung möglichst nahe an nativer I/O-Leistung zu liegen. SR-IOV erzeugt eine Menge von virtuellen Funktionsschnittstellen in der Hardware eines physischen PCI-Geräts. Die virtuellen Funktionsschnittstellen sind im Wesentlichen virtuelle Instanzen des physischen Geräts. Sie können den VMs unmittelbar zugeordnet werden und erlauben es, dass das physikalische Gerät von den VMs gemeinsam benutzt wird, z. B. zur I/O, ohne dass ein Hypervisor dabei eingreifen müsste.

Damit SR-IOV funktioniert, muss eine Reihe von Komponenten auf einem Server zusammenspielen:

  • ein System-Chipsatz, der I/O-Isolation und direkte Zuordnung unterstützt, wie z. B. Intel Virtualization Technology for Directed I/O (Intel VT-d),
  • eine SR-IOV-fähige NIC (oder ein anderes I/O-Gerät) mit eingebauten (Hardware)-Funktionen für die Virtualisierung,
  • ein BIOS, welches den Chipsatz und die SR-IOV-Adapter erkennt,
  • ein Hypervisor, der dahingehend modifiziert sein muss, dass er die Möglichkeiten von SR-IOV nutzen kann und für den Nutzer einen Treiber installieren müssen, damit er SR-IOV-Geräte erkennt,
  • ein Treiber für das Basis-Betriebssystem, der es ermöglicht, I/O direkt mit dem SR-IOV-Gerät auszuführen.

Rein theoretisch kann man ein bestehendes System komponentenweise mit diesen Komponenten aufrüsten. Das ist aber mit Aufwand verbunden. Mit der Zeit wird SR-IOV in die Mehrheit der Server und Hypervisoren eingebaut sein. Normalerweise werden Nutzer den Weg gehen, ein System von ihrem Server-Anbieter zu kaufen, welches die Komponenten bereits besitzt oder dafür vorbereitet ist. Hier vielleicht der wichtige Hinweis, dass es durchaus sinnvoll sein kann, einen Server mit der passenden Ausstattung zu kaufen, auch wenn man das aktuell noch nicht nutzen möchte.

Wichtig ist, dass SR-IOV so konstruiert wurde, dass es kompatibel zu existierender PCIe-Technologie ist und somit nicht zu erwarten ist, dass es eine bestehende Infrastruktur stört.

SR-IOV bietet eine Menge von Vorzügen auf den Bereichen Leistung, I/O-Konsolidierung, Skalierbarkeit und Datenschutz:

  • Durch die unmittelbare Zuordnung virtueller Funktionen eines I/O-Gerätes wird nahezu dessen native Leistung erreicht. Der Gesamt I/O-Durchsatz steigt enorm und die Latenz sinkt durch die Beseitigung des Software-Overheads.
  • Durch die Entlastung des Hypervisors kann sich die CPU wieder vermehrt produktiven Aufgaben widmen.
  • Es wird ein effizientes, Hardware-unterstütztes Sharing von I/O-Ressourcen ermöglicht.
  • Die I/O-Konsolidierung erlaubt den Systemverwaltern die Benutzung virtueller Funktionen anstelle von multiplen physischen Geräten für die Separierung von I/O-Funktionen. Das umfasst nicht nur Netzwerk-Komponenten, sondern auch Speicher.
  • Die I/O Geräte können effektiver genutzt werden.
  • Man spart HW-Kosten, vereinfacht die Verkabelung , reduziert die Anzahl von benötigten Switch Ports und senkt somit den Verwaltungsaufwand
  • Durch die systematische Benutzung einer einzigen leistungsfähigen Schnittstelle statt vieler kleinerer steigt die Skalierbarkeit des gesamten Systems.
  • Datenschutz und Datensicherheit werden alleine dadurch erhöht, dass man Hardware anstelle von Software dazu benutzt, die I/O-Datenströme zwischen virtuellen Maschinen zu kreieren und zu isolieren.

Dadurch entstehen auch handfeste wirtschaftliche Vorteile:

  • höherer Konsolidierungsgrad mit gesteigerter Ersparnis bei Server-HW,
  • Ausdehnung der Spareffekte durch Virtualisierung auf Anwendungen, die bisher nicht virtualisiert werden konnten,
  • Ausdehnung der verbesserten Effizienz bei der Verwaltung von Systemen auch auf diese neue Klasse von Anwendungen,
  • verbesserte Antwortzeiten und QoS für Anwendungen,
  • Kostenersparnis durch Reduktion von Adaptern, Kabeln, Switch Ports und Stromverbrauch sowie Management-Punkten.

Natürlich gibt es, wie bei jeder neuen Technologie, eine Reihe von Herausforderungen. Die hohe Leistung von SR-IOV kommt durch die direkte Zuordnung von VMs zu Hardware-virtualisierten I/O-Ressourcen zustande. Dadurch verliert man ggf. die Flexibilität und die Kompatibilität rein Software-basierender Lösungen und die Virtualisierungssoftware muss entsprechend angepasst werden. Das ist Aufgabe der betreffenden Hersteller wie VMware, Citrix oder Microsoft.

Bei der Wanderung virtueller Maschinen kann es passieren, dass eine VM von einem System, welches SR-IOV hat, auf eines kommt, wo dies nicht gegeben ist. Es muss also einen Mechanismus geben, mit dem eine VM mit dem Hypervisor verhandeln kann, z. B. ob sie auch mit den nunmehr eingeschränkten Möglichkeiten zurechtkommt, oder ob der Hypervisor sie besser weiterschickt. Intelligenter Weise sollten derartige Verhandlungen vor einer Wanderung passieren. Obwohl SR-IOV ein Standard ist, kann es unterschiedliche HW-Implementierungen geben, z. B. auf 10-GbE oder auf 40-Gb-IB. Daher müssen im Rahmen einer Wanderung ggf. HW-Profile ausgetauscht werden.

Hier müssen die Hypervisor-Hersteller arbeiten. Es gibt noch mehr zu tun. Jede VM spricht mittels eines eigenen Treibers direkt mit den virtualisierten Funktionen auf dem I/O-Gerät. Dadurch wird unklar, wer eigentlich die Kontrolle über das Ganze hat. Es muss im Hypervisor eine zentrale Instanz geben, die die Verarbeitung beobachtet und ggf. bei Konflikten steuernd eingreift. Treiber in den Gast-VMs arbeiten normalerweise direkt mit den I/O-Geräten, das ist ja grade der Witz. Sie müssen aber auch in bestimmten Fällen auf Funktionen des Master-Treibers im Hypervisor zurückgreifen können.

Schließlich müssen alle Beteiligten wie Hard- und Software-Hersteller sowie OEMs und andere eng zusammenarbeiten. Genau dafür ist die Initiative von SIG gedacht. Eine erste Version des SIG SR-IOV wurde schon Ende 2007 vorgestellt und trägt jetzt Früchte, denn durch die Verbreitung von PCIe ist SIG eine sehr mächtige Organisation.

« Teil 12: Virtual I/OTeil 14: Prozessorarchitekturen und SR-IOV »


zugeordnete Kategorien: Virtualisierung
zugeordnete Tags:

Sie fanden diesen Beitrag interessant? Sie können



Anmerkungen, Fragen, Kommentare, Lob und Kritik:

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

.