rsync inkrementelles Backup – Part 2

rsync und Hardlinks

Inkrementelle Backups sehen wie eine komplette Datensicherung aus

Ein inkrementelles Backup das wie ein Voll-Backup aussieht, lässt sich mit Hardlinks verwirklichen. Anstelle einiger Dateien, die seit dem letzten Backup verändert wurden, befindet sich im Backup-Verzeichnis (TARGET) scheinbar ein Voll-Backup.

Dabei werden aber nicht die unveränderten Dateien tatsächlich gesichert, es wird nur ein "Zeiger" auf die Datei im Filesystem angelegt. Die Datei X kann aus dem Verzeichnis A oder aus der Datensicherung A-3 geöffnet werden.

Damit wird entsprechend Plattenplatz eingespart und die inkrementelle Sicherung sieht trotzdem wie ein Voll-Backup aus.

Hardlinks in Ubuntu

Hier werde ich die Funktion von Hardlinks erklären. Der versierte Benutzer kann sich das natürlich wieder schenken. Für mich waren Hardlinks am Anfang schwer zu verstehen. Geholfen haben mir verstreute Artikel im Internet und Versuche mit Hardlinks am eigenen Server.

Im Filesystem ext4 (und ext3, ext2 usw.) ist ein inode ein Index mit File-Attributen, wie Berechtigungen, Besitzer, Gruppe, Filegrösse, Anzahl Hardlinks und Softlinks, Zugriffszeiten und Veränderungen. (Dies ist nicht die komplette Liste!) Normalerweise zeigt ein inode exakt auf einen Verzeichniseintrag. Durch Hardlinks kann man aber ein inode mit weiteren Verzeichniseinträgen verknüpfen.

Ein Filename ist nicht die Datei selbst, sondern nur ein Link zum Speicherort auf der Festplatte. Ein Beispiel:

Eine neue Datei erzeugen
touch meinedatei.txt

Die Eigenschaften der Datei anzeigen
stat meinedatei.txt

Der Output zeigt die inode Nummer und die Anzahl der Hardlinks, die auf meinedatei.txt zeigen.

Jetzt erzeugen wir einen neuen Hardlink auf meinedatei.txt
ln meinedatei.txt meinedatei2.txt

Wenn Du jetzt
stat meinedatei.txt
stat meinedatei2.txt

aufrufst, ist die Ausgabe identisch. Beide Dateien haben dieselbe inode Nummer. Der Inhalt ist bei beiden Dateinamen gleich. Wenn Du jetzt die Datei meinedatei2.txt veränderst, enthält meinedatei.txt ebenfalls die Änderungen und umgekehrt.

Wird der Besitzer oder die Gruppe bei einer der beiden Dateien geändert, wirkt sich das unmittelbar auf die andere Datei aus. Nur wenn Du meinedatei.txt löscht, werden nicht beide Dateien gelöscht. Der Hardlink auf meinedatei2.txt bleibt erhalten und damit die Datei selbst bis die Nummer der Hardlinks in diesem inode Null wird.

Du kannst gerne weitere Versuche mit den beiden Dateien machen, so ist mir jedenfalls aufgegangen, das meinedatei.txt und meinedatei2.txt eine Datei ist.

Damit können wir jetzt dem Betrachter einer Datensicherung vorspiegeln, dass ein Voll-Backup in jedem Backup vorhanden ist, der Platzbedarf und die Zeit für die Sicherung nach dem ersten Voll-Backup allerdings drastisch zurückgeht.

Hier geht es weiter zu Teil 3.
Hier geht es zum Teil 1.

Comments are closed.

Menu Title