Назад | Перейти на главную страницу

mdadm и восстановление RAID-5

У меня возникли проблемы с моим массивом RAID-5 при использовании mdadm и Debian.

Первым делом я потерял диск (полностью, даже BIOS не распознает), потом заменил его на новый; восстановление началось, но было прервано ошибкой чтения на втором диске (и этот был удален):

raid5:md0: read error not correctable (sector 1398118536 on sdd)

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

Вот мои диски в порядке RAID:

  1. SDC - ХОРОШО
  2. SDD - (тот с ошибками чтения, удален из массива при перестроении)
  3. sde - (тот, что умер, заменен запасным, но явно прерванный при восстановлении => Я не уверен в целостности его данных)
  4. sdf - ХОРОШО

Дело в том, что я не могу повторно добавить SDD в массив, используя эту команду:

# mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1 /dev/sdf1 --force --run
mdadm: failed to RUN_ARRAY /dev/md0: Input/output error
mdadm: Not enough devices to start the array.
# mdadm -D /dev/md0 
/dev/md0:
        Version : 0.90
  Creation Time : Tue Aug 24 14:20:39 2010
     Raid Level : raid5
  Used Dev Size : 1465039488 (1397.17 GiB 1500.20 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Sun Oct 23 01:57:22 2011
          State : active, FAILED, Not Started
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 128K

           UUID : 01017848:84926c43:1751c931:a76e1cde (local to host tryphon)
         Events : 0.131544

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       0        0        1      removed
       2       0        0        2      removed
       3       8       81        3      active sync   /dev/sdf1

       4       8       49        -      spare   /dev/sdd1

Как видите, sdd распознается как резервный, а не синхронизируется как устройство RAID №1.

И я понятия не имею, как сказать mdadm, что sdd - это RAID-устройство №1.

Если у кого-то есть идеи, было бы так здорово!

Спасибо.


PS: если это поможет, вот результат проверки диска mdadm:

# mdadm -E /dev/sd[cdef]1
/dev/sdc1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 01017848:84926c43:1751c931:a76e1cde (local to host tryphon)
  Creation Time : Tue Aug 24 14:20:39 2010
     Raid Level : raid5
  Used Dev Size : 1465039488 (1397.17 GiB 1500.20 GB)
     Array Size : 4395118464 (4191.51 GiB 4500.60 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0

    Update Time : Sun Oct 23 01:57:22 2011
          State : clean
 Active Devices : 2
Working Devices : 3
     Failed Devices : 2
  Spare Devices : 1
       Checksum : dfeeeace - correct
         Events : 131544

         Layout : left-symmetric
     Chunk Size : 128K

      Number   Major   Minor   RaidDevice State
this     0       8       33        0      active sync   /dev/sdc1

   0     0       8       33        0      active sync   /dev/sdc1
   1     1       0        0        1      faulty removed
   2     2       0        0        2      faulty removed
   3     3       8       81        3      active sync   /dev/sdf1
   4     4       8       49        4      spare   /dev/sdd1
/dev/sdd1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 01017848:84926c43:1751c931:a76e1cde (local to host tryphon)
  Creation Time : Tue Aug 24 14:20:39 2010
     Raid Level : raid5
  Used Dev Size : 1465039488 (1397.17 GiB 1500.20 GB)
     Array Size : 4395118464 (4191.51 GiB 4500.60 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0

    Update Time : Sun Oct 23 01:57:22 2011
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 2
  Spare Devices : 1
       Checksum : dfeeeae0 - correct
         Events : 131544

         Layout : left-symmetric
     Chunk Size : 128K

      Number   Major   Minor   RaidDevice State
this     4       8       49        4      spare   /dev/sdd1

   0     0       8       33        0      active sync   /dev/sdc1
   1     1       0        0        1      faulty removed
   2     2       0        0        2      faulty removed
   3     3       8       81        3      active sync   /dev/sdf1
   4     4       8       49        4      spare   /dev/sdd1
/dev/sde1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 01017848:84926c43:1751c931:a76e1cde (local to host tryphon)
  Creation Time : Tue Aug 24 14:20:39 2010
     Raid Level : raid5
  Used Dev Size : 1465039488 (1397.17 GiB 1500.20 GB)
     Array Size : 4395118464 (4191.51 GiB 4500.60 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0

    Update Time : Sat Oct 22 22:11:52 2011
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 2
  Spare Devices : 1
       Checksum : dfeeb657 - correct
         Events : 131534

         Layout : left-symmetric
     Chunk Size : 128K

      Number   Major   Minor   RaidDevice State
this     4       8       65        4      spare   /dev/sde1

   0     0       8       33        0      active sync   /dev/sdc1
   1     1       0        0        1      faulty removed
   2     2       0        0        2      faulty removed
   3     3       8       81        3      active sync   /dev/sdf1
   4     4       8       65        4      spare   /dev/sde1
/dev/sdf1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 01017848:84926c43:1751c931:a76e1cde (local to host tryphon)
  Creation Time : Tue Aug 24 14:20:39 2010
     Raid Level : raid5
  Used Dev Size : 1465039488 (1397.17 GiB 1500.20 GB)
     Array Size : 4395118464 (4191.51 GiB 4500.60 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0

    Update Time : Sun Oct 23 01:57:22 2011
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 2
  Spare Devices : 1
       Checksum : dfeeeb04 - correct
         Events : 131544

         Layout : left-symmetric
     Chunk Size : 128K

      Number   Major   Minor   RaidDevice State
this     3       8       81        3      active sync   /dev/sdf1

   0     0       8       33        0      active sync   /dev/sdc1
   1     1       0        0        1      faulty removed
       2     2       0        0        2      faulty removed
   3     3       8       81        3      active sync   /dev/sdf1
   4     4       8       49        4      spare   /dev/sdd1

Что вам нужно в первую очередь, это копия SDD без RAID. Использовать dd_rescue, для е. g .. Не используйте этот диск в этом RAID при его восстановлении.

Когда у вас будет эта копия, используйте ее для запустить массив без sdE - поставить вместо него ключевое слово missing. Два совета, как это можно сделать, даже если прямо с --force не удается:

1) Вы можете воссоздать свой RAID с помощью --assume-clean. (Не забывайте эту опцию, так как с ней будут обновляться только суперблоки, а не четность).

2) Вы можете -A собрать массив.

В обоих случаях вы должны предоставить абсолютно одинаковые параметры конфигурации. (макет, размер блока, порядок дисков и т. д.), как и ваш сломанный RAID. Фактически, я бы рекомендовал начать с -A-ssembly, поскольку он даже не обновляет суперблок, но позволяет вам получить доступ к вашим данным. Только когда вы уверены, что он правильно собран, вы можете сделать его постоянным с помощью предположительно чистого воссоздания.

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