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:

imageFü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:

image

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