@
czwstc 你看上下文。他杠的就是 raid1 可以坏 200 盘。
两个阵列独立,但是你的数据分在两个阵列存。实质上也是 raid10 了。
正确做法是用 zfs raidz2 ,因为 raid 本身就不带校验。能恢复数据但是大部分 raid 系统不会时刻检查。raid 处理不了冷错误。raid1 虽然格式简单,但仍然解决不了冷错误问题,如果手贱分开可写挂载了一下,那之后还得重建。
你分开两个阵列,其实是减少了损失范围,如果重建时再挂一块,或者有坏道,那你在这个阵列上的数据还是没了。虽然比起 raid10 全损是好那么一点。
“而在恢复磁盘需要奇偶校验的时候,RAID 组的所有磁盘都需要参与恢复数据。如果有其他磁盘的坏道平时没发现,就需要给所有磁盘做镜像慢慢搞了,这可是个大工程。”
这个问题确实存在,这也是不推荐大硬盘用 raid5 的原因,但我不认同 raid1 可以解决此问题。raid1 重建期间等于 raid0 (单盘)。如果这时候剩下的盘上发现冷错误或者坏扇区了,你又能做什么呢?手工识别补齐数据吗?
zfs scrub 就是用来预防这个问题的:1.检查、修复冷错误 2.确保数据可以读取。我的 nas 每周都会 scrub 一次。
除了冷错误,更大的问题是硬盘不是绝对正确的。所有硬盘都有误码率。如果硬盘扇区结构的 ECC 没有检查到错误的话,读出的数据就错了。
如果重建时发现坏道,而你用的是 raidz2/raid6 的话,那很好办:直接放弃那块盘,就当是损坏了两块盘。补上两块盘重建。而 zfs 本身带校验,可以识别冷错误。
raid1 和 5 (抬杠用大于 2 盘的 raid1 不算)最大的问题是:现在的硬盘相对其读写速度来说都太大了。URE ( unrecoverable error )和硬件故障,两个概率加起来,导致重建成功率甚至不足一半
https://magj.github.io/raid-failure/这个计算器其实就是很简单的数学,你也可以自己手算。