更新时间:2024-07-02 GMT+08:00
容器使用SCSI类型云硬盘偶现IO卡住如何解决?
问题描述
容器使用SCSI类型的云硬盘存储,在CentOS节点上创建和删除容器触发磁盘频繁挂载卸载的场景,有概率会出现系统盘读写瞬时冲高,然后系统卡住的问题,影响节点正常工作。
出现该问题时,可在dmesg日志中观察到:
Attached SCSI disk task jdb2/xxx blocked for more than 120 seconds.
如下图红框所示:
问题原理
BUS 0上热插PCI设备后,Linux内核会多次遍历挂载在BUS 0上的所有PCI-Bridge,且PCI-Bridge在被更新期间无法正常工作。在此期间,若设备使用的PCI-Bridge被更新,由于内核缺陷,该设备会认为PCI-Bridge异常,设备进入故障模式进而无法正常工作。如果此时前端正要写PCI配置空间让后端处理磁盘IO,那么这个写配置空间操作就可能会被剔除,导致后端接收不到通知去处理IO环上的新增请求,最终表现为前端IO卡住。
影响范围
对CentOS Linux内核3.10.0-1127.el7之前的版本有影响。
解决方法
通过重置节点将内核升级至高版本,具体请参见重置节点。