: artikel,

in der Gesamtansicht.
Zugehörige Kommentare,
Verweise und verwandte Artikel werden unten aufgeführt.

» Dieser Artikel wurde am
18. Dezember 2009
geschrieben und hat derzeit
einen Kommentar «

Openvz inkrementell sichern mit vzdump

Lösung 1:

OpenVZ bietet von sich aus keine Methode um die Virtuellen Maschinen (VE) sinnvoll zu sichern. Allerdings sind die VEs vom Hauptsystem aus gesehen nichts anderes als “normale” Ordner. Sofern man die VE stoppt, kann man auf diesen Dateien auch ohne Probleme ein Backup starten.

Nun will man aber bekannterweise für ein Backup den Server nur kurz oder am Besten überhaupt nicht herunterfahren. Die optimale Lösung mit nicht herunterfahren war mir zu stressig, für das nur kurz herunterfahren war aber schnell die Lösung gefunden: rsync mit dem Parameter –link-dest. So muss ich nur einmal ein volles Backup ziehen und rsync erzeugt bei allen darauffolgenden Backups Hardlinks im Dateisystem und reduziert so ganz nebenbei auch noch den Platzbedarf für die Backups. Trotzdem sieht jeder Backupordner wie ein vollständiges Backup aus.

Um das ganze jede Nacht zu automatisch laufen lassen zu können, habe ich noch eine kleine Schleife um das eigentliche Backup gebaut, die die aktuell laufenden VEs automatisch findet und sichert. Aktuell nicht aktive VEs werden auch nicht gesichert, an ihnen werden ja auch keine Änderungen durchgeführt. Sollte also eine VE dazu kommen, so wird in der darauf folgenden Nacht automatisch ein Full-Backup der VE geschrieben und solange die VE aktiv ist diese auch automatisch inkrementell gesichert.

#!/bin/bash
DATUM=`date +%F`;
VZ_HOME=/vz/private BKP_BASE=/backup/virtual
LAST_RUN=`cat $BKP_BASE/lastRun.date` for veid in `ls $VZ_HOME`;
do if [ `vzctl status $veid | awk '{print $5}'` == "running" ];
then if [ ! -d $BKP_BASE/$veid ];
then mkdir -p $BKP_BASE/$veid; fi;
echo "Backing up VE $veid";
BKP_PATH="$BKP_BASE/$veid/$DATUM";
vzctl stop $veid;
rsync -a --delete --link-dest=$BKP_BASE/$veid
$LAST_RUN $VZ_HOME/$veid/ $BKP_BASE/$veid/$DATUM;
vzctl start $veid; fi; done; echo $DATUM> $BKP_BASE/lastRun.date

Was noch fehlt ist ein Script, dass die angelegten Daily Backups ausdünnt und so Weekly, Monthly und Yearly Backups anlegt. Die Ordner der Daily Backups können einfach gelöscht werden, da verlinkte Dateien erst vom Dateisystem verschwinden, wenn der letzte Link gelöscht wurde…

Achtung:
Habe mit diesem Script letzte Woche beinahe meine Server lahmgelegt, hatte das Script als Cronjob eingebunden und vergessen das es schon läuft.
Nach 10 Tagen täglicher Sicherung war plötzlich der Diskspace mit 98% belegt. Also vorsicht beim anwenden!
——————————————————————————————————————–
Lösung 2:

Dank meines  langjährigen Freundes IT-Bayer der mir eine andere Lösung aufzeigte habe ich noch eine Lösung parat.

Zuerst erstellen wir uns eine  Bash Datei z.B. vzdump.sh mit folgendem Inhalt.

#!/bin/sh
mv /pfad/dump/dump_5/* /pfad/dump/dump_6
mv /pfad/dump/dump_4/* /pfad/dump/dump_5/
mv /pfad/dump/dump_3/* /pfad/dump/dump_4/
mv /pfad/dump/dump_2/* /pfad/dump/dump_3/
mv /pfad/dump/dump_1/* /pfad/dump/dump_2/
mv /pfad/dump/vzdump-* /pfad/dump/dump_1/
vzdump --suspend --all --mailto user

Diese macht ein kompletes Backup und verschiebt nur die alten Backups immer wieder in ein anderes Verzeichnis. So habe ich eine komplette Woche zurück immer eine Sicherung meiner Server. Einfach aber genial!

Der Artikel wurde am Freitag, den 18. Dezember 2009 geschrieben. Er ist abgelegt unter folgenden Kategorien: OpenVZ. Sie können hier einen Trackback senden Trackback zum Artikel anlegen. Kommentieren Sie den Artikel und lassen Sie sich bei neuen Kommentaren Feed für Kommentare automatisch benachrichtigen.

Nachschlagen bei Wikipedia   Was ist ein Trackback? | RSS-Feed? | Social Tagging?


Die folgenden Seiten verweisen auf diesen Artikel (1)

Schreiben Sie einen Kommentar zum Artikel







(x) Pflichtfeld. Kommentare unangemessenen Inhalts werden moderiert. XHTML: Sie können diese sog. Tags zur Formatierung verwenden:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>