Физически определить неисправный жесткий диск

25

Итак, допустим, на вашем сервере было 6 здоровых жестких дисков. Сбой диска (не монтируется / не обнаруживается, выпадает из рейда с ошибками) или происходит сбой (ухудшается SMART и т. Д.). Вам нужно заменить плохой диск. Когда вы открываете корпус, вы видите .. шесть одинаковых жестких дисков.

Как вы можете сказать, какой из них больше не здоров / монтаж / функционирование?

Системой будет Linux, скорее всего, сервер Ubuntu, использующий самое простое программное RAID. Жесткие диски будут SATA и подключены непосредственно к материнской плате. (без рейд-контроллера)

Я не хочу случайно отключать диски, пока не выберу правильный. Все диски кажутся мне идентичными; Я предполагаю, что есть какой-то общий способ определить, какой диск, о котором я не знаю. У кого-нибудь есть какие-нибудь указатели / советы / лучшие практики? Благодарность!

РЕДАКТИРОВАТЬ: Я хотел, чтобы это было «обобщено» в виде волнистой руки, но это просто получилось «неполным» и «ужасным». Виноват!

privatehuff
источник
4
Если вам нужно выключить машину и выяснить, какой жесткий диск является чем-то, вы должны потратить время, пока машина не работает, чтобы идентифицировать каждый жесткий диск и пометить его каким-либо образом, так что, когда это случится снова, у вас нет этого вопрос.
Рой Рико
2
«RAID (или что-то еще)»? Похоже, что пользователь свободно внутри машинного помещения.
romandas
1
Правильный сервер сообщит вам, какой диск, включив индикатор ошибки диска плохого диска.
Джон Гарденье
8
Чувак, все так быстро запрыгивают на это как наивность ... честно говоря, я думаю, что это хороший вопрос, который мне приходилось решать самому себе!
Марк Хендерсон
2
Мне любопытно, если там, в целях хобби, можно каким-то образом сконструировать (с паяльником в руке и т. Д.) Сигнальные светодиоды накопителя, чтобы физически идентифицировать их из случайной ОС (когда нет достойного серверного / дискового контроллера) подарок, чтобы творить свою магию) ...
Оскар Дюверборн

Ответы:

26

У меня была именно такая проблема на (башенном) сервере, как вы объяснили, и это было легко:

smartctl выведет серийный номер накопителя

Продавцы иногда поставляют свои собственные специальные инструменты, такие как hdparm, которые будут делать то же самое.

Поэтому выведите серийный номер неисправного диска, а затем используйте зеркало стоматолога и фонарик, чтобы найти диск.

На стойке у вас обычно будут световые индикаторы, как говорили другие люди, но держу пари, что применимо то же самое.

Том Риттер
источник
Упс ... smartctl, а не hdparm был тем, о котором я думаю. Мне нужно отредактировать свой ответ, чтобы отразить это.
Барт Сильверстрим
проголосовал за напоминание о правильной команде :-)
Барт Сильверстрим
1
hdparm -i показывает мне серийные номера моих дисков - это может быть ответ конкретного поставщика,
Иан Клелланд
1
превосходно! Я не могу попробовать это сейчас, но похоже, что это ответ! Теперь я буду маркировать свои жесткие диски последними N цифрами их серийных номеров (при условии, что они уникальны для каждого сервера) в месте, которое отображается при подключении. Также из поискового запроса команда выглядит так: «smartctl -i»
privatehuff
15

Наклейка наклеек на диски (в зависимости от конструкции лотка) может оказаться невозможной. К тому времени, когда диск умирает, наклейки могут высохнуть и выпасть.

Ledctl (из пакета Ledmon) действительно способ пойти с этим.

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

или

ledctl locate=/dev/sda

загорится индикатор сбоя диска на вашем шасси для указанного диска. Я привел два примера, чтобы проиллюстрировать, что не имеет значения, КАК вы идентифицируете диск. Вы можете использовать серийный номер, имя и т. Д. Любая доступная вам информация может быть использована. На диски ссылаются несколькими путями в / dev / и / dev / disk / path.

Чтобы выключить свет, просто запустите его снова, изменив locate на locate_off следующим образом:

ledctl locate_off=/dev/sda
UCS75
источник
6

Обычно вам следует надеяться, что соединения помечены каким-либо образом, а затем работают с идентификатора неисправного устройства. Например ... и кто-то должен был бы прокомментировать, чтобы исправить меня ... если у вас есть два канала IDE, у вас есть до 2 дисков на каждом, у вас могут быть sda, sdb, sdc и sdd. Если sdd не удалось, это будет второй диск на кабеле второго канала IDE.

