Dynamische Speicherverwaltung mit Memory Overcommit Microsoft Hyper-V für Windows Server 2008 R2 – Das neue Service Pack zur TechEd 2010

Autor / Redakteur: Frank Castro Lieberwirth / Ulrich Roderer

Windows Server 2008 R2 Service Pack 1 bringt für seinen Hypervisor Hyper-V endlich dringend notwendige Verbesserungen im Speichermanagement.

Firmen zum Thema

Server-Virtualisierung mit Microsoft Hyper-V.
Server-Virtualisierung mit Microsoft Hyper-V.
( Archiv: Vogel Business Media )

Auf einen Punkt gebracht – Microsoft bietet nun auch ein dynamisches Speichermanagement für seine Virtualisierungsprodukte an. Bisher war es nur möglich Arbeitsspeicher mit einer statischen Größe anzugeben. Das, was VMware „Provisionierung“ nennt, heißt bei Microsoft „Memory Overcommit“, wobei beide Begriffe keinen Technologienamen repräsentieren. Gemeint ist die Möglichkeit Arbeitsspeicher (RAM) mit einer unteren und einer oberen Grenze so zu dimensionieren, dass bei geringerer Auslastung des Gastbetriebssystems Speicher frei gegeben wird.

Anders herum formuliert, könnte man es auch mit einer theoretischen Überbelegung beschreiben, in der Annahme, dass keins der Gastbetriebssysteme auch wirklich die volle Speicherkapazität benötigt.

Bildergalerie
Bildergalerie mit 9 Bildern

Speicherverwaltung durch Hyper-V

Microsoft löst das Provisionieren mit einer dynamischen Arbeitsspeicherverwaltung (Dynamic Memory), was heißt, dass sich Host- und Gastbetriebssysteme laufend abstimmen müssen. Ziel ist es ja, freie Speicherseiten im Gast dem Host wieder zur Verfügung zu stellen (siehe Abbildungen).

Technologien zur Speicherverwaltung sind:

  • Page Sharing
  • Second Level Paging
  • Dynamic Memory Balancing (Ballooning)

Page Sharing sucht Gemeinsamkeiten im Speicher, indem der Hash aller RAM Seiten gesammelt in einer Tabelle gespeichert und anschießend verglichen wird. Soweit in der Kürze. Was gut klingt ist aber leider nicht dynamisch, dauert lange und funktioniert am besten bei den „Zero Pages“. Aktuelle Microsoft Betriebssysteme beschreiben nach einem Zufallsprinzip Speicherseiten (DLLs und EXE-Dateien), um potenziellen Angreifern keine feste Speicheradresse zu präsentieren. Page Sharing wäre hier kontraproduktiv.

Neue Windows Versionen haben aber noch eine andere – für die Virtualisierung schlechte – Eigenschaft: Sie allokieren freien Arbeitspeicher um die Performance zu erhöhen. Dieses Verfahren nennt Microsof SuperFetch. Würde man SuperFetch einschränken, könnte man Speicher ohne Funktionseinbußen einsparen.

Eine weitere Möglichkeit Speicher freizugeben, ist das Second Level Paging. Hier wird die Festplatte als Arbeitsspeicher verwendet, indem nicht verwendete Speicherseiten ausgelagert werden. Wegen der erheblichen Geschwindigkeitseinbuße kann Second Level Paging aber nur als „Notlösung“ für fehlenden Arbeitsspeicher angesehen werden.

Dynamic Memory

Zum Verständnis der Technik muss man sich das Speichmodell von Hyper-V 2008R2 SP1 vornehmen. Die VSC Komponente (Virtualization Service Client) sendet via VMBus Speicheranforderungen vom Gast- zum Host-Betriebssystem in der Root-Partition. Dort verwaltet der „Memory Balancer“ Speicheranforderungen des gesamten Systems. Der Memory Balancer befindet sich nicht mit Root-Kernel, sondern im Benutzermodus der Root-Partition.

Die weitaus interessantere Aufgabe führt der VSC aus, der als synthetischer Treiber den Gastbetriebssystemen Speicher erteilt oder entzieht. Das kann nur durch eine Kernelintegration im Gast funktionieren. Bestückt man eine virtuelle Maschine, die ansonsten mindestens 4 GByte RAM benötigt, mit nur 1 GByte RAM, schaltet das Gastbetriebssystem in einem nativen Modus, um Speicher zu sparen. Das funktioniert sogar so gut, dass sogar mehr als 20 Prozent Speicher noch frei bleibt. Fehlt gar Speicher, wird eine Art virtuelle Festplatte (RAM-Disk) verwendet und das „Ballooning“ kommt zum Einsatz. Der „Ballon“ bläst sich je nach fehlendem Speicher bzw. Speicherbedarf auf und hilft bei Engpässen.

Damit die Performance unter dem Sparwahn nicht leidet, kann und muss ein gewisser Overhead benannt werden. Daher kann im Hyper-V-Manager ein Puffer (Buffer) prozentual für Caching-Zwecke eingestellt werden. Voreingestellt sind 20 Prozent. Wird der Schieberegler ganz nach rechts bewegt, wird die maximale Speicherangabe ausgenutzt. Selbstverständlich erkennt der Client den Speicher so, als wäre es ein „echter“ physikalisch eingebauter.

weiter mit „Gast-Betriebssysteme, die dynamische Speicherverwaltung unterstützen“

Artikelfiles und Artikellinks

(ID:2047921)