HPC Hessen Logo

Management virtueller Maschinen in Linux High Performance Clustern

Traditionelle Linux High Performance Cluster (HPC) wie der Marburger Rechen-Cluster (MaRC2) basieren auf einem Verbund von physischen Rechenknoten, die zentral mit Hilfe eines Batch-Systems (in MaRC2: Sun Grid Engine) administriert werden. Neue Programme stellen den Administrator vor die Herausforderung, eine geeignete Umgebung bereit zu stellen. Diese haben oft neue Sprachen und eine Vielzahl von Bibliotheken, so dass eine unkomplizierte Installation einer Laufzeitumgebung unter Umständen erschwert oder gar nicht zur leisten ist. Unterschiedliche Laufzeitumgebungen beschränken zudem die Portierung von Software auf andere HPC-Cluster. Ziel des Projekts ist der Einsatz von Virtualisierungstechnologie im HPC-Umfeld, d.h. die Entwicklung einer Infrastruktur, die einen Mischbetrieb zwischen virtualisierten und nicht virtualisierten Jobs ermöglicht. Virtualisierter Job bedeutet, dass der Job innerhalb einer virtuellen Maschine (VM) ausgeführt wird. Diese bietet den Vorteil, dass der Anwender selbstständig eine Laufzeitumgebung für seine Programme einrichten kann, was den Administrator entlastet. Eine Alternative sind vorgefertigte VMs. Damit werden Auswirkungen auf das Gesamtsystem durch vom Anwender installierte Software vermieden. Zudem ist eine feingranulare Beschränkung der Ressourcen für jede VM möglich. Schließlich lösen VMs das Problem der Portierung von Software. Zwei Konzepte zum Management von VMs wurden entwickelt: eine direkte Kopplung an den Cluster-Scheduler und die Bereitstellung eines „virtuellen Clusters“. Bei einer direkten Kopplung werden für jeden Job dediziert VMs erzeugt und zur Ausführung verwendet. Das zweite Konzept partitioniert das System in einen virtuellen und einen nicht virtuellen Teil und verwendet virtuelle Rechenknoten, die sich ganz regulär als Rechenknoten am Cluster-Scheduler anmelden. In beiden Fällen ist die Virtualisierung für den Scheduler transparent, es sind jedoch beim zweiten Konzept Veränderungen der Partitionierung sichtbar. Für das erste Konzept spricht die höhere Flexibilität ohne vorgegebene Partitionierung und die Möglichkeit des Einsatzes Job-spezifischer VMs. Die dynamische Anpassung der Konfiguration einer VM bezüglich des Netzwerks und des verwendeten Scheduler-Clients basiert auf einem System zur Komposition von VMs aus verschiedenen Schichten. [1] Eine Folge benutzerspezifischer VMs ist, dass eine gro- ße Zahl von VMs vorgehalten werden muss. Klassische Disk Images sind als Speicherformat für VMs nicht geeignet. Zur Lösung dieses Problems wurde der Marvin Image Store[2]  entwickelt, der neben der effizienten Speicherung von VMs mittels Deduplizierung die Historie der einzelnen VMs verwaltet. Zwei Lösungen zur Sicherheit von VMs wurden entwickelt: Der Update Checker[3,4] prüft, ob für eine VM Sicherheits-Updates verfügbar sind, sogar wenn sie zum Zeitpunkt der Überprüfung nicht ausgeführt wird. Die Online Penetration Suite[4] prüft die Sicherheit der Konfiguration mittels Vulnerability Scanner. Dessen Ergebnisse können verwendet werden, um den Start einer veralteten bzw. unsicheren VM zu verhindern. Abschließend wurde eine Evaluation verschiedener Hypervisors (Xen, KVM, Vmware vSphere/Workstation, Oracle VM Server/VM Virtual Box) zum geplanten Einsatzzweck durchgeführt: KVM ist die passendste Lösung. Durchgeführte Messungen zeigten die grundsätzliche Eignung von VMs im HPC-Umfeld, wobei der durch die Virtualisierung erzeugte Overhead in bestimmten Konfigurationen noch optimiert werden kann.

Literatur:

1. R. Schwarzkopf, M. Schmidt, N. Fallenbeck und B. Freisleben (2009), Multi-Layered Virtual Machines for Security Updates in

Grid Environments. Proc. 35th Euromicro Conf. on Internet Technologies, Quality of Service and Applications, 563–570, IEEE.

2. R. Schwarzkopf, M. Schmidt, M. Rüdiger und B. Freisleben (2012), Efficient Storage of Virtual Machine Images. Proc. 3rd

Workshop on Scientific Cloud Computing at ACM HPDC, 51-60, ACM.

3. R. Schwarzkopf, M. Schmidt, C. Strack und B. Freisleben (2011), Checking Running and Dormant Virtual Machines for the

Necessity of Security Updates in Cloud Environments. Proc. 3rd IEEE Int. Conf. on Cloud Computing Technology and Science,

239-246, IEEE.

4. R. Schwarzkopf, M. Schmidt, C. Strack, S. Martin und B. Freisleben (2012). Increasing Virtual Machine Security in Cloud

Environments. Journal of Cloud Computing: Advances, Systems and Applications, 1:12, Springer.