Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

24.19. SCSI コマンドタイマーとデバイス状態の制御

Linux SCSI レイヤーは、各コマンドでタイマーをセットします。このタイマーが時間切れになると、SCSI レイヤーは host bus adapter (HBA) を休止して、残りのコマンドすべてがタイムアウトになるか、完了するのを待ちます。その後に、SCSI レイヤーはドライバーのエラーハンドラーを始動します。
エラーハンドラーがトリガーされると、以下の操作を順番に試行します (そのいずれかが正しく実行されるまで試行が続きます)。
  1. コマンドの中止
  2. デバイスのリセット
  3. バスのリセット
  4. ホストのリセット
これらの操作がすべて失敗する場合、デバイスは offline 状態にセットされます。この状況が発生すると、そのデバイスへのすべての I/O は、問題が修正されてユーザーがデバイスを running に設定しない限り、失敗します。
デバイスがファイバーチャネルプロトコルを使用し、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 は実装するタイムアウト値 (秒単位) に置き換えてください。