找回密码
 加入我们
搜索
      
查看: 4547|回复: 2

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

[复制链接]
发表于 2022-10-3 15:20 | 显示全部楼层 |阅读模式
本帖最后由 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是否在保存副本的时候,同时在各盘上也保存对方的校验数据呢?可是从容量上又看不出增加了多少
2022_10_03_14_29_45_C8ABD2B3D5D5C6AC_.pdf_Adobe_Acrobat_Reader_DC_32_bit_.png
发表于 2022-10-3 15:55 | 显示全部楼层
没用过ZFS不知道,就拿汉明码举例,可以去搜一下原理,如果能发现错误,证明校验位和数据位无法匹配,它不需要知道正确的原始数据长什么样,就能通过位运算得到正确数据,前提是校验位和数据位还在纠错容许的范围内,当数据损坏过多,无法自校验时,就要通过备份副本来得到正确的数据了,就拿refs来举例好了,开启完整性校验功能后会定期扫一次全盘数据,能有效避免数据长期不访问到无法纠正的地步也不知道的情况
 楼主| 发表于 2022-10-3 17:14 来自手机 | 显示全部楼层
uuyyhhjj 发表于 2022-10-3 15:55
没用过ZFS不知道,就拿汉明码举例,可以去搜一下原理,如果能发现错误,证明校验位和数据位无法匹配,它不 ...

原来还可以这样,谢谢大佬
没想到在不明显增大原文件体积的情况下,还有这种方法,能准确找到错误位置
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-11-30 19:35 , Processed in 0.009491 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表