当前位置:首页>Linux>Oracle Linux 9.6配置多路径故障处理

Oracle Linux 9.6配置多路径故障处理

  • 2026-09-18 13:31:10
Oracle Linux 9.6配置多路径故障处理

问题一:

两台Oracle Linux 9.6操作系统的服务器添加华为的共享存储,配置了多路径,但是在执行multipath -ll报下面的错误:

[root@localhost ~]# multipath -ll

180968.573566 | /etc/multipath.conf line 18, invalid keyword in the defaults section: ri_min_io

mpathb (3600062b224b0f480319557d49e2c1820) dm-3 BROADCOM,MR9560-8i

size=10T features='1 queue_if_no_path' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 0:3:111:0 sda 8:16  active ready running

180968.604802 | sdc: prio = const (setting: emergency fallback - alua failed)

mpathe (36f4fbb8100e46f63335a98e600000001) dm-4 HUAWEI,XSG1

size=31T features='1 queue_if_no_path' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 15:0:0:1  sdc 8:32  active ready running

180968.605565 | sdd: prio = const (setting: emergency fallback - alua failed)

原因分析:

查看/etc/multipath.conf配置文件,具体信息如下:

[root@localhost ~]# cat /etc/multipath.conf

defaults {

        user_friendly_names yes

        path_checker tur

        path_selector "round-robin 0"

        path_grouping_policy group_by_prio

        failback immediate

        no_path_retry 10

        ri_min_io 128

        polling_interval 8

        fast_io_fail_tmo 4

        dev_loss_tmo 20

}

devices{

  device{

        vendor                  "HUAWEI"

        product                 "XSG1"

        hardware_handler        "1 alua"

        path_checker            tur

        prio                    alua

        rr_weight               priorities

        failback                immediate

        dev_loss_tmo            20

        fast_io_fail_tmo        4

        no_path_retry           10

}

}

blacklist {

}

语法错误:ri_min_io 关键字无效

原因:第 18 行提示 invalid keyword...: ri_min_io。其实是你将历史版本的 rr_min_io(或 rr_min_io_rq)误拼写成了 ri_min_io。

在 Oracle Linux 9 的现代多路径版本中,该参数已被底层内置自动优化,无需在 defaults 节中手动配置。

本地盘被错认成多路径设备(mpathb)

隐患:mpathb 的底层是BROADCOM,MR9560-8i(本地 Broadcom RAID 卡)。这块 10.48TB 的磁盘是两台服务器各自私有的本地盘,

由于只连接了一条内部总线,多路径将其聚合为 mpathb 是完全错误的。这会导致后期本地 LVM 划分和挂载产生路径冲突。

华为共享存储多路径失效(mpathe 的 ALUA 报错)

致命隐患:提示 sdc: alua failed 且下方的路径组中只看到了sdc一条路径,sdd 报错断开。

后果:华为存储的 ALUA(非对称逻辑单元访问)机制没有被系统正确识别。此时多路径实质上已经降级为单路径紧急备用模式。

解决方案:

修改/etc/multipath.conf配置文件,使用下面文件替换

[root@localhost ~]# vi /etc/multipath.conf

# ====================================================================

# 1. 全局默认设置 (去除了错误的 ri_min_io,保留并优化了您原本的超时控制)

# ====================================================================

defaults {

    user_friendly_names    yes

    find_multipaths        yes

    polling_interval       8

}

# ====================================================================

# 2. 核心黑名单 (精确拉黑本地 Broadcom RAID 盘,放行给本地 LVM 管理)

# ====================================================================

blacklist {

        devnode "^sd[a-b]$"

}

# ====================================================================

# 3. 华为设备专属微调 (移除了冲突的 hardware_handler,保留您的超时策略)

# ====================================================================

devices {

    device {

        vendor                 "HUAWEI"

        product                "XSG1"

        path_grouping_policy   multibus

        prio                   const

        path_checker           tur

        path_selector          "service-time 0"

        failback               immediate

        no_path_retry          6

        fast_io_fail_tmo       5

        dev_loss_tmo           30

    }

}

