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
meinedatei
2.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.