为了对我的ZFS池进行真正的异地和持久备份,我想将zfs快照存储在Amazon Glacier中。数据需要独立于Amazon在本地进行加密,以确保隐私。我怎样才能做到这一点?
最佳答案
可以将现有快照发送到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>
关于linux - 在Amazon Glacier中存储本地加密的增量ZFS快照,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45786142/