# 重启多路径服务以重载配置

[root@localhost ~]# systemctl restart multipathdlsb

# 强行清除之前由于错误配置产生的旧磁盘映射缓存

[root@localhost ~]# multipath -F     

# 重新激活和扫描多路径    

[root@localhost ~]# multipath -ll          

# 排查系统底层是否真的认到了多条路径

[root@localhost ~]# lsblk 

# 强制多路径守候进程无条件扫描并聚合所有属于华为存储的磁盘

[root@localhost ~]# multipath -v3

[root@localhost ~]# multipath -ll    

问题二:

将/dev/sda从多路径中移除后,在使用pvcreate创建PV卷的时候出现下面的报错:

[root@localhost ~]# pvcreate /dev/sda

  Cannot use /dev/sda: device is a multipath component

原因分析:

在Oracle Linux 9.6(以及RHEL 9系列)中,虽然已经在/etc/multipath.conf中配置了blacklist,但系统内核、Device Mapper、LVM2缓存以及udev数据库中可能仍残留了该

盘属于多路径组件的元数据或绑定关系。此外,OL 9默认启用了LVM盼复管理文件(device file),这也会锁死设备状态。

解决方案:

第一步:清理 LVM 盘符管理文件(OL 9 的关键)

Oracle Linux 9引入了新特性use_devicesfile = 1,LVM会把设备WWID记录在特定文件中。如果是残留导致其被判定为multipath组件,需要将其从LVM设备文件中删除或重新扫入。

1.尝试清空缓存并刷新LVM设备列表

[root@localhost ~]# lvmdevices --deldev /dev/sda

[root@localhost ~]# pvscan --cache

2.如果后续仍旧报错,可以尝试编辑/etc/lvm/devices/system.devices,手动删除里面包含sda的那一行.

pvscan --cache的执行结果没有/dev/sda的信息,所以该步骤跳过。

第二步:清理多路径绑定与 WWID 残留

多路径服务除了配置文件外,还会在系统盘上固化 WWID。

1.彻底清空multipath中的无效路径

[root@localhost ~]# multipath -f sda

[root@localhost ~]# multipath -F

注意:如果提示 map in use,说明 Device Mapper 还在占用它

2.清理WWID记录

检查/etc/multipath/wwids文件,使用文本编辑器(如 vi)打开它,删除包含/dev/sda对应WWID的那一行,然后保存。

#查看/dev/sda对应WWID的值

[root@localhost ~]# cat /etc/lvm/devices/system.devices

#这里注释了/dev/sda的行

[root@localhost ~]#vi /etc/multipath/wwids

#/3600062b224b0f480319557d49e2c1820/

3.重启服务并刷新

[root@localhost ~]# systemctl restart multipathd

[root@localhost ~]# multipath -r

第三步:清理 Device Mapper(设备映射)残留

有时多路径已经退出了,但 Linux 内核的 dmsetup 依然维持着隐形映射。

1.检查是否有dm映射关联到sda

[root@localhost ~]# dmsetup ls | grep sda

2.如果能查到任何输出(比如叫 mpathX 或带有 sda 的名称),强制将其移除。

[root@localhost ~]# dmsetup remove <查到的映射名称>

注意:此次执行未发现该步骤的对应信息,所以未执行后面的强制删除命令。

第四步:擦除磁盘旧元数据(Wipefs)

如果/dev/sda之前属于多路径,头部可能残留了旧的 Device Mapper签名或分区表,导致LVM扫描时误判。

1.强制擦除 /dev/sda 上的所有旧签名

[root@localhost ~]# wipefs -a /dev/sda

2.触发系统重新识别

[root@localhost ~]# partprobe /dev/sda

[root@localhost ~]# udevadm settle

完成上述清理后,重新执行

[root@localhost ~]# pvcreate /dev/sda

最新文章

随机文章