@
mikewang #9 对的
raid 的设计前提是假设磁盘坏就是彻底失效。raid 无法解决冷错误问题。zfs 有 checksum ,所以可以。
@
testver #12 不仅如此,单盘越大也越不安全。基本上 3tb 以上就不建议用 raid5 而至少应该 raid6
@
qingmuhy0 #16 首先,raid5 用的不是海明码,raid2 才是
raid5 本身没有 checksum ,部分实现有,比如 zfs
其次,注意你说的情况和#9 说的不同,这种情况下 raid5 确实有足够的信息去检测到不一致,但无法知道是哪个盘不一致,因此也就无法踢出这个盘重建。
zfs 可以是因为 checksum 可以指出是哪个盘有错误。这样剩余的盘有足够的信息重建。
从实现上来说,raid 的目标是高性能高可用,而不是数据保全。一般的 raid 实现不会在读取时校验数据。类似的,对于 raid1 ,如果两盘数据不一致,raid 标准并没有规定要返回哪个版本。返回任何一个都不违反协议设计。
@
Ericality raid1 一样完蛋,raid1 只有 1 位冗余,最坏情况下和 raid5 是一个水平。
raid1 一样有数据不一致问题。一样有单盘重建时间的问题。raid6 有 2 位冗余,因此理论上可以纠正 1 位错误(实际上没有实现),或者恢复 2 位数据。
大单盘的重建时间是以天计的。所以重建过程中再损坏一块的可能性很大。raid1 重建完全依赖于镜像盘,因此同样无法幸免。
2 位冗余意味着只要你不是重建时连坏三块,数据就还有救。