Linux soft RAID5 не запускается после нескольких сбоев питания на некоторых дисках. Что делать?

Linux soft RAID5 не запускается после нескольких сбоев питания на некоторых дисках. Что делать?

У меня есть резервная копия всех важных данных. В конце концов, необходимо восстановление. Но я хочу сначала попробовать что-то, прежде чем пойти этим путем, и это хорошая ситуация, чтобы узнать что-то обо всем, что я использовал здесь.

У меня есть контроллер mpt sas с 8 каналами SATA, подключенный к двум внутренним отсекам для 2,5-дюймовых дисков. Два из них использовались для SSD-накопителей, которые используются только для кэширования томов lvm.

6 дисков по 1 ТБ используются для хранения данных в разделе 3, сконфигурированном как программный массив RAID5.

Два из них использовались для загрузочных частей на разделе 1 и корневых частей для раздела 2. Оба загрузочных части представляют собой простой RAID1 с файловой системой ext3. Оба загрузочных части представляют собой RAID1, зашифрованный с помощью luks и имеющий lvm vg xenrootdg с несколькими lvs. Все 6 dataparts используются как RAID5, как описано. Том raid зашифрован с помощью luks, а на них lvm с vg xendatadg. Только на томе RAID5 есть проблемы с их подъемом.

Основная проблема заключалась в множественных сбоях питания на 4-дисковом корпусе, в котором находятся 4 из шести дисков по 1 ТБ. Новый диск пришлось добавить из-за удаленного диска, возможно, ближе к концу новый диск пришлось пересинхронизировать. Точно это неизвестно.

Я смог запустить том после первого сбоя и смог запустить повторную синхронизацию. Но проблема возникла снова, и поэтому эти тома RAID снова вышли из строя.

Во время второго сбоя система не смогла прочитать секторы специального диска, и RAID5 вышел из строя из-за зафиксированной постоянной ошибки чтения некоторого сектора одного из отказавших дисков.

В это время ядро ​​перерегистрирует диски с новым именем (например, переименует их из sde в sdk и т. д.).

После перезапуска системы я проверил, какой диск был зарегистрирован как неисправный, и нашел их, сравнив серийный номер. Добавление диска в /dev/zero не выявило никаких проблем, поэтому я попытался выполнить повторную синхронизацию, но возникла та же проблема.

Теперь я понял, что это может быть проблема с питанием отсека для дисков, поэтому я удалил все диски и, по крайней мере, подключил их к существующим портам SATA на материнской плате. Я добавил больше дисков к контроллеру sas, чтобы теперь сделать резервную копию разделов с помощью dd.

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

Также только макс. 3 тома внутри lvm vg использовались. Так что большинство lvs должны быть в чистом состоянии, поскольку не были изменены после того, как я удалил первый диск #2 (sdl3).

Я проверил smartctl, и никаких постоянных проблем на самом диске не зарегистрировано (неисправимых ошибок и перемещенных секторов не показано).

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

