Seite 1 von 1

Backup von laufenden VMs unter Linux?

Verfasst: 04.09.2007, 19:23
von SchlaWiener
Hallo,

ich habe eine Frage bzgl. Backup von VMs unter Linux (Ubuntu 6.06).
Ich möchte die virtuellen Maschienen im laufenden Betrieb sichern, ohne diese herunterfahren zu müssen.
Wenn ich die Maschine vorher in den Suspend-Modus schicke, sind die vmdk-Files und der virt. Speicher in sich konsistent (Oder?)


Was mir vorschwebt ist folgendes:
vmrun suspend vm1.vmx # Virt. Machine pausieren
sync # Anstehende Änderungen auf den Datenträger schreiben
tar czf /vmware/backup/vm1.tar.gz /vmware/vm1
sftp ... # Virt. Maschine auf Backup Server kopieren
vmrun start vm1.vmx


Das Backup von einer virt. Maschine mit 15 GB Festplatte + 2GB vmem auf diese Art dauert ca. 20 min. (Ohne kopieren auf einen Remotehost, aber dass kann ja im Anschluss passieren) und prodoziert ein ca. 1GB großes Archiv (VM aktuell: 2003 Server ohne zusätzliche Software)
Das jede Nacht sollte genug Ausfallsicherheit bieten, oder?

Wenn ich das Archiv auf einem anderen Server wieder starte, klappt das auch, ich kann ohne Neustart den Betrieb wieder aufnehmen. Es scheint also alles zu 100% zu funktionieren.

Was mich wundert ist, dass ich diese Lösung nirgendwo gefunden habe. Alle Backup-Scripte, die man findet, fahren die virtuellen Maschinen erst komplett herunter, was imho unnötig ist.
Bin ich der erste, der auf diese Lösung gekommen ist, oder hat das einen Grund, dass dies Methode nicht eingesetzt wird?



Achja, eine Frage noch:
Um wirklich sauber zu sein, will ich vor dem suspend die Datenbankdienste stoppen und anschließend wieder starten.
Kann ich über vmrun ein Script auf dem Gast ausführen, oder muss ich ein Suspend-Script in den VMWare-Tools eintragen?

Verfasst: 04.09.2007, 20:27
von al!ve
Nen DB-Dienst ist so ziemlich das Einzige, was prinzipbedingt eigentlich *nicht* extra heruntergefahren werden muss. Eine wesentliche Aufgabe eines DBS ist die Datenhaltung mit Konsistenzsicherung. Wenn ich als Software der Datenbank den Schreibbefehl gebe und die Datenbank mit "ist erledigt" antwortet, hat die Datenbank dafür Sorge zu tragen, dass unter allen Umständen (also auch beim Stromausfall) die Daten gespeichert bleiben. Die Datenbank sorgt selbst dafür, dass die Daten ordentlich gespeichert sind, Stichwörter hierfür sind Rollback, Redo und Undo. Damit sollte der Benutzer aber nichts am Hut haben.

Wenn du ein System hast, auf dem die VM wieder gestartet werden kann, spricht natürlich nichts dagegen, die VM im Suspend-Mode zu sichern. Die DB vor der Sicherung komplett geordnet herunter zu fahren bietet den Vorteil, dass mehr Konfigurationsänderungen der Hardware abgefangen werden können. Eine andere CPU während des laufenden Betriebs, das macht nicht jedes System klaglos mit. Bei baugleicher Hardware natürlich (fast) kein Problem.

Um die Stillstandszeit zu verkürzen, könntest du den Inhalt der VM vor der Komprimierung einfach in ein anderes Verzeichnis kopieren, die VM dann vom Ursprungsort wieder starten und erst jetzt mit der Kompression anfangen. Die 20 bis 30 Minuten der Kompression bekommt die VM dann zwar weniger CPU ab, ist dafür aber 20 bis 30 Minuten früher wieder da.

Verfasst: 05.09.2007, 10:50
von SchlaWiener
Wegen der DB:
Schon möglich, aber die Entwickler von DBMS hatten bei der Fehlerbehandlung bestimmt nicht im Kopf, dass man einen Rechner pausiert und "plötzlich" von eimem Moment auf den anderen die Zeit um 30 min. verstellt ist ;-)

Wenn ich Nachts sichere, sind eh keine Transaktionen auf der Datenbank.
Ich will halt für den Fall, dass die Maschine doch nicht im laufenden Betrieb weitermacht und ich neu booten muss, saubere Datenbank-Files haben.

Achja: Beide VMWare-Server sind, was Hardware und Software angeht, zu 100% identisch, daher hatte ich auch keine Probleme mit dem Resume.