在一堆服务器上,我希望自动测试软件 RAID。
检查是否是一个可行的解决方案/proc/mdstat?
做个性仅当有软件 RAID 时才列出?
如果没有软件 RAID,我可以停止这些守护进程吗?mdmonitor mdadm mdmpd
答案1
是的,如果您感兴趣的是
mdadm
软件raid(而不是lvm
其他btrfs
),这可能是最快和最简单的方法 - 但raid设备名称是任意的(所以你不能仅仅假设它们会匹配^md[0-9]+
- 大多数会匹配,但是他们不必这样做,默认/标准将来可能会改变)。顺便说一句,这是一个 python
/proc/mdstat
解析器:https://github.com/truveris/py-mdstat/(这包括一个以 json 格式mdjson
打印的工具)/proc/mdstat
这只是我在谷歌上找到的第一个,肯定还有
perl
其他awk
语言的。这是一个非常快速且肮脏的
awk
单行代码,用于检测是否有任何 raid 设备(假设如果第一行之后的任何输入行的第二个字段是冒号:
,则表示 raid 设备):awk 'NR > 1 && $2 == ":" {found++}; END {exit !found}' /proc/mdstat
如果找到一个或多个设备,则返回 true (0),否则返回 false。
Personalities
mdadm
只是列出了内核支持的 raid类型。确实如此不是表明其中任何一个都在被使用,只是内核编译了必要的驱动程序(或加载了模块)当然,为什么不呢。如果它们没有做任何有用的事情,则无需运行它们,甚至无需安装它们。