多路径服务未启动的根本原因是dm_multipath内核模块未加载,需先modprobe加载模块并配置持久化,再生成基础multipath.conf配置文件、校验wwid一致性、设置user_friendly_names及别名绑定,三者缺一不可。

多路径服务没起来,multipath -ll 报错说“DM multipath kernel driver not loaded”
这不是配置问题,是底层驱动根本没加载。很多最小化安装的系统连 dm_multipath 内核模块都没自动载入,multipathd 启动了也白搭。
- 先运行
lsmod | grep dm_multipath,没输出就说明模块缺失 - 手动加载:
modprobe dm-multipath && modprobe dm-round-robin - 再启动服务:
systemctl start multipathd,别跳过这步直接扫盘 - 如果重启后失效,得把模块写进
/etc/modules(Debian/Ubuntu)或/etc/sysconfig/modules/multipath.modules(RHEL/CentOS)
/etc/multipath.conf 为空或不存在,multipath -ll 显示 “blacklisting all devices”
这是最常被忽略的起点:没有配置文件,multipath 默认把所有设备拉黑。它不报错,只沉默——你看到的 /dev/mapper/mpath* 全是空的,或者压根不出现。
- 别手写从零开始,用
mpathconf --enable --with_multipathd y自动生成基础配置 - 生成后立刻检查
blacklist段,确认已排除^sda等系统盘,否则可能把根盘卷进多路径,导致重启失败 -
defaults { user_friendly_names yes }必须开启,否则设备名是随机哈希(如mpath-3600508b4...),运维时根本没法认 - 改完配置必须执行
multipath -r重载,systemctl restart multipathd不一定生效
扫描到了多个 sdb/sdc,但 multipath -ll 没聚合出 mpatha
物理链路通 ≠ multipath 能识别为同一设备。关键在 WWID(World Wide Identifier)是否一致——这是 multipath 判断“是不是同一个 LUN”的唯一依据。
- 先确认存储端是否开启了 ALUA 或正确配置了 iSCSI Target 的 LUN 映射,否则每条路径看到的可能是不同 WWID
- 用
scsi_id -g -u -s /block/sdb分别查各路径磁盘的 WWID,必须完全一致才可能聚合 - 如果 WWID 对不上,别硬调配置,得回存储侧检查 Zone、Masking、iSCSI Initiator Group 设置
- 临时验证可用
multipath -v2 -d(dry-run 模式),看它是否识别出重复路径,比-ll更早暴露匹配失败原因
设备名每次重启都变,/dev/mapper/mpatha 变成 mpathb
user_friendly_names yes 只保证“同一次运行中名字稳定”,不保证跨重启一致。真正持久化的只有 WWID,设备名还是可能漂移。
- 不要依赖
/dev/mapper/mpatha写/etc/fstab,一重启就挂载失败 - 用
blkid /dev/mapper/mpatha查 UUID,或者更稳妥地用wwid(格式如3600508b400105e210000900000490000) - 在
multipath.conf的multipaths段显式绑定别名:alias data_vol,再通过/dev/mapper/data_vol引用 - 别名生效前提是该 WWID 真实存在且未被黑名单拦截,否则
/dev/mapper/data_vol根本不会创建
多路径不是装完软件、扫个盘就完事的事。它卡在内核模块、存储侧映射、配置文件三者对齐的缝隙里——任何一个环节松动,multipath -ll 就给你看个寂寞。










