In letzter Zeit wird mir immer wieder vorgetragen wie toll doch Virtualisierung ist. Kostenersparnisse, einfache Backups, und obendrein gibt’s Hochverfügbarkeit. Nun wer die aktuellen Lizenzpreise des Marktführers VMWare kennt weiß, dass man zum Kosten sparen leider immer tiefer in die Tasche greifen muss – auch das Backup-Argument ist durch die Macken von VCB mit einem unübersehbaren Sternchen zu lesen. Was mich aber am meisten auf die Palme bringt ist die Annahme, das Virtualisierung eine nahezu unfehlbare Hochverfügbarkeit biete. Ja, die meisten Virtualisierungssysteme können per shared Storage oder Storage Replication VMs bei Ausfall eines Hosts oder Wartungsarbeiten auf einem anderen Hypervisor starten und so die Verfügbarkeit erhöhen – das deckt aber nur einen einzigen Bereich ab: Hardwarefehler. Schaut man sich aktuelle Server mit ECC, redundanten Komponenten und RAID an sollte klar sein, dass diese Problematik bereits seit langem bekannt ist und die Hersteller an der Verfügbarkeit gearbeitet haben. Die letzten größeren Ausfälle, welche ich bei mir verzeichnen konnte, waren mit einer einzigen Ausnahme Softwarefehler – solche, die Virtualisierung nicht abdecken. Wenn das Windows in einen Bluescreen rennt, die Datenbank entscheidet sämtliche Tabellen zu löschen oder ein Update bei der Entfernung der Sicherheitsdateien etwas zu gründlich ist muss man weiterhin auf Backups zurückgreifen und mit Ausfallzeiten rechnen. Man könnte jetzt mit Snapshots argumentieren, aber meist sind nur einzelne Softwarekomponenten betroffen und ein Rollback des gesamten Servers unerwünscht. Selbst den erwähnten Hardwarefehler hätten viele Virtualisierungsumgebungen nicht abgefangen: Ein amoklaufender RAID-Controller, welcher frisch eingesetzte, leere Platten eines RAID1 auf die Vollen spiegelt, kann auch in einer SAN/NAS auftreten, welche als VM-Speicher dient. Also: Virtualisierung kann Sinn machen um Ressourcen besser zu nutzen oder die Verwaltung zu vereinfachen, aber wenn es um Verfügbarkeit geht kann es bestenfalls eine kleine Komponente darstellen. In diesen Fällen würde ich weiter auf Clustering – vorzugsweise mit integrierter Möglichkeit auf vorherige Zustände zurückzukehren – setzen und entsprechende Watchdogs oder Monitoringsysteme bereithalten. Die Hersteller von Virtualisierungssoftware arbeiten zwar daran ähnliche Funktionen in ihre Produkte zu integrieren, vom Funktionsumfang der „abgehangenen“ Lösungen sind sie jedoch noch weit entfernt.