在 SAS 机箱中找到磁盘

在 SAS 机箱中找到磁盘

我想要让 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 指示灯设置为“故障”。这不会使设备出现故障,只需将外壳设置为“故障”状态即可。

相关内容