![Linux MD Raid 同一设备检测](https://linux22.com/image/629576/Linux%20MD%20Raid%20%E5%90%8C%E4%B8%80%E8%AE%BE%E5%A4%87%E6%A3%80%E6%B5%8B.png)
如果多个设备共享同一个父设备,Linux md raid 驱动程序会延迟多个设备的恢复/验证。
我们已设置磁盘通过设备映射器进行分区,它们使用 bcache 等,最后使用 md 进行 raid。不幸的是,这意味着 md 驱动程序无法识别它们共享相同的物理父级。当自动验证开始时,这会导致严重的 I/O 拥塞(每个物理磁盘上都有 10 个 raid)。
我试图找到有关如何检测同一个父级的机制的任何文档,但失败了。
有什么方法可以“提示” md 驱动程序哪些 raid 位于哪些物理磁盘上或哪些 md raid 共享同一个父级?
另一个选项是禁用自动验证并编写我自己的“逐个”验证脚本,或者可能已经有某种守护进程可以执行此操作。但我觉得让检测工作起来是更好的方法...
(我不想改变设置,因为其他方面我们已经非常满意了)
编辑:这是一个 Fedora Linux(准确地说是版本 19)
答案1
我假设是一个基于 Red Hat 的系统,因为您没有指定(这可能很重要):
快速修复方法是编辑/etc/sysconfig/raid-check
并设置MAXCONCURRENT=1
。这将导致所有 RAID 阵列被顺序检查。
至于算法,/usr/sbin/raid-check
只是一个 shell 脚本,您可以轻松阅读它以了解它在做什么。