Firmenbrief

24.08.2010

CoreBiz Virtual Server Base: Optimale Speicherauslastung mit KSM


 

Der CoreBiz Virtual Server Base erlaubt es, eine große Zahl von virtuellen Gästen gleichzeitig auf einem leistungsfähigen Host zu betreiben. Durch eine Funktionalität der aktuellen Linux-Kernel-Versionen können wir jetzt noch effizienter mit dem Arbeitsspeicher der Hosts umgehen. Mittels Kernel Samepage Merging - kurz: KSM - werden identische Speicherbereiche der Gäste identifiziert und im Virtual Memory des Hosts so zusammengelegt, dass die redundanten Speicherbereiche freigegeben werden.

Das Prinzip ist nicht neu: In Shared Libraries werden große Teile der Laufzeitumgebung der Programme sowie beim Copy-On-Write Speicherbereiche gemeinsam benutzt. Hier werden nur dann neue Speicherblöcke alloziert, wenn eines der beteiligten Programme schreibend darauf zugreift. Für virtualisierte Gäste kann man mit den bisher existierenden Methoden Arbeitsspeicher nicht gemeinsam nutzen. Allerdings gibt es in der Praxis viele Anwendungsfälle, in denen eine Vielzahl sehr gleichartiger Gäste auf einem Host laufen.

Mit KSM ist es nun möglich, die Speicherauslastung in diesen Fällen zu optimieren. Indem der Gast beim Starten dem Host mitteilt, dass er am KSM interessiert ist, beginnt der Host des Virtual Server Base (VSB) den Speicher dieser Instanz mit dem der übrigen Gäste zu vergleichen, die an diesem Verfahren teilnehmen. Wenn anhand einer Hash-Tabelle mit Prüfsummen aller in Frage kommenden Speicherseiten identische Bereiche gefunden wurden, legt der VSB Host diese Seiten im Speichermanagement zusammen. Auf diese Weise werden Duplikate von bereits existierenden Speicherseiten freigegeben und stehen für andere Aufgaben zur Verfügung.

Erst wenn eines der beteiligten Programme eine solche Seite verändert, wird in dem bekannten Copy-On-Write-Verfahren neuer Speicher belegt. In einem Szenario, in dem beispielsweise viele Webserver mit der gleichen Distribution und dem gleichen Kernel betrieben werden, lässt sich der Speicherbedarf für die virtuellen Instanzen leicht halbieren.

Die unvermeidlichen Kosten für diese interessante Funktionalität müssen durch eine höhere CPU-Last im VSB-Host bezahlt werden. Für die zyklisch durchgeführte Berechnung der Prüfsummen aller beteiligten Speicherseiten muss die Leistung einer CPU veranschlagt werden.