Print

关于云计算部分产品网卡RDMA功能触发Linux内核BUG导致服务器重启问题的技术公告

问题描述

【产品型号】

H3C CAS

H3C ONEStor

H3C CloudOS

H3C CMP

【涉及版本】

CAS E0703E0705版本(CentOS);

ONEStor 3.0 R2130P01(不含)之前所有版本,及E3113E3115E3115P01E3116版本;

CloudOS 3.0 E3109(不含)之前所有版本,5.0 E5102H01(不含)之前所有版本,及由以上版本升级上来的版本;

CMP E1158(不含)之前所有版本;

UIS产品未安装RDMA软件包,不会加载i40iw驱动,不涉及该问题;

VDI系列产品:

l  WorkspaceLearnning底层是UISE0706及以上版本的CAS,不涉及该问题;

l  Desktop、云学院和云学堂底层是ubuntu系统的CAS,不涉及该问题;

大数据系列产品未安装RDMA软件包,不会加载i40iw驱动,不涉及该问题。

【问题描述】

相关产品部署在带有RDMA功能网卡的服务器上,系统会自动加载该功能对应的i40iw驱动,该驱动在运行过程中会概率性触发服务器重启。   

原因分析

服务器重启后在系统的/var/crash/路径下会生成vmcore文件,对该文件解析后会显示如下标红错误:“BUGunable to handle paging request at ffffa97f8e9a7868”。


系统加载i40iw驱动并在注册中断地址值时,出现地址值错误。在相关产品的软件运行过程中,如果有其他应用程序(如irqbalance)在读取该异常地址值时会触发内核bug,导致内核崩溃、服务器重启。   

规避措施/解决方案

规避方案:

若涉及的云计算产品未使用RDMA功能,可手动卸载i40iw驱动规避该问题。具体操作步骤如下:

1、登录相关产品所有节点后台使用lsmod | grep i40iw命令确认是否安装i40iw驱动。若未安装该驱动,不用做任何操作;若有安装该驱动,则执行第2-4步进行卸载。   


2、卸载i40iw驱动并检查是否卸载成功,若lsmod | grep i40iw 命令无回显说明卸载成功。


3、使用modinfo i40iw命令获取该驱动文件存储路径信息,下图中的下划线标注部分的信息即为该存储的绝对路径信息。


4、修改rc.local文件,确保服务器重启后不会再次加载该驱动。操作命令如下:

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

vi /etc/rc.d/rc.local

rc.local文件内容的最后一行增加:rmmod <3步获取的到的路径信息>

如下截图:   


解决方案:

CAS 升级至E0706及以后版本;

ONEStor 升级至R2130P01E3322(待发布)版本;

CloudOS 3.0E3109(不含)之前版本及由之前版本升级上来的版本,或5.0E5102H01(不含)之前版本及由之前版本升级上来的版本请按照上述规避方案处理。新安装的E3109及之后版本或E5102H01及之后版本不涉及该问题。