我正在尝试寻找有关 ZFS 如何工作的一些问题的答案:
- 它是否在数据更改后立即通过校验和检测静默损坏(与校验和不同),以某种方式自动检测(然后如果有 RAIDZ 1,它将通过从镜像磁盘获取来修复),或者仅在访问损坏的文件时才有效(在阅读期间,当然还有擦洗)?
- 我现在对传统的硬件 RAID 感到困惑 - 它能否以与 ZFS 相同的确定性检测静默损坏以及损坏的位置,如果可以 - 它是否也能够像 ZFS 一样进行修复?
只需要更精确地解释其工作原理即可。
谢谢。
答案1
校验和验证发生在读取时,并且要读取所有内容(可用空间除外),您可以定期清理。对于Software RAID (mdadm),您可以运行--action=check
然后查看是否mismatch_cnt
仍然为0。
RAID仅尝试修复读取错误(通过重写数据);对于不匹配的数据,您必须手动确定它是否相关(是否有可用空间)以及数据或奇偶校验是否正确。
本质上,使用 RAID,您可以相信存储不会出现异常行为并正确报告错误,而不是默默地返回错误数据。 RAID 没有校验和,也不验证每次读取的奇偶校验。