Philosys bietet individuelle Dienstleistungen in den Bereichen Unix/Linux System- und Netzwerksoftware, technische und Echtzeit-Applikationen sowie Embedded Linux.

19. Februar 2009 — Emil Näpflein
Server Konsolidierung und automatische Installation mit VMware ESX
1. Einführung
Die mittlerweile sehr ausgereifte Technologie der Virtualisierung von Computersystemen führt zu einer immer breiteren Anwendung im Serverumfeld. Hier geht es darum teure Hardwareresourcen möglichst effizient zu nutzen und gleichzeitig auch die Verfügbarkeit durch Virtualisierungstechniken zu erhöhen. Dabei werden Serverdienste, die bisher jeweils auf eigenständiger Hardware abliefen, auf einer leistungsfähigen Serverhardware unter einer Virtualisierungsprodukt, wie z.B. VMware ESX zur Ausführung gebracht. Die dann genutzte virtuelle Hardware bietet alle Funktionen der realen Hardware und teilweise noch mehr. Dieses Thema wird unter dem Begriff "Server Konsolidierung" zusammengefasst.
2. Ausgangssituation
Ein Kunde von Philosys hatte Komponenten verschiedenster Teilfunktionen (Administration, Sicherheitsgateway, Backup, Applikation) eines Applikationsservers auf mehreren Teilsystemen ablaufen. Diese Teilsysteme bilden jeweils ein hochverfügbares Cluster und sind deshalb mehrfach vorhanden und sind auch redundant vernetzt.
3. Aufgabenstellung
Es soll nicht nur der Hardwareaufwand reduziert werden, sondern auch eine klare Trennung der Kontrollfunktionen und der Applikationsfunktionen erfolgen. Dies soll es erlauben dass das Kontrollsystem und das Applikationssystem unabhängig voneinander administriert werden können. Deshalb sollen alle administrativen Funktionen auf einem Kontrollsystem und die Applikationen auf einem anderen Server laufen. Zum derzeitigen Zeitpunkt muss beides aus Performancegründen noch auf getrennten Hardwaresystemen laufen. Prinzipiell ist aber auch eine Konsolidierung auf einer leistungsfähigeren Hardwareplattform möglich. Das Kontrollsystem als auch das Applikationssystem sollen weiter hochverfügbar sein.
4. Konsolidierung
Zum Einsatz kam VMware ESX. VMware ESX ist ein sehr leistungsfähiges Virtualisierungsprodukt mit einer breiten Unterstützung von Serverhardware. In einem ersten Schritt wurde die Virtualisierung nur mit der Grundfunktionalität realisiert um nahe an der ursprünglichen Funktionalität zu bleiben. Auf die Nutzung solcher Features wie VMotion und Consolidated Backup wurde verzichtet.
Auf der Hardware der beiden im Cluster vorhandenen Kontrollsysteme wurde VMware ESX 3.5 installiert. Die Installation läuft bis auf wenige Eingaben automatisch ab. Wichtig sind die Einstellungen zu Festplattenspeicher und zum zu verwendenden Netzwerkkontroller. Nach Abschluss der Installation und dem Reboot kann man über dien VMware Infrastructure-Client ESX administrieren.
Zuerst muss für die späteren virtuellen Maschinen die Netzwerkinfrastruktur aufgebaut werden. Dazu wurden mehrere virtuelle Netzwerkswitches konfiguriert um den Netzwerkverkehr sauber zu trennen und auch die Clusterfunktionalität zu gewährleisten.
Als nächstes wurde eine Security Appliance installiert die den Netzwerkverkehr nach außen regelt. Auch hier lief die Installation bis auf wenige Eingaben erst mal automatisch ab. Die manuelle Konfiguration der Appliance selbst ist jedoch aufwändig und wird deshalb nur einmal gemacht und für weitere Installationen als fertiges Profil geladen.
Die Kontrolle des ganzen Clusters übernimmt der virtuelle Kontrollknoten der unter Linux läuft. Der hat auch vorher schon existiert und es war deshalb ein automatisches Installationsverfahren von einem Installationsserver vorhanden. Damit dieses Verfahren auch für den virtuellen Kontrollknoten genutzt werden konnte, musste das Installationsverfahren modifiziert werden. Insbesondere sollte es unabhängig davon auf welchem Kontrollknoten im Cluster installiert wurde, auch unabhängig davon welche Netzwerkadressen relevant waren, automatisch installiert werden. Dies wurde dadurch erreicht dass ein einheitliches Nummernschema für die IP-Adressen verwendet, und daraus jeweils die richtigen IP-Adressen für die jeweiligen virtuellen Systeme während der Installation generiert wurden. Die generierten Adressen wurden dann auch dazu verwendet alle relevanten Stellen im Linux zu modifizieren. Es ist also egal auf welchem System Hostsystem die Installation des virtuellen Kontrollknotens gestartet wurde, das Ergebnis war immer ein komplett richtig konfiguriertes System.
5. Automatische Installation
Wie man oben sehen kann ist der gesamte Prozess der Installation für einen kompletten Applikationsserver sehr aufwändig. Man muss ESX, Security Appliance, Kontrollknoten und den eigentlichen Applikationsknoten im Cluster zweimal installieren. Manuell ist das sehr zeitaufwändig und fehleranfällig. Deshalb wurde ein Verfahren entwickelt eine Grundkonfiguration von einem ISO-Image weitgehend automatisch zu installieren.
Das ISO-Image enthält ein System das nach dem Boot automatisch ermittelt worauf es abläuft:
Wenn VMware ESX auf einem bereits installierten System nochmal installiert wird, dann kann man auswählen ob der vorhandene Storage erhalten bleiben soll. So sind nach dem Reboot von VMware ESX sofort beide virtuellen Maschinen wieder online. Gerade die eingebaute Flexibilität ist nicht nur im Feld vorteilhaft, sondern auch während der Entwicklung der einzelnen Komponenten. Der Turn-Around ist wesentlich kürzer und damit der Entwicklungsfortschritt schneller.
6. Fazit
Eine Server Konsolidierung ist heute mit VMware ESX einfach möglich. Dabei kann nicht nur die Hardware reduziert werden, es können über Appliances bestimmte Funktionen auch sauber getrennt werden, so dass eine unabhängige Administration möglich ist. Auch lässt sich durch geeignete automatische Installationsverfahren der Aufwand zur Installation und Konfiguration beträchtlich reduzieren.
Philosys Software GmbH hat in diesem Projekt langjähriges Know-How aus den verschiedenen Bereichen (Linux Installation und System, VMware Installation und System) genutzt um zusammen mit dem Kunden eine effiziente Lösung für das Deployment kompletter hochverfügbarer Applikationsserver zu entwickeln.