目前,我正在使用 Windows 8.1 文件历史记录备份,但它有一个很大的缺点。每次更改大文件时,都会将其全部复制。例如,我有一些 GB 大小的虚拟机文件。每次运行此备份时,它都会保存该文件的完整新版本,尽管该文件可能只是更改了几个字节。这是一种巨大的浪费。
我想实现某种二进制/差异增量备份功能,以便每次新备份仅保存二进制文件中的更改,并最大程度地减少空间需求。我该怎么做?
答案1
没有真正的答案,但有一些想法:
要对文件的某个远程副本进行就地更新,您必须首先找出自上次复制以来文件的哪些部分已更改或已添加。可以维护一个校验和列表,用于检查文件的哪些部分发生了变化或被添加。n兆字节。如果没有这样的列表,您必须读取远程副本和本地副本才能找到更改。
就地更新的缺点是存在数据损坏的固有风险。如果更新失败或中止,远程副本将处于不一致的状态。
选择好的复制策略取决于几个参数:
- 是否可以高效地读取远程副本?
执行此操作的速度是多少? - 更改是分散在整个文件中还是或多或少是局部的?
- 由于校验和冲突而导致数据块的更改未被注意到的概率有多大?
必须以这样的方式选择校验和算法,以使这种情况不太可能发生。
我认为你的想法很有道理。例如,将大型 Outlook .pst 文件保存在记忆棒上非常实用。但是,我不知道有任何工具或方法可以解决上述所有障碍。
答案2
答案3
如果你不需要保留过去文件版本的存档,那么Bvckup2完全符合您的要求。