我应该寻找什么解决方案来允许通过 nfs4 上的 rsync 进行增量备份,从而允许在备份主机上加密文件?
我对备份主机的软件没有任何控制权,因此加密显然必须在客户端完成。由于带宽可用性低,我希望增量备份仍然有效(尽管它可以是整个文件,但我不希望复制部分文件)。
除非我遗漏了什么,否则这么多年来 NFS 和 RSYNC 都没有内置这种功能,这似乎很奇怪。
我发现rsyncrypto但是它看起来已经有几年没有更新了,而且也不像我希望的那样透明。
答案1
encfs
可以使用覆盖文件系统来实现这一点。通常,它会被赋予一个加密目录,并允许透明地访问其中的解密文件。但是,使用此选项--reverse
,它会以相反的方向工作 - 给定一个常规目录,它允许通过挂载点读取加密文件。因此,您可以指向rsync
reverse-ecryptfs,并让它复制加密文件。
# encfs --reverse /home /mnt/encrypted-home
# rsync --various-options /mnt/encrypted-home/ /mnt/nfs-backup-server/
然而。通过说“通过 NFS”,你似乎暗示 rsync 运行仅有的本地,仅使用 NFS 写入服务器。一方面,这意味着 rsync 根本不高效——它无法在不先从服务器读取旧版本的情况下进行部分复制,如果通过 NFS 进行复制,它会使用更多的带宽比整个文件复制更慢。
另一方面,这意味着您可以使用encfs
(或其他替代方案,例如eCryptFS
)没有“反向”模式,通过使用 encfs 直接挂载目标目录(而不是源目录)。这样,您就可以选择更广泛的覆盖文件系统,因为并非所有文件系统都具有“反向”模式。
# encfs /mnt/nfs-backup-server/ /mnt/encrypted-backup/
# rsync --etc-etc-etc /home/ /mnt/encrypted-backup/