web-dev-qa-db-ja.com

LinuxのSCSIデバイス名をディスクデバイスに関連付けるにはどうすればよいですか?

ソフトウェアRAIDを実行しているCentOS4.xサーバーがあります。サーバーには、ホットスワップトレイに2つのscsiディスクがあります。 mdadmはレイドが失敗したと報告しているので、交換したいと思います。

/ proc/mdstatを調べます。これは、2つのRAIDデバイスのディスクsdaとsdbにコンポーネントがあることを示しています。また、sdbが失敗したことも示しています。

/ proc/scsi/scsiを調べます。これは、SCSI ID 0 0 00と0-0-1-0に2つの物理デバイスがあることを示しています。

ホットに変更したいので、sdbは0-0-1-0だと思います。だから私は言う:

# echo "scsi remove-single-device 0 0 1 0" > /proc/scsi/scsi

...そして、sdaが削除されたばかりで、システムに有効なドライブがないため、コンピュータがバーフします。

振り返ってみると、この混乱に陥ったのは、ドライブが最後に故障したときで、sda/0-0-0-0でした。昔ながらの方法でした。コンピューターを停止し、デッドドライブを削除します。 、次に古いスロットでサバイバーから起動します。これは、sdaが0-0-1-0であると思ったコンピューターを私に残しました。次に、交換用のホットなものを入手して挿入し、次のように追加しました。

# echo "scsi add-single-device 0 0 0 0" > /proc/scsi/scsi

...これは機能しました。つまり、ディスクラベル、パーティションを適用し、RAIDアレイを再構築できました。これは、コンピュータがsdbが0-0-0-0であると見なすことも意味します。今、sdbは再び死にます(350日後ですが、それは別の問題です)、そして私はこれをすべて忘れました。

そう。私の記憶と記録保持スキルの両方がこれが起こったことを私に思い出させるには不十分であると仮定して、将来、scsiデバイス名(0-0- $ n-0)を比較してそれらを名前付きデバイスに関連付ける方法はありますか? (sd $ x)?

3

デバイスを識別する/sys/block/sda/device, which will have a symlink starting with scsi_deviceを調べることができます:</ code>

$ ls -d /sys/block/sda/device/scsi_device*
/sys/block/sda/device/scsi_device:0:0:0:0

または、/sys/bus/scsi/devices:を調べることもできます

$ ls /sys/bus/scsi/devices/
0:0:0:0  1:0:0:0  2:0:0:0  3:0:0:0  7:0:0:0  8:0:0:0
 </ code>

ここでの各エントリは、SCSIデバイスを表します。各ディレクトリ内には、対応するブロックデバイスを識別するblock:で始まるシンボリックリンクがあります。

$ ls -d /sys/bus/scsi/devices/0\:0\:0\:0/block*
/sys/bus/scsi/devices/0:0:0:0/block: sda 
5
larsks