Bisher hatte ich meinen virtuellen Server in VirtualBox vor dem Backup immer herunter gefahren.
Der Nachteil ist, dass während des Backups die Dienste nicht erreichbar sind. Sichert man den Server allerdings im laufenden Betrieb ist die Chance recht hoch, dass das Backup fehlerhaft und inkonsistent ist.
Ein Kommentator hat mir aber in meinen bisherigen Blogartikel einen Tipp gegeben, wie man die virtuelle Maschine im laufenden Betrieb sicher kann.
Die Idee ist, vor dem Backup einen Snapshot zu erstellen und die virtuelle Maschine dann zu sichern. Der Server muss so nicht heruntergefahren werden. Die neuen Daten werden in den Snapshot geschrieben. Die Dateien der VM werden gesichert. Anschließend wird der Snapshot wieder gelöscht und damit die VM zusammen geführt.
Ein Manko bleibt natürlich, alle Änderungen der VM während des Backups werden nicht gesichert. Aber je nach Backupfrequenz muss man im Fall der Fälle ohnehin auf einen Stand zurück der etwas zurück liegt.
Hier ist meine Batch-Datei:
"c:\Program Files\Oracle\VirtualBox\vboxmanage.exe" snapshot UbuntuServer take BackupSnapshot –description "%DATE%_%TIME%" c:\tools\7z\7za.exe a d:\backup_vm\%date%_vm.7z c:\vm\* -xr!*Snapshots* -mx1 "c:\Program Files\Oracle\VirtualBox\vboxmanage.exe" snapshot UbuntuServer delete BackupSnapshot
Im ersten Schritt wird der Snapshot erstellt, anschließend die VM mit 7zip gezippt und auf das Ziellaufwerk geschrieben. Anschließend wird der Snapshot gelöscht.
Backup wiederherstellen
Das Backup ist im Prinzip die VM, der Snapshot dient dazu, dass ein sicherer Stand erzeugt wird, falls während des Backups Schreibzugriffe in der VM stattfinden. Für ein Restore entpacken wir einfach das Archiv und können es in VirtualBox öffnen und starten.
Sollte es beim Start des Backups zu einem Fehler kommen, sollte man den aktuellen Zustand verwerfen. Bei mir kam der Fehler “0x80004005 Delete the saved state prior to starting the VM”.
Am Ende bleibt es natürlich Abwägungssache, welche Variante man bevorzugt.
Hallo Andy,
erstmal vielen Dank für die tolle Lösung.
Bei mir läuft die Batch händisch durch… In der Aufgabenplanung wird jedoch die Erstellung des 7z Archiv übersprungen. D.h. ein Snapshot wird erstellt und wieder gelöscht. Das Ergebnis der Ausführung ist erfolgreich beendet. (0x0)
Ich habe folgende Aktion erstellt. (Mit höchsten Privililegien ausführen..)
Aktion: Prgramm starten
Programm/Skript:
Pfad zum Skript
Argumente hinzufügen habe ich frei gelassen.
Starten in: Order vom Skript
Hast du eine Idee?
Lieben Gruß
Alexander aus Köln
Hallo Alexander, schwer zu sagen, gibst Du den Pfad zur 7zip absolut, also komplett an?
Gruß
Andy
Hallo Andy,
ja genau! 🙂
Auszug :
@echo off
“C:\Program Files\Oracle\VirtualBox\vboxmanage.exe” snapshot “VM01” take BackupSnapshot
“C:\Program Files\7-Zip\7z.exe” a “Z:\VM\VM01_%date%_vm.7z” “C:\Virtual Box\VMs\VM01\*” -xr!*Snapshots* -xr!*Logs* -mx1
“c:\Program Files\Oracle\VirtualBox\vboxmanage.exe” snapshot “VM01” delete BackupSnapshot
“C:\Program Files\Oracle\VirtualBox\vboxmanage.exe” snapshot “VM02” take BackupSnapshot
“C:\Program Files\7-Zip\7z.exe” a “Z:\VM\VM02_%date%_vm.7z” “C:\Virtual Box\VMs\VM02\*” -xr!*Snapshots* -xr!*Logs* -mx1
“c:\Program Files\Oracle\VirtualBox\vboxmanage.exe” snapshot “VM02” delete BackupSnapshot
Lieben Gruß
Alexander
Servus, vermute ich richtig, dass das z:\ Laufwerk ein Netzlaufwerk ist? Falls ja, probiere mal das Ganze mit UNC-Pfad zu machen:
https://ekiwi-blog.de/26413/7zip-dateien-ueber-das-netzwerk-packen-mit-unc-pfad/
Ich denke, die automatische Ausführung hat die Freigabe nicht als Netzlaufwerk zugeordnet.
Gruß
Andy
mission completed! Danke!
Ausgezeichnet! 🙂
Danke für den Beitrag. Eine Frage zur Einspielung des Backups: Wenn du den Snapshot in deiner letzten Zeile des Scripts löscht, ist dieser auch in der GUI von VirtualBox nicht mehr als Snapshot auswählbar. Wie stellst du du das Backup aus der .sav und .vdi-Datei auf der externen Festplatte wieder her?
Hallo, ich habe den Beitrag entsprechend ergänzt.
Gruß
Andy
Das ist ein guter Einfall. Eine weitere Option ist BackupChain. Der Vorteil ist, dass die Software das ganze Automatisiert, eventuelle Fehler protokolliert und die Sicherung komprimiert / dedupliziert, so dass viele Sicherungen in relativ wenig Speicher passen (Nur ca 5% Speicherbedarf bei inkrementeller Sicherung). Falls die Sicherung nicht funktioniert, bekommt man automatisch eine Email mit Details…