要对我的ZFS池进行真正的异地和持久备份,我想在Amazon Glacier中存储zfs快照。数据需要在本地加密,独立于亚马逊,以确保隐私。我怎么能做到这一点?
答案 0 :(得分:6)
可以将现有快照发送到S3存储桶,如下所示:
zfs send -R <pool name>@<snapshot name> | gzip | gpg --no-use-agent --no-tty --passphrase-file ./passphrase -c - | aws s3 cp - s3://<bucketname>/<filename>.zfs.gz.gpg
或增量备份:
zfs send -R -I <pool name>@<snapshot to do incremental backup from> <pool name>@<snapshot name> | gzip | gpg --no-use-agent --no-tty --passphrase-file ./passphrase -c - | aws s3 cp - s3://<bucketname>/<filename>.zfs.gz.gpg
此命令将获取现有快照,使用zfs send序列化它,压缩它,并使用带gpg的密码加密它。密码必须在./passphrase文件的第一行可读。
请记住在多个位置单独备份密码短语文件! - 如果您无法访问它,您将永远无法再次获取数据!
这需要:
pip install awscli
)并已配置(aws configure
)。最后,S3生命周期规则可用于在预设的时间(或立即)之后将S3对象转换为冰川。
恢复:
aws s3 cp s3://<bucketname>/<filename>.zfs.gz.gpg - | gpg --no-use-agent --passphrase-file ./passphrase -d - | gunzip | sudo zfs receive <new dataset name>