Linux中通过Multipath实现多路径存储冗余,核心是识别同一LUN的多条物理路径并自动故障切换与负载均衡;需确保硬件就绪、加载dm_multipath模块、安装multipath-tools、扫描生成mpath设备、定制/etc/multipath.conf并持久化配置。

在 Linux 中通过 Multipath 实现多路径存储冗余,核心是让系统识别同一块 LUN 的多条物理路径(如从不同 HBA 卡、交换机或控制器),并自动故障切换与负载均衡。关键不在于“装软件”,而在于正确识别路径、屏蔽重复设备、配置策略并验证状态。
确认硬件与基础环境就绪
确保以下条件满足,否则 multipath 无法正常工作:
- 服务器配备至少两块 FC 或 iSCSI HBA(或支持多路径的 NVMe-oF 控制器)
- 存储阵列已为同一 LUN 映射多个路径(例如:Controller A 和 Controller B 同时导出 LUN 10)
- 光纤交换机 zone 配置正确,主机可同时看到同一 LUN 的多个 WWPN 路径
- 内核已加载 dm_multipath 模块(modprobe dm_multipath 可手动加载;检查 lsmod | grep multipath)
安装与启用 multipath-tools
不同发行版命令略有差异,但目标一致:安装工具集并启用服务:
- RHEL/CentOS/AlmaLinux:dnf install -y device-mapper-multipath,然后 systemctl enable --now multipathd
- Ubuntu/Debian:apt install -y multipath-tools,再运行 systemctl enable --now multipath-tools
- 安装后默认会生成基础配置文件 /etc/multipath.conf(首次启用前建议备份)
识别并生成 multipath 设备
执行扫描和初始化,让系统发现多路径拓扑:
- 刷新 SCSI 总线:运行 echo "- - -" > /sys/class/scsi_host/host*/scan(适用于 FC/iSCSI)
- 查看原始路径:用 ls /dev/sd* 或 lsscsi -s 确认是否看到多个类似 /dev/sdb、/dev/sdc 的磁盘(它们可能指向同一 LUN)
- 生成 multipath 映射:multipath -v2(详细模式),成功后会在 /dev/mapper/ 下生成如 mpathb 这样的设备,同时创建符号链接 /dev/dm-2
- 查看结果:multipath -ll 显示路径组、状态(active/passive)、WWID 和策略(如 round-robin 0)
定制化配置与持久化
默认配置通常不够健壮,需编辑 /etc/multipath.conf 做针对性设置:
- 取消注释并启用 defaults 段,设 user_friendly_names yes(便于识别 mpatha/mpathb)
- 在 devices 段中为你的存储厂商添加专属配置,例如 Dell EMC PowerStore:
- device {
- vendor "DellEMC"
- product "PowerStore"
- path_grouping_policy multibus
- failback immediate
- rr_weight priorities
- no_path_retry 12
- }
- 修改后重载配置:multipathd reconfigure,再用 multipath -r 刷新设备
- 若需开机自动映射,确保 /etc/fstab 中挂载使用 /dev/mapper/mpathx(而非 /dev/sdX),并添加 _netdev 选项(尤其 iSCSI)


















