4

我正在设置一个家庭服务器,主要用于备份。我有大约 90GB 的个人数据必须以最可靠的方式备份,同时仍保留磁盘空间。我想拥有完整的文件历史记录,这样我就可以在任何特定日期返回任何文件。

由于数据的大小,不能选择完整的每周备份。相反,我正在寻找增量备份解决方案。但是,我知道一组增量备份中的单个损坏会使整个系列(超出某个点)无法恢复。因此,简单的增量备份不是一种选择。

我研究了许多解决这个问题的方法。首先,我将使用反向增量备份,以便最新版本的文件丢失的可能性最小(旧文件不那么重要)。其次,我想用某种冗余来保护增量和备份。Par2 奇偶校验数据似乎非常适合这项工作。简而言之,我正在寻找具有以下要求的备份解决方案:

  • 反向增量(以节省磁盘空间并优先考虑最近的备份)
  • 文件历史记录(一种更广泛的类别,包括反向增量)
  • Par2 奇偶校验数据增量和备份数据
  • 保留元数据
  • 高效的带宽(节省带宽;无需为每个增量复制整个目录)。大多数增量备份解决方案都应该以这种方式工作。

这将(我相信)确保文件完整性和相对较小的备份大小。我已经查看了许多备份解决方案,但它们存在许多问题:

  • Bacula - 简单的普通增量备份
  • bup - 增量并实现 par2 但不是反向增量且不保留元数据
  • 重复性 - 增量、压缩和加密,但不是反向增量
  • dar - 增量和 par2 很容易添加,但不是反向增量和没有文件历史记录吗?
  • rdiff-backup - 几乎可以满足我的需要,但它不支持 par2

到目前为止,我认为 rdiff-backup 似乎是最好的折衷方案,但它不支持 par2。我想我可以很容易地将 par2 支持添加到备份增量中,因为它们不会在每个备份中都被修改,但是其余的文件呢?我可以为备份中的所有文件递归地生成 par2 文件,但这会很慢且效率低下,而且我不得不担心备份和旧 par2 文件期间的损坏。特别是,我无法区分更改的文件和损坏的文件,我不知道如何检查此类错误或它们将如何影响备份历史记录。有谁知道更好的解决方案?有没有更好的方法来解决这个问题?

感谢您阅读我的困难以及您可以给我的任何意见。任何帮助将不胜感激。

4

2 回答 2

2

http://www.timedicer.co.uk/index

使用 rdiff-backup 作为引擎。我一直在研究它,但这需要我使用 linux 或虚拟机设置“服务器”。

就我个人而言,我使用 WinRAR 进行伪增量备份(它实际上是对最近的文件进行完整备份),每天按计划任务运行。它同样是一个“推送”备份。

它不是真正的增量(或反向增量),但它会根据上次更新的时间保存不同版本的文件。我的意思是,即使文件相同,它也会保存今天、昨天和前几天的版本。您可以设置存档位以节省空间,但我不再打扰,因为我备份的只是小型电子表格和文档。

RAR 有它自己的奇偶校验或恢复记录,您可以设置大小或百分比。我使用 1%(百分之一)。

它可以保存元数据,我个人跳过了高分辨率的时间。

它可以很有效,因为它可以压缩文件。

然后我所要做的就是将文件发送到我的备份。我将它复制到另一个驱动器和网络中的另一台计算机。不需要真正的服务器,只需共享。尽管 Windows 工作站有 10 个连接限制,但您不能对太多计算机执行此操作。

因此,出于我的目的(可能适合您的目的),我每天为过去 7 天内更新的文件备份我的文件。然后我有另一个计划备份,它备份在过去 90 天内更新的文件,每月或每 30 天运行一次。

但我使用的是 Windows,所以如果你实际上是在设置 Linux 服务器,你可以查看 Time Dicer。

于 2012-05-16T08:16:34.160 回答
0

由于没有人能够回答我的问题,我将写一些我在研究该主题时发现的可能的解决方案。简而言之,我相信最好的解决方案是 rdiff-backup 到 ZFS 文件系统。原因如下:

  • ZFS 对存储的所有块进行校验和,并且可以轻松检测错误。
  • 如果您将 ZFS 设置为镜像您的数据,它可以通过从好的副本复制来恢复错误。
  • 这比完整备份占用的空间更少,即使数据被复制了两次。
  • 原件和镜像出现错误的可能性很小。

就我个人而言,我没有使用这个解决方案,因为 ZFS 在 Linux 上工作有点棘手。Btrfs 看起来很有前途,但多年的使用并没有证明它是稳定的。相反,我会选择一个更便宜的选择,即简单地检查硬盘 SMART 数据。硬盘驱动器应该自己做一些错误检查/纠正,通过监控这些数据,我可以看到这个过程是否正常工作。它不如额外的文件系统奇偶校验,但总比没有好。

还有一些注意事项可能会让研究可靠备份开发的人感兴趣:

  • par2 似乎是过时且有缺陷的软件。zfec 似乎是一个更快的现代替代方案。bup 中的讨论不久前发生:https ://groups.google.com/group/bup-list/browse_thread/thread/a61748557087ca07
  • 在写入磁盘之前计算奇偶校验数据更安全。即不写入磁盘,读取它,然后计算奇偶校验数据。从 ram 执行此操作,并与原始版本进行核对以获得额外的可靠性。这可能只有使用 zfec 才能实现,因为 par2 太慢了。
于 2012-02-26T19:49:56.060 回答