我计划通过将 btrfs 快照发送到在线存储来备份数据。该存储作为 LUKS 加密容器文件安装在 cifs 共享上。
稍后的传输速度会相当快,但第一个传输量为 1.3TB,当我使用 tc 为我留下合理数量的上游时,将需要 23 天。现在,理论上,我的连接可以处理这个问题,但重新连接是可能的。据我了解,如果我只是使用,这将迫使我重新开始
btrfs send ... | btrfs receive ...
有没有任何保存,即可恢复的方法来做到这一点?我找到了uttersink,但它似乎只允许恢复S3。
有任何想法吗?
请随意使用评论来建议完全不同的解决方案。这是一个 Hetzner 储物盒(https://www.hetzner.de/de/hosting/storagebox/bx40)。我有 FTP、FTPS、SFTP、SCP(但不是 SSH,paramiko 也不起作用)、Samba/CIFS、HTTPS、WebDAV 访问。未加密的数据不应信任存储。两个站点上的可用空间都不算过多。将会有很多较小的文件发生变化,因此没有定期完整备份(再次需要一个月)的口是心非似乎不可行。出于同样的原因,当将本地版本与从远程本地安装的版本进行比较时,rsync 很可能会很慢。 EncFS 似乎无法保存,因为随着时间的推移,另一方可能能够收集单个文件的多个版本。
答案1
btrbk
支持:
恢复备份(如果备份目标一段时间内无法访问)
buttersink
支持:
本地 btrfs 文件系统、通过 SSH 的远程 btrfs 文件系统或 S3 存储桶。
或者您可以手动执行此操作:
- 不要通过 stdout 写入 shell 管道,而是使用
-f
选项将 的数据写入send
文件:
btrfs send -f outfile
- 使用您最喜欢的可恢复传输方法(例如
rsync
)来传输文件 - 用于
btrfs receive -f outfile
从 outfile 而不是从 stdin 读取数据
答案2
据我了解,您的远程存储作为文件系统公开。我不使用btrfs
自己,但我认为快照相当于一个大的“完整备份”文件,后面跟着许多较小的“增量”文件。
在此基础上我仍然会选择,rsync
因为它是可重新启动的。除非rsync
远程主机上有可用的服务器,否则您不能使用其时髦的增量差异算法,但您可以rsync
假设源文件没有更改,并在从它已达到的字节偏移量中断后继续:
test -t 2 && progress=--progress
rsync -av $progress --partial --append --sparse /path/to/source.img /path/to/remote/storage/
如果您可以gzip
在传输源文件之前对其进行有用的操作,请这样做。 (两者都与本地到本地文件传输无关。--rsyncable
)rsync -z
rsync