суббота, 6 февраля 2010 г.

DegradedArray event had been detected on md device /dev/md1.

A DegradedArray event had been detected on md device /dev/md1.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid1]
md1 : active raid1 sdb3[1]
465852800 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
20482752 blocks [2/1] [_U]

unused devices:

Говорит что распался рейд. Сегодня ночью случилось. Сейчас нашел что делать в таких случаях, буду читать, потом сюда брошу, если не забуду.

3 комментария:

  1. Ответы
    1. Нужно точно узнать что случилось - просто рассыпался массив или совсем перестал видеться диск.

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

      Если диск виден в системе (в fdisk -l), то просто нужно синхронизировать диски - убрать из массива выпавший диск и снова добавить.

      На практике это выглядит так:
      Как видим на моем пример, dev/sdа1 - выпавший диск (виден только sdb, один из дисков массива помечен буквой "U_")

      1) Удаляем выпавший диск из рейда

      mdadm /dev/md0 -r /dev/sdа1

      2) Добавляем обратно выпавший диск

      mdadm /dev/md0 -a /dev/sdа1


      Вот и все, дальше смотрим в /proc/mdstat процесс синхронизации.




      Удалить
    2. Если же одному из дисков совсем пришел кирдык, то вот инструкция, следуя которой можно произвести замену дискав рейде при замене физического диска (вставляю как есть, использовалось на ALTLinux):

      Как собрать и разобрать софтовый RAID1 для линукс систем.

      Выяснить UUID-ы дисков:

      ~]$ sudo blkid - выдаст все разделы и типы файловых систем

      ~]$ sudo hdparm -i /dev/sda выдаст СН устройства по которым можно посмотреть какой винт отпал

      Если один жёсткий диск вышел из строя, то загрузите операционную систему (она будет работать и на одном диске), зайдите под пользователем root и проделайте следующее:

      1. Посмотрите, что сломалось:
      [root@localhost ~]# cat /proc/mdstat

      Personalities : [raid1]


      md1 : active raid1 sda2[0]

      4723008 blocks [2/1] [U_]

      md0 : active (auto-read-only) raid1 sda1[0]

      513984 blocks [2/1] [U_]

      Из вывода видно, что диск sdb недоступен: U_ показывает отсутствие второго раздела под RAID.

      Удаляем записи об сбойных разделах из рейдов. Если этого не сделать, то вновь подключенный диск сменит своё имя устройства.
      mdadm /dev/md0 -r /dev/sdb1

      mdadm /dev/md1 -r /dev/sdb2

      mdadm /dev/md2 -r /dev/sdb3

      Удаляем из системы отсутствующее физически устройство:
      echo "1" > /sys/block/sdb/device/delete


      при этом пропадают /dev/sdb*. Если этого не проделать, нижеследующее сканирование не сработает. втыкаем диск в корзину, прислушиваясь к его раскрутке просим драйвер пересканировать шину:
      echo "- - -" > /sys/class/scsi_host/host0/scan


      2. Подключаем диск и копируем таблицу разделов с диска sda на диск sdb. Также перечитаем скопированную таблицу разделов для ядра:

      [root@localhost ~]# dd if=/dev/sda of=/dev/sdb bs=512 count=1

      1+0 records in

      1+0 records out

      512 bytes (512 B) copied,

      0.00682677 s, 75.0 kB/s

      [root@localhost ~]# hdparm -z /dev/sdb

      /dev/sdb:

      re-reading partition table

      3. Добавляем разделы со второго диска к RAID-массиву:
      [root@localhost ~]# mdadm /dev/md0 -a /dev/sdb1

      mdadm: added /dev/sdb1

      [root@localhost ~]# mdadm /dev/md1 -a /dev/sdb2

      mdadm: added /dev/sdb2

      [root@localhost ~]# mdadm /dev/md2 -a /dev/sdb3

      mdadm: added /dev/sdb

      4. Смотрим, что получилось:
      [root@localhost ~]# cat /proc/mdstat

      Personalities :[raid1]

      md1 : active raid1 sdb2[2] sda2[0]

      4723008 blocks [2/1] [U_] [>....................] recovery = 0.6% (32064/4723008) finish=9.7min speed=8016K/sec

      md0 : active raid1 sdb1[1] sda1[0]

      513984 blocks [2/2] [UU]

      md2 : active raid1 sdb3[1] sda3[0]

      513984 blocks [2/2] [UU]



      unused devices:

      Всё нормально: md0 уже засинхронизировался, md1 в процессе синхронизации.

      5. Через некоторое время смотрим ещё раз:
      [root@localhost ~]# cat /proc/mdstat

      Personalities : [raid1]

      md1 : active raid1 sdb2[1] sda2[0]

      4723008 blocks [2/2] [UU]

      md0 : active raid1 sdb1[1] sda1[0]

      513984 blocks [2/2] [UU]

      unused devices:

      Теперь RAID полностью восстановлен.

      6. Обязательно восстанавливаем загрузчик:
      [root@localhost ~]# lilo

      Added ALTLinux *

      Added failsafe

      The Master boot record of /dev/sda has been updated.

      Warning: /dev/sdb is not on the first disk

      The Master boot record of /dev/sdb has been updated.

      One warning was issued.

      Удалить