这是我在论坛上的第一篇文章,所以请耐心等待。
我是 Linux 环境的新手,也是 raid 配置的新手。我正在做一个工作项目,其中我正在测量 RAID5 重建时间。
我目前在 RAID5 配置中有 4 个活动驱动器。我将使其中之一失败。
当我其中一个驱动器出现故障时,它会自动开始重建吗?此外,我想跟踪重建所需的时间。
我知道 /proc/mdstat 会告诉我它的进度,但我希望能够在重建时离开,并返回一些日志来告诉我重建需要多长时间。
预先感谢阅读本文的人。
答案1
当我其中一个驱动器出现故障时,它会自动开始重建吗?
除非阵列中已有备用部分,否则只有当您手动将另一个驱动器添加到阵列时,它才会开始重建。未经许可无法很好地获取随机驱动器。
请注意,虽然驱动器尚未从阵列中踢出,但使用mdadm --replace
可能是开始重建的更好方法;它允许要更换的驱动器协助重建过程。
返回一些日志,告诉我重建花了多长时间
您可以使用带有时间戳的日志消息来获取准确的时间。
[117687.034515] md: recovery of RAID array md100
...
[117709.482483] md: md100: recovery done.
然后等待mdadm --wait /dev/md100
正在运行的操作完成。如果将其结合起来,time
您可以从实用程序的角度测量花费的时间mdadm
,但内核本身打印的时间戳应该更准确。如果这种准确性对你的情况很重要......
要获得更详细的统计信息(哪个部分花了这么长时间?),您必须自己监控驱动器并在整个过程中记录其吞吐量,mdadm
这并不能真正帮助您。您可以通过/proc/mdstat
sysfs 界面或通过 sysfs 界面查看当前进度,其中有/sys/block/md100/md/[dev-sdx/recovery_start]
很多有趣的内容,因此您不必总是解析人类可读的 mdstat。