Servicepack 1 von Windows 2008 R2 bringt Dynamic Memory
Seit dem 9. Februar 2011 ist die RTM-Version (Release to Manufacture)
des Servicepack 1 für Windows Server 2008 Release 2 (R2) und für Windows
7 fertig. Wer eine Windows-Volumenlizenz benutzt oder eine MSDN-
beziehungsweise Technet-Lizenz besitzt, kann ab dem 16. Februar auf
diese Aktualisierung zugreifen. Für alle anderen Anwender soll es ab dem
22. Februar über die üblichen Update-Mechanismen zur Verfügung stehen.
Alle neuen Betriebssystemversionen werden ab diesem Zeitpunkt
einschließlich des Servicepack 1 ausgeliefert werden.
Mit diesem
Servicepack 1 für den Windows Server 2008 R2 und den zugehörigen
alleinstehenden Hyper-V Server 2008 R2 kommt die dynamische Zuteilung
von physischen Speicher für virtuellen Maschinen (VMs) ins Spiel: das
Dynamic Memory.
Die Funktionalität des »Dynamic Memory« erlaubt es der Virtualisierungs-Plattform, die Umkonfiguration der einzelnen virtuellen Maschinen (VMs) in Bezug auf die Kapazität des Arbeitsspeichers im laufenden Betrieb vorzunehmen. Damit ist eine flexible Reaktion auf geänderte Arbeitslasten für einzelne VMs machbar. Die Gastbetriebssysteme müssen dazu allerdings über einen entsprechend »enlightened Kernel« verfügen. Aber Vorsicht: Ist eine VM erst einmal für den Einsatz von Dynamic Memory konfiguriert, dann wird diese VM nicht mehr auf Hosts mit früheren Versionen (also vor dem Servicepack 1) eingesetzt werden können.
Dazu sollte aber auch gleich eine Vorbemerkung das Potenzial zurecht rücken: Nur wer in seinen Servern genügend Arbeitsspeicher installiert hat, der kann von dieser Funktion auch entsprechend profitieren. Kommt dagegen nur die Minimalausstattung an DRAM im System zum Einsatz – dann ist das eine gute Argumentation, in eine Speicherweiterung für seine Server zu investieren.
Statische Zuweisung ergänzt
Die bisher im Einsatz befindlichen Versionen des Hyper-V arbeiten mit einer statischen Zuweisung von Arbeitsspeicher für virtuelle Maschinen (VMs). Üblicherweise wird beim Erstellen einer VM eine bestimmte Arbeitsspeicherkapazität aus dem kompletten physischen Arbeitsspeichers des realen Servers für diese VM reserviert. Dieser Betrag ändert sich während der Ausführung der VM nicht. Er lässt sich nur modifizieren, wenn die VM heruntergefahren wird.
Dazu steht zum Beispiel eine grafische Schnittstelle mit dem Hyper-V-Manager zur Verfügung. Unter den Einstellungen für jede VM lassen sich hier passende Werte vorgeben. Wenn sich in der Praxis allerdings erweist – und das passiert auch bei einer ausgiebigen Testphase und somit vor dem Einsatz in der Produktivumgebung – dann muss man die VM herunterfahren. Damit wird der Service beziehungsweise die Applikation in der VM für diesen Zeitpunkt nicht verfügbar sein. Doch diese Downtime möchte eine IT-Abteilung möglichst vermeiden.
Ein weiterer Aspekt betrifft die »Parent Partition« (sie ist auch nur eine VM) auf dem Hyper-V. Sie ist für einige Aufgaben – speziell im Ein-Ausgabebereich zuständig. Wenn auch sie mit einem dynamischen Arbeitsspeicherkonzept arbeitet, lassen sich Konfigurationen vermeiden, in denen dieser Partition zu viel DRAM zur Verfügung steht, wobei die anderen VMs darben müssen. In letzter Konsequenz werden bei der dynamischen Arbeitsspeicher-Zuteilung der vorhandenen physischen Ressourcen der Maschine effektiver ausgenutzt.
Konsolidierungsraten bei VDI-Architekturen steigen
Damit lassen sich dann auch höhere Konsolidierungsraten beim Zusammenlegen der VMs auf einem System erreichen. Vor allem beim Aufbau einer VDI (Virtual Desktop Infrastructure), wenn die einzelnen Desktops in Form einer VM auf einem zentralen Server laufen, sollten sich einige Optimierungspotenziale realisieren lassen.
Der Einsatz von Dynamic Memory verfolgt ein einfaches Muster: Die Zuteilung des physischen Speichers für einzelne VMs erfolgt je nachdem, welche Arbeitslast von der VM bearbeitet werden muss und wie viel freier Arbeitsspeicher zur Verfügung steht. Dazu muss der Administrator nicht länger einen festen Arbeitsspeicherbereich zuweisen. Er gibt dafür einen Speicherbereich (mit minimalen und maximalen Wert), und vor allem eine »Speicherpriorisierung« für die VM an. Damit lassen sich verschiedene Prioritäten bei der dynamischen Speicherzuweisung an einzelne VMs erzielen – je nachdem, welche VM eine wichtigere Applikation oder einen wichtigeren Dienst anbietet.
Der Hyper-V und das »enlightened« Gastbetriebssystem in einer laufenden VM kommunizieren miteinander und bestimmen dabei den aktuellen Arbeitsspeicherbedarf der VM. Steigt die Auslastung in einer VM an und wird daher mehr DRAM-Kapazität notwendig, um die notwendige Applikations-Performance bereit zu stellen, bekommt diese VM automatisch mehr Kapazität zugeteilt. Verringert sich dagegen die Last in der VM, oder aber andere VMs auf dem Host mit einer höheren Speicherpriorität fragen nach mehr DRAM nach, dann wird automatisch aus der VM Speicherbereich abgezogen.
Dieses Hinzufügen oder Entnehmen von Speicher ist die Aufgabe der Treiberarchitektur, die aus »VSP« (Virtual Service Provider), »VSC« (Virtual Service Consumer) und »VMBus« (Virtual Machine Bus) besteht und letztendlich für ein »enlightened« Gastbetriebssystem sorgt. Auf der Seite des Hosts kümmert sich der VSP um die Zuteilung des physischen Speichers zwischen den VMs, die auf diesem Host laufen. Auf der Seite der VMs sammelt der VSC die notwendigen Informationen ein, und bestimmt damit die Speicheranforderungen einer virtuellen Maschine. Danach stößt der VSC die notwendigen Operationen an, um Speicherbereiche hinzufügen oder sie zu entfernen.
Kompliziert wird beim Dynamic Memory das Entnehmen von Speicherbereichen aus einer VM. Dazu hat Microsoft das »Ballooning« eingeführt. Dieser Prozess basiert auf einer Vereinbarung zwischen der betreffenden VM und dem Host-System. Sie müssen genau definieren, dass bestimmte Speicherseiten nicht länger vom Gastbetriebssystem in Anspruch genommen werden dürfen. Damit wird effektiv der für das Gastbetriebssystem verfügbare Speicherbereich reduziert.
Die Arbeitsweise des Dynamic Memory im Detail zeigt der Beitrag auf dem Fachportal NT4ADMINS.