Neu in Hyper-V v2: Virtual Machine Queue (VMQ)
Technorati Tags: Microsoft
In Hyper-V v2 ist eine neue Funktion enthalten, die die Skalierbarkeit von Hosts und die Geschwindigkeit von VMs nochmals signifikant verbessert. Bei der Anbindung von Speicherplatz (SAN, iSCSI, …) sind wir ja bereits in der aktuellen Version von Hyper-V in der Lage, 100% der Geschwindigkeit des Storage Controllers an VMs durchzureichen. Bei Netzwerkkarten ist dies noch nicht der Fall. Zwar sind insbesondere die in Hyper-V v1 eingeführten synthetischen Geräte äußerst effizient, es gibt jedoch noch einen Bereich, der bei einer sehr großen Anzahl von Gastsystemen den möglichen Durchsatz begrenzen kann.
In Hyper-V v1 sieht der Pfad für Netzwerk-Pakete so aus:
Für die synthetischen Geräte installieren die VMs einen speziellen, hocheffizienten Treiber. Die Pfade aller VMs treffen jedoch im Host (= Parent Partition) zusammen, wo für den jeweiligen virtuellen Switch das Routing durchgeführt wird. Das bedeutet: Pakete, die von der physikalischen Netzwerkkarte kommen, werden zunächst in einen eigenen RAM-Bereich kopiert, der dem virtuellen Switch zugeordnet ist, von dort müssen sie dann in einem separaten Schritt in den RAM-Bereich kopiert werden, der der virtuellen NIC ‘gehört’. Gleiches gilt für den Rückweg (VM –> Netzwerk). Dieser zusätzliche Kopiervorgang belastet natürlich die CPU und braucht Zeit. Bei sehr vielen VMs, die gleichzeitig einen hohen Durchsatz benötigen, ist somit potentiell ein Flaschenhals gegeben.
In Hyper-V v2 wird dieses Problem vermieden, indem mit ‘’Shared Memory’ gearbeitet wird. Der Host ist in der Lage, Pakete von der physikalischen Netzwerkkarte direkt in den RAM-Bereich der virtuellen NIC zu kopieren. Dies wird möglich im Zusammenspiel von Hyper-V v2 und Netzwerkkarten, die Hardware-seitig die Virtual Machine Queue (VMQ) unterstützen. Dabei werden bereits auf der Netzwerkkarte bzw. im NIC-Treiber Queues für die Gastsysteme eingerichtet. Das Routing sieht dann wie folgt aus:
Voraussetzung für die Nutzung von Virtual Machine Queue (VMQ) ist also:
- Hyper-V v2
- Gastsystem (VM) mit installierten Integration Components (=VMBus-Treiber)
- Netzwerkkarte mit Unterstützung von Virtual Machine Queue
Mit freundlichen Grüßen
Ralf M. Schnell
Comments
- Anonymous
January 01, 2003
The comment has been removed - Anonymous
March 16, 2009
How do you configure VMDq support for VMs on Hyper-v v2? I have a vmdq enabled NIC (Intel VT Quad Port) and Hyper-v V2 beta. I dont see any configurable option in the VM settings for VMDq. Any help is appreciated