楼主你这个情况分两份也没用啊。现在的情况是 2 盘坏了,重建/重新同步时发现 1 盘也坏了。定期 smart 测试很重要。smart 测试可以检测到大部分读取错误,也就是 1 盘这种情况完全可以早就发现。smart 报错的盘只能降级为下载盘,随时坏了不心疼。
你现在不定期跑 smart 测试,不定期读取数据验证,那就算你存了两份,还是躲不过盘 2 损毁,盘 1 无法读取的问题。因为你从来都没有验证过盘 1 上的数据是否能读取。没有恢复测试的备份等于不存在,因为你不知道这个备份是否还存活,备份内容是否还正确。备份不是把数据复制一份,然后指望硬件不坏就完事的。好的备份是一整套流程,从数据备份到校验到恢复,都需要定期执行。比如 zfs 定期 resilver ,就是验证数据和镜像内容。
充分证明了我一贯的观点:如今这个大硬盘时代(单盘>2TB ),任何只有 1 度冗余的 raid 都是不够的。因为重建耗时超过 24 小时,且全程是满负荷读写,非常有可能在重建过程中再挂一块。你要数据安全,raid6 以上是必须。在这一点上 raid10 都不如 raid6 ,因为 raid10 是先做 raid1 再做 raid0 。重建时负荷最大的是坏盘配对的镜像盘,所以最有可能挂的还是那一块。偏偏最不能挂的就是那一块。根据墨菲定律,raid10 的安全性和 raid5 没有本质区别。
对于家庭使用,瓶颈是网速,raid10 的性能优点没有实际意义。
对于生产环境,性能是重点,数据安全可以通过别的方式解决。比如近年流行的分布式文件系统。不仅可以应对硬盘故障,还能应对机器任何部分的故障(比如电源炸了)。
@
datocp #5 你描述的情况属于冷错误。硬盘没有报错,但返回了错误数据。raid 原版模型里没有考虑这种情况。原版模型里硬盘只有正常工作和彻底掉线两种状态。不会卡死,不会返回错误数据。
ZFS 带校验,可以排除冷错误问题。高级的 raid 卡可以在后台定期校验,也可以自动检测冷错误。
非启动盘,一般不建议使用硬 raid 。你说的小文件速度慢,基本可以确定为没有 BBU cache ,也没有 nand cache 。自带非易失缓存的 raid 卡都是高端产品,价格不便宜。
相反,ZFS 或 btrfs 都可以加 SSD 做缓存。而且基于文件系统的 raid 可以根据文件特点做不同的写入策略,也有助于性能。