SASシャーシでディスクを探す

SASシャーシでディスクを探す

24台のディスクSASキャビネットで障害が発生したデバイスをフラッシュしたいです。

sg_ses --index 7 --set=locate /dev/sg24スロット7を認識する必要があることがわかりました。

しかし、どのスロット/インデックスをどのように知ることができますか/dev/sdh

Linuxはスロットの後に/dev/sdX名を指定せず、検出されたシーケンスの後に名前を付けるため、これは明確ではありません。スロット1が起動時に空でしたが、後でいっぱいになると何が起こるか想像してみてください。

編集する:

コントローラはSAS2008です。

答え1

しばらく /sys を繰り返した後、次の解決策が見つかりました。

# echo /sys/class/enclosure/*/*/device/block/sdaa
/sys/class/enclosure/2:0:35:0/Slot 15/device/block/sdaa
# echo 1 > '/sys/class/enclosure/2:0:35:0/Slot 15/locate' 

または:

# echo 1 > /sys/class/enclosure/*/*/device/block/sdaa/../../enclosure*/locate

検出されたすべてのデバイスをフラッシュするには:

parallel echo 1 \> ::: /sys/class/enclosure/*/*/device/block/sd*/../../enclosure*/locate

これは、ドライブが破損しすぎてLinuxがそれを検出できない場合(たとえば、起動しないなど)に役立ちます。

編集する:

私はスロットをフラッシュするための小さなツール(点滅と呼ばれる)を作成しました。https://gitlab.com/ole.tange/tangetools/tree/master/blink

答え2

lsblkこの醜いスクリプトは、出力にシ​​ェルとスロット情報を追加します。

lsblk -d -o VENDOR,MODEL,SERIAL,HCTL,NAME | sed -e "`ls -1d /sys/class/enclosure/*/*/device/block/*|sed "s+.*enclosure/\(.*\)/device/block/\(.*\)+s-\2\\$-\2 \1-+"`"

(列のリストを変更できますが、最後の列は必要ですNAME。)

答え3

/sys/class/block/sdh何が接続されているかを確認してください。これにより、ホスト、宛先、およびLUNを表示できます。通常、これはデバイスのハードウェアアドレスを見つけるのに十分です。

答え4

素晴らしいツールがあります(次から入手可能)。https://github.com/amarao/sdled)ケースLEDを管理します。

次のように使用できます(テストされていませんが)。

encled /dev/sgh fault

追加情報ファイルから:

エラー - LEDインジケーターを「エラー」に設定します。これにより、デバイスが誤動作することはなく、シェルを「失敗」状態に設定するだけです。

関連情報