Linux主机安装UltraPath多路径重启后系统无法启动

发布时间:  2015-11-15 浏览次数:  1091 下载次数:  0
问题描述

Linux主机设置LVM自动挂载,安装华为多路径( UltraPath)软件后重启系统,系统全部无法启动。 如图:


处理过程
   1.手动通过维护网口进入修复模式之后,注释掉自动挂载的本地LVM,如下图,系统启动成功

对比“问题描述”中的截图, 可以看出系统不能正常启动是因为用户设置了LVM自动挂载,而系统重启之后/dev/mapper/datavg01-data1设备无法找到。设置了自动挂载的LVM卷设备无法找到,导致系统进行fs check失败,从而系统无法正常启动。

2.由于系统在未安装多路径之前重启均正常, 所以在进入系统后,卸载多路径,打开/dev/mapper/datavg01-data1自动挂载,系统重启成功,所以初步分析问题与多路径有关。

根因
     HBA卡驱动经过多路径的调整,加载顺序就在系统本地磁盘驱动(megaraid_sas.ko)之前。这样在阵列有映射盘的情况下,本地磁盘盘符就会发生漂移根据LVM的机制,即使发生盘符漂移也不会出现LVM逻辑卷找不到的情况(LVM就是为了解决系统盘符发生漂移),怀疑现场系统的LVM配置与默认的LVM配置有差异

经过对比干净的系统(RHEL5.8升级内核,2.6.18-308.8.2.el5),LVM默认配置(/etc/LVM/LVM.conf)中没有图1所示信息:

1 linux默认配置

   进一步和客户确认,客户确实对LVM默认配置(/etc/lvm/lvm.conf)做了改动(图2),导致LVM无法扫描出漂移后盘符的卷信息。

2 客户现场配置

        filter配置项是LVM过滤配置项,用来控制LVM的设备扫描范围,从上面的配置可以看出,当本地盘sdb盘符漂移到sdu后,LVM就扫描不到,所以造成在sdb上建立的逻辑卷发现不了,从而导致系统无法启动。为了验证LVM配置对系统的影响,修改filiter选项为系统默认(filter = [ “a/.*/” ]),重启系统,选择多路径镜像进入系统,系统重启成功,所以可以确认对LVM配置的修改缩小了LVM扫描设备的范围,大大增加了系统在发生盘符漂移时找不到LVM逻辑卷的可能。

    故障发生的原因可以归结为如下: LVM默认配置被修改导致LVM扫盘范围只能在sdasde,而多路径做镜像脚本使HBA驱动加载先于本地盘驱动,导致本地盘盘符漂移(sdb变为sdu)所以在sdb上创建的LVM逻辑卷不能发现,设置了自动挂载的LVM逻辑卷不能发现就会导致系统起来时fs check失败,从而系统不能启动

解决方案
通过修改LVM过滤配置项(filter)为系统默认配置将问题解决

END