SCSI 事件报告

节点可以通知其主机有关发出的 SCSI 命令的事件。

SCSI 状态

某些事件是 SCSI 体系结构的组成部分,由主机应用程序或设备驱动程序进行处理,而不报告事件。某些事件(例如,读写 I/O 事件,或者与节点丢失或对后端设备的访问丢失关联的事件)会导致应用程序 I/O 失败。为了帮助对这些事件进行故障诊断,将返回带有 Check Condition 状态的 SCSI 命令,检测信息中会包含 32 位事件标识。该标识与事件日志中的特定事件相关。

如果主机应用程序或设备驱动程序捕获到并存储了这些信息,那么可以将应用程序故障与事件日志相关联。

表 1 描述了节点返回的 SCSI 状态和代码。

表 1. SCSI 状态
状态 代码 描述
Good 00h 命令成功。
Check condition 02h 命令失败但检测数据可用。
Condition met 04h 不适用
Busy 08h 存在自动应急并行访问条件,并且命令指定了 NACA=0。
Intermediate 10h 不适用
Intermediate - condition met 14h 不适用
Reservation conflict 18h 返回内容在存在保留或持久保留条件的 SPC2 和 SAM-2 中所指定。
Task set full 28h 启动器至少在该端口上有一个任务在排队等待该 LUN。
ACA active 30h 如 SAM-2 中所指定,报告了该代码。
Task aborted 40h 如果在控制方式页面 0Ch 中设置了 TAS,那么将返回该代码。节点具有缺省设置 TAS=0,该设置无法更改;因此节点不会报告该状态。

SCSI 检测

节点会通知主机有关 SCSI 命令的事件。表 2 定义了节点返回的 SCSI 检测关键字、代码和限定符。

表 2. SCSI 检测关键字、代码和限定符
代码 限定符 定义 描述
2h 04h 01h 未就绪。逻辑单元正在准备。 节点看不到系统,因此无法执行 I/O 操作。 其他检测未包含更多信息。
2h 04h 0Ch 未就绪。目标端口处于不可用状态。 可能有下列情况:
  • 节点看不到系统,因此无法执行 I/O 操作。 其他检测未包含更多信息。
  • 节点正在与系统联系,但由于与后端控制器的连接丢失或某些算法问题,无法对指定逻辑单元执行 I/O 操作。 对于脱机卷会返回该检测。
3h 00h 00h 介质事件 仅对于读写 I/O 返回此项。I/O 在其范围内的特定 LBA 处遇到了事件。 事件的位置在检测数据中进行了报告。其他检测还包含将事件与对应事件日志条目相关联的原因码。例如,RAID 控制器事件或已迁移介质事件。
4h 08h 00h 硬件事件。发生了命令到逻辑单元通信故障。 I/O 遇到了与 RAID 控制器返回的 I/O 事件关联的事件。其他检测包含指向控制器返回的检测数据的原因码。仅对于 I/O 类型命令返回此项。状态为“已就绪”和“正在准备”的 FlashCopy 目标卷也会返回该事件。
5h 25h 00h 非法请求。不支持逻辑单元。 逻辑单元不存在或未映射到命令的发送方。

原因码

原因码显示在检测数据的第 20-23 个字节中。原因码为节点提供了特定日志条目。该字段是 32 位无符号数字,从最高有效字节开始显示。表 3 列出了原因码及其定义。

如果原因码未在表 3 中列出,那么代码表示事件日志中与相关事件日志条目序号对应的特定事件。

表 3. 原因码
原因码(十进制) 描述
40 资源属于已停止的 FlashCopy 映射。
60 节点处于脱机状态。
71 资源未与任何域绑定。
72 资源与已经重新创建的域绑定。
73 正在已由于某些原因(这些原因不会导致任何路径转入脱机状态)而收缩的节点上运行。
80 等待修复完成或删除卷。
81 等待验证完成或删除卷。
82 脱机的自动精简配置卷导致数据在目录高速缓存中被锁定。对于其他自动精简配置卷无法达到足够的性能,因此这些卷已转入脱机状态。
85 由于对定额磁盘进行检测点设置失败,卷已转入脱机状态。
86 repairvdiskcopy -medium 命令已创建虚拟介质错误,错误表明拷贝不同。
93 脱机 RAID-5 或 RAID-6 阵列导致正在写入的数据锁定。其他阵列无法达到良好的性能,因此这些阵列已转入脱机状态。
94 由于对定额磁盘进行检查点设置失败,属于卷的阵列 MDisk 已转入脱机状态。
95 该原因码用于 MDisk 坏区转储文件,表明数据丢失的原因是不得不将奇偶性校验与重新构建条带再同步,或者是由于多个故障而导致的某些其他 RAID 算法原因。
96 由于内部元数据表已满,属于卷的 RAID-6 阵列 MDisk 已转入脱机状态。