LINUX.ORG.RU
решено ФорумAdmin

Умер софтверный raid5


0

3

Массив собран из трёх одинаковых 2Гб хардов. Раньше он состоял из дисков (на сколько я помню) sda1,sdb1,sdd1

ОС - дебиан

root@ferdinand:~# uname -a
Linux ferdinand 2.6.32-5-686 #1 SMP Sun May 6 04:01:19 UTC 2012 i686 GNU/Linux
root@ferdinand:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : inactive sdb1[1](S) sdd1[3](S)
      3907027037 blocks super 1.2

unused devices: <none>
root@ferdinand:~# mdadm -S /dev/md0
mdadm: stopped /dev/md0
root@ferdinand:~# sudo mdadm --assemble --scan -fv
mdadm: looking for devices for /dev/md/0
mdadm: no RAID superblock on /dev/sdd
mdadm: /dev/sdd has wrong uuid.
mdadm: cannot open device /dev/sdc9: Device or resource busy
mdadm: /dev/sdc9 has wrong uuid.
mdadm: cannot open device /dev/sdc8: Device or resource busy
mdadm: /dev/sdc8 has wrong uuid.
mdadm: cannot open device /dev/sdc7: Device or resource busy
mdadm: /dev/sdc7 has wrong uuid.
mdadm: cannot open device /dev/sdc6: Device or resource busy
mdadm: /dev/sdc6 has wrong uuid.
mdadm: cannot open device /dev/sdc5: Device or resource busy
mdadm: /dev/sdc5 has wrong uuid.
mdadm: no RAID superblock on /dev/sdc2
mdadm: /dev/sdc2 has wrong uuid.
mdadm: cannot open device /dev/sdc1: Device or resource busy
mdadm: /dev/sdc1 has wrong uuid.
mdadm: cannot open device /dev/sdc: Device or resource busy
mdadm: /dev/sdc has wrong uuid.
mdadm: no RAID superblock on /dev/sdb
mdadm: /dev/sdb has wrong uuid.
mdadm: /dev/sdd1 is identified as a member of /dev/md/0, slot -1.
mdadm: /dev/sdb1 is identified as a member of /dev/md/0, slot 1.
mdadm: /dev/sda is identified as a member of /dev/md/0, slot -1.
mdadm: no uptodate device for slot 0 of /dev/md/0
mdadm: no uptodate device for slot 2 of /dev/md/0
mdadm: added /dev/sdd1 to /dev/md/0 as -1
mdadm: failed to add /dev/sda to /dev/md/0: Device or resource busy
mdadm: added /dev/sdb1 to /dev/md/0 as 1
mdadm: /dev/md/0 assembled from 1 drive and 1 spare - not enough to start the array.

тут меня смущает что откуда-то появились 2 диска со слотом -1. Раньше ни одного spare диска не было

