ローカルのFreeNASシステムがあり、バックアップにZFSスナップショットを使用したい。
FreeNASには、使用する組み込みのレプリケーションタスクがあります
zfs send snapshot_name
スナップショットをリモートシステムに送信します。しかし、これにはもう一方の端にZFSを備えたシステムが必要です。
スナップショットをファイルに送信し、この圧縮および暗号化されたファイルをリモートマシンに送信します。
これは可能です
zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl
毎日、ストレージプールのスナップショットを作成し、すべてのスナップショットを30日間保持します。
スナップショットを取得するたびに、このスナップショットをファイルにパイプします。
-snapshot_file 1にはすべてのファイルがあります(2GBとしましょう)
-snapshot_file 2にはsnapshot_file 1への変更のみがあります(5MBとしましょう)-snapshot_file
3はsnapshot_file 2への変更を保持しています。等々。
31日目に、snapshot_file 1が削除されます(過去30日間の変更のみが必要なため)
したがって、snapshot_file 2はすべてのファイルを保持する必要があります(2GBのsnapshot_file 1 + 5MBの変更)
しかし、このアプローチでは毎日(31日目以降)新しい2GBファイルを作成してリモートシステムに送信する必要があります。これはオーバーヘッドが大きすぎます。
X日間の履歴を持つバックアップ戦略として、ファイルにパイプされたスナップショットを使用する最良の方法は何ですか?
PS:そこには多くのバックアップソフトウェア(rdiff-backupなど)があり、それを使用できることがわかっています。しかし、私はこれがどのように行われるのか興味があります。
zfs recv
反対側(zfs set compression=gzip-9
たとえば、プール)で使用しないのはなぜですか。スナップショットファイルを保存するのは非常に非効率的です。