Як я можу фізично визначити один диск у масиві RAID?


16

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

Відповіді:


15

Disk Utility (сидячи в системі -> Адміністрація) дасть вам серійні номери для всіх ваших дисків.

Ось, що я бачу (подивіться вгорі праворуч для серіалу). Ви помітите, що цей диск знаходиться в масиві mdadm RAID. Disk Utility може проникати в масив для доступу до необмеженого диска.

Утиліта диска

У мене є 6 однакових моделей дисків на моєму ПК, тому я намалював невелику діаграму із зазначенням їх положення у корпусі та серійного номера, щоб я міг швидко знайти їх на серійному в екстреному випадку.

Протилежне також справедливо в тому, що якщо диск вмирає, мені просто потрібно знайти, які диски відображаються, і я можу їх усунути, поки я не дізнаюся, який серіал відсутній.

Редагувати: Я намагаюся покращити свій баш-фу, тому я написав цю версію командного рядка, щоб просто дати вам список серійних номерів дисків, які є поточними у вашій машині. 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/ дещо простіше;)


Використання серійних номерів може добре працювати, якщо він уже записав їх зовні. У випадку із системою, яка не може бути вимкнена, але має накопичувачі гарячої заміни, було б непогано мати можливість виявити несправний диск за допомогою світлодіодів.
Кіс Кук

Ви також помітите, що в Disk Utility є ідентифікатор "Location", який показує, до якого порту хостового адаптера приєднано накопичувач. Можливо, ви зможете визначити, які саме порти, не відключаючи диски, але я не можу припускати, це фактично працює.
Олі

У вашому випадку зупинка масиву рейду на 5 хвилин, відключення кожного приводу та отримання серіалу не повинні бути занадто необгрунтованими та не повинні вимагати відключення машини ... Але RAID доведеться знімати, якщо ви не захочете. це відбудова.
Олі

"Місцеположення" не завжди корисне, наприклад, у випадку PATA часто є 2 диски на 1 порту, і якщо обидва ваші диски встановлені на "AUTO" для узгодження з master / slave, мабуть, не існує способу дізнатися, що саме ? Це може спрацювати для SATA, хоча
січня

1
Чи існують накопичувачі PATA? Я був лише SATA з тих пір ... Ну, оскільки диск з 112 гг вважався великим. Проблема знаходження-порту насправді не зараховується, оскільки ми говоримо про зовнішній відсік накопичувача. Але точно. На споживчих материнських платах вам, ймовірно, доведеться ознайомитися з посібником, щоб зрозуміти, що таке порт, який ... Навіть тоді програмне забезпечення може приписувати їм інший порядок.
Олі

5

Якщо у вас є проблеми зі збігом серійного номера диска або вказівки порту з просторовими місцями вашого диска, ви можете запустити cat /dev/sdz >/dev/null(де sdzнесправний диск) і знайти привід за його світлодіодом (або на слух, якщо ви не знаходитесь у шумній кімнаті сервера ). Якщо накопичувач навіть не ввімкне живлення, цього має бути достатньо, щоб сказати, який він. Обов’язково поставте видиму мітку на диски наступного разу.


це чистий геній, оскільки він має побічний ефект, коли світло залишається твердим, а всі інші блимають
HDave

3

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

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

Оскільки ваш диск в режимі офлайн, я припускаю, що його ядро ​​зараз не "бачить"? У цьому випадку вам, можливо, доведеться піти на усунення: ви хочете диск із порядковим номером, який не вказаний у списку ...


2

З програмним нальотом це поширена проблема. У апаратних рейдах, як правило, є функція, яка дозволяє блимати світлодіод, пов'язаний з накопичувачем, припускаючи, що це обладнання підтримує це.

Але з програмним RAID кожен диск має деякі унікальні метадані. Який ви можете прочитати його з кожного диска, використовуючи команду mdadm -E /dev/sda1для кожного диска в масиві, модифікуючи пристрої відповідно до вашого оточення. Тож якщо у вас є ситуація, коли привід створює проблеми, а зараз він перебуває в режимі офлайн. Я б запустив це на кожному диску, який є в Інтернеті, записуючи незначне число для кожного диска. Тоді, використовуючи Live CD, що підтримує MD, системний диск для порятунку є гарним, підключений лише один привід і запускає цю команду, щоб знайти винуватця. Напевно, це не так прямо, як хотілося б, але це має працювати.


Можливо, можуть бути серійні номери, які ви можете отримати через Linux, які також надруковані на фізичному диску?
erjiang

1

lsscsi

$ lsscsi -l
[0: 0: 0: 0] диск ATA TOSHIBA THNS128G AGLA / dev / sda
  state = працює queue_depth = 1 scsi_level = 6 тип = 0 пристрою_блоковано = 0 тайм-аут = 30
[1: 0: 0: 0] cd / dvd HL-DT-ST DVDRAM GT30N LT09 / dev / sr0
  state = працює queue_depth = 1 scsi_level = 6 тип = 5 пристрою_блоковано = 0 тайм-аут = 30

якщо диск не працює, це досить хороший знак. Тож / proc / mdstat скаже вам, хто з користувачів не вдався. Якщо припустити, що у вас немає гарної клітки приводу, вам доведеться просвердлити серійний номер, sg_inq повинен допомогти у цьому.

Якщо у вас хороша клітинка накопичувача, ви повинні мати можливість включити диск-маяк, щоб допомогти визначити несправний член.

http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg07307.html


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

0

Це просто. Наприклад, це вихід на моєму ПК:

andrea@centurion:~$ 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


1
Правильно, але це мені нічого не говорить про те, де вони фізично знаходяться у зовнішньому корпусі накопичувача.
Кіс Кук

0

Оскільки у вашому масиві немає розумних SES, а світлодіодний показник активності диска не керується безпосередньо, наприклад, вам потрібна підтримка мікропрограмного забезпечення. Єдине, що ви можете зробити - це призупинити введення / виведення якнайкраще, а потім використати щось на кшталт ddабо sg_readна самих членах, щоб накреслити зразок зчитування на диску, який створює однозначно ідентифіковану схему мигання, використовуючи світлодіод активності, поганий чоловічий маяк, якщо хочете. Це справді єдина ваша альтернатива, якщо тільки зведення масиву не є варіантом.

Цей вид справності - це те, що відрізняє зовнішні масиви зберігання. Оскільки ви не планували заздалегідь, записуючи серійні номери та їхні позиції, ви не можете виконати просту різницю для встановлення несправного накопичувача. Це ціна, яку ви платите за розроблене рішення, незалежно від того, усвідомлюєте ви це чи ні, але ей, живи і вчися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.