多路径安装正常,但重启服务器之后扫不到LUN

发布时间:  2017-01-19 浏览次数:  279 下载次数:  3
问题描述

某局点部署一套图像存储,两套S5500T存储设备,戴尔服务器12台,通过FC交换机直连,操作系统Redhat6.8,12台服务器做一个GPFS集群(不支持UUID方式绑定盘符),确认多路径正常安装,有两台服务器的HBA卡是后装上去的,在往主机组添加完这两台主机之后,发现这两台服务器上扫不到LUN,其他服务器正常。

 

告警信息
存储端无告警,服务器端多路径配置正常,但是服务器端无法识别映射过来的存储空间
处理过程

1.1 卸载原安装的华为多路径,重新安装。

1.2更新内核驱动信息,能看到映射过来的LUN,但再次重启服务器之后,LUN再次看不到

       1.3    经反复重装多路径与操作系统,问题仍然存在,并且重启之前扫描成功的服务器,LUN同样消失,即所有服务器都存在重启之后扫描不到LUN的问题,推测问题跟盘符绑定或者多路径有关。

       1.4 更换多路径为Linux自带多路径,安装完重启之后能看到LUN,反复重启LUN消失,推测问题为盘符绑定出现问题。

         1.5 将之前采用Udev方式绑定盘符的配置文件移除,重启能看到正常数量的LUN

1.6 更换盘符绑定方式,使用wwn方式匹配,如下:

步骤1:获取磁盘的ID_SERIAL字段

                                     执行udevadm monitor --env开启监控

                                     执行echo "add" > /sys/block/sdb/uevent(其中sdb是想要指定盘符的盘),然后可以看到udevmonitor的回显如下:



步骤2:编写UDEV规则文件如下:

KERNEL=="sd*",SUBSYSTEM=="block",ENV{ID_SERIAL}=="360022a11000afe910001a0a200000002",NAME+="newdisk%n"

 

1.7多次重启服务器都能正常识别,问题解决。


根因

客户之前采用的是Udev的绑定方式,规则文件存在问题,在盘符后要增加%n,否则分区信息不会生成:

SUBSYSTEMS=="scsi",SUBSYSTEM=="block",KERNELS=="2:0:0:1",NAME="sdb%n"

SUBSYSTEMS=="scsi",SUBSYSTEM=="block",KERNELS=="2:0:0:2",NAME="sdc%n"

SUBSYSTEMS=="scsi",SUBSYSTEM=="block",KERNELS=="2:0:1:1",NAME="sdd%n"

SUBSYSTEMS=="scsi",SUBSYSTEM=="block",KERNELS=="2:0:1:2",NAME="sde%n"

 

但是不推荐用上面的方式,由于2:0:0:1这种HCTL字段不是固定的,建议使用wwn方式匹配。

解决方案

1.在存储侧检查主机组、Lun组、映射视图、启动器配置是否正确,重新配置存储重启主机进行扫盘动作,还是无法识别。

2.在网络侧检查交换机配置是否正确,重现配置后再次查看是否能识别。

3.在服务器侧,卸载华为多路径,重新启动之后在服务器端看到映射过来的LUN。

 安装操作系统多路径,重新启动之后在服务器端上能看到映射过来的LUN,多次重启之后LUN消失。

4.重新安装操作系统,再安装华为多路径,重启之后能看到映射过来的LUN,多次重启之后LUN消失。

5.移除盘符绑定配置文件,多次重启都能看到LUN,即绑定的配置文件存在问题,修改配置文件,将绑定方式换位WWN 的方式绑定之后问题解决。




建议与总结

当服务器是通过盘符的方式引导的时候,本地硬盘驱动应该先于HBA驱动加载否则会引发盘符漂移的问题,同时,对于一些非常规的集群文件系统或者较复杂的应用场景时,一定要多留意盘符绑定的规则,否则导致服务器无法正常启动。

END