为了对我的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文件的第一行上可读。

记住要在多个位置分别备份密码文件! -如果您无法访问它,您将永远无法再获取数据!

这要求:
  • 预先创建的Amazon s3存储桶
  • 已安装
  • awscli(pip install awscli)和已配置(aws configure)。
  • gpg已安装

  • 最后,可以使用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/

    10-13 08:40