Ich suche nach einer deduplizierenden Copy-on-Write-Dateisystemlösung für allgemeine Benutzerdaten wie /home
und Backups davon. Es sollte eine Online- / Inline- / synchrone Deduplizierung auf Blockebene mit sicherem Hashing (für vernachlässigbare Kollisionsgefahr) wie SHA256 oder TTH verwenden . Doppelte Blöcke müssen nicht einmal die Festplatte berühren.
Die Idee ist, dass ich in der Lage sein sollte, /home/<user>
mit demselben Dateisystem einfach auf eine externe Festplatte zu kopieren , um eine Sicherung durchzuführen. Einfach. Kein Herumspielen mit inkrementellen Sicherungen, bei denen eine Beschädigung eines der Snapshots fast immer alle späteren Snapshots beschädigt, und kein spezielles Tool zum Löschen oder "Auschecken" eines Snapshots erforderlich ist. Alles sollte einfach über den Dateibrowser ohne Sorgen erledigt werden. Können Sie sich vorstellen, wie einfach das wäre? Ich würde nie wieder zweimal über ein Backup nachdenken müssen!
Ich habe nichts gegen einen Leistungseinbruch, Zuverlässigkeit ist das Hauptanliegen. Mit bestimmten Implementierungen von cp
, mv
und scp
und einem Dateibrowser-Plugin wären diese Vorgänge jedoch sehr schnell, insbesondere wenn viel dupliziert wird, da nur die fehlenden Blöcke übertragen werden müssten. Die versehentliche Verwendung herkömmlicher Kopiertools, die nicht in den FS integriert sind, würde lediglich länger dauern, beim Remote-Kopieren etwas Bandbreite verschwenden und etwas CPU verschwenden, da die doppelten Daten erneut gelesen, erneut übertragen und erneut gehasht würden (obwohl nichts wäre) neu geschrieben), würde aber absolut nichts beschädigen. (Einige Filesharing-Software kann möglicherweise auch von der Integration in den FS profitieren.)
Was ist der beste Weg, dies zu tun?
Ich habe mir einige Optionen angesehen:
- lessfs - Sieht nicht gepflegt aus. Jeder gute?
- Opendedup / SDFS - Java? Könnte ich das auf Android verwenden?! Wofür steht SDFS ?
- Btrfs - Einige Patches schweben in Mailinglisten-Archiven herum, aber keine wirkliche Unterstützung.
- ZFS - Hoffentlich werden sie eines Tages eine Lizenz unter einer echten Free / Opensource GPL-kompatiblen Lizenz neu vergeben.
Vor zwei Jahren habe ich versucht, in Python Fuse auf Dateiebene zu verwenden, um es über einem typischen soliden FS wie EXT4 zu verwenden, aber ich fand Fuse for Python unterdokumentiert und konnte es nicht implementieren Alle Systemaufrufe.
Antworten:
Das klingt sehr unternehmerisch (wie teuer).
datadomain bietet die Deduplizierung von Daten und möglicherweise netapp mit ihrem wafl-Dateisystem. Aber zu hohen Kosten.
Eine "kostenlose" Alternative könnte zfs sein.
Meiner Meinung nach wäre die "beste" und am meisten Linuxy-Alternative, obwohl auf Dateiebene anstelle von "Blockebene", rsnapshot. Es verwendet rsync und Hardlinks, um die Versionierung zu verwalten.
Ich vertraue eher alten, bewährten Tools als der Verwendung eines neuen Dateisystems wie Btrfs, das nicht lange genug existiert, um alle möglichen bösen Fehler zu entdecken.
quelle
rsnapshot
ist kein Dateisystem, es ist eher ein Hack, um Snapshot-ähnliche Funktionen in ältere Dateisysteme zu bringen, es werden keine "echten" Snapshots erstellt (Snapshots sollen atomar sein ) und ist inkrementell (siehe 2. Absatz). Ich würde lieber einen relativ neuen FS verwenden als etwas, das Inkrementelle verwendet.Ich suche und untersuche genau das gleiche, ich könnte https://attic-backup.org/quickstart.html#automating-backups für jetzt vorschlagen , scheint ziemlich einfach und gut für Backups von Linux zu sein.
Es gibt auch Bacula mit dieser Funktion, aber der Dachboden scheint für die meisten Fälle gut genug zu sein.
quelle