背景
我有一个网站的备份,该网站将其所有数据存储在一个文件中。这个文件有几 GB 大,我有许多不同的备份。其中的大部分数据基本相同,除了添加或更改的内容。
我想保留多年来我所做的所有并发备份,以防在备份过程中意外发现数据损坏。但是每月存储 10GB 文件的成本很高。
寻求解决方案
我经常思考缓解这个问题的不同方法。一个经常出现的想法是结合复制文件系统的想法,这种文件系统不需要硬盘上有自己的分区卷。类似于 truecrypt 所做的,它称之为“文件托管容器”,使用 truecrypt 程序时,您可以将该卷作为常规硬盘安装和卸载。
问题
是否有使用基于文件的容器的虚拟硬盘安装器,该容器使用数据重复数据删除文件系统?
(这个问题有点难以用语言表达,如果您对如何提出这个问题有更好的想法,请随时提供帮助。)
答案1
使用ZFS
或BTRFS
文件系统或 OpenDEDUP。
我还应该注意,您可以在 Linux 上的文件中创建“磁盘”,并使用环回(mount -o loop ...
)设备安装它们;因此它们是虚拟的。
您可能最好只是回环安装 ZFS 格式的文件;因为 ZFS 在重复数据删除方面几乎是事实上的。如果您不知道如何操作,请参阅这里。
答案2
答案3
二进制补丁实用程序可以生成一个补丁文件,如果两个文件大部分相同,则补丁文件会非常小。您可以选择文件对,生成补丁并删除目标,然后仅保存源文件和补丁文件。
我已经用于xdelta
这个目的了。
xdelta delta JanFile FebFile JanToFebPatch
xdelta delta JanFile MarFile JanToMarPatch
如果您执行完整备份 + 基于完整备份的几个增量备份,效果会很好。有多种选项可以加快速度或减少内存使用量。