我在 ZPool 中有 6 个磁盘的 SuperMicro 2U 服务器上运行。我想使用 Drive Carrier LED 从 FreeBSD 中的工具运行命令来识别每个驱动器托架。有没有办法做到这一点?
我知道驱动器是否在 Raid Card 上运行,我可以使用 raid card 实用程序来识别每个磁盘,但在我的情况下,没有硬件 raid。
有没有在 FreeBSD 或 Linux 中执行此操作的工具?
我在 ZPool 中有 6 个磁盘的 SuperMicro 2U 服务器上运行。我想使用 Drive Carrier LED 从 FreeBSD 中的工具运行命令来识别每个驱动器托架。有没有办法做到这一点?
我知道驱动器是否在 Raid Card 上运行,我可以使用 raid card 实用程序来识别每个磁盘,但在我的情况下,没有硬件 raid。
有没有在 FreeBSD 或 Linux 中执行此操作的工具?
穷人识别磁盘的方法是发出 a
dd if=/dev/daX of=/dev/null
并查看哪个磁盘的活动 LED 闪烁得最快。对于系统中的其他磁盘来说,这当然需要一段低活动期,但这是非常普遍的。如果您有一个可以使用的 (LSI) SAS 控制器,
sas2ircu
那么您可以使用它来发出“显示”命令以列出可用的驱动器及其序列号,然后运行“定位”命令以使机箱上的灯闪烁。我知道这是一个老问题,但它给了我一些我放在一起的部分,我想我会收回我想出的脚本,因为这几乎完全符合我的情况:它需要 sas2ircu :http ://www.avagotech.com/docs-and-downloads/host-bus-adapters/host-bus-adapters-common-files/sas_sata_6g_p20/SAS2IRCU_P20.zip 以及来自端口、bash 和 sg3_utils
它确实做了一些假设,我认为主要的假设是它连接到控制器 0。您可以使用它
sas2ircu list
来识别您的控制器编号。它将检查选定的池(通过 zpool status)。如果没有错误,它将:
如果有错误,它将:
无论如何,这是脚本。我将它作为每小时的 cron 作业来运行。
我知道这是一个老问题,但对于遇到此问题的搜索者来说,在 FreeBSD >= 10.3 上,您可以使用它
sesutil locate da2 on
来打开 da2 的 LED,前提是它位于提供 /dev/sesN 设备的外壳中。我不知道 FreeBSD,但在 Linux 中,有一个来自 Intel 的软件集合,
ledmon(8)
我使用用户空间程序ledctl(8)
在我的 SuperMicro SC847E26-RJBOD1 中的特定驱动器上闪烁“定位”LED,该驱动器由LSI SAS3008 HBA(非 MegaRAID):然后一旦找到它,我就关闭了“定位”LED:
sgpio(1)
是 HBA 和背板之间通信所必需的。对于我的大多数 ZFS 解决方案,您最好打赌我有一张表和一组标签,这些标签通过部分SAS WWN标识驱动器。这是我使用的 LSI 控制器的一个功能,读起来像:
有几个选项可以让它工作。一种是可供 OEM 和集成商使用的商业SanTools SMARTmon 实用程序。它利用了外部 JBOD 单元中的SCSI Enclosure Services (SES)功能,但对内部磁盘也有一些魔力。
您可能还有一个选项,具体取决于您使用的控制器。您只是在使用主板控制器还是专用的非 RAID SAS HBA?
没有标准化的抽象软件接口来点亮 Drive Carrier LED(不是活动 LED)——这高度依赖于硬件。这意味着您仍然需要存储控制器工具(您所说的 raid 卡实用程序)向控制器发送适当的命令。如何调用或实现此软件当然取决于存储控制器的制造商/供应商。
(你有 SW raid 并不重要,因为你显然仍然需要一个存储控制器与你的背板、盒和驱动器通信。)
如果您使用带有廉价控制器的企业级驱动器盒,那么您可能就不走运了。