ディスクがどのエンクロージャに属しているかを確認するにはどうすればよいでしょうか?

ディスクがどのエンクロージャに属しているかを確認するにはどうすればよいでしょうか?

lsscsiディスクとエンクロージャが多数あることがわかります。

$ ls /sys/class/enclosure/6:0:10:0/ArrayDevice*/device/scsi/disk6:0:10:0 エンクロージャの下にあるディスクのすべての SCSI アドレスのリストを取得するために使用できます。

そのリストをlsscsi出力と関連付けることで、各ディスクがどこにあるかを確認できます。

しかし、これを自動化するためにスクリプトを書く必要はないはずです。 または のようなツール、udevadmあるいはsg_sesこのタスクを実行できるものはありますか?

答え1

それは答えですか?

[root@hard-3 ~]# ls -ldF /sys/block/sda/device/enclosure_device\:0
lrwxrwxrwx. 1 root root 0 июл 26 18:25 /sys/block/sda/device/enclosure_device:0 -> ../../../../../../port-1:0:4/end_device-1:0:4/target1:0:1/1:0:1:0/enclosure/1:0:1:0/0/
[root@hard-3 ~]# 

答え2

sg3_utils(debianではsg3-utils)パッケージをインストールできます。lsscsiコマンドは、エンクロージャのバスIDを識別するのに役立ちます。クエリを実行することができます。sg_ses -p 7 /dev/bsg/<busid>

以下に例を示します。

[0:0:64:0]   disk    HGST     HUHAJLGALLLAAAAA  A384  /dev/sdbl
[0:0:65:0]   enclosu HGST     4U60G2_STOR_ENCL 0101  -

バスIDを取得したら:

sg_ses --page=7 /dev/bsg/0:0:65:0

関連情報