iangaouo 发表于 2022-10-3 15:20

请教各位大佬 ZFS mirror 可以修复静默错误吗

本帖最后由 iangaouo 于 2022-10-3 15:24 编辑

ZFS 在读取时自动校验文件块,并在出现数据不一致时向操作系统回报 IO Error.

假设由A,B,C 3盘组RaidZ,只要不是2个盘在同一个位置出现静默错误,都能通过运算 ,校验并修复另一个盘的正确数据

但是如果由 A,B 组镜像 ,其中任意1个盘出现静默错误,系统又怎么知道哪一个才是正确的副本呢[困惑]

我在查看Oracle关于ZFS的文档,里面也只是说明它有自我修复的功能,但是并未找到 ZFS mirror 修复静默错误的原理

请问各位大佬有了解的吗,谢谢~~


话说,如果双盘组是Snapraid,1盘是原始数据,另外1盘是校验数据,我还能理解

如果这么想的话,ZFS mirror是否在保存副本的时候,同时在各盘上也保存对方的校验数据呢?可是从容量上又看不出增加了多少

uuyyhhjj 发表于 2022-10-3 15:55

没用过ZFS不知道,就拿汉明码举例,可以去搜一下原理,如果能发现错误,证明校验位和数据位无法匹配,它不需要知道正确的原始数据长什么样,就能通过位运算得到正确数据,前提是校验位和数据位还在纠错容许的范围内,当数据损坏过多,无法自校验时,就要通过备份副本来得到正确的数据了,就拿refs来举例好了,开启完整性校验功能后会定期扫一次全盘数据,能有效避免数据长期不访问到无法纠正的地步也不知道的情况

iangaouo 发表于 2022-10-3 17:14

uuyyhhjj 发表于 2022-10-3 15:55
没用过ZFS不知道,就拿汉明码举例,可以去搜一下原理,如果能发现错误,证明校验位和数据位无法匹配,它不 ...

原来还可以这样,谢谢大佬[可爱]
没想到在不明显增大原文件体积的情况下,还有这种方法,能准确找到错误位置
页: [1]
查看完整版本: 请教各位大佬 ZFS mirror 可以修复静默错误吗