我有一个本地 FreeNAS 系统,想使用 ZFS 快照进行备份。
FreeNAS 有内置的复制任务,它使用
zfs send snapshot_name
Run Code Online (Sandbox Code Playgroud)
将快照发送到远程系统。但这需要另一端带有 ZFS 的系统。
我想将快照发送到一个文件并将这个压缩和加密的文件发送到远程机器。
这是可能的
zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl
Run Code Online (Sandbox Code Playgroud)
每天我都会制作存储池的快照并将每个快照保留 30 天。
每次拍摄快照后,我都会将此快照通过管道传输到文件中。
- 快照文件 1 中包含所有文件(假设为 2GB)
- 快照文件 2 仅包含对快照文件 1 的更改(假设为 5MB)
- 快照文件 3 包含对快照文件 2 的更改;等等。
在第 31 天,snapshot_file 1 被删除(因为我只想要过去 30 天的更改)
因此,snapshot_file 2 需要保存每个文件(2GB 的 snapshot_file 1 + 5MB 更改)
但是使用这种方法每天(从第 31 天开始)必须创建一个新的 2GB 文件并将其发送到远程系统。这开销太大了。
使用管道传输到文件的快照作为具有 X 天历史记录的备份策略的最佳方法是什么?
PS:我知道有很多备份软件(例如 rdiff-backup),我可以使用它们。但我很好奇如何做到这一点。