mpt2sas0: log_info(0x31120100): originator(PL), code(0x12), sub_code(0x0100)及同类问题的追踪
做存储或者磁盘阵列的经常会遇到linux kernel打印如下信息或者类似的信息,这是什么原因导致的呢?
mpt2sas0: log_info(0x31120100): originator(PL), code(0x12), sub_code(0x0100)
其实只要我们解析这个0x31120100的具体含义就可以了。这个log_info是一个U32长度的变量。
1,首先第一个3是什么意思呢?由下图可知,3代表SAS,凡是和SAS SATA相关的都属于此类。
所以我们知道了,这个问题和读写SAS SATA硬盘有关系。
2,接着下面的1是什么意思呢?源代码中可以看到1对应的是PL。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表示这个命令被终止放弃了,具体原因需要看subcode。总结一下就是当前发送给SAS SATA盘的某个命令因为协议层出现问题被终止了,具体是什么问题请我们看subcode。
4,那好,那我们就来看一下subcode是怎么描述的吧,subcode是0x0100代表什么意思呢?
哦,原来是读写的时候申请open连接的时候open失败,而且失败的原因不是其他几种已经列出来的。那我们就来分析一下吧:
0x0101说明,要open的地址不存在,通过查看SAS协议,得知如果地址不存在,就是以下3种情况:意思就是1,硬盘已经不在了,但是系统还没来得及踢,2,给自身所在的宽端口发送命令会失败。如果对硬盘发命令就不会导致2这种失败,3,SATA盘没有正常的返回D2H FIS。一些异常的SATA盘会有这个问题,正常情况下,识别到SATA盘以后,SATA盘需要返回一个D2H来标明自己的身份,如果没有返回一定是遇到了什么异常,就不能正常响应其他的命令了。
0x0102说明:速率错了。比如某个SATA硬盘是3Gbps的传输速率,而你要用6Gbps去连接,肯定不可以。
0x0103说明:还是速率错了,比如你自身IOC卡都不支持6Gbps,你还用6Gbps去发送,肯定不可以。
0x0104说明:收到了break。什么情况下才会收到break?是当你open了很长一段时间对方不响应,你自己为了停止等待主动发送break去终止。说明你open的对象可能卡住了,忙
0x0114说明:因为Zone,就是说你自己和你的目标不在一个分区内,所以无法连接。这个分区是Expander将自身的phy分成几个分区,各个分区都互不相通。只有Zone0可以访问其他区
0x0115,0x0116,0x0117都是保留的不会发生。
0x011A说明:说明目标设备一直在忙,让你重试,结果你重试都达到阀值了,还没成功。
0x011B和0x011A类似
0x011C表示你open人家,等到时间耗尽了都没反应。
那0x0100是什么意思呢?下面的原因已经很多了,还有什么留给0x0110呢?SAS协议上还有几种OPEN_REJECT (BAD DESTINATION),OPEN_REJECT (WRONG DESTINATION)。但是这些在应用中一般不会发生,除非我们自己调试用仿真器去指定错误的地址的时候才会发生,那还有什么原因呢?想来想去只有是链路bit错误导致的了。
这是一个很重要的问题,链路不稳定,导致你发送的bit发生了抖动,对方接收到之后不认识你发送的到底是什么,自然不会响应命令了。
所以0x31120100可以解释为,你在读写磁盘的时候,因为链路异常,你发送的open不能被接受,导致你这个命令被终止了。
这会导致什么问题呢?因为当你命令发生错误的时候驱动会重试,所以重试的时候问题可能被修复了。但是如果链路特别不稳定,一直修复不好,那就会导致掉盘了。
好了这个问题解决了,那我把所有的code的解析都列出来,如果发生了其他问题,大家都可以按着我的思路去解决问题了。
mpt2sas0: log_info(0x31120100): originator(PL), code(0x12), sub_code(0x0100)及同类问题的追踪的更多相关文章
- perl_nc.pl
#!/usr/bin/perl use strict; use IO::Socket; use IO::Select; use Getopt::Std; my %option;getopts('lp: ...
- C#接口显示实现在实际开发中的作用
摘要 任何一个C#入门的程序员都知道——当一个类型在实现接口的时候,有两种方法实现:显式实现.隐式实现.而且大家也都知道,当一个类型实现的两个接口存在相同成员定义时,显示实现可以解决这种情况. 但是, ...
- php防止表单重复提交
解决方案一:引入cookie机制来解决 提交页面代码如下a.php代码如下: <form id="form1" name="form1" method=& ...
- Keil AGDI Header File
#ifndef __AGDI__INCED___ #define __AGDI__INCED___ //---Revision History: --------------------------- ...
- php-- 避免表单的重复提交
用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题.我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交. 1.使用客户端脚本 提 ...
- php防止重复提交问题
php防止重复提交问题 用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题.我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交. ...
- USB系列之三:从你的U盘里读出更多的内容
U盘是我们最常使用的一种USB设备,本文继续使用DOSUSB做驱动,试图以读取扇区的方式读取你的U盘.本文可能涉及的协议可能会比较多. 一.了解你的U盘 首先我们用上一篇文章介绍的程序usbvi ...
- 【Perl学习笔记】2. perl中的bless理解
bless有两个参数:对象的引用.类的名称. 类的名称是一个字符串,代表了类的类型信息,这是理解bless的关键. 所谓bless就是把 类型信息 赋予 实例变量. 程序包括5个文件:person.p ...
- perl 函数回调 引用$client->run(sub {$client->sync});
匿名函数引用: [root@wx03 wx]# perl a1.pl CODE(0x2077b30) test [root@wx03 wx]# cat a1.pl $ref= sub {return ...
随机推荐
- QT之setting注册表项
1.头文件 #include <QSettings> 2.read注册表项 void MainWindow::readSettings() // 读取窗口设置 { QSettings se ...
- 在Linux服务器上使用Vbox安装虚拟机
先去官网(www.virtualbox.org)上下载对应Linux系统的Vbox版本. 我这边用的是Oracle Linux 7系统(KDE安装) 使用rpm安装virtualbox 发现报错,按照 ...
- django 单点登录思路-装饰器
def the_one(func): '''自定义 验唯一证在线 装饰器''' def check_login_status(request): if request.session.get('qq' ...
- redis安装linux(二)
官网地址:http://redis.io/ redis的安装 第一步:安装VMware,并且在VMware中安装centos系统(参考linux教程). 第二步:将redis的压缩包,上传到linux ...
- 神州数码DEIGRP路由协议配置
实验要求:了解DEIGRP及其配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface l0 进入端口 ip addres ...
- kettle并行运行时出现「Unknown error in KarafBlueprintWatcher」
背景:在使用kettle 6进行大量数据并行抽取时,偶尔会出现「Unknown error in KarafBlueprintWatcher」的错误,详细的报错信息可以查看下面的代码块. ERROR: ...
- Java基于opencv实现图像数字识别(三)—灰度化和二值化
Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...
- PAT1001A+B Format
链接:https://www.patest.cn/contests/pat-a-practise/1001 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 ...
- 小妖精的完美游戏教室——人工智能,A*算法,启发因子篇
//================================================================//// Copyright (C) 2017 Team Saluk ...
- wpf 圆角TextBox 样式
<Style x:Key="RoundCornerTextStyle" TargetType="{x:Type TextBox}"> <Set ...