SCSI 事件报告

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

SCSI 状态

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

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

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

Table 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 命令的事件。 SCSI 检测关键字、代码和限定符 定义了节点返回的 SCSI 检测关键字、代码和限定符。

Table 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 类型命令返回此项。 状态为 prepared 和 preparing 的 FlashCopy 目标卷也会返回该事件。
5h 25h 00h 非法请求。 不支持逻辑单元。 逻辑单元不存在或未映射到命令的发送方。

原因码

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

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

Table 3. 原因码
原因码(十进制) 描述
40 资源属于已停止的 FlashCopy 映射。
50 资源属于高速镜像或全局镜像关系,并且辅助 LUN 处于脱机状态。
51 资源属于高速镜像或全局镜像,并且辅助 LUN 为只读。
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 已转入脱机状态。