第34章 ストレージ Interconnect のスキャン
特定のコマンドにより、1 つまたは複数の相互接続をリセット、スキャンし、スキャンできます。これにより、1 回の操作に複数のデバイスを追加または削除できます。このタイプのスキャンは、I/O 操作がタイムアウトし、デバイスを削除する際に遅延が発生する可能性があるため、中断する可能性があります。Red Hat は、必要な場合にのみ相互 スキャンを使用することを推奨します。ストレージの相互接続をスキャンする際には、以下の制限を確認してください。
- 実施された相互接続上のすべての I/O は、手順を実行する前に一時停止してフラッシュする必要があります。また、I/O を再開する前にチェックされたスキャンの結果が必要になります。
- デバイスを削除するのと同様に、システムがメモリー不足の状態になると相互スキャンは推奨されません。メモリープレッシャーのレベルを確認するには、vmstat 1 100 コマンドを実行します。空きメモリーが合計メモリーの 5% 未満の場合、Interconnect スキャンは 100 あたり 10 を超える合計メモリーの 5% 未満の場合は推奨されません。また、スワップがアクティブな場合には相互スキャンは推奨されません( vmstat 出力のゼロ以外の
si
およびso
列)。free コマンドは、合計メモリーも表示することができます。
以下のコマンドを使用すると、ストレージの相互接続をスキャンすることができます。
- echo "1" > /sys/class/fc_host/hostN/issue_lip
- ( N はホスト番号に置き換えます。)この操作はLIP( Loop Initialization Protocol )を実行し、相互接続をスキャンし、SCSI レイヤーが更新され、バス上のデバイスを反映させます。LIP は、基本的にはバスリセットで、デバイスの追加と削除を生じさせます。この手順は、ファイバーチャネルの相互接続に新しい SCSI ターゲットを設定するために必要です。issue_lip は非同期操作であることに注意してください。このコマンドは、スキャン全体が完了する前に完了できます。issue_lip を終了するタイミングを決定するには、
/var/log/messages
を監視する必要があります。lpfc
ドライバー、qla2xxx
ドライバー、およびbnx2fc
ドライバーは issue_lip をサポートします。Red Hat Enterprise Linux の各ドライバーがサポートする API 機能に関する詳細は、表26.1「ファイバーチャネル API 機能」 を参照してください。 /usr/bin/rescan-scsi-bus.sh
- Red Hat Enterprise Linux 5.4 に
/usr/bin/rescan-scsi-bus.sh
スクリプトが導入されました。デフォルトでは、このスクリプトはシステム上のすべての SCSI バスをスキャンし、SCSI レイヤーを更新して、バス上の新しいデバイスが反映されます。このスクリプトは、デバイスの削除と LIP の発行を可能にする追加のオプションを提供します。既知の問題など、このスクリプトの詳細は、38章論理ユニットの rescan-scsi-bus.sh の追加/削除 を参照してください。 - echo "- - -" > /sys/class/scsi_host/hosth/scan
- これは、31章ストレージデバイスまたはパスの追加 で説明されているコマンドと同じで、ストレージデバイスまたはパスを追加します。ただし、この場合は、チャンネル番号、SCSI ターゲット ID、および LUN の値はワイルドカードに置き換えられます。識別子とワイルドカードの組み合わせが許可されるため、必要に応じてコマンドを詳細または広範囲にすることができます。この手順では LUN を追加しますが、削除しません。
- modprobe --remove driver-name, modprobe driver-name
- modprobe --remove driver-name コマンドを実行して、modprobe driver-name コマンドにより、ドライバーが制御するすべての相互接続の状態を完全に再初期化します。極端な場合もありますが、上記のコマンドは特定の状況に適しています。別のモジュールパラメーター値を使用して、ドライバーを再起動する場合など、コマンドを使用できます。