Как я могу физически идентифицировать один диск в массиве RAID?

16

У меня есть внешний отсек для диска с 4-мя дисками eSATA. В моей системе есть 4-портовая карта eSATA, а также пара внутренних жестких дисков RAID1. Внешние диски находятся в программных парах RAID1 как /dev/md0 и /dev/md1 . Оба были настроены как физические тома LVM для создания группы томов storagevg LVM. В последнее время один диск отключен (я подозреваю кабели), но, похоже, нет хорошего способа физически определить, какой диск мне нужно проверить, тем более, что порядок инициализации не совпадает с порядком загрузки. Как найти диск, требующий внимания?

    
задан Kees Cook 03.11.2010 в 01:42
источник

8 ответов

15

Дисковая утилита (сидящая в System - > Администрирование) предоставит вам серийные номера для всех ваших дисков.

Вот что я вижу (посмотрите на верхний правый сериал). Вы заметите, что этот диск находится в массиве RAID mdadm. Дисковая утилита может проникать в массив для доступа к необработанному диску.

У меня есть 6 одинаковой модели диска на моем ПК, поэтому я нарисовал небольшую диаграмму, показывающую их позицию в корпусе и серийный номер, чтобы я мог быстро найти их по серийному номеру в чрезвычайной ситуации.

Противоположное также верно в том, что если диск умирает, мне просто нужно найти, какие диски появляются, и я могу их устранить, пока не узнаю, какой серийный номер отсутствует.

Изменить: Я пытаюсь улучшить свой bash-fu, поэтому я написал эту версию командной строки, чтобы просто предоставить вам список серийных номеров дисков, которые являются текущими на вашем компьютере. fdisk может вытолкнуть некоторые ошибки, но это не повредит список:

for disk in 'sudo fdisk -l | grep -Eo '(/dev/[sh]d[a-z]):' | sed -E 's/://'';
do
    sudo hdparm -i $disk | grep -Eo 'SerialNo=.*' | sed -E 's/SerialNo=//';
done

(И вы можете разрушить это в одну строку, если вам нужно - я разбил его на читаемость)

Изменить 2: ls /dev/disk/by-id/ несколько проще;)

    
ответ дан Oli 03.11.2010 в 11:22
источник
5

Если у вас возникли проблемы с совпадением серийного номера накопителя или индикатора порта с пространственными местоположениями ваших дисков, вы можете запустить cat /dev/sdz >/dev/null (где sdz - неисправный диск) и найти диск по его светодиоду (или на ухе, если вы не в шумной серверной комнате). Если диск даже не включится, этого должно быть достаточно, чтобы определить, какой из них он есть. Обязательно поместите видимую метку на диски в следующий раз.

    
ответ дан Gilles 03.11.2010 в 20:30
3

Информация о том, что udisks дает (либо в командной строке, либо в утилите GNOME Disk Utility ), содержит серийный номер диска. На дисках, которые у меня есть, серийный номер печатается на верхней стороне и на лицевой стороне (тот, что находится на другой стороне той, которая содержит разъемы), как номера, так и штрих-код. К сожалению, большинство корпусов ПК не позволяют читать эти сериалы, не вытаскивая диск ...

Вы также можете найти серийные номера в /dev/disk/by-id/ .

Как ваш диск отключен, я предполагаю, что он не отображается в ядре в настоящее время? В этом случае вам может потребоваться исключить: вам нужен диск с серийным номером, который не указан ...

    
ответ дан JanC 03.11.2010 в 03:50
2

С программным рейдом это обычная проблема. Аппаратные рейды имеют тенденцию иметь функцию, которая позволяет вам мигать светодиодом, связанным с приводом, при условии, что ваше оборудование поддерживает это.

Но с программным RAID каждый диск имеет уникальные метаданные. Что вы можете прочитать с каждого диска с помощью команды mdadm -E /dev/sda1 для каждого диска в массиве, изменив устройства в соответствии с вашей средой. Поэтому, если у вас есть ситуация, когда диск дает вам проблемы и в настоящее время отключен. Я бы запускал это на каждом диске, который находится в сети, записывая младший номер для каждого диска. Затем, используя Live CD, который поддерживает MD, системный аварийный компакт-диск является хорошим, и только один диск за один раз подключен и запускает эту команду, чтобы найти виновника. Это, вероятно, не так прямо, как хотелось бы, но должно работать.

    
ответ дан 3dinfluence 03.11.2010 в 02:52
1

lsscsi

$ lsscsi -l
[0:0:0:0]    disk    ATA      TOSHIBA THNS128G AGLA  /dev/sda
  state=running queue_depth=1 scsi_level=6 type=0 device_blocked=0 timeout=30
[1:0:0:0]    cd/dvd  HL-DT-ST DVDRAM GT30N     LT09  /dev/sr0
  state=running queue_depth=1 scsi_level=6 type=5 device_blocked=0 timeout=30

, если диск не работает в состоянии, это довольно хороший знак. So / proc / mdstat сообщит вам, какой член не прошел. Предполагая, что у вас нет хорошей каркасной клетки вам придется развернуть серийный номер, sg_inq должен помочь с этим.

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

Ссылка

    
ответ дан ppetraki 14.11.2010 в 01:24
1

Чтобы получить серийные коды всех жестких дисков:

lsblk -i -o kname,mountpoint,fstype,size,maj:min,name,state,rm,rota,ro,type,label,model,serial


KNAME MOUNTPOINT   FSTYPE   SIZE MAJ:MIN NAME   STATE   RM ROTA RO TYPE LABEL         MODEL            SERIAL
sda                         3.7T   8:0   sda    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX4
sda1                        3.7T   8:1   '-sda1          0    1  0 part
sdb   /mnt/backup3 ext4     3.7T   8:16  sdb    running  0    1  0 disk backup_netops WDC WD4000F9YZ-0 WD-WCCXXX1
sdc                         3.7T   8:32  sdc    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX3
sdc1  /mnt/backup2 ext4     3.7T   8:33  '-sdc1          0    1  0 part
sdd                         3.7T   8:48  sdd    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX2
sdd1  /mnt/backup1 ext4     3.7T   8:49  '-sdd1          0    1  0 part
    
ответ дан BVBMedia 27.03.2016 в 15:55
0

Это просто. Это, например, вывод на моем ПК:

[email protected]:~$ cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdh1[1] sdg1[0]
      312568576 blocks [2/2] [UU]

unused devices: <none>

, как вы можете видеть, у меня / dev / sdh1 и / dev / sdg1 , соединенных в / dev / md0

    
ответ дан Andrea Grandi 03.11.2010 в 01:59
0

Так как ваш массив не имеет SES-смартфонов и активность диска Светодиод напрямую не управляется, например. вам нужна поддержка прошивки для тот. Единственное, что вы можете сделать: quiesce I / O as вы можете, а затем использовать что-то вроде dd или sg_read on сами участники, чтобы перейти к шаблону чтения к диск, который создает однозначно идентифицируемый шаблон мигания, используя индикатор активности, маяк бедного человека, если хотите. Это правда ваша единственная альтернатива, если не принести массив вниз, является вариантом.

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

    
ответ дан ppetraki 15.11.2010 в 03:04