物理识别故障硬盘


25

因此,假设您的服务器有6个正常的硬盘驱动器。驱动器发生故障(无法安装/检测,因错误退出RAID)或发生故障(SMART变得更糟等)。您需要换掉坏的驱动器。打开机箱时,您会看到六个相同的硬盘驱动器。

您如何判断哪个不再健康/无法安装/无法正常工作?

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

在选择正确的驱动器之前,我不想随意断开驱动器的连接。这些驱动器看起来和我完全相同;我想象有一种识别我不知道哪个驱动器的常见方法。是否有人有任何指示/技巧/最佳做法?谢谢!

编辑:我本来希望以一种手摇的方式对此进行“概括”,但是它只是作为“不完整”和“可怕”而出现。我的错!


4
如果必须关闭计算机并找出哪个硬盘驱动器是什么,则应在计算机关闭时花一些时间来识别每个硬盘驱动器并以某种方式对其进行标记,以便再次发生这种情况时,您无需问题。
罗伊·里科

2
“ RAID(或其他)”?听起来用户在机房内松动。
rom09年

1
适当的服务器会通过打开坏驱动器的驱动器错误指示灯来告诉您哪个驱动器。
John Gardeniers

8
所有人,每个人都这么快就天真地跳了起来……坦率地说,我认为这是一个好问题,我必须要对付自己!
马克·亨德森

2
我很好奇,是否有出于爱好的目的,可以某种方式构造(手持烙铁等)驱动信号LED来从随机操作系统中物理识别它们(当没有像样的服务器级磁盘/ raid控制器时)礼物做他们的魔术)...
奥斯卡·杜夫伯恩

Answers:


26

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

smartctl将输出驱动器的序列号

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

因此,输出损坏的驱动器的序列号,然后使用牙医的镜子和手电筒查找驱动器。

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


哎呀……我想的不是SmartParl,而是hdparm。我需要编辑我的答案以反映这一点。
巴特·西尔弗斯

因提醒我正确的命令而被投票:-)
Bart Silverstrim

1
hdparm -i向我显示了驱动器的序列号-不过,这可能是特定于供应商的响应
Ian Clelland 09年

1
优秀!我现在无法尝试,但看来这就是答案!现在,我将在硬盘驱动器的序列号的最后N位(假定对于每个服务器来说,这是唯一的)标记在安装时暴露的位置。此外,从google搜索命令看起来是“-i smartctl读取”
privatehuff

15

在驱动器上贴标签(取决于托盘的设计)可能不可行。当驱动器死亡时,贴纸可能会变干并掉落。

ledctl(来自ledmon软件包)确实是解决此问题的方法。

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

要么

ledctl locate=/dev/sda

将点亮指定驱动器机箱上的驱动器故障指示灯。我提供了两个示例,以说明您如何确定驱动器并不重要。您可以使用序列号,名称等。可以使用任何可用的信息。在/ dev /和/ dev / disk /路径下以多种方式引用了驱动器。

要关闭灯,只需再次执行,将locate更改为locate_off,如下所示:

ledctl locate_off=/dev/sda

6

通常,您必须希望以某种方式标记连接,然后从发生故障的设备的身份开始工作。例如...并且某人必须发表评论以纠正我...如果您有两个IDE通道,每个通道上最多有2个驱动器,则可能有sda,sdb,sdc和sdd。如果sdd失败,它将是第二个IDE通道电缆上的第二个驱动器。

如果是SATA,并且像我在后台使用的系统那样,则为每个SATA驱动器标记端口。同样,驱动器字母从a一直到驱动器向上的任何位置,从SATA接口的端口0开始并向上移动。

如果存在制造差异,则dmesg | grep sd或dmesg | grep hd应该会提供一些线索。

如果您有可用的序列号,我认为hdparm命令可能会通过软件将其提供给您,因此您可以通过这种方式进行跟踪。在这种情况下,您可能希望在驱动器上贴上标签,这样一来,当您发现问题时就不必担心。

...我知道还有一个原因我更喜欢硬件RAID,而不是软件RAID ...指示灯闪烁。真的像闪烁的灯光。

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


闪烁的灯光+1
Oskar Duveborn 2010年

3

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

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

我对此一无所知!这很棒!
diq '16

2

六个内部HDDS?如果它们是外部热插拔驱动器,则热插拔托盘中的指示灯可能会亮起,以帮助您识别故障的驱动器。另外,许多Raid管理程序还可以选择闪烁​​特定驱动器上的指示灯以确定哪个驱动器。如果它们都是内部的且没有指示灯,则您可以使用RAID软件来告诉您哪些ID是好的,然后查看SCSI ID等来找出答案。如果将它们设置为auto,则RAID控制器文档应告诉您ID在SCSI链中的分配顺序。祝好运。在一切仍在进行时立即备份!


2

至少告诉您发生故障的驱动器的RAID软件/控制器应该告诉您发生故障的驱动器(标识号)。0通常是左上角的那个,先向下然后向右(如果是两列或更多列)。端口可能已标记。



2

如果您没有定位灯,并且无法轻松找到驱动器外部的序列号,那么这种俗气的技巧有时会有所帮助:在该特定驱动器上创建很多活动,然后寻找带有活动LED的固态驱动器。最好跟进更详细的序列号检查,但这可以帮助缩小搜索范围。

例如:

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

(虽然技术上并不需要while循环,但是当您前往数据中心时,它可以使事情继续前进。如果说“ dd”失败,则“ sleep 1”有助于避免快速循环造成的高CPU使用率。)驱动器断开连接。)


1

当其他所有方法都失败时,您可以识别未失败的驱动器并向后工作。

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

无论哪个驱动器活动指示灯均不亮,则可能很坏(并且希望它只是其中之一。)请注意,如果您配置了热备用,则它们也不会点亮。


0

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

在我们的戴尔上,这不是您的想法。在我们的0:0位于左下角,0:1位于左上角,0:2位于中间左下,依此类推。在我使用过的所有服务器中(自制作业除外),RAID软件将指示端口,并且它将标记。


0

scsirastools具有一组工具,可让您对SCSI磁盘执行各种诊断测试。您也可以使用sgmon在软件控制下关闭磁盘电源。这至少可以让您识别可以通过诊断找到它的物理磁盘。

如果您具有硬件RAID控制器,则控制器的BIOS或管理软件应具有使您能够识别坏磁盘的功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.