Nützliches Backup-Werkzeug: rsnapshot

Auf der Suche nach einem ordentlichen Backup-Konzept für Daten eines Linux-Servers hat mich jetzt vor allem rsnapshot beeindruckt. Es vereint den Komfort und die Schnelligkeit von rsync mit der Möglichkeit, Snapshots von verschiedenen Zeitpunkten anzulegen – ohne dabei übermäßig Speicherplatz zu verbrauchen.

So wird es leicht möglich, Speicherstände bestimmter Tageszeiten, Tage, Wochen, Monate und Jahre vorzuhalten. Der Trick dabei ist, dass keine Datei doppelt gespeichert wird, sondern jede neue Datei lediglich in Form eines Hardlinks zur früher gesicherten Datei angelegt wird, sofern sie unverändert ist. Im Extremfall wird eine einmal vorgenommene Komplettsicherung eines Datenbestandes aus Hunderten oder Tausenden von Hardlinks zu früher gesicherten Dateien bestehen. Das wirkt wie enormer Verwaltungsaufwand, entpuppt sich in der Praxis aber als einfach und nachvollziehbar.

rsync fürs Datenholen

rsync allein ermöglicht bereits den schnellen Abgleich zweier Speicherverzeichnisse. So besorgt ein

/usr/bin/rsync -avz --partial -e ssh root@server2.de:/var/lib/psa/dumps/ ~/Backup2008/server2.de/dumps/

den Download eines kompletten Speicherverzeichnisses von in diesem Fall server2.de auf die heimische Festplatte. Die Einwahl erfolgt dabei allerdings per root auf dem Server, was man dringend mit Hilfe von Zertifikaten und Einschränkungen der root-Möglichkeiten korrigieren sollte (siehe Troy Johnson, „Using Rsync und ssh“).

Als Cron-Job eingerichtet, versieht solch ein rsync-Befehl zuverlässig den Datenabgleich zwischen Server2 und dem eigenen Computer. Die vielfältigen Feineinstellungen für rsyn, die in der Man-Page dokumentiert sind, ermöglichen darüber hinaus weitergehende Einstellungen wie das automatische Anlegen von Kopien, sobald eine Datei überschrieben werden soll, und auch das automatisierte Löschen von Dateien, sobald sie auf Server2 gelöscht wurden.

Dies ist freilich gefährlich: Denn just nach dem Löschen einer Datei oder eines Verzeichnisses auf server2 würden die Daten auch im Backupverzeichnis beim nächsten rsync-Lauf bei entsprechender Einstellung verschwinden. Andererseits wächst ohne die Löschen-Automatik das Backup-Verzeichnis unbeschränkt, so dass prinzipiell jede einmal angelegte Datei erhalten bleibt.

rsnapshot bewahrt ältere Sicherungen auf

Den Ausweg aus diesem Dilemma zeigt rsnapshot. Das Linux-Programm ist unter Debian oder Ubuntu mittels apt-get rsnapshot fix installiert. Die nötigen Einstellungen nimmt man anschließend in der gut dokumentierten Datei /etc/rsnapshot.conf vor. Die wichtigsten Parameter (wichtig: immer einen Tabulatur einfügen, ein Leerzeichen reicht nicht):

snapshot_root /home/user/verzeichnis/

Alle Backups sollen im Speicherverzeichnis /home/user/verzeichnis/ angelegt werden.

interval hourly 6
interval daily 7

Es sollen mehrmals täglich Sicherungsläufe starten. Außerdem soll einmal am Tag eine separate zusätzliche Sicherung laufen.

backup /etc/ dieserserver/

Es sollen vom Rechner, auf dem rsnapshot läuft (dieserserver), regelmäßig Sicherungen des Verzeichnisses /etc/ angelegt werden und unterhalb eines Speicherverzeichnisses dieserserver/ abgelegt werden.

backup root@server2.de:/var/lib/psa/dumps/ server2.de/dumps/

Jeder Sicherungslauf soll sich per root bei server2.de einwählen, von dort das Verzeichnis /var/lib/dumps/ kopieren und unterhalb von server2.de/dumps/ abspeichern.

In der Praxis erhält man so in seinem snapshots-Verzeichnis nummerierte Ordner hourly.0 bis hourly.5 sowie daily.0 bis daily.6. Im Ordner hourly.0 findet sich stets die jüngste Sicherung, im Ordner daily.6 dagegen die ältete Sicherung von vor einer Woche. In diesem Beispiel würde erst die nach einer Woche eine alte Sicherung gelöscht. Durch Hinzufügen von

interval weekly 4
interval monthly 6

lassen sich aber durchaus weitere Sicherheitskopien sichern, in diesem Fall bis zu vier Wochen zurück und zusätzlich bis zu sechs Monate zurück. Der Speicheraufwand ist dafür wegen der cleveren Hardlink-Technik nicht besonders groß, er dürfte sich auch bei mehreren Gigabyte großen Quelldateien zum Sichern im Bereich einiger Megabyte bewegen.

Ein Nachteil dieser Technik sei allerdings nicht verschwiegen. Durch die vielen Speicherverzeichnisse hourly.0 bis hourly.6, daily, weekly, monthly und so weiter kann leicht der Eindruck entstehen, als hätte man jede Datei doppelt und dreifach gesichert. In der Praxis ist eine einzelne Datei im jeweiligen Bearbeitungsstand jedoch nur ein einziges Mal gesichert. Geht aufgrund defekter Festplatten oder eines versehentlichen Befehls rm -r * diese eine Sicherheitskopie kaputt, so ist sie auch in allen anderen Speicherverzeichnissen hourly, daily etc. defekt – denn dort sind immer nur Hardlinks hinterlegt, virtuelle Verzweigungen also.

Wer dann auf eine weitere Nummer sicher gehen möchte, sollte auch von den Sicherheitskopien regelmäßig Kopien anlegen – und dabei darauf achten, dass nicht die Hardlinks gesichert werden, sondern die Originaldateien.

Mehr zum Thema:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.