我将在我的家用linux盒nas中重新组织所有硬盘,并希望使用mdadm raid进行数据保护并灵活地调整阵列的形状。但是,在使用mdadm之前,我想知道它如何处理bit rot。特别是不会导致HDD发送不可恢复的读取错误消息的位腐烂。
鉴于我可能会在nas的8个磁盘中使用至少21TB的HDD,以及有关HDD 发生故障的可能性的各种报价,我想在从单个磁盘故障进行重建的过程中,我很可能会遇到其余磁盘上出现某种形式的位腐。如果在其中一个驱动器上发生了不可恢复的读取错误,则该驱动器实际上将其报告为错误,我相信使用raid6(是吗?)应该没问题。但是,如果从磁盘读取的数据是错误的,但是磁盘没有报告这种情况,那么即使使用raid6,我也看不到如何自动纠正它。这是我们需要关注的事情吗?鉴于文章是2010年,RAID5仍然有效以及我自己在家庭和工作中取得的成功经验,事情并不一定像流行语和行销所要让我们相信的那样悲惨和沮丧,但是我讨厌因为HDD失败而不得不从备份中恢复。
假设使用模式是,最多写入几次,偶尔读取一次,那么我将需要执行数据清理。我在archlinux Wiki上看到 了mdadm命令,用于将数据清理数组为
echo check > /sys/block/md0/md/sync_action
然后监控进度
cat /proc/mdstat
在我看来,它将读取所有磁盘的所有扇区,并检查数据是否与奇偶校验匹配,反之亦然。尽管我注意到文档中非常强调说在很多情况下,“检查”操作将无法自动更正,只能进行检测,而这将由用户自行解决。
我应该选择哪种mdadm RAID级别以最大程度地保护自己免受比特腐烂的侵害,我应该执行哪些维护和其他保护步骤?而这将不能保护我免受什么侵害?
编辑:我不打算开始RAID vs ZFS或任何其他技术QA。我想特别了解mdadm突袭。这也是为什么我在Unix&Linux而不是在SuperUser上询问的原因。
编辑:答案是: mdadm仅能纠正磁盘系统在数据清理期间报告的URE,并在清理期间检测到静默位腐烂,但无法/无法解决?