• AG旗舰厅官方网站

    服务支持

    系统更新

    当前位置  >  首页  >  服务支持  >  系统更新

    更新ID(KYBA-202201-1014

    更新简述:
    服务器qlogic光纤卡建立链接时WWPN污染的问题
    影响操作系统版本:
    银河麒麟高级服务器操作系统V10(SP1) 银河麒麟高级服务器操作系统V10(SP2) 17系列版本内核:17.0及以上版本都存在该问题; 20系列版本内核:20.0及以上版本都存在该问题; 21系列版本内核:21.0及以上版本都存在该问题; 22系列版本内核:22.0及以上版本都存在该问题; 23系列版本内核:23.0~23.15版本都存在该问题,23.16及以上版本解决该问题; 24系列版本内核:24.0及以上版本都存在该问题; 25系列版本内核:25.0~25.6版本都存在该问题,25.7及以上版本解决该问题; 26系列版本内核:26.0及以上版本都存在该问题; 27系列版本内核:27.0及以上版本解决该问题;
    更新类型:
    问题修复
    发布时间:
    2021-12-27
    更新描述:

    详细介绍

    1.复现步骤 

    服务器1:target端

    OS:内核19.0及以上,准备该OS的镜像光盘(用于安装targetcli或依赖包,一般系统默认已安装)。

    服务器2:客户端

    无要求。

    1、服务器1配置:

    1.1获取BHA卡物理地址

    #cd /sys/class/fc_host

    #ls

    host0  host1          // 有两个端口

    # cat ./host1/port_name     //查看端口1的名称下面1.6用到

    0x2101001b3235b031

    1.2修改默认tcm_qla2xxx驱动:客户端如果没有默认加载,也需要加载

    #vi /etc/rc.d/rc.local

    在最后面添加:modprobe tcm_qla2xxx

    chmod +x /etc/rc.d/rc.local

    1.3设置HBA卡位target模式

    #vi /etc/modprobe.d/qla2xxx.conf  //创建配置文件

    新增:options qla2xxx qlini_mode=”disabled”   //重启后生效

    #cat /sys/module/qla2xxx/parameters/qlini_mode   

    //查看HBA卡模式,应该为disable

    如果不是disable,且重启没有生效,需要禁用/启用一下qla2xxx模块:

    #rmmod qla2xxx

    //如果有其他模块占用,可以用lsmod查看占用模块tcm_qla2xxx

    #rmmod tcm_qla2xxx    //再执行rmmod qla2xxx

    #modprobe qla2xxx     //重新加载模块

    #modprobe tcm_qla2xxx  //重新加载模块,再查看模式变成disable

    1.4设置存储对象

    #targetcli      //进入targetcli管理软件

    /> /backstores/fileio create my_fileio /tmp/disk1.img 200M  

    //创建200M,以虚拟文件方式

    或:

    /> /backstores/block create name=block_backend dev=/dev/sdb   //sdb盘作为共享,和虚拟文件二选一

    1.5创建FC target(映射到HBA卡)

    #targetcli

    />cd qla2xxx

    /qla2xxx>create 21:01:00:1b:32:35:b0:31

    /qla2xxx/21:01:00:1b:32:35:b0:31>luns/  create         /backstores/fileio/my_fileio

    1.6设置ACLS(将本地共享盘连接到远端HBA卡)

    /qla2xxx/21:01:00:1b:32:35:b0:31>acls/ create        21:01:00:1b:32:35:a1:44  //服务器2地址

    /qla2xxx/21:01:00:1b:32:35:b0:31>cd ../../   //返回根目录

    />saveconfig         //保存配置

    />ls           //查看配置

    1.7 开机默认启动target服务:

    #systemctl enable target

    #systemctl start target        

    2、服务器2配置

    2.1 获取BHA卡物理地址

    #cd /sys/class/fc_host

    # cat ./host1/port_name     //查看端口1的名称上面1.7用到

    0x2101001b3235a144

    2.2 重启服务器2,查看

        #reboot

        #fdisk –l        //多出一个200M的硬盘,设置成功

    注意两台机器都是使用HBA卡的port1连接;

    测试过程中发现,概率出现在重启后port name变了,导致两台机器不能连通, 异常port name如下图

    undefined


    2.原因简述

    存放port name的缓冲区被其它代码逻辑污染了。两台机器形成链路时,某些函数会去擅自使用port name的缓冲区,会引起port name的缓冲区的内容发生变化。这个bug出现的条件是,两台机器形成链路时,这时候port name会出现不正确的现象,而在这个时间点之前port name是正确的。

    即服务器qlogic光纤卡建立链接时WWPN污染的问题,这个问题是linux社区内核迭代过程中引入的,如社区4.19系列版本就存在这个问题,目前麒麟内核4.19.90-23.16.v2101和社区均已修复这个问题。


    3.解决方案/修复/更新方法

    需要安装以下必要内核rpm包升级内核到4.19.90-23.16.v2101或者4.19.90-23.16.v2101以上版本。

    下面以安装4.19.90-23.16.v2101内核版本为例:

    kernel-4.19.90-23.16.v2101.ky10.*.rpm

    kernel-core-4.19.90-23.16.v2101.ky10.*.rpm

    kernel-devel-4.19.90-23.16.v2101.ky10.*.rpm

    kernel-headers-4.19.90-23.16.v2101.ky10.*.rpm

    kernel-modules-4.19.90-23.16.v2101.ky10.*.rpm

    kernel-modules-extra-4.19.90-23.16.v2101.ky10.*.rpm

    kernel-modules-internal-4.19.90-23.16.v2101.ky10.*.rpm

     

    通过以下命令进行升级安装:

    rpm -ivh kernel-4.19* kernel-core* kernel-modules*

    rpm -Uvh kernel-devel* kernel-headers*

     

    安装完后,需要重启机器生效。

    上一篇: KYBA-202201-1013 下一篇: KYBA-202201-1015

    试用

    服务

    动态

    联系