Если это SATA и как система у меня в задней комнате, порты помечены для каждого из дисков SATA. Опять же, буква диска идет от конца к тому, на что идут диски, начиная с порта 0 разъемов SATA и двигаясь вверх.

Если есть какие-либо производственные различия, dmesg | grep sd или dmesg | grep hd должны дать некоторые подсказки.

Если у вас есть серийные номера, я думаю, что команда hdparm может выдать их вам в программном обеспечении, чтобы вы могли отследить это таким образом. Возможно, вы захотите пометить диски где-нибудь, если это так, поэтому вам не придется беспокоиться об этом, когда вы обнаружите проблему.

... Я знал, что есть еще одна причина, по которой я предпочел аппаратный RAID, а не программный RAID ... мигающие огни. Очень нравятся мигающие огни.

РЕДАКТИРОВАТЬ: smartctl, а не hdparm, дает серийный номер. Виноват.

Барт Сильверстрим
источник
+1 за мигающие огни
Оскар
3

На некоторых дисках имеется «файл» локации, /sysв который вы можете ввести 1 для включения индикатора локации или 0 для выключения.

$ for light in $( find /sys -name "locate" ) ; do echo 1 > $light ; sleep 10 ; echo 0 > $light; done
CRH
источник
Я понятия не имел об этом! Это здорово!
Дик
2

Шесть внутренних HDDS? Если это внешние жесткие диски с возможностью горячей замены, вероятно, на носителе с горячей заменой есть индикатор ошибки, помогающий определить неисправный диск. Кроме того, во многих программах управления рейдами есть возможность мигать на определенном диске, чтобы определить, какой именно. Если они все внутренние и не светятся, то вы можете обратиться к программному обеспечению RAID, которое сообщит вам, какие идентификаторы хороши, и посмотрите на идентификаторы SCSI и т. Д., Чтобы выяснить это. Если они установлены на auto, то ваш документ RAID-контроллера должен сообщить вам, в каком порядке в цепочке SCSI назначены идентификаторы. Удачи. Сделайте резервную копию сейчас, пока все еще работает!

BillN
источник
2

По крайней мере, программное обеспечение / контроллер RAID, который сообщал вам о неисправном диске, должен указывать, какой диск вышел из строя (идентификационный номер). 0 обычно это то, что вверху слева, двигаясь вниз, затем вправо (если в двух или более столбцах). Порты, вероятно, помечены.

mrdenny
источник
2

Для краткого ответа - «lsscsi». Для подробного ответа - «lshw -c disk» покажет вам порты жесткого диска и SATA, к которым они подключены.

Сарат Кумар С
источник
2

Если у вас нет индикатора местоположения и вы не можете легко найти серийные номера на внешних дисках, иногда может помочь эта незаметная техника: создайте МНОГО активности на этом конкретном диске, а затем ищите диск с постоянным светодиодом активности. , Лучше всего провести более детальную проверку серийного номера, но это может помочь сузить поиск.

Например:

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

(Цикл while технически не нужен, но он будет продолжать двигаться, пока вы направляетесь в центр обработки данных. «Сон 1» помогает избежать высокой загрузки ЦП, создаваемой быстрым циклом, если «dd» не срабатывает из-за, скажем .. . привод отключен.)

Стив Бондс
источник
1

Когда все остальное терпит неудачу, вы можете определить неисправные диски и работать в обратном направлении.

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

Независимо от того, какие индикаторы активности дисков не загораются, они, вероятно, неисправны (и, надеюсь, это всего лишь один из них). Обратите внимание, что если у вас настроены «горячие» резервы, они тоже не загорятся.

toppledwagon
источник
0

Они должны иметь маркировку на корпусе и соответствовать программному обеспечению RAID.

На наших Деллс, это не так, как вы думаете. На нашем 0: 0 слева внизу, 0: 1 вверху слева, 0: 2 внизу посередине и т. Д. На всех серверах, которые я использовал (кроме домашних заданий), программное обеспечение RAID будет указывать порт, и это будет маркированы.

dubRun
источник
0

scsirastools имеет набор инструментов, которые позволяют выполнять различные диагностические тесты на дисках SCSI. Вы также можете использовать sgmon для выключения диска под управлением программного обеспечения. Это, по крайней мере, позволит вам идентифицировать физический диск, на котором вы сможете найти его с помощью диагностики.

Если у вас есть аппаратный RAID-контроллер, в BIOS контроллера или управляющем программном обеспечении должно быть средство, позволяющее идентифицировать поврежденные диски.

ConcernedOfTunbridgeWells
источник