ZFS 在没有 RAIDZ 的情况下防止位腐烂和静默损坏

7E1*_*C9A 3 raid zfs filesystems

我一生中从未遇到过磁盘故障,但我遇到了十几个位腐烂和无声的损坏。“普通”文件系统和硬件 RAID 对此完全无能为力。我一直在使用应用程序级奇偶校验冗余来保护我最重要的数据,但它显然不是很有效。

我知道 ZFS 存储软件 RAID 中块的校验和,它提供防止位腐烂和静默损坏的保护,或者是吗?. 问题是,我不想要RAID-Z,因为它不支持扩展,这意味着如果我要扩展,我必须购买容量大于我所有数据的磁盘。

那么是否可以在没有 RAID 或不等磁盘大小的 RAID 的情况下使用文件系统级奇偶校验?例如,通过分配部分磁盘空间来存储“块”的奇偶校验,而不是像 RAID5 那样将相同大小磁盘的奇偶校验存储在另一个磁盘上。

谢谢大家的回答,以下是根据回答得出的结论:

不,在没有 RAID 的情况下不可能使用 ZFS 奇偶校验,但是可以在没有 RAID 的情况下使用镜像副本。

eww*_*ite 7

我认为这不是 ZFS 的好用例。就好像您有一个想要的解决方案并且正在努力使其适合。

是的,有 ZFScopies=参数,它将努力在磁盘的不同扇区上存储文件的多个副本,但它不能替代真正的冗余。

请参阅:https : //jrs-s.net/2016/05/02/zfs-copies-equals-n/

当您发布问题并说出诸如“RAID 不在讨论范围内”之类的坚定言论时,解释一下您为何有这些限制可能会有所帮助,以便我们可以帮助回答真正的问题。


Mic*_*ton 6

校验和只能检测损坏。它无法帮助您恢复数据。

如果您不愿意在两个(或更多)vdev 上镜像您的数据,那么您可以设置copiesZFS 属性,这将告诉 ZFS 保留数据的n 个副本(1、2 或 3)。如果一份副本损坏,另一份可用于恢复数据。

$ zfs get copies srv
NAME  PROPERTY  VALUE   SOURCE
srv   copies    1       default

$ zfs set copies=2 srv
Run Code Online (Sandbox Code Playgroud)

请记住,这并不能保护您免受实际磁盘故障的影响(即使您以前从未经历过这种故障也可能发生)。这不是备份。对您的数据进行适当的备份。

  • @BeowulfNode42 这个问题和答案专门针对 ZFS。所有这些都是事实,但完全无关。 (2认同)