首页/系统与基础设施/存储速查/SAN 多路径配置与常用操作
SAN 与光纤通道60 条

SAN 多路径配置与常用操作

Linux SAN 多路径配置围绕三件事:正确归并阵列设备、排除本地盘、设定路径故障行为。多数参数改动 reload 生效,重建映射类命令会中断 I/O,需在业务窗口外执行。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌​​​​‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌‌​‌​‌​‌‌​‌‌​​​‌‌‌​‌​​​‌‌​‌​​‌​‌‌‌​​​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​‌‌‌​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

配置要解决的三个问题

Linux 上的 SAN 多路径由 multipathd 与 multipath.conf 组成:内核 device-mapper 提供归并与转发能力,multipathd 负责监控路径状态、按策略切换与恢复,multipath.conf 决定归并规则与路径行为。配置工作可以归纳成三件事:让需要多路径的阵列设备被正确识别并归并(必要时用 devices 段落指定策略)、把不需要归并的设备排除(blacklist)、给关键参数设定合理的故障行为(no_path_retry、failback、path_checker)。

基本信息

适用平台主流 Linux 发行版(RHEL/CentOS、SUSE、Ubuntu)
组件multipathd 守护进程、multipath 命令、device-mapper
配置文件multipath.conf,另有软件自带的默认配置
生效方式多数参数改动 reload 生效,需持久启用 multipathd
常用命令multipath -ll、multipath -v3、multipathd show paths
关键参数path_checker、prio、no_path_retry、failback

配置要点

  • 先确认归并正确:每个 LUN 一个条目、路径数符合规划
  • 用 blacklist 排除本地磁盘与非 SAN 设备,避免业务盘被误归并
  • devices 段落按厂商与型号指定策略,覆盖内置默认值便于统一管理
  • path_checker 与 prio 要与阵列能力匹配,支持 ALUA 的阵列交给内核处理
  • no_path_retry 决定全路径故障时排队还是立即返错,直接影响应用行为

multipath.conf 精简示例

multipath.conf 精简示例
defaults {
    user_friendly_names yes      # 使用可读的映射名
    find_multipaths yes          # 自动判断哪些设备需要多路径
    path_checker tur             # 路径健康检查方式
    failback immediate           # 路径恢复后立即回切
    no_path_retry 10             # 全路径故障时排队重试的次数
}
blacklist {
    devnode "^sda"               # 排除本地系统盘
}
devices {
    device {
        vendor "<厂商代号>"      # 按阵列型号指定策略,取值以厂商文档为准
        product "*"
        path_grouping_policy group_by_prio
        prio alua
    }
}

生效与验证

生效与验证
multipathd -k'show config'      # 查看合并后的生效配置
systemctl reload multipathd     # 多数参数改动可用 reload 生效
multipath -ll | grep -c running # 路径数量与状态核对
multipath -ll | head -20        # 确认路径组与优先级分布
# 谨慎操作:重建映射会短暂中断 I/O,业务运行中不要执行
multipath -F && multipath

关键参数与注意点

参数作用注意点
path_checker判断路径可用性的探测方式tur 通用,部分阵列需专用方式
prio决定路径优先级配错会让 I/O 长期走非优化路径
path_grouping_policy路径如何分组group_by_prio 配合 ALUA 常用
no_path_retry全路径故障时的行为数值为排队重试,fail 表示立即返错
failback路径恢复后是否回切影响时延与负载分布
部分发行版把默认配置放在软件目录下,用户配置只做覆盖;排查「改了没生效」时先看合并后的生效配置,而不是只看自己写的那一份。
把本地磁盘意外纳入多路径归并,可能让根设备名变化,重启后系统无法引导。生产环境修改配置前先在测试机验证 blacklist 是否覆盖了所有本地盘。

易错点

  • 改完配置不 reload 就以为生效:实际仍按旧参数运行,只有在故障演练时才暴露
  • 使用清空映射类命令:运行中的业务 I/O 会被切断,属于高危操作
  • 未排除本地盘:系统盘被归并后设备名变化,可能导致系统无法启动
  • prio 与阵列能力不匹配:路径优先级判断错误,I/O 长期走非优化路径

数据来源与参考

  • Linux multipath.conf(5) 与 multipathd 官方文档
  • Red Hat 存储管理与 device-mapper-multipath 文档
  • 阵列厂商提供的多路径配置说明

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/san-multipath-configuration.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌​​​​‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌‌​‌​‌​‌‌​‌‌​​​‌‌‌​‌​​​‌‌​‌​​‌​‌‌‌​​​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​‌‌‌​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​