一、遇到问题
1、发现某微服务的机器在业务层表现出失败;
2、登录失败聚集的机器,查看 dmesg 日志,发现共性 log :
mpt2sas0: log_info(0x31120303): originator(PL), code(0x12), sub_code(0x0303)
二、 问题分析
mpt2sas0: log_info(0x31120303): originator(PL), code(0x12), sub_code(0x0303)
先分析下日志是啥意思:
1、 由下图可知,0x3 代表SAS : 因此这个问题和读写 SAS SATA 硬盘有关系。
2、接下来的 1 ,对应源码,可知对应的是 PL
0x0 对应 IOP 意思为IO Processor,
0x1 对应 PL 意思为 Protocol Layer,
0x2 对应 IR 意思为 Intergrated RAID。
由于可知, 1 表示协议层出现了问题。
SAS 协议 6 大层:
physical layer物理层,
phy layer,
link layer链路层,
port layer端口层,
transport layer传输层,
application layer应用层。
这里某一层出现了问题。
3、接下来的 12 ,查询发现 12 表示这个命令被终止放弃了 ;
4、接下来的 sub_code 0x03 意思是:
#define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300)
总结一下就是:前发送给 SAS 盘的某个命令因为协议层出现问题被终止了。
三、解决办法
更换主板或相关硬盘,即可解决。
参考文档: mpt2sas0 类似问题追踪
版权声明:本文为weixin_44648216原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。