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