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

Восстановление порядка дисков в RAID 6 с 7 дисками

сначала немного предыстории к этому вопросу: я использую RAID-6 внутри внешней системы RAID / NAS QNAP TS869L. Раньше я начал с 5 дисков по 3 ТБ каждый, а позже добавил в RAID еще 2 диска по 3 ТБ. Внутренние компоненты QNAP обрабатывали рост, повторную синхронизацию и т. Д., И, похоже, все было в порядке.

Около 2 недель назад у меня произошел сбой одного из дисков (диск № 5, диск № 2 вышел из строя), и каким-то образом (я не знаю почему) также диски 1 и 2 были выброшены из массива. . Я заменил диск №5, но RAID снова не заработал.

После нескольких обращений в службу технической поддержки QNAP они воссоздали массив (используя mdadm --create --force --assume-clean ...), но получившийся массив не смог найти файловую систему, и меня любезно отослали обратитесь в компанию по восстановлению данных, которую я не могу себе позволить.

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

В настоящее время я нахожусь в точке, где я знаю правильный размер блока (64 КБ), версию метаданных (1.0; заводское значение по умолчанию было 0,9, но из того, что я читал, 0.9 не обрабатывает диски более 2 ТБ, у меня 3 ТБ) , и теперь я нахожу файловую систему ext4, которая должна быть на дисках.

Осталось только определить правильный порядок дисков!

Я начал использовать описание из ответа №4 из "Восстановление данных RAID 5 после создания нового массива вместо повторного использования"но я немного не понимаю, в каком порядке должен быть надлежащий RAID-6. RAID-5 довольно хорошо документирован во многих местах, но RAID-6 гораздо меньше.

Кроме того, изменяется ли компоновка, то есть распределение блоков данных по четности и данных по дискам, после увеличения массива с 5 до 7 дисков, или же повторная синхронизация реорганизует их таким образом, как собственный 7-дисковый RAID -6 было бы?

Спасибо


еще несколько выводов mdadm, которые могут быть полезны:

версия mdadm:

[~] # mdadm --version
mdadm - v2.6.3 - 20th August 2007

Детали mdadm с одного из дисков в массиве:

[~] # mdadm --examine /dev/sda3 
/dev/sda3:
          Magic : a92b4efc
        Version : 1.0
    Feature Map : 0x0
     Array UUID : 1c1614a5:e3be2fbb:4af01271:947fe3aa
           Name : 0
  Creation Time : Tue Jun 10 10:27:58 2014
     Raid Level : raid6
   Raid Devices : 7

  Used Dev Size : 5857395112 (2793.02 GiB 2998.99 GB)
     Array Size : 29286975360 (13965.12 GiB 14994.93 GB)
      Used Size : 5857395072 (2793.02 GiB 2998.99 GB)
   Super Offset : 5857395368 sectors
          State : clean
    Device UUID : 7c572d8f:20c12727:7e88c888:c2c357af

    Update Time : Tue Jun 10 13:01:06 2014
       Checksum : d275c82d - correct
         Events : 7036

     Chunk Size : 64K

    Array Slot : 0 (0, 1, failed, 3, failed, 5, 6)
   Array State : Uu_u_uu 2 failed

Детали mdadm для массива в текущем порядке дисков (на основе моего лучшего предположения, восстановленного из старых файлов журнала)

[~] # mdadm --detail /dev/md0
/dev/md0:
        Version : 01.00.03
  Creation Time : Tue Jun 10 10:27:58 2014
     Raid Level : raid6
     Array Size : 14643487680 (13965.12 GiB 14994.93 GB)
  Used Dev Size : 2928697536 (2793.02 GiB 2998.99 GB)
   Raid Devices : 7
  Total Devices : 5
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Jun 10 13:01:06 2014
          State : clean, degraded
 Active Devices : 5
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 0

     Chunk Size : 64K

           Name : 0
           UUID : 1c1614a5:e3be2fbb:4af01271:947fe3aa
         Events : 7036

    Number   Major   Minor   RaidDevice State
       0       8        3        0      active sync   /dev/sda3
       1       8       19        1      active sync   /dev/sdb3
       2       0        0        2      removed
       3       8       51        3      active sync   /dev/sdd3
       4       0        0        4      removed
       5       8       99        5      active sync   /dev/sdg3
       6       8       83        6      active sync   /dev/sdf3

вывод из / proc / mdstat (md8, md9 и md13 - это внутренние RAID-массивы с подкачкой и т. д.; тот, который мне нужен, - это md0)

[~] # more /proc/mdstat 
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] 
md0 : active raid6 sdf3[6] sdg3[5] sdd3[3] sdb3[1] sda3[0]
      14643487680 blocks super 1.0 level 6, 64k chunk, algorithm 2 [7/5] [UU_U_UU]

md8 : active raid1 sdg2[2](S) sdf2[3](S) sdd2[4](S) sdc2[5](S) sdb2[6](S) sda2[1] sde2[0]
      530048 blocks [2/2] [UU]

md13 : active raid1 sdg4[3] sdf4[4] sde4[5] sdd4[6] sdc4[2] sdb4[1] sda4[0]
      458880 blocks [8/7] [UUUUUUU_]
      bitmap: 21/57 pages [84KB], 4KB chunk

md9 : active raid1 sdg1[6] sdf1[5] sde1[4] sdd1[3] sdc1[2] sda1[0] sdb1[1]
      530048 blocks [8/7] [UUUUUUU_]
      bitmap: 37/65 pages [148KB], 4KB chunk

unused devices: <none>

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

Не забывайте всегда использовать "--assume-clean" при сборке или создании - вы, вероятно, знаете это достаточно хорошо, но стоит упомянуть еще раз.

В идеале вы должны работать с образами (dd) оригинальных дисков, а не с самими дисками. Я понимаю, что не всегда все идеально :-)

Наконец, если вы можете, «mount -o ro», если можете, просто для еще одного уровня безопасности «Не пишите на диски, пожалуйста» :-)