25.20. 控制 SCSI 命令计时器和设备状态


Linux SCSI 层对每个命令设置一个计时器。当这个计时器到期时,SCSI 层将停止 主机总线适配器 (HBA),并等待所有未执行的命令超时或完成。之后,SCSI 层将激活驱动程序的错误处理程序。
触发错误处理程序时,它会按顺序尝试以下操作(直到成功执行了一个操作):
  1. 中止命令。
  2. 重置设备。
  3. 重置总线。
  4. 重置主机。
如果所有这些操作都失败,则该设备将设置为 离线状态。当发生这种情况时,到该设备的所有 I/O 都将失败,直到问题被修正,用户会将设备设置为 运行
但是,如果设备使用 Fibre Channel 协议,且 rport 被阻止,则此过程会有所不同。在这种情况下,驱动程序会在激活错误处理程序前等待几秒钟,以使 rport 再次上线。这可防止设备因为临时传输问题而离线。

设备状态

要显示设备的状态,请使用:
$ cat /sys/block/device-name/device/state
要将设备设置为 running 状态,请使用:
# echo running > /sys/block/device-name/device/state

命令计时器

要控制命令计时器,请修改 /sys/block/device-name/device/timeout 文件:
# echo value > /sys/block/device-name/device/timeout
使用您要实现的超时值(以秒为单位)替换命令中的 value
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.