我计划在 NAS(将使用 btrfs 文件系统)上备份我的个人文件。这是一款便宜的 NAS,不幸的是它没有 ECC 内存。在我的备份策略中,将使用 Crashplan 和 Mega 等服务(我可能会同时使用这两种服务以防万一)来获取文件的其他副本(在线)。为了进一步实现冗余,nas 本身可以通过 USB 连接进行外部备份。那么,如果我注意到一个或多个文件上的数据有所退化,您认为会发生什么。
某个地方会有一个安全/可用的副本吗?我以前从未使用过 Crashplan,但他们应该以某种方式保留原始版本,因为他们无法注意到文件中的任何更改,对吗?
说实话我有点困惑,我想了解我的策略是否真的有效(直到有一天我拥有一个带有 ECC 内存的 NAS)。
非常感谢
答案1
坦率地说,如果你不愿意或无法使用 ECC RAM我不会考虑使用自我修复文件系统,例如 ZFS(如链接的论坛帖子中讨论的)或 Btrfs。
原因很简单,如果出现 RAM 问题,“自我修复”功能很容易变成“自我毁灭”。
相反,在非 ECC RAM 系统上,运行常规文件系统(如 ext4)可能更好。鉴于 Btrfs 目前的状态(开始变得稳定,但仍有许多需要解决的粗糙边缘,并且尚未看到重大的实际部署和故障经验),这会让我感到更加放心。即使是相对成熟的文件系统 ZFS,在 Linux 主机上仍然存在一些故障;Btrfs 不如 ZFS 成熟。
要检测无法本机验证数据校验和的文件系统上的位衰减,您可以使用许多可用于此目的的工具。其中一种工具(我并不隶属于它)是哈希深度它可以执行 MD5、SHA1、SHA256、Tiger 和 Whirlpool 哈希。如果您定期运行此程序(与 ZFS 或 Btrfs 文件系统清理相同),那么您可以相当确定您将捕获可能发生的任何性能下降。然后,您可以从备份中恢复受影响的文件,无论是现场还是异地。
我不熟悉 Crashplan,但我怀疑他们会查看文件元数据来确定文件是否已更改,并且由于文件元数据可能不会受到影响(除非它恰好是损坏的目标,这将相对无关紧要或导致任何哈希验证也失败),它不应该检测到文件的任何更改。因此,损坏的文件不应该进行备份。如果要确保万无一失,请配置备份解决方案,以保留至少几个旧修订版本,以防万一某个版本损坏,并在这种状态下进行备份。