Workshop: Backups mit rdiff-backup und rsnapshot

Brüder im Geiste

Die goldene Regel für Backups lautet: Je einfacher sich Daten sichern und wiederherstellen lassen, desto besser. Oft sind aber Backups mit viel Aufwand und Arbeit verbunden und werden deshalb stiefmütterlich behandelt. Ausgereifte Linux-Bordmittel zeigen: Der Weg zu automatisierten und regelmäßigen Backups muss nicht steinig sein.
Mit einer vernünftigen Backup-Strategie wappnen sich Administratoren erfolgreich gegen Datenverluste und längere Systemausfälle. So zeigen wir Ihnen ... (mehr)

Der erste Schritt zu umfassenden Backups ist, sich zu überlegen, wo die Datensicherungen liegen sollen. Meist wird es dazu einen eigenen Backup-Server geben, der sich zu anderen Rechnern verbindet und die Sicherungen anstößt. Bei sicherheitsbewussten Administratoren schrillen hier die Alarm-Glocken – der Backup-Server darf sich zu allen anderen Maschinen verbinden! Der Absicherung des Backup-Servers als auch dessen Verbindungsschema müssen Sie deshalb volle Aufmerksamkeit schenken. Nicht zuletzt, da sich auf dem Backup-Server die Produktivdaten aller Systeme befinden.

Automatisierte Backups unter Linux setzen in der Regel auf einen Benutzer, der sich per Public-Key-Authentifizierung mit dem zu sichernden System verbindet. Zwei Aspekte sind hier hinsichtlich der Sicherheit als kritisch einzustufen. Erstens benötigt der Benutzer am Zielsystem Root-Rechte, um alle Daten zu sichern. Zweitens sind die privaten SSH-Schlüssel zur Automatisierung nicht passwortgeschützt. Über einfache Einschränkungen wirken Sie diesen Angriffspunkten entgegen:

1. Erstellen Sie für den Backup-Benutzer ein eigenes Schlüsselpaar und schränken Sie über »authorized_keys« auf den zu sichernden Systemen die erlaubten Kommandos ein.

2. Legen Sie für den Backup-Benutzer eine sudo-Konfiguration an, die nur das Backup-Programm (rdiff-backup oder rsnapshot) ohne sudo-Passworteingabe erlaubt.

Eine detaillierte Anweisung, wie Sie diese Maßnahmen umsetzen, finden Sie am Ende im Abschnitt Backups über SSH.

rdiff-backup vs. rsnapshot

Die beiden Kommandozeilen-Werkzeuge rdiff-backup und rsnapshot sind bekannte Vertreter von Backup-Programmen unter Linux. Beide bestechen nach ihrer initialen Konfiguration durch Einfachheit und Zuverlässigkeit. Tabelle 1 zeigt die wichtigsten Funktionen der beiden Tools und gibt erste Hinweise über Sicherungskonzepte.

Rdiff-backup speichert, wie der Name vermuten lässt, den Unterschied von aktuellen Daten zu älteren Ständen als Reverse Diff. Ändert sich eine Datei, werden bei einer Sicherung nur die Änderungen zur vorhergehenden Version abgelegt. Der aktuelle Datenstand, Mirror genannt, lässt sich direkt verwenden. Ältere Versionen werden aus den Diffs berechnet.

Einen anderen Weg schlägt rsnapshot ein. Ändert sich eine Datei über zwei Snap-shots hinweg nicht, erstellt es einfach einen weiteren Hard-Link auf die Datei. Gleiche Dateien verbrauchen dann keinen unnötigen Speicherplatz. Die Diff-Berechnung wie bei rdiff-backup gibt es nicht. Ändert sich eine Datei, ist sie im nächsten Snapshot komplett vorhanden.

Datensicherung mit rdiff-backup

Sicherungen mit »rdiff-backup« werden anhand von Quell- und Zielverzeichnis erstellt. Das folgende Beispiel sichert das »etc« -Verzeichnis nach »/mnt/backup« :

# rdiff-backup /etc /mnt/backup
# ls /mnt/backup/hosts
/mnt/backup/hosts

