25.16. リンク切れの動作を修正する

本セクションでは、ファイバーチャネルまたは iSCSI のプロトコルのいずれかを使用しているデバイスに関するリンク切れの動作を修正する方法について説明します。

25.16.1. ファイバーチャネル

ドライバーがトランスポートの dev_loss_tmo コールバックを実装している場合、トランスポートの問題が検出されるとリンクを経由したデバイスへのアクセス試行がブロックされます。デバイスがブロックされているかどうかを確認するには次のコマンドを実行します。
$ cat /sys/block/device/device/state
デバイスがブロックされている場合は blocked が返されます。通常通りにデバイスが稼働している場合は running が返されます。

手順25.8 リモートポートの状態を判別する

  1. リモートポートの状態を判別するには、次のコマンドを実行します。
    $ cat
    /sys/class/fc_remote_port/rport-H:B:R/port_state
  2. リモートポート (およびこのポートを介してアクセスされるデバイス) がブロックされている場合は、このコマンドにより Blocked が返されます。通常通りにリモートポートが稼働している場合は Online が返されます。
  3. dev_loss_tmo 秒以内に問題が解決されない場合、リモートポートおよびデバイスのブロックが解除され、そのデバイス上で実行されているすべての I/O (およびそのデバイスに送信される新規 I/O すべて) が失敗します。

手順25.9 dev_loss_tmo を変更する

  • dev_loss_tmo の値を変更する場合は、ファイルに対して必要な値の echo を実行します。たとえば、dev_loss_tmo を 30 秒に設定するには、以下を実行します。
    $ echo 30 >
    /sys/class/fc_remote_port/rport-H:B:R/dev_loss_tmo
dev_loss_tmo についてさらに詳しくは、「ファイバーチャネル API」 を参照してください。
リンク切れが dev_loss_tmo の値を超える場合、scsi_device および sdN デバイスは削除されます。通常、ファイバーチャネルのクラスはデバイスをそのままの状態にします。すなわち、/dev/sdx は、/dev/sdx のままになります。これは、ターゲットバインディングがファイバーチャネルドライバーによって保存されるためであり、ターゲットポートが返されると、SCSI アドレスが忠実に再作成されます。ただし、これは常に保証される訳ではなく、LUN のストレージ内ボックス設定の追加の変更が行なわれない場合にのみ、sdx は元に戻されます。