このセクションでは、ファブリックに追加またはファブリックから除去されたディスクを、Linux オペレーティング・システムに強制的に認識させるための 4 つの方法を紹介します。
ファブリックにディスクを追加または除去するときに、以下の 4 つの方法のいずれかを使用して、Linux ホストにそれらの変更を強制的に認識させることができます。
- ホストをリブートする
- ホスト・アダプター・ドライバーをアンロードおよび再ロードする
- /sys ファイル・システムをエコーして、バスを再スキャンする (Linux 2.6 カーネルの場合のみ)
- /proc または /sys ファイル・システムをエコーして、手動で SCSI ディスクを追加および除去する
ホストをリブートする場合、またはホスト・アダプター・ドライバーをアンロードおよび再ロードする場合
装置は SCSI バスをスキャンすることによってディスカバーされるため、通常は、SCSI バスを再スキャンして SAN ファブリックの変更を検出するのが最も簡単な方法です。
バスの再スキャンは、ホスト・アダプター・ドライバーを再ロードするか、システムをリブートすると自動的にトリガーされます。
ホスト・アダプター・ドライバーをアンロードまたはホストをリブートする前に、以下の操作を行う必要があります。
- すべての入出力を停止する
- すべてのファイル・システムをアンマウントする
- SDD が使用されている場合、ホスト・アダプター・ドライバーを再ロードする前に、sdd stop コマンドを使用して SDD ドライバーをアンロードする。
ホスト・アダプター・ドライバーが再ロードされたら、sdd start コマンドによって SDD を再ロードします。
ホスト・アダプター・ドライバーの再ロードでは、そのホスト・アダプター・ドライバーがモジュールとして作成されていることが前提となっています。
システムのリブートは、ホスト・アダプター・ドライバーがカーネル内にコンパイルされたか、モジュールとして作成されたかに関係なく行われます。
/sys ファイル・システムをエコーして、バスを再スキャンする (Linux 2.6 カーネルの場合のみ)
Linux 2.6 カーネルの場合に限り、ホスト・アダプター・ドライバーのアンロードやシステムのリブートを行わなくても、/sys インターフェースを使用して再スキャンをトリガーすることができます。
次のコマンドは、ホスト H 上のすべてのチャネル、ターゲット、および LUN をスキャンします。
echo “- - -” > /sys/class/scsi_host/hostH/scan
手動で SCSI ディスクを追加および除去する場合
以下のコマンドを使用すると、手動で SCSI ディスクを追加および除去できます。
注: 次のコマンド例で、H、B、T、L は、それぞれ装置のホスト、バス、ターゲット、および LUN ID です。
次のコマンドにより、使用されていない SCSI ディスクを構成解除し、取り外すことができます。
- echo "scsi remove-single-device H B T
L" > /proc/scsi/scsi
- このドライバーがアンロードも再ロードもできない場合、新しい装置のホスト、
バス、ターゲットおよび LUN ID が分かっていれば、/proc/scsi/scsi ファイルから、
次のコマンドを使用して追加することができます。
-
- echo "scsi add-single-device H B T L"
> /proc/scsi/scsi
Linux 2.6 カーネルでは、/sys ファイル・システムを使用して装置を追加および除去することもできます。ディスクを除去してカーネルによって認識されないようにするには、次のコマンドを使用します。
- echo “1” > /sys/class/scsi_host/hostH/device/H:B:T:L/delete
-
- または、他の 2.6 カーネルの場合に考えられるこの変形コマンドとして、次のコマンドを使用できます。
-
- echo “1” > /sys/class/scsi_host/hostH/device/targetH:B:T/H:B:T:L/delete
カーネルにディスクを再登録するには、次のコマンドを使用します。
- echo “B T L” > /sys/class/scsi_host/hostH/scan
注: Linux カーネルは、/dev ディレクトリー内では、
ファブリック装置の永続名を割り当てません。装置ファイル名は、バスのスキャン中に装置がディスカバーされた順序で割り当てられます。
例えば、LUN は /dev/sda である可能性があります。
ドライバーが再ロードした後は、同じ LUN が /dev/sdce となる場合があります。ファブリックの再構成の結果、
ホスト、バス、ターゲットおよび LUN ID にシフトが生じることがあります。
したがって、/proc/scsi/scsi ファイルを通して特定の装置を追加することは信頼性を下げることになります。