Linux多路径配置教程:multipath设置详解
时间:2026-03-30 22:12:28 124浏览 收藏
本文深入解析Linux环境下multipath多路径软件的完整配置流程,直击SAN存储挂载中同一LUN被识别为多个/dev/sd*设备、重启后设备名频繁漂移、ASM或LVM无法稳定识别磁盘等核心痛点,系统性地提供了从安装启用、黑名单精准过滤系统盘、基于WWID绑定持久化别名、iSCSI双路径专项适配,到动态故障注入验证的五步实战方案,每一步均可独立实施且覆盖生产环境关键风险点,助您快速构建高可用、可预测、易维护的存储路径管理体系。

如果您在Linux主机上挂载SAN存储时发现同一LUN通过多条光纤路径识别为多个/dev/sd*设备,且重启后设备名频繁变动、无法稳定挂载或ASM无法识别持久化磁盘,则需配置multipath多路径软件实现路径聚合与设备名固化。以下是多种可独立实施的配置方法:
一、基础安装与服务启用
该方法适用于最小化安装系统,确保multipath核心组件就位并启动守护进程。multipathd服务是路径监控与故障切换的核心运行实体,必须处于活动状态才能响应路径变化。
1、检查是否已安装device-mapper-multipath包:rpm -qa | grep device-mapper-multipath
2、若无输出,执行安装命令:yum -y install device-mapper-multipath
3、初始化multipath配置文件(生成默认模板):mpathconf --enable --with_multipathd y
4、启动并设为开机自启:systemctl start multipathd && systemctl enable multipathd
二、黑名单精准过滤与系统盘保护
默认配置将所有块设备纳入黑名单,必须显式排除本地磁盘(如sda),否则multipath会错误聚合系统盘导致启动失败或数据错乱。通过devnode和wwid双重过滤可提升安全性。
1、编辑配置文件:vi /etc/multipath.conf
2、在blacklist段内添加以下内容(保留原有注释结构):devnode "^sda"\ndevnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"\ndevnode "^hd[a-z]"\nwwid "36005076b08164f4011ae88b23efb95fe"
3、确认defaults段启用友好名称:defaults { user_friendly_names yes }
4、重载配置并验证黑名单生效:multipath -t | grep -A 10 "blacklist"
三、基于WWID的持久化别名绑定
为关键LUN分配固定别名(如mpath_oradata),可彻底解决设备名漂移问题,使Oracle ASM、LVM等依赖稳定设备路径的组件免于配置失效。该方式通过/var/lib/multipath/bindings文件实现WWID到别名的硬映射。
1、获取目标LUN的WWID:scsi_id -g -u -s /block/sdb(替换sdb为实际路径)
2、手动编辑绑定文件:vi /var/lib/multipath/bindings
3、追加一行格式为:mpath_oradata 3600508b4000c3af700008000002d0000(左侧为自定义别名,右侧为上步获取的WWID)
4、刷新multipath并强制重建映射:multipath -F && multipath -v2
四、iSCSI双路径模拟环境专用配置
在无真实FC-SAN环境下,可通过iSCSI Target绑定双IP模拟双路径。此时需关闭iSCSI客户端的路径自动发现机制,强制multipath接管所有路径,避免iscsid与multipathd冲突。
1、停用iSCSI服务防止干扰:systemctl stop iscsid && systemctl disable iscsid
2、修改multipath.conf,在defaults段添加:find_multipaths yes\npath_grouping_policy multibus
3、在devices段为iSCSI设备指定策略:devices {\n device {\n vendor "IET"\n product "VIRTUAL-DISK"\n path_grouping_policy "multibus"\n features "1 queue_if_no_path"\n no_path_retry 15\n }\n}
4、重新扫描并列出拓扑:iscsiadm -m discovery -t st -p 192.168.1.100\nmultipath -v2 && multipath -ll
五、动态路径刷新与故障注入验证
生产环境中需验证multipath对单路径中断的实时响应能力。通过主动删除路径并观察设备状态变化,可确认failover机制是否正常工作,避免配置存在隐性缺陷。
1、查看当前活跃路径:multipath -ll | grep -A 5 "active"
2、模拟某条路径断开(以sdb为例):echo 1 > /sys/block/sdb/device/delete
3、等待5秒后检查路径状态:multipath -ll | grep -E "(status|failed|ready)"
4、恢复路径并验证reinstate:echo "- - -" > /sys/class/scsi_host/host*/scan\nmultipath -r
今天关于《Linux多路径配置教程:multipath设置详解》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
104 收藏
-
110 收藏
-
386 收藏
-
389 收藏
-
180 收藏
-
266 收藏
-
411 收藏
-
228 收藏
-
125 收藏
-
317 收藏
-
328 收藏
-
411 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习