关于硬盘的 URE(Non-recoverable read errors per bits read)错误以及 FastCopy 的验证功能 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
vempx
V2EX    NAS

关于硬盘的 URE(Non-recoverable read errors per bits read)错误以及 FastCopy 的验证功能

  •  a href="Javascript:" Onclick="downVoteTopic(514024);" class="vote">
  •   vempx 2018 年 12 月 4 日 4308 次点击
    这是一个创建于 2606 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前两天 NAS 炸了,于是各种看资料,发现硬盘有个 URE 错误率的指标,了解这个指标以后从此再也不用 RAID5 了……
    那么关于 URE 有个问题想请教一下大家,就是如果和 RAID5 没关系,只是在普通的复制数据,应该也是有可能碰到 URE 错误的吧。看描述好像这种错误硬盘自己不知道,那假如在复制的时候真的遇见了,是不是可以理解为写入目标盘的某个 bit 是错的?如果存在这种情况的话,那 FastCopy 的验证功能是否能够避免?
    FastCopy 帮助文档里是这么描述验证工作流的:
    Action detail: Read(Src) -> MD5(Src) -> Write(Dst) -> Read(Dst) -> MD5(Dst) -> Compare MD5(Src/Dst) (All actions are processed in parallel as much as possible)
    它读源文件和算 Hash 好像是同时进行的,那么是不是可以理解为,如果硬盘读错了,他也就跟着拿错误的源数据做 Hash,然后把错误的源数据写入目标盘,再读一遍目标盘有错误的数据计算 Hash 做对比?如果是这样的话,是不是它并不能避免 URE 错误带来的影响?
    8 条回复    2018-12-05 11:23:08 +08:00
    ryd994
        1
    ryd994  
       2018 年 12 月 4 日 via Android
    从你说的流程来说,不能
    这个问题 zfs 可解
    Osk
        2
    Osk  
       2018 年 12 月 4 日 via Android
    我觉得不能,最起码它可能受操作系统缓存的影响。主要是读取的文件本身可能就坏的。

    btrfs raid 1 应该能解决这个问题:从磁盘读文件,计算 crc/hash,如果不一致,从 raid 镜像中尝试读取并校验,直到得到完整数据,否则 io error。btrfs 也支持 scrub,读取所有已有数据,利用 raid1 镜像和 crc 自动检测并修正写入不正确的数据或损坏的数据,两块盘只要不是同时坏同样位置的扇区应该都能抢救下。btrfs raid5 目前还不能用,有 bug。
    vempx
        3
    vempx  
    OP
       2018 年 12 月 4 日
    @Osk 那意思是说,极端情况下,NTFS 也好 EXT4 也好这个毛病都无解了?
    whileFalse
        4
    whileFalse  
       2018 年 12 月 4 日
    我记得扇区是有校验和的。理论上读出错数据是会重读的。
    vempx
        5
    vempx  
    OP
       2018 年 12 月 4 日
    @whileFalse 这个 URE 错误好像是校验和也无法发现的,似乎就是硬盘根本无法得知自己读错了。
    gamexg
        6
    gamexg  
       2018 年 12 月 4 日
    微软的 ReFS 也可解决这个问题。
    但是单盘就好别用这个,Refs 再碰到不可修复错误时直接删除出错文件来解决这个错误。
    vempx
        7
    vempx  
    OP
       2018 年 12 月 4 日
    emmmmmm
    群晖的系统是用 LVM 组的 RAID,然后再上面再跑 btrfs。
    虽说原生 btrfs RAID5 有 bug,但是原生的 btrfs RAID1 应该是没问题的,不知道群晖里面怎么用原生 btrfs RAID1
    Osk
        8
    Osk  
       2018 年 12 月 5 日 via Android
    @vempx 是啊,好像这两种 fs 都是没有校验码的,读出来的文件坏了就是坏了,关键是还不知道它坏了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2503 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 15:48 PVG 23:48 LAX 07:48 JFK 10:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86