sdf 设备总是加不到 multipath 下,配置没问题,重启 multipathd 也不行。根因是 /etc/multipath/wwids 被人手动加了个 # 注释,导致对应的盘一直加载不上。

现象

sdf 的设备总是加不到 multipath 下。

/etc/multipath.conf 的配置没有问题,重启 multipathd 依然不行,报错也不明显。

排查

后来发现是 /etc/multipath/wwids 下有人手动改了:

# Multipath wwids, Version : 1.0
# NOTE: This file is automatically maintained by multipath and multipathd.
# You should not need to edit this file in normal circumstances.
#
# Valid WWIDs:
/wwid-example-0001/
/wwid-example-0002/
/wwid-example-0003/
#wwid-example-0004/   # 这里多一个 # 导致对应的 sdf 一直记载不上
/wwid-example-0005/
/wwid-example-0006/

问题就出在那一行多了一个 #,导致对应的 sdf 一直加载不上。

根因

正常来说,我们配置 /etc/multipath.conf 的 multipaths 部分,wwids 里的内容是自动生成的。

这个文件是 multipath 和 multipathd 自动维护的,正常情况下不需要手动编辑。

一旦有人手动改了(比如加了个 # 注释),multipath 就会认为这个盘不在 wwids 列表里,从而不把它加入 multipath。

小结

  • /etc/multipath/wwids 是自动维护的,正常情况下不要手动编辑;
  • 盘加不到 multipath 下,优先检查 wwids 是否被手动改过;
  • 一个多余的 # 注释,就可能导致对应的盘一直加载不上;
  • 排查问题要从源头入手,配置没问题不代表文件没问题。