Was ist Single-Root I/O-Virtualisierung (SR-IOV) und welchen Vorteil bringt sie?
Single-Root I/O-Virtualisierung, oder SR-IOV, kann auf Hyper-V-VMs Latenzen verringern und I/O-Durchsatz erhöhen. So funktioniert die Technik.
Was ist Single Root I/O-Virtualisierung und wie nutze ich diese mit Windows Server Hyper-V?
Viele Administratoren virtueller Maschinen sind noch nicht mit Single Root I/O-Virtualisierung (SR-IOV) vertraut, die Microsoft seit Windows Server 2012 Hyper-V anbietet. Die Spezifikation von SR-IOV stammt vom PCI-SIG-Konsortium und ermöglicht es einem PCI-Gerät, als mehrere physische Geräte zu erscheinen, wodurch Latenzen verringert und I/O-Durchsätze erhöht werden können. Einfacher ausgedrückt können SR-IOV-fähige PCI-Geräte an SR-IOV-fähige Treiber mehrere virtuelle Kanäle zur direkten Kommunikation melden.
Technisch betrachtet besteht SR-IOV aus zwei Funktionseinheiten: den physischen Funktionen (PFs) und den virtuellen Funktionen (VFs). Es gibt zwar verschiedene PCI-Geräte mit PF-Implementierungen, allerdings bietet Microsoft Hyper-V seine SR-IOV-Unterstützung ausschließlich für den Netzwerkbereich an. In anderen Worten: Microsoft Hyper-V gibt virtuellen Maschinen mithilfe von VFs die Möglichkeit zur direkten Kommunikation mit physischen Netzwerkadaptern.
Zwei Treiber in Microsoft Hyper-V sorgen für die SR-IOV-Funktionalität: der PF-Miniport-Treiber in der Hyper-V-Elternpartition und der VF-Miniport-Treiber im jeweiligen Gastsystem.
Die Beziehung zwischen PF und VF ähnelt sehr dem VSP-VCS-Design in Hyper-V, mit einer Ausnahme: Im Fall des VSP-VSC-Designs unterhält sich die VSC-Komponente einer VM mit dem korrespondierenden VSP der Hyper-V-Elternpartition über den VMBus-Kanal, im Fall der PF-VF-Architektur hingegen redet die VF in der VM mit der PF im SR-IOV-kompatiblen Netzwerkadapter. Allerdings ist dort der PF-Miniport-Treiber in der Hyper-V-Elternpartition dafür verantwortlich, solche Kontakte zu unterhalten und nach Bedarf zu beenden.
Da VMs auf diese Weise direkt mit physischen Netzwerkadaptern kommunizieren können, können Organisationen von einer Erhöhung des I/O-Durchsatzes ebenso profitieren wie von der (durch geringeren Netzwerk-Traffic verursachten) CPU-Lastabsenkung auf Hyper-V-Hosts und der dank direkter Kommunikationswege reduzierten Latenz.
Ein Einsatz von SR-IOV in Hyper-V ist an die folgenden Voraussetzungen gebunden:
- SR-IOV-Funktionalität ist gegenwärtig nur auf Windows 8- und Windows Server 2012-Gastsystemen verfügbar.
- Hyper-V muss auf einem Windows Server 2012 (oder neuer) ausgeführt werden.
- Sie benötigen einen SR-IOV-kompatiblen physischen Netzwerkadapter mit PF-Unterstützung, der VF-Anfragen der VMs umsetzen kann.
- Sie benötigen einen externen virtuellen Switch, der SR-IOV-Traffic beherrscht.
- Auch der Chipsatz der Hauptplatine Ihres Servers muss SR-IOV unterstützen.
Die Aktivierung von SR-IOV geschieht in zwei Schritten: Zunächst müssen Sie sicherstellen, dass Ihr externer virtueller Netzwerk-Switch, der einem physischen Netzwerkadapter zugeordnet ist, den SR-IOV-Traffic versteht. Dafür aktivieren Sie das entsprechende Häkchen im Manager für virtuelle Switches des Hyper-V-Managers.
Sobald SR-IOV auf dem externen virtuellen Switch aktiviert ist, können Sie SR-IOV auf den unterstützten Gastsystemen aktivieren, indem Sie das Häkchen bei SR-IOV aktivieren setzen, das Sie in den Einstellungen Ihrer VM unter Hardwarebeschleunigung finden.
Übrigens wird SR-IOV nicht nur von Microsoft Hyper-V unterstützt, sondern auch von VMware vSphere. Während Microsoft Hyper-V SR-IOV ausschließlich für Windows-VMs unterstützt, bietet VMware vSphere SR-IOV-Unterstützung sowohl für Windows- als auch für Linux-Gastsysteme. Erwähnenswert ist hierzu auch, dass eine SR-IOV-aktivierte VM Teil einer Hyper-V-Livemigration sein kann, während SR-IOV-aktivierten VMs unter VMware vSphere verschiedene Möglichkeiten nicht zur Verfügung stehen, darunter vMotion.
Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!