Ich betreibe seit langer Zeit zwei VMware Server 2.0, auf denen ein Server und einige Desktops laufen. Als Betriebssystem kommt CentOS 5.3 zum Einsatz und die VMs werden teilweise lokal und teilweise mit DRBD gespiegelt vorgehalten. Es gab und es gibt jedoch einige grundsätzliche Probleme: Als erstes musste ich das Betriebssystem und die VM's tunen, um eine einigermaßen befriedigende Disk-I/O-Performance zu bekommen. Die Benutzer der virtuellen Desktops klagen seit einiger Zeit aber wieder über Performanceprobleme, d. h. die Applikationen reagieren träge und verzögert. Als weiteres Problem kommt hinzu, dass der VMware Server nicht mehr aktiv weiterentwickelt zu werden scheint und ich darum CentOS nicht upgraden kann, da VMware Server mit der aktualisierten glibc nicht kompatibel ist und daher reproduzierbar abstürzt.
Jetzt muss ich mir die Frage stellen, wie es weitergehen soll. Da VMware Server keine Zukunft hat, sehe ich im Wesentlichen zwei Alternativen: ESXi oder LINUX/KVM.
ESXi ist eine weit verbreitete Technologie, mit der ich mich sehr gut auskenne. Möchte man jedoch die wirklich interessanten Enterprise-Features nutzen, kommen nennenswerte Lizenzkosten (für den vCenter-Server) auf einen zu. Darüber hinaus wird ein zentrales Storagesystem notwendig, z. B. eine iSCSI/NFS-Box. Aktuell spiegele ich ja die kritischen Daten mit DRBD synchron zwischen beiden Servern. Diese Funktion bietet mir aber weder der ESX-Server, noch die handelsüblichen NAS-Boxen.
KVM unter LINUX ist sicherlich eine zuverlässige Lösung und mit LINUX habe ich mehr als 15 Jahre Erfahrung. Mit DRBD und lokalen Platten lässt sich leicht eine beruhigende Redundanz der Daten sicherstellen. Doch beim Management der Virtualisierungsinfrastruktur klemmt es nach wie vor. VirtManager und ähnliche Tools zielen primär auf die Verwaltung einzelner Virtualisierungsserver, die umfassenden Möglichkeiten eines vCenters bieten sie nicht.
Hier kommen sogenannte "Cloud-Frameworks" ins Spiel, die Virtualisierungsfarmen verwalten und automatisieren können:
- Eucalyptus: Freie Software, die die Amazon-Cloud-API nachbildet. Die Storageserver bilden jedoch einen Single Point of Failure und Datenreplaktion scheint aktuell nicht vorgesehen zu sein.
- Ganeti: Ein von Google gehostetes Projekt, dass u. a. auch eine Datenreplikation mit DRBD vorsieht. In wie weit Windows-Gäste unterstüzt werden und wie der Im-/Export von bestehenden VMs möglich ist, habe ich leider noch nicht verstanden.
- xCAT, Proxmox, OpenQRM, ...
Welche dieser Frameworks sich durchsetzen werden und eine langfristige Perspektive bieten vermag ich momentan nicht beurteilen. Was also tun? Dem proprietären Pfad von VMware folgen oder auf offene Technolgien setzen, die jedoch vielleicht noch nicht ganz marktreif sind? Diese Entscheidung werde ich wohl vertagen und erst mal versuchen, die dringlichsten Probleme, also die mangelnde Performance der virtuellen Desktops, zu lösen. Meine Idee ist, einen Laptop mit Intel Core i7, einer SSD, einem aktuellen Ubuntu und VMware Workstation zu nehmen und darauf mal auszuloten, welche Performance so für die Benutzer der virtuellen Desktops erreicht werden kann. Mit der SSD kann ich Engpässen beim Disk-I/O ausschließen und echte 4 CPU-Cores mit 8 GB RAM sollten genug Leistung bringen, um zwei Windows XP-Instanzen zu betreiben.