在Linux内核日志中,I/O报错信息包括类似”sd 5:0:3:0: [sdl] Sense Key : Medium Error [current]“语句。
SCSI Sense Key含义如下:
Sense Key 代码 |
Sense Key符号 (Symbol) |
具体含义描述 |
0x00 | NO_SENSE | 在特定逻辑单元上,没有特殊的Sense Key信息。发生这种情况情形包括: (1)成功完成一个命令;(2)命令收到CHECK CONDITION或COMMAND TERMINATED状态,原因为filemark,EOM或ILI某个比特位设置为1。 |
0x01 | RECOVERED_ERROR | 表示最后一个命令成功执行,但在该Target上有恢复动作。 详细原因由Additional Sense Key和信息区域来确定。当一条命令中出现多个纠正的错误时,报告哪一个错误被纠正是和设备相关。 |
0x02 | NOT_READY | 表示访问的逻辑地址单元不可访问,此时需要人为干预来纠正这种错误。 |
0x03 | MEDIUM_ERROR | 表示命令因为不可恢复的错误条件而终止,原因可能为存储介质的缺陷或 记录的数据存在错误。当Target区别不了存储介质的缺陷和特定硬件失效(Sense Key 4h)时,也会报告”MEDIUM ERROR”错误。 |
0x04 | HARDWARE_ERROR | 表示执行一条命令或在自检期间,Target发现了一个不可纠正的硬件错误,如控制器失效、设备失效、校验错误。 |
0x05 | ILLEGAL_REQUEST | 表示在SCSI命令描述块中有非法参数,或在数据/某些命令中(如FORMAT UNIT、SEARCH DATA等) 非法参数。当Target检测到命令块中有非法参数时,应该终止该命令而不能改变介质。当Target检测到额外参数数据中的无效参数时,Taget可能已经更改了介质。该Sense Key也可以表示收到无效的IDENTIFY消息。 |
0x06 | UNIT_ATTENTION | 表示可移除的介质可能已经被更改或Target被复位。 |
0x07 | DATA_PROTECT | 表示命令试图读/写被设置为读/写保护的block。读写操作不会被执行。 |
0x08 | BLANK_CHECK | 表示一次性写/顺序访问的设备遇到空介质或 |
0x0a | COPY_ABORTED | 表示COPY、COMPARE或COPY AND VERIFY命令取消,原因是源设备或目标设备或两者有一个错误条件。 |
0x0b | ABORTED_COMMAND | 表示Target取消了命令,SCSI initiator可以重试这个命令来修复。 |
0x0d | VOLUME_OVERFLOW | 带缓冲的设备中,访问量分区的末尾,但数据仍在Buffer中,没有写入介质。 RECOVER BUFFERED DATA命令来从缓冲区中读取数据。 |
0x0e | MISCOMPARE | 表示源数据和从介质中读取的数据不一致。 |
[sdu] Sense Key:recovered error [current]
《vendor》 ASC=0X95 ASCQ=0X1asc=0x95 ASCQ=0X1