无需 RAIDZ 即可实现 ZFS 防止位腐烂和静默损坏

无需 RAIDZ 即可实现 ZFS 防止位腐烂和静默损坏

我一生中从未遇到过磁盘故障,但我遇到了十几次位衰减和无声损坏。“普通”文件系统和硬件 RAID 对此毫无办法。我一直在使用应用程序级奇偶校验冗余来保护我最重要的数据,但显然效果不佳。

我知道 ZFS 会将块的校验和存储在其软件 RAID 中,这可以防止位衰减和静默损坏,或者有吗?

问题是,我不想要 RAID-Z因为它不支持扩展,这意味着如果我想要扩展的话我必须购买比我的所有数据容量更大的磁盘。

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

感谢大家的回答,根据大家的回答,我得出的结论如下:

不,没有 RAID 就无法使用 ZFS 奇偶校验,但可以在没有 RAID 的情况下使用镜像复制,这与应用程序级奇偶校验冗余没有太大区别。

答案1

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

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

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

$ zfs set copies=2 srv

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

答案2

我不认为这是 ZFS 的一个好用例。这就像您有一个理想的解决方案并试图使其适合。

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

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

当您发布问题并坚定地说“RAID 不在考虑范围内”时,解释一下为什么有这些限制可能会有所帮助,这样我们才可以帮助您回答真正的问题。

相关内容