У меня есть 5 дисков (#0,1,3,4,5) и все еще существующий удаленный диск #2. Также есть новый заменяющий диск #2, но он отображается как запасной. Должно быть возможно поднять громкость с помощью #0,1,3,4,5, которые являются 5 из 6 доступных томов. Но что бы я ни пробовал, по крайней мере #3 создает для меня больше всего проблем, потому что он никогда не принимается как часть тома.

Из-за sdX здесь может измениться проверка в порядке показанной роли устройства. Вот краткий список на данный момент:

#0 sdc3 #1 sdk3 #3 sda3 #4 sdg3 #5 sdf3

удален #2 sdl3 новый #2 помечен как #S sdb3

root@newxen:~# mdadm -E /dev/sdc3
/dev/sdc3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
           Name : newxen:128  (local to host newxen)
  Creation Time : Sun Nov  8 22:22:15 2015
     Raid Level : raid5
   Raid Devices : 6

 Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
     Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
  Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
    Data Offset : 260992 sectors
   Super Offset : 8 sectors
   Unused Space : before=260912 sectors, after=1200 sectors
          State : clean
    Device UUID : 1142cc76:b224395c:8fb15126:fd1801fe

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jan 16 00:02:32 2024
       Checksum : bae896cd - correct
         Events : 248741

         Layout : left-symmetric
     Chunk Size : 64K

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

   root@newxen:~# mdadm -E /dev/sdk3
/dev/sdk3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
           Name : newxen:128  (local to host newxen)
  Creation Time : Sun Nov  8 22:22:15 2015
     Raid Level : raid5
   Raid Devices : 6

 Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
     Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
  Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
    Data Offset : 260992 sectors
   Super Offset : 8 sectors
   Unused Space : before=260912 sectors, after=1200 sectors
          State : clean
    Device UUID : 701ed2ed:13a03708:da9cc185:9c9ce3e2

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jan 16 10:26:32 2024
       Checksum : 223defb1 - correct
         Events : 248741

         Layout : left-symmetric
     Chunk Size : 64K

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

   root@newxen:~# mdadm -E /dev/sdl3
/dev/sdl3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
           Name : newxen:128  (local to host newxen)
  Creation Time : Sun Nov  8 22:22:15 2015
     Raid Level : raid5
   Raid Devices : 6

 Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
     Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
  Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
    Data Offset : 260992 sectors
   Super Offset : 8 sectors
   Unused Space : before=260912 sectors, after=1200 sectors
          State : clean
    Device UUID : 1b34e8d5:f3df3e52:307a06a0:38c265e4

Internal Bitmap : 8 sectors from superblock
    Update Time : Mon Jan 15 13:36:40 2024
       Checksum : 7023234b - correct
         Events : 248741

         Layout : left-symmetric
     Chunk Size : 64K

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

   root@newxen:~# mdadm -E /dev/sda3
/dev/sda3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x83
     Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
           Name : newxen:128  (local to host newxen)
  Creation Time : Sun Nov  8 22:22:15 2015
     Raid Level : raid5
   Raid Devices : 6

 Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
     Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
  Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
    Data Offset : 260992 sectors
   Super Offset : 8 sectors
Recovery Offset : 0 sectors
   Unused Space : before=260912 sectors, after=1200 sectors
          State : clean
    Device UUID : fa9d44c6:bb18bc8c:04ed5943:13a6ddfb

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jan 16 00:02:32 2024
       Checksum : 55c99a69 - correct
         Events : 243265

         Layout : left-symmetric
     Chunk Size : 64K

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

   root@newxen:~# mdadm -E /dev/sdg3
/dev/sdg3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x8b
     Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
           Name : newxen:128  (local to host newxen)
  Creation Time : Sun Nov  8 22:22:15 2015
     Raid Level : raid5
   Raid Devices : 6

 Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
     Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
  Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
    Data Offset : 260992 sectors
   Super Offset : 8 sectors
Recovery Offset : 0 sectors
   Unused Space : before=260904 sectors, after=1200 sectors
          State : clean
    Device UUID : 63a171d2:dad103ed:ff18efc4:d31bc05d

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jan 16 10:22:01 2024
  Bad Block Log : 512 entries available at offset 72 sectors - bad blocks present.
       Checksum : a5b990c1 - correct
         Events : 244946

         Layout : left-symmetric
     Chunk Size : 64K

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

   root@newxen:~# mdadm -E /dev/sdf3
/dev/sdf3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
           Name : newxen:128  (local to host newxen)
  Creation Time : Sun Nov  8 22:22:15 2015
     Raid Level : raid5
   Raid Devices : 6

 Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
     Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
  Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
    Data Offset : 260992 sectors
   Super Offset : 8 sectors
   Unused Space : before=260912 sectors, after=1200 sectors
          State : clean
    Device UUID : d6e11e48:e1258598:f9d5251c:795c8308

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jan 16 10:26:32 2024
       Checksum : c8dc31e3 - correct
         Events : 248741

         Layout : left-symmetric
     Chunk Size : 64K

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

Here the replacing disc
root@newxen:~# mdadm -E /dev/sdb3
/dev/sdb3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x9
     Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
           Name : newxen:128  (local to host newxen)
  Creation Time : Sun Nov  8 22:22:15 2015
     Raid Level : raid5
   Raid Devices : 6

 Avail Dev Size : 7720024847 (3681.19 GiB 3952.65 GB)
     Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
  Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
    Data Offset : 260992 sectors
   Super Offset : 8 sectors
   Unused Space : before=260912 sectors, after=5810804111 sectors
          State : clean
    Device UUID : 1be91027:ca00bcc9:7e21dd61:76cdf787

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jan 16 10:26:32 2024
  Bad Block Log : 512 entries available at offset 16 sectors - bad blocks present.
       Checksum : f892a18d - correct
         Events : 248741

         Layout : left-symmetric
     Chunk Size : 64K

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

Текущая ситуация:

root@newxen:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md128 : inactive sda3[3](S) sdb3[6](S) sdf3[5](S) sdc3[0](S) sdg3[2](S) sdk3[1](S)
      8633067263 blocks super 1.2
...

root@newxen:~# mdadm --detail /dev/md128
/dev/md128:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 6
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 6

              Name : newxen:128  (local to host newxen)
              UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
            Events : 248741

    Number   Major   Minor   RaidDevice

       -       8      163        -        /dev/sdk3
       -       8       99        -        /dev/sdg3
       -       8       83        -        /dev/sdf3
       -       8       35        -        /dev/sdc3
       -       8       19        -        /dev/sdb3
       -       8        3        -        /dev/sda3

Если я проверю последнюю дату и состояние массива, то я имею в виду сначала 15 января 13:36:40 sdl3 должен был быть установлен, не удалось и удален (что я сделал вручную) с AAAAAA, но должен быть чистым 16 января 00:02:32 sda3 с AAAA.A выглядит чистым 16 января 00:02:32 sdc3 с AARA.A выглядит чистым 16 января 10:22:01 sdg3 с .AA.AA выглядит не чистым 16 января 10:26:32 sdk3 с .A...A выглядит не чистым 16 января 10:26:32 sdf3 с .A...A выглядит чистым 16 января 10:26:32 sdb3 с .A..A выглядит не чистым

Должно быть возможно собрать том raid с существующими частями sda3 sdc3 sdg3 sdk3 sdf3, возможно, потому, что он был в массиве sdb3.

Я пробовал разные методы, но ни один из них не возвращает меня к повторной синхронизации тома.

mdadm --assemble --scan --verbose
...
mdadm: /dev/sda3 is identified as a member of /dev/md128, slot 3.
mdadm: /dev/sdl3 is identified as a member of /dev/md128, slot 2.
mdadm: /dev/sdf3 is identified as a member of /dev/md128, slot 5.
mdadm: /dev/sdg3 is identified as a member of /dev/md128, slot 4.
mdadm: /dev/sdk3 is identified as a member of /dev/md128, slot 1.
mdadm: /dev/sdc3 is identified as a member of /dev/md128, slot 0.
mdadm: /dev/sdb3 is identified as a member of /dev/md128, slot -1.
mdadm: ignoring /dev/sdk3 as it reports /dev/sdl3 as failed
mdadm: ignoring /dev/sdf3 as it reports /dev/sdl3 as failed
mdadm: device 12 in /dev/md128 has wrong state in superblock, but /dev/sdb3 seems ok
mdadm: no uptodate device for slot 1 of /dev/md128
mdadm: added /dev/sdl3 to /dev/md128 as 2
mdadm: added /dev/sda3 to /dev/md128 as 3 (possibly out of date)
mdadm: added /dev/sdg3 to /dev/md128 as 4 (possibly out of date)
mdadm: no uptodate device for slot 5 of /dev/md128
mdadm: added /dev/sdb3 to /dev/md128 as -1
mdadm: added /dev/sdc3 to /dev/md128 as 0
mdadm: /dev/md128 assembled from 2 drives and 1 spare - not enough to start the array.
...
root@newxen:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md128 : inactive sdf3[5](S) sdb3[6](S) sdc3[0](S) sdk3[1](S) sdg3[2](S) sdl3[4](S)
      8633067263 blocks super 1.2
...
root@newxen:~# mdadm --detail /dev/md128
/dev/md128:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 6
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 6

              Name : newxen:128  (local to host newxen)
              UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
            Events : 248741

    Number   Major   Minor   RaidDevice

       -       8      179        -        /dev/sdl3
       -       8      163        -        /dev/sdk3
       -       8       99        -        /dev/sdg3
       -       8       83        -        /dev/sdf3
       -       8       35        -        /dev/sdc3
       -       8       19        -        /dev/sdb3

Похоже, что старый удаленный sdl3 и замененный sdb3 создают некоторые проблемы. Поэтому снова остановил md128 и попытался поднять его вручную без них:

root@newxen:~# mdadm --assemble /dev/md128 /dev/sdc3 /dev/sdk3 /dev/sda3 /dev/sdg3 /dev/sdf3 --verbose
mdadm: looking for devices for /dev/md128
mdadm: /dev/sdc3 is identified as a member of /dev/md128, slot 0.
mdadm: /dev/sdk3 is identified as a member of /dev/md128, slot 1.
mdadm: /dev/sda3 is identified as a member of /dev/md128, slot 3.
mdadm: /dev/sdg3 is identified as a member of /dev/md128, slot 4.
mdadm: /dev/sdf3 is identified as a member of /dev/md128, slot 5.
mdadm: ignoring /dev/sdk3 as it reports /dev/sdc3 as failed
mdadm: ignoring /dev/sdg3 as it reports /dev/sdc3 as failed
mdadm: ignoring /dev/sdf3 as it reports /dev/sdc3 as failed
mdadm: no uptodate device for slot 1 of /dev/md128
mdadm: no uptodate device for slot 2 of /dev/md128
mdadm: added /dev/sda3 to /dev/md128 as 3 (possibly out of date)
mdadm: no uptodate device for slot 4 of /dev/md128
mdadm: no uptodate device for slot 5 of /dev/md128
mdadm: added /dev/sdc3 to /dev/md128 as 0
mdadm: /dev/md128 assembled from 1 drive - not enough to start the array.

root@newxen:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md128 : inactive sdk3[1](S) sdf3[5](S) sdg3[2](S) sdc3[0](S)
      3818443872 blocks super 1.2
...

root@newxen:~# mdadm --detail /dev/md128
/dev/md128:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 4
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 4

              Name : newxen:128  (local to host newxen)
              UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
            Events : 248741

    Number   Major   Minor   RaidDevice

       -       8      163        -        /dev/sdk3
       -       8       99        -        /dev/sdg3
       -       8       83        -        /dev/sdf3
       -       8       35        -        /dev/sdc3

Вот мне и интересно, почему sda3 не отображается в деталях.

Я также пробовал использовать sdl3 вместо sdb3 и пытался заново добавить недостающие части, но ничего не помогло. Так что, полагаю, мне следует обнулить суперблоки и пересоздать рейд с опцией --assume-clean. По моему мнению, он должен быть в правильном порядке. В лучшем случае, возможно, он должен быть без sdb3 и sdl3, потому что я не уверен, что sdb3 когда-либо достигал состояния синхронизации до возникновения первой проблемы. Есть ли способ это проверить?

Поэтому, если нет других вариантов, я бы сделал (правильный ли этот порядок?)

mdadm --create --verbose --force --assume-clean /dev/md128 --level=5 --raid-devices=6 /dev/sdc3 /dev/sdk3 missing /dev/sda3 /dev/sdg3 /dev/sdf3

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

mdadm --create --verbose --force --assume-clean /dev/md128 --level=5 --raid-devices=6 /dev/sdc3 /dev/sdk3 /dev/sdb3 /dev/sda3 /dev/sdg3 /dev/sdf3

Как я могу это проверить?:

echo check >> /sys/block/md128/md/sync_action and then check dmesg carefully?

Еще мне хотелось бы знать, в каких секторах я должен быть готов к проблемам после завершения реконструкции? Есть предложения, как их определить?

Добавлено больше деталей: Трудно найти подробную информацию. Поэтому было бы неплохо, если бы кто-то подтвердил или исправил мои идеи.

В то же время тесты дешифрования должны быть завершены. Никакая перестановка порядка устройств не должна быть хорошо отработана.

Так что это стало возможным, если запустить RAID-массив и запустить его, судя по тому, как сами данные выглядят все еще смешанными и все еще непригодными для использования. Из-за этого я не могу расшифровать данные luks на них на данный момент.

Связанный контент