华为SAN存储在Red Hat系统下的主机连通性FAQ

发布时间 2023-09-05 13:34:25作者: wanghongwei-dev

1、建立iSCSI连接后,主机系统无法重启

现象

主机系统和存储系统建立iSCSI连接后,主机系统重启失败。

根因分析

主机停止iSCSI服务时,session没有关掉。

解决方案

主机系统重启前,请先停止iSCSI服务,然后再重启主机。

2、替换LUN后无法更新LUN的信息

现象

当替换LUN的时候(前后两个LUN使用同一个Host ID),主机系统上无法更新LUN的信息。

问题分析

主机系统上没有更新,需要在主机上进行相应的维护操作。

解决方案

Redhat系统,针对存储上已使用LUN进行移除或更换映射的场景,请严格按照如下操作进行执行:

  1. 在阵列侧移除LUN映射之前,请管理员协助,停止将要更换LUN映射对应的磁盘上运行的业务。
  2. 通过阵列的DeviceManager管理界面,取消该LUN的映射。
  3. 在主机上执行扫lun操作。
  4. 在linux主机上执行multipath –ll找到并记录去掉映射的lun聚合盘名称mpathX和物理路径名称sdX。
  5. 根据步骤4中记录的聚合盘名称执行命令:multipath -f mpathX,删除multpath聚合盘。
  6. 根据步骤4中记录的路径名称执行命令:echo 1 > /sys/block/sdX/device/delete,删除物理路径设备。
  7. 通过阵列的DeviceManager管理界面,添加新的LUN映射。
  8. 在主机上执行扫lun操作,重新发现磁盘并配置业务。

3、LUN容量发生变化后,主机系统上无法更新

现象

当LUN的容量发生改变的时候,使用系统自带的扫描脚本(/usr/bin/rescan-scsi-bus.sh)是无法发现容量更新的(系统脚本限制)。

问题分析

存储系统上LUN的大小已经更新,只是主机系统上没有更新,需要在主机上进行相应的维护操作。

解决方案

需要先使用命令:echo 1 > /sys/block/sd*/device/rescan进行LUN更新,然后再执行扫描脚本(/usr/bin/rescan-scsi-bus.sh)即可。

4、连接长时间中断恢复后导致盘符漂移

现象

当主机系统和存储系统之间的连接长时间中断恢复后,之前挂载起来的盘符无法使用,使用lsscsi查看,发现系统已经生成了新的盘符。

根因分析

连接恢复的过程中,主机系统首先要删除以前的盘符,然后根据上报的LUN重新在DEV目录下生成新的盘符。在此过程中主机系统由于某种原因导致恢复后某个盘符没有释放掉,重新上报LUN时,新的盘符就会以没有释放掉的那个盘符为起点生成盘符。这就导致了拔线前后盘符后移。

解决方案

可以通过使用UUID挂载磁盘来规避该问题。具体操作步骤如下:

  1. 使用fdisk -l发现所有磁盘。

  2. 对已发现的磁盘进行分区、格式化并建立文件系统。

  3. 查询需要挂载的磁盘的UUID,使用命令如下:

    SMCDB-1:/# blkid 
    /dev/sdb1: UUID="894d76a6-b175-4eb1-89e5-3fd8d146eab7" SEC_TYPE="xfs" TYPE="ext2" 
    /dev/sdc1: UUID="ef285a94-2f34-4025-baa6-d35d8fbd0a86" SEC_TYPE="xfs" TYPE="ext2"
    
  4. 设置磁盘分区的文件在系统重启后自动挂载。

    修改/etc/fstab文件,在文件末尾加上:(把sdb1的文件系统mount到目录fs1上,sdc1的文件系统mount到目录fs2上):

    UUID=894d76a6-b175-4eb1-89e5-3fd8d146eab7   /fs1 ext3 defaults 0 0 
    UUID=ef285a94-2f34-4025-baa6-d35d8fbd0a86   /fs2 ext3 defaults 0 0
    
  5. 执行fstab中的文件系统的挂载,命令格式如下:

    SMCDB-1:/# mount -a
    
  6. 修改系统的启动文件,让系统重启后执行fstab文件参数中的挂载。

    SMCDB-1:/# vi /etc/rc.d/rc  ####在文件的末尾行添加“/bin/ mount -a”
    

5、修改iscsi超时参数

现象

iscsi场景下路径切换时间较长。

问题分析

默认iscsi超时参数为120s,路径故障后会长时间在原路径上重试,导致业务不切换到可用路径上。

解决方案

临时修改可使用如下命令,主机重启后失效(new_value的值根据业务实际需要配置,如10,单位为秒):

iscsiadm -m node -o update -n node.session.timeo.replacement_timeout -v new_value

永久修改可编辑iscsi配置文件,一般为/etc/iscsi.conf或者/etc/iscsi/iscsid.conf,找到node.session.timeo.replacement_timeout并修改,然后保存退出并重启主机生效

6、使用存储Lun进行SANBOOT安装系统,安装界面无法扫到Lun

现象

将存储的Lun映射给主机sanboot安装Redhat 7.5系统,安装界面无法找到Lun

根因分析

由于Redhat 7.5及后续版本(不含8.x)开始将ALUA配置合入Linux系统默认配置,DM默认调用ALUA配置接管华为Lun。而出问题场景存储没有开启ALUA,主机查询到存储返回不支持ALUA便reject磁盘未进行聚合,导致sanboot安装界面无法找到虚拟盘。

可使用multipathd -k"show config"命令查看系统默认配置,在devices中找到华为的配置进行查看。

解决方案

安装界面输入Ctrl+alt+F2进入命令行模式,编辑multipath.conf,修改为非ALUA模式并重启多路径服务,然后输入Ctrl+alt+F6回到安装界面,重新扫描即可正常发现磁盘。

7、iSCSI组网下,使用存储LUN配置SANBOOT,启动器无法正常建连

现象

华为存储对接HP Gen10服务器,使用HP 534FLR卡件配置iSCSI SANBOOT,存储上启动器一直处于离线状态。

根因分析

存储iSCSI驱动在收到对端主机发送的login登录协商报文后,默认返回None,CHAP,但是HP 534FLR卡件上的iSCSI启动器不兼容此协商返回字段,主机回Fin报文断开连接,iSCSI连接建立失败。

解决方案

当对接特殊网卡如HP 534FLR时,可以通过开启存储侧的iSCSI CHAP认证进行规避

上图中的CHAP名称和密码可自定义,且主机上无需配置。