Die Schrägstriche am Ende der Verzeichnisse – auch "Trailing Slashes" genannt – werden ignoriert. Es ist hier egal, ob Sie sie angeben oder nicht. Bei rsnapshot müssen Sie dagegen in der Datei »rsnapshot.conf« zwingend die Trailing Slashes verwenden. Das obige Beispiel zeigt auch, dass sich die Dateien direkt unter »/mnt/ backup« befinden – »/etc/hosts« wurde nach »/mnt/backup/hosts« gesichert. Für Unterverzeichnisse müssen Sie selbst sorgen.

Die wesentlichen Unterschiede zwischen rdiff-backup und rsnapshot

 

rdiff-backup

rsnapshot

Programmiersprache

Hauptsächlich Python.

Komplett in Perl.

Datenübertragung

Beide setzen bei der Datenübertragung auf rsync. rdiff-backup verwendet die librsync, rsnapshot direkt das rsync Kommando.

Datenspeicherung

Ältere Stände sind als Increments beziehungsweise Deltas zum aktuellen Stand gespeichert.

Dateien, die sich nicht ändern, werden als Hard-Links über Snapshots hinweg abgelegt.

Datenzugang

Der letzte Datenstand (Mirror) ist direkt zugänglich, ältere Stände über Increments wiederherstellbar.

Alle Daten der Snaphots sind direkt zugänglich.

Entfernen von Backups

Backups werden über entfernt, also Stände, die älter als ein gewisser Zeitpunkt sind.

Backups laufen in gewissen Abständen, zum Beispiel täglich oder wöchentlich. Retain regelt, wieviele Snapshots eines Zeitpunkts aufgehoben werden.

Eine Fortschrittsanzeige während der Sicherung bietet rdiff-backup nicht. Wer dennoch gerne wissen möchte, was gerade gesichert wird, bedient sich der Verbose Levels. Das Level 5 zeigt an, wenn eine Datei sich geändert hat, unter Level 6 wird hingegen jede verarbeitete Datei aufgelistet:

# rdiff-backup -v5 /etc/ /mnt/backup
[…]
Incrementing mirror file /mnt/backup
Processing changed file X11
Incrementing mirror file /mnt/backup/X11
Processing changed file X11/Xreset
[...]

Praktisch ist ebenfalls die "--compare"-Funktion. Sie führt eine Art Probelauf durch und listet die Dateien auf, die sich geändert haben. Dadurch wissen Sie schon im Vorfeld über die Daten Bescheid, die gesichert werden würden:

# rdiff-backup --compare /etc/ /mnt/backup
changed: .
 changed: hosts
 changed: mtab

Für eine weitere Sicherung führen Sie denselben Befehl erneut aus. Fortlaufende Sicherungen haben den Vorteil, dass Sie auf die unterschiedlichen Datenstände der Sicherungszeitpunkte zugreifen können.

# rdiff-backup /etc /mnt/backup
# rdiff-backup --list-increments /mnt/backup/
Found 2 increments:
       increments.2015-03- 15T09:15: 19+01:00.dir Sun Mar 15 09:15:19 2015
      increments.2015-03-19T20:15: 46+01:00.dir Thu Mar 19 20:15:46 2015
Current mirror: Sat Mar 21 08:43:49 2015

Die Option "--list-increments" zeigt an, wie viele Sicherungen zu welchen Zeitpunkten vorhanden sind. Der aktuellste Stand ist in der Zeile "Current Mirror" angeführt, die Daten zu diesem Zeitpunkt sind als normale Dateien zugänglich.

Metadaten und jene der Increments beziehungsweise der Diffs befinden sich im Verzeichnis »rdiff-backup-data« . Es ist mindestens genau so wichtig wie die restlichen Daten des Backups. Immerhin sind die Increments dafür verantwortlich, dass Daten von vergangenen Sicherungen wiederhergestellt werden können. Sie müssen sich daher auch Gedanken über ein Backup Ihrer Sicherungen machen. Gibt das Backup- System den Geist auf oder geht bei rdiff-backup etwas schief, darf das nicht zum Super-GAU werden.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023