物理识别发生故障的硬盘

所以,假设你的服务器有6个健康的硬盘。 一个驱动器失败(不会挂载/检测,从RAID中删除错误)或失败(SMART越来越差,等)。 你需要换掉坏的驱动器。 当你打开箱子,你会看到..六个相同的硬盘驱动器

你怎么知道哪一个不再健康/安装/运作?

系统将是Linux,最有可能的是Ubuntu服务器,使用最简单的软件RAID。 硬盘将是SATA并直接连接到主板。 (没有RAID控制器)

我不想随机断开驱动器,直到我select正确的驱动器。 驱动器看起来和我完全一样。 我想有一些常见的方法来确定哪些驱动器是我不知道的。 有没有人有任何指针/技巧/最佳做法? 谢谢!

编辑:我希望这是一个手头波浪式的“泛化”,但它只是“不完整”和“可怕的”。 我的错!

就像你解释的那样,我在(塔)服务器上遇到了这个确切的问题,很简单:

smartctl会输出驱动器的序列号

供应商有时会运送他们自己的特定工具,如hdparm,也会这样做。

所以输出坏的驱动器的序列,然后用牙医的镜子和手电筒find驱动器。

在机架上,您通常会像其他人说的那样使用指示灯,但是我敢打赌,这同样适用。

通常情况下,您将不得不希望以某种方式标记连接,然后根据失败设备的身份进行工作。 例如…有人会评论纠正我…如果你有两个IDE通道,你最多有两个驱动器,你可以有sda,sdb,sdc和sdd。 如果sdd失败,它将成为第二个IDE通道电缆上的第二个驱动器。

如果是SATA,就像我在后面的系统中那样,每个SATA驱动器都标有端口。 同样,从SATA驱动器的端口0开始,向上移动驱动器刻字。

如果有任何制造差异,dmesg | grep sd或dmesg | grep hd应该会产生一些线索。

如果你有可用的序列号,我认为hdparm命令可能会用软件给你,所以你可以这样跟踪。 如果遇到这种情况,您可能需要在某处标注驱动器,因此当您发现问题时不必担心。

…我知道还有另一个原因,我喜欢硬件RAID RAID软件闪烁的灯光。 真的喜欢闪烁的灯光。

编辑:smartctl,而不是hdparm,给出序列号。 我的错。

把贴纸放在驱动器上(取决于托盘的devise)可能是不可行的。 当驱动器死亡时,贴纸可能干涸并掉落。

ledctl(从包ledmon)是真正的方式去与此。

ledctl locate=/dev/disk/by-id/[drive-id] 

要么

 ledctl locate=/dev/sda 

将会照亮指定驱动器的机箱上的驱动器故障指示灯。 我举了两个例子来说明如何识别驱动器并不重要。 您可以使用序列号,名称等…可以使用任何可用的信息。 驱动器在/ dev /和/ dev / disk /path下以多种方式引用。

要closures灯光,只需再次执行,将位置更改为locate_off,如下所示:

 ledctl locate_off=/dev/sda 

某些驱动器会在/sys显示一个定位“文件”,您可以在其中回显1打开定位指示灯或打开0。

 $ for light in $( find /sys -name "locate" ) ; do echo 1 > $light ; sleep 10 ; echo 0 > $light; done 

六个内部HDDS? 如果它们是外置热插拔驱动器,则热插拔托架可能会有错误指示灯,以帮助您识别坏驱动器。 还有许多Raidpipe理程序可以select在特定的驱动器上闪光以确定哪个是哪个。 如果他们都是没有灯光的内部,那么你可以使用你的RAID软件来告诉你哪些ID是好的,并且查看SCSI ID等等。 如果它们被设置为auto,那么你的RAID控制器文档应该告诉你在SCSI链中分配ID的顺序。 祝你好运。 现在还在运行的时候进行备份!

至less,告诉你发生故障的驱动器的RAID软件/控制器应告诉你哪个驱动器发生了故障(ID号)。 0通常是左上angular的一个,向下移动,然后向右(如果在两列或更多列中)。 这些端口可能被标记。

当所有其他的失败,你可以识别没有失败的驱动器,并向后工作。

 find / -type f -exec cat {} \; >> /dev/null 

无论哪个驱动器活动指示灯不亮都可能是坏的(希望它只是一个)。请注意,如果您configuration了热备份,那么也不会点亮。

如果您没有定位灯并且无法轻松find驱动器外部的序列号,有时候这种俗气的技术可以帮助:在该特定驱动器上创build大量活动,然后查找固态活动LED的驱动器。 最好跟进更详细的序列号检查,但这可以帮助缩小search范围。

例如:

# while true; do dd if=/dev/disk/by-id/scsi-drive-that-is-dying of=/dev/null; sleep 1; done

(虽然while循环不是技术上需要的,但是当你前往数据中心的时候,while循环会使事物保持移动,如果“dd”失败,那么“sleep 1”有助于避免由于快速循环而产生的高CPU使用率。驱动器断开连接。)

它们应该贴在机箱上,并与RAID软件相对应。

在我们的戴尔,这不是你想的方式。 在我们的0:0是左下angular,0:1是左上angular,0:2是底部中间等。在我使用的所有服务器(除了自制作业),RAID软件将指示端口,它将标记。

scsirastools有一套工具可以让你在SCSI磁盘上进行各种诊断testing。 您也可以使用sgmon在软件控制下closures磁盘。 这至less可以让你识别你的物理磁盘,并可以通过诊断程序find它。

如果您有一个硬件RAID控制器,则控制器的BIOS或pipe理软件应具有可识别错误磁盘的function。

简单的回答 – “lsscsi”详细的回答 – “lshw -c disk”会显示连接的硬盘和SATA端口。