Gestern war es mal wieder so weit: Durch Storage VMotion wollte ich alte SAN Disks leeren. Daei blieb auf einer SAN-Disk Dateien einer VM zurück, die eindeutig schon verschoben war. In der Annahme, dass es sich dabei um Altlasten handelte, löschte ich diese spontan. Leider handelte es sich dabei um einen Clone der anderen Machine, die im Dateisystem leider den gleichen Namen behalten hat.
Die meisten Dateien waren gesperrt und konnten zum Glück nicht gelöscht werden. Was aber erst später auffiel: Es wurde erfolgreich die Description Datei der Platten gelöscht:
Nebenbei: Die virtuelle Disk bei VMWare besteht bei Standarddisks (also ohne Snapshot, keine RAW Files) aus zwei Dateien: eine Beschreibungsdatei mit Namen diskname.vmdk und den eigentlichen Daten in diskname-flat.vmdk. Die Beschreibungsdatei ist eine reine Textdatei mit Unix Zeilenumbrüchen (natürlich).
Solange die Maschine auf einem Host läuft, ist es noch kein Problem und fällt leider nicht auf, wenn die erste Datei fehlt. Sobald aber ein vMotion auf einen anderen Host stattfindet, dann tritt ein Fehler auf, die VM stürzt ab und kann nicht mehr gestartet werden. Im Storage Browser erkennt man den Fehler daran, dass bei derVMDK Datei kein passendes Icon davor steht bzw. nur die Datei mit -flat.vmdk zu sehen ist.
Noch kein Grund zur Panik: Zuerst: Sicherung erstellen. Besonders wichtig sind die Log Dateien. In diesen Dateien sind die später notwendigen Parametern enthalten, mit denen man die Description Datei vollständig wiederherstellen kann.
Dann: Der Anleitung unter http://sanbarrow.com/vmdk/extracting-vmdk-from-log.html folgen. Dabei ist es wichtig, einen Editor zu verwenden, der auch mit Unix Zeilenumbrüchen speichern kann (Wordpad kann es anzeigen, aber wandelt die Datei beim Anspeichern wieder um). Sobald man die Beschreibungsdatei wieder erstellt hat, kann man sie über den Storagebrowser wieder hochladen. Verschwindet die -flat.vmdk Datei nach einem Refresh und taucht das Icon vor der diskname.vmdk wieder auf, dann stehen die Chancen sehr gut, dass die Maschine wieder startet. (In meinem Fall war es zum Glück so…)
Bei Fragen einfach einen Kommentar anhängen.