
我想要讓 24 磁碟 SAS 機櫃中的故障裝置閃爍。
我發現sg_ses --index 7 --set=locate /dev/sg24
它應該識別插槽 7。
但我該如何找出哪個槽/索引/dev/sdh
呢?
這並不明顯,因為 Linux 不是在插槽之後命名 /dev/sdX,而是在偵測到的序列之後命名 /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 指示燈設定為「故障」。這不會使設備故障,只需將外殼設定為「故障」狀態即可。