btrfs: Zeitgemäße Backups unter Linux.

Die Entwicklung des Butter-Dateisystems btrfs schreitet zügig voran und vielleicht können wir schon bald auf ein zeitgemäßes Dateisystem zurückgreifen mit welchem inkrementelle Snapshot-Backups Realität werden. Das gibt es schon?

Anmerkung

Hinweis zu btrfs: Das Dateisystem btrfs gilt zum jetzigen Zeitpunkt (6. Oktober 2009) als experimentell und ist nicht für den produktiven Einsatz bestimmt.

Stimmt. Zum Beispiel als LVM (dort jedoch auf Blockebene, d.h. man muss den Snapshot anschließend mounten) und als ZFS von Sun. ZFS hat sich aber leider unter Linux nicht so recht durchsetzen können - wahrscheinlich wegen der nicht ganz so einfachen Lizenz-Geschichte (letzter Abschnitt). XFS Snapshots (englisch) sind auch nicht ganz so trivial, da diese vom Volume Manager implementiert werden müssen.

btrfs ist daher aus meiner Sicht für Backups ein gewaltiger Sprung nach vorne - es hat noch mehr zu bieten, aber für mich steht die Datensicherung ganz vorn.

Was macht btrfs besser als “herkömmliche Dateisysteme” ala ext3 oder XFS? Ganz einfach, es ist in der Lage, vom aktuellen Dateisystem einen Snapshot zu erzeugen (das heisst es verwendet eine Art hardlink-Technik) und es kann Dateiänderungen inkrementell abspeichern.

Einfache Snapshots die man bspw. mit rsync erstellen kann haben einen Nachteil. Sichert man eine Datenbank wie zum Beispiel einen Mailordner von Thunderbird so wird bei einer Änderung an diesem beim nächsten Snapshot nocheinmal der gesamte Speicher neu belegt auch wenn sich in der Datei nur 200kBytes geändert haben.

Dies kann btrfs nun besser. Dort werden dann nur die geänderten Blöcke (copy-on-write) neu belegt und der Rest bleibt gleich. So hat man im Endeffekt ein normales Backup wie bei Amanda oder Bacula, jedoch mit dem Vorteil, dass man mit einem Dateimanager einfach die Datei wiederherstellen kann ohne Backup-Kommandos kennen zu müssen (d.h. der Snapshot ist einfach ein Unterverzeichnis im bestehenden Laufwerk).

Kurz noch etwas zu den momentanen Nachteilen (Version 0.19):

  • der Inhalt eines Snapshots ist löschbar, jedoch nicht der Verzeichnisname
  • Anwendungen haben noch keine Möglichkeit ("hooks") ihre Daten vorm Backup aufzubereiten (bspw. eventuelle Transaktionen abzuschliessen)

Anmerkung

Hinweis zu Backups: Ein Snapshot ersetzt nicht die Sicherung auf ein RAID plus zusätzlich ein externes Medium. Im Falle eines Festplattenfehlers wäre sonst der Snapshot mit im Nirvana und wenn man im RAID ein Snapshot Verzeichnis versehentlich löscht repliziert sich diese Löschung ja auch auf die anderen Verbundplatten. Je nach Wichtigkeit der Daten also lieber 3fach vorhalten (1. Snapshot auf 2. RAID mit Kopie auf 3. externem Speicher) als Risiken einzugehen.

Weiterführende Links: