Восстановление RAID6 с двумя проблемами с дисками mdadm

У меня было два сбоя диска в моем массиве RAID6. Я добавил два новых диска и сделал следующее:

  • Я запустил mdadm /dev/md1 - удалить на двух дисках
  • Я установил свой RAID на 1-й раздел каждого диска (для выравнивания). Поскольку сменные диски выровнены одинаково, я сделал dd if=/dev/sdg (рабочий диск) из =/dev/sde (новый диск) bs=512 count=1, чтобы скопировать макет раздела. Я не уверен, что это правильно, поскольку я, вероятно, скопировал данные суперблока mdadm.
  • Затем я запустил mdadm /dev/md1 --add и два диска.

Теперь у меня есть это, когда я запускаю mdadm --detail / dev / md1:

Number   Major   Minor   RaidDevice State
   0       8        1        0      active sync   /dev/sda1
   1       8       17        1      active sync   /dev/sdb1
   6       8       65        2      spare rebuilding   /dev/sde1
   3       0        0        3      removed
   4       8       97        4      active sync   /dev/sdg1
   5       8      113        5      active sync   /dev/sdh1

   7       8       81        -      spare   /dev/sdf1

/ proc / mdstat показывает один диск как перестраиваемый, но не другой. Я не думаю, что это правильно, так как я думаю, что один диск "удален" и не был заменен должным образом. Буквы дисков точно такие же, как на последних двух дисках. Здесь mdstat.

[email protected]:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdc1[0] sdd1[1]
  1953379136 blocks super 1.2 [2/2] [UU]

md1 : active raid6 sdf1[7](S) sde1[6] sdb1[1] sdh1[5] sda1[0] sdg1[4]
  11720521728 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/4] [UU__UU]
  [>....................]  recovery =  2.2% (65163484/2930130432) finish=361.0min   speed=132257K/sec

unused devices: <none>`

Я хотел бы знать (если это кажется правильным), и что мне нужно сделать, чтобы исправить запись № 3 и получить /dev/sdf1, чтобы занять ее место? Затем я предполагаю, что у меня снова будет правильный массив. Что я нахожу странным, так это то, что добавление / dev / sde1, по-видимому, позволило начать синхронизацию, но /dev/sdf1 не занял место Major 3 Major (RaidDevice 3)

Вся помощь приветствуется

ура

1 ответ

Во-первых, позвольте мне заверить вас: если ваши диски mdadm основаны на разделах (например, sda1 и т. Д.), Первый "dd" был в порядке, и он не вызывал копирование метаданных mdadm (метаданные находятся внутри самого раздела, а не внутри МБР).

То, что вы наблюдаете, - это нормальное поведение MDRAID. Вы заново добавили новые диски, используя две отдельные команды mdadm -a, верно? В этом случае mdadm сначала повторно синхронизирует первый диск (переводит второй в "резервный" режим), а затем переводит второй диск в состояние "восстановление резервного". Если вы повторно добавите два диска с помощью одной команды (например, mdadm /dev/mdX -a /dev/sdX1 /dev/sdY1), сборка будет выполняться одновременно.

Позвольте взглянуть на мой (тестируемый) сбой RAID6:

[[email protected] test]# mdadm --detail /dev/md200
/dev/md200:
        Version : 1.2
  Creation Time : Mon Feb  9 18:40:59 2015
     Raid Level : raid6
     Array Size : 129024 (126.02 MiB 132.12 MB)
  Used Dev Size : 32256 (31.51 MiB 33.03 MB)
   Raid Devices : 6
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Mon Feb  9 18:51:03 2015
          State : clean, degraded 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost:md200  (local to host localhost)
           UUID : 80ed5f2d:86e764d5:bd6979ed:01c7997e
         Events : 105

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3
       4       0        0        4      removed
       5       0        0        5      removed

Повторное добавление дисков с использованием двух отдельных команд (mdadm /dev/md200 -a /dev/loop6; sleep 1; mdadm /dev/md200 -a /dev/loop7) вызвало следующий подробный отчет:

[[email protected] test]# mdadm --detail /dev/md200
/dev/md200:
        Version : 1.2
  Creation Time : Mon Feb  9 18:40:59 2015
     Raid Level : raid6
     Array Size : 129024 (126.02 MiB 132.12 MB)
  Used Dev Size : 32256 (31.51 MiB 33.03 MB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

    Update Time : Mon Feb  9 18:56:40 2015
          State : clean, degraded, recovering 
 Active Devices : 4
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 9% complete

           Name : localhost:md200  (local to host localhost)
           UUID : 80ed5f2d:86e764d5:bd6979ed:01c7997e
         Events : 134

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3
       6       7        6        4      spare rebuilding   /dev/loop6
       5       0        0        5      removed

       7       7        7        -      spare   /dev/loop7

Через некоторое время:

[[email protected] test]# mdadm --detail /dev/md200
/dev/md200:
        Version : 1.2
  Creation Time : Mon Feb  9 18:40:59 2015
     Raid Level : raid6
     Array Size : 129024 (126.02 MiB 132.12 MB)
  Used Dev Size : 32256 (31.51 MiB 33.03 MB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

    Update Time : Mon Feb  9 18:57:43 2015
          State : clean 
 Active Devices : 6
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost:md200  (local to host localhost)
           UUID : 80ed5f2d:86e764d5:bd6979ed:01c7997e
         Events : 168

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3
       6       7        6        4      active sync   /dev/loop6
       7       7        7        5      active sync   /dev/loop7

Добавление двух дисков в одну команду (mdadm /dev/md200 -a /dev/loop6 /dev/loop7) приводит к этому отчету:

[[email protected] test]# mdadm --detail /dev/md200
/dev/md200:
        Version : 1.2
  Creation Time : Mon Feb  9 18:40:59 2015
     Raid Level : raid6
     Array Size : 129024 (126.02 MiB 132.12 MB)
  Used Dev Size : 32256 (31.51 MiB 33.03 MB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

    Update Time : Mon Feb  9 18:55:44 2015
          State : clean, degraded, recovering 
 Active Devices : 4
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 90% complete

           Name : localhost:md200  (local to host localhost)
           UUID : 80ed5f2d:86e764d5:bd6979ed:01c7997e
         Events : 122

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3
       7       7        7        4      spare rebuilding   /dev/loop7
       6       7        6        5      spare rebuilding   /dev/loop6

Итак, в конце: пусть mdadm сделает свое дело, а затем проверьте, все ли диски помечены как "активные".

Другие вопросы по тегам