root@ferdinand:~# mdadm --examine /dev/sda1
mdadm: cannot open /dev/sda1: No such file or directory
root@ferdinand:~# mdadm --examine /dev/sda
/dev/sda:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : aee1cc6f:bb0a9112:acb1b9a8:89468900
           Name : ferdinand:0  (local to host ferdinand)
  Creation Time : Thu Aug 11 21:16:38 2011
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3907027120 (1863.02 GiB 2000.40 GB)
     Array Size : 7814051840 (3726.03 GiB 4000.79 GB)
  Used Dev Size : 3907025920 (1863.02 GiB 2000.40 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 348431ea:717f471d:8c91c459:27c4e287

    Update Time : Sat Nov  9 19:21:17 2013
       Checksum : 37606d2 - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : spare
   Array State : .A. ('A' == active, '.' == missing)
root@ferdinand:~# mdadm --examine /dev/sdb1
/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : aee1cc6f:bb0a9112:acb1b9a8:89468900
           Name : ferdinand:0  (local to host ferdinand)
  Creation Time : Thu Aug 11 21:16:38 2011
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3907027037 (1863.02 GiB 2000.40 GB)
     Array Size : 7814051840 (3726.03 GiB 4000.79 GB)
  Used Dev Size : 3907025920 (1863.02 GiB 2000.40 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 8dff364c:161b0a5e:983cfb1e:6e8ebb75

    Update Time : Sat Nov  9 19:21:17 2013
       Checksum : 594d8f27 - correct
         Events : 64602

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : .A. ('A' == active, '.' == missing)
root@ferdinand:~# mdadm --examine /dev/sdd1
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : aee1cc6f:bb0a9112:acb1b9a8:89468900
           Name : ferdinand:0  (local to host ferdinand)
  Creation Time : Thu Aug 11 21:16:38 2011
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3907027037 (1863.02 GiB 2000.40 GB)
     Array Size : 7814051840 (3726.03 GiB 4000.79 GB)
  Used Dev Size : 3907025920 (1863.02 GiB 2000.40 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : e92f6dad:151a73c1:db7421da:125cd16b

    Update Time : Sat Nov  9 19:21:17 2013
       Checksum : cf28c812 - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : spare
   Array State : .A. ('A' == active, '.' == missing)

вообще раньше бывали с ним проблемы, часто вылетал sdd1 диск, без всяких причин... лечилось удалением диска и повторным добавлением. тестировал этот диск - никаких железных проблем не нашёл...

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

хоть направьте в нужную сторону. я не прошу полного решения...

phoenix_mstu ()

Если там важные данные, то перед попыткой что-то починить забекапь винты полностью с помощью dd.

Судя по выводу --examine, sda участвовал в RAID целиком, а не как один раздел sd1

Это был RAID 5? Попробуй не сканировать, а собирать вручную с явно заданными дисками, избыточность пятого рейда позволяет читать данные при потере одного диска(внимание - потенциально деструктивная операция!):

mdadm --verbose --assemble --run --force /dev/md0 /dev/sda /dev/sdb1

mdadm --verbose --assemble --run --force /dev/md0 --raid-devices=3 /dev/sda /dev/sdd1

mdadm --verbose --assemble --run --force /dev/md0 --raid-devices=3 /dev/sdb1 /dev/sdd1

Запости результаты --examine для всех имеющихся дисков, только не делай из поста километровую портанку, юзай pastebin.com

selivan ★★★ ()
Ответ на: комментарий от selivan

Для --assembe имя массива, возможно, указывать не нужно

selivan ★★★ ()

Я бы рекомендовал куда-нибудь слить по 1 Гбайт с начала каждого из дисков (sda, sdb, sdd), чтобы потом в случае чего записывать обратно, потому что всякие force, assume-clean и т.д. могут попортить суперблоки.

А так, если у вас на винтах есть важные данные, всегда нужно куда-то копировать таблицы разделов, структуру LVM, параметры RAID-разделов, размещение суперблоков ФС.

mky ★★★★★ ()

Ну как оно? Получилось/не получилось/за потерю данных тебя расстреляли и ты больше сюда не пишешь?

selivan ★★★ ()
Ответ на: комментарий от selivan

вроде почти сделал

простите что не отвечал. так вышло что повторно заняться этим смог только сегодня.

То что ты предлагал не помогло, нарыл вот эту статью http://forums.gentoo.org/viewtopic-t-847791-view-previous.html?sid=e25645cab860b9db5237a0a112193812 - в ней описана похожая ситуация.

Предварительно сняв дамп по 1ГБ с начала каждого диска начал пробовать то, что там написано. Но у меня ничего не вышло. Тогда я начал искать на сервере структуру бывшего массива. Нашёл письмо в почте:

From: mdadm monitoring <root@ferdinand.home>
To: root@ferdinand.home
Subject: Fail event on /dev/md/0:ferdinand

This is an automatically generated mail message from mdadm
running on ferdinand

A Fail event had been detected on md device /dev/md/0.

It could be related to component device /dev/sda1.

Faithfully yours, etc.

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

Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sda1[0](F) sdd1[3](F) sdb1[1]
      3907025920 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/1] [_U_]

unused devices: <none>

Из этого письма выходит что всё-таки были разделы sda1 и sdd1, а сейчас их нет. При этом на sda записана структура spare раздела массива.

Записываем поверх диска sda первые 21504 байта с диска sdb, обновляем список разделов в ядре - появляется раздел sda1. Проверяем hex редактором - всё ок, в нём структура raid раздела.

Запускаем

root@ferdinand:~# mdadm --create /dev/md0 --assume-clean --level=5 --chunk=512 --raid-devices=3 /dev/sda1 /dev/sdb1 missing
mdadm: /dev/sda1 appears to be part of a raid array:
    level=raid5 devices=3 ctime=Thu Aug 11 21:16:38 2011
mdadm: /dev/sdb1 appears to be part of a raid array:
    level=raid5 devices=3 ctime=Thu Aug 11 21:16:38 2011
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

бинго, в hex редакторе видим в /dev/md0 структуру lvm раздела.

root@ferdinand:~# /etc/init.d/lvm2 start
Setting up LVM Volume Groups  Reading all physical volumes.  This may take a while...
  Found volume group "data" using metadata type lvm2
  1 logical volume(s) in volume group "data" now active
.

получилось!

а дальше пока не дошёл. решил сюда написать, пока не забыл.

phoenix_mstu ()
Ответ на: вроде почти сделал от phoenix_mstu

ну и окончательно

root@ferdinand:~# lvmdiskscan
  /dev/md0  [       3,64 TiB] LVM physical volume
  /dev/dm-0 [       3,64 TiB]
  /dev/root [       1,86 GiB]
  /dev/sdc5 [      18,62 GiB]
  /dev/sdc6 [      18,62 GiB]
  /dev/sdc7 [       3,72 GiB]
  /dev/sdc8 [      18,62 GiB]
  /dev/sdc9 [     218,01 GiB]
  1 disk
  6 partitions
  0 LVM physical volume whole disks
  1 LVM physical volume
root@ferdinand:~# mount /dev/dm-0 /home/share

всё, спасаю данные. С чего такое безобразие произойти могло? Что пропал раздел диска, а потом весь диск переразметился как spare?

phoenix_mstu ()
Ответ на: вроде почти сделал от phoenix_mstu

Интересно. Я думал нужен --assemble, потому что --create перезатрёт все данные, а у него, оказывается, есть ключ --assume-clean. Буду знать

пропал раздел диска, а потом весь диск переразметился как spare

Какое-то злое кондунство. Сбой контроллера или ошибки в mdadm. Бекапы и мониторинг рулят
З.Ы. Пометь топик как решённый, кому-нибудь пригодятся.

selivan ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.