Как собрать массив RAID5 после отключения питания при повторном добавлении - PullRequest
0 голосов
/ 14 сентября 2018

Итак, вот история: После перебоя в питании мой RAID5 не будет работать, потому что нужно будет добавить 3 диска. Я запустил mdadm --manage --re-add / dev / md0 / dev / sd [abd] 1, как всегда после проблем с питанием.

Обычно это занимает 2 секунды, но на этот раз он работал долго. И, к сожалению, произошел очередной сбой питания.

Текущий RAID5 не будет повторно собран:

# mdadm --examine /dev/sd*1
/dev/sda1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x8b
     Array UUID : 0993cb6a:f3459891:b7cdab4b:6ea12dfe
           Name : abydos:0  (local to host abydos)
  Creation Time : Sat Apr 14 16:22:03 2018
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953193984 (931.36 GiB 1000.04 GB)
     Array Size : 2929790976 (2794.07 GiB 3000.11 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
Recovery Offset : 977060096 sectors
   Unused Space : before=262064 sectors, after=0 sectors
          State : clean
    Device UUID : 3c88a981:9bc7d431:d89b5a24:d08f46d8

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Sep 14 10:50:52 2018
  Bad Block Log : 512 entries available at offset 16 sectors - bad blocks present.
       Checksum : dcd48bf - correct
         Events : 7388

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x8b
     Array UUID : 0993cb6a:f3459891:b7cdab4b:6ea12dfe
           Name : abydos:0  (local to host abydos)
  Creation Time : Sat Apr 14 16:22:03 2018
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953193984 (931.36 GiB 1000.04 GB)
     Array Size : 2929790976 (2794.07 GiB 3000.11 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
Recovery Offset : 977060096 sectors
   Unused Space : before=262064 sectors, after=0 sectors
          State : active
    Device UUID : 33272fbd:e6031c19:23768dd1:85a9bb52

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Sep 14 10:50:52 2018
  Bad Block Log : 512 entries available at offset 16 sectors - bad blocks present.
       Checksum : 58421802 - correct
         Events : 7388

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 0993cb6a:f3459891:b7cdab4b:6ea12dfe
           Name : abydos:0  (local to host abydos)
  Creation Time : Sat Apr 14 16:22:03 2018
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953260976 (931.39 GiB 1000.07 GB)
     Array Size : 2929790976 (2794.07 GiB 3000.11 GB)
  Used Dev Size : 1953193984 (931.36 GiB 1000.04 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=66992 sectors
          State : active
    Device UUID : c2a0569a:bdc4990d:f548e5b6:d909315d

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Sep 14 10:50:52 2018
  Bad Block Log : 512 entries available at offset 16 sectors
       Checksum : df78c9b4 - correct
         Events : 7388

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x8b
     Array UUID : 0993cb6a:f3459891:b7cdab4b:6ea12dfe
           Name : abydos:0  (local to host abydos)
  Creation Time : Sat Apr 14 16:22:03 2018
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953260972 (931.39 GiB 1000.07 GB)
     Array Size : 2929790976 (2794.07 GiB 3000.11 GB)
  Used Dev Size : 1953193984 (931.36 GiB 1000.04 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
Recovery Offset : 977060096 sectors
   Unused Space : before=262064 sectors, after=66988 sectors
          State : active
    Device UUID : e184b5de:6a891977:e3531c58:45698c2f

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Sep 14 10:50:52 2018
  Bad Block Log : 512 entries available at offset 16 sectors - bad blocks present.
       Checksum : 3b269e62 - correct
         Events : 7388

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

Хотя все выглядит хорошо, я не могу собрать:

 # mdadm --assemble --verbose --force --run /dev/md0 /dev/sd*1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 3.
mdadm: added /dev/sdb1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 2
mdadm: added /dev/sdd1 to /dev/md0 as 3
mdadm: added /dev/sda1 to /dev/md0 as 0
mdadm: failed to RUN_ARRAY /dev/md0: Input/output error
mdadm: Not enough devices to start the array.

# cat /proc/mdstat 
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty] 
md0 : inactive sdd1[3] sdc1[2] sdb1[1] sda1[0]
      3906454958 blocks super 1.2

unused devices: <none>

Обратите внимание, что ни один диск не помечен как запасной. Также в dmesg вижу:

[352041.228763] md: md127 stopped.
[352045.333213] md/raid:md127: not clean -- starting background reconstruction
[352045.333246] md/raid:md127: device sdb1 operational as raid disk 2
[352045.333672] md/raid:md127: not enough operational devices (3/4 failed)
[352045.333951] md/raid:md127: failed to run raid set.
[352045.333953] md: pers->run() failed ...

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

1 Ответ

0 голосов
/ 28 января 2019

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

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

Если вам повезет, действие mdadm repair может снова сделать RAID-массив согласованным, но это не значит, что вы не потеряли данные. Вы должны выполнить полную проверку файловой системы, как только RAID снова станет активным.

...