Ich habe ein lokales FreeNAS-System und möchte ZFS-Snapshots für Backups verwenden.
FreeNAS verfügt über die integrierten Replikationsaufgaben, die verwendet werden
zfs send snapshot_name
um einen Schnappschuss an ein entferntes System zu senden. Dies erfordert jedoch ein System mit ZFS am anderen Ende.
Ich möchte den Schnappschuss an eine Datei senden und diese komprimierte und verschlüsselte Datei an den Remote-Computer senden.
Dies ist möglich mit
zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl
Jeden Tag mache ich eine Momentaufnahme des Speicherpools und behalte jede Momentaufnahme 30 Tage lang.
Mit jedem Schnappschuss werde ich diesen Schnappschuss in eine Datei leiten.
- snapshot_file 1 enthält alle Dateien (sagen wir 2 GB)
- snapshot_file 2 enthält nur die Änderungen an snapshot_file 1 (sagen wir 5 MB)
- snapshot_file 3 enthält die Änderungen an snapshot_file 2; und so weiter.
Am 31. Tag wird snapshot_file 1 gelöscht (da ich nur die Änderungen der letzten 30 Tage möchte)
Daher muss snapshot_file 2 jede Datei enthalten (2 GB snapshot_file 1 + 5 MB Änderungen)
Bei diesem Ansatz muss jedoch täglich (ab dem 31. Tag) eine neue 2-GB-Datei erstellt und an ein Remote-System gesendet werden. Das ist zu viel Aufwand.
Was wäre der beste Ansatz, um Snapshots, die an eine Datei weitergeleitet werden, als Sicherungsstrategie mit einer Historie von X Tagen zu verwenden?
PS: Ich weiß, dass es eine Menge Backup-Software gibt (zum Beispiel rdiff-backup), die ich verwenden könnte. Ich bin aber gespannt, wie das geht.
zfs recv
am anderen Ende (zfs set compression=gzip-9
zum Beispiel bei einem Pool mit )? Das Speichern von Snapshot-Dateien klingt für mich sehr ineffizient.