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

Ухудшенный soft raid1 не загружается и показывает raid0

Я создал настройку сервера с загрузкой uefi и зашифрованными разделами lvm, как вы можете видеть здесь:

root@debian:~# lsblk -o name,uuid,type,size
NAME                UUID                                   TYPE   SIZE
sda                                                        disk    52G
|-sda1              6EE2-5855                              part   512M
|-sda2              2dcfe94a-3c21-e08f-805c-8ef32eabf50f   part   954M
| `-md128           8e000041-b831-4aea-b46d-85efdcdd5371   raid1  953M
`-sda3              a6172091-d026-463f-ac1b-8edfe2419cb8   part  50.5G
  `-md129           429397a0-8620-4b87-ac2d-aec37bd26b36   raid1 50.1G
    `-md129_crypt   YR7iyx-6ELU-Vg6F-bPtB-mSOA-LYJw-JQYPpK crypt   50G
      |-vgroot-main ddf156a7-3b64-4c9e-a9cc-eb15755f1995   lvm     14G
      |-vgroot-swap 0a1af000-c578-4d94-a90a-2cd685409f99   lvm    1.9G
      `-vgroot-vm0                                         lvm     14G
sdb                                                        disk    52G
|-sdb1              03F8-4D52                              part   512M
|-sdb2              2dcfe94a-3c21-e08f-805c-8ef32eabf50f   part   954M
| `-md128           8e000041-b831-4aea-b46d-85efdcdd5371   raid1  953M
`-sdb3              a6172091-d026-463f-ac1b-8edfe2419cb8   part  50.5G
  `-md129           429397a0-8620-4b87-ac2d-aec37bd26b36   raid1 50.1G
    `-md129_crypt   YR7iyx-6ELU-Vg6F-bPtB-mSOA-LYJw-JQYPpK crypt   50G
      |-vgroot-main ddf156a7-3b64-4c9e-a9cc-eb15755f1995   lvm     14G
      |-vgroot-swap 0a1af000-c578-4d94-a90a-2cd685409f99   lvm    1.9G
      `-vgroot-vm0                                         lvm     14G
sdc                                                        disk     8G
`-sdc1              236c1834-cc33-9303-0905-1bd4de8c1399   part     8G
  `-md127           25cdc3e1-d3cf-4592-9db9-538e0c9205bd   raid1    8G
sdd                                                        disk     8G
`-sdd1              236c1834-cc33-9303-0905-1bd4de8c1399   part     8G
  `-md127           25cdc3e1-d3cf-4592-9db9-538e0c9205bd   raid1    8G
sr0                                                        rom   1024M

Основан на Debian 10. Разделы монтируются следующим образом:

root@debian:~# df
Filesystem              1K-blocks    Used Available Use% Mounted on
udev                      2003472       0   2003472   0% /dev
tmpfs                      404052    5564    398488   2% /run
/dev/mapper/vgroot-main  14647296 1041884  11566020   9% /
tmpfs                     2020252       0   2020252   0% /dev/shm
tmpfs                        5120       0      5120   0% /run/lock
tmpfs                     2020252       0   2020252   0% /sys/fs/cgroup
/dev/md128                 960504   51472    860240   6% /boot
/dev/sdb1                  523248   10432    512816   2% /boot/efi
tmpfs                      404048       0    404048   0% /run/user/0

Корневой раздел находится на vgroot-main. Он должен быть расшифрован с помощью luks при загрузке, а также зеркалирован с помощью raid1.

root@debian:~# mdadm --detail /dev/md/129
/dev/md/129:
           Version : 1.2
     Creation Time : Thu Oct  3 18:53:03 2019
        Raid Level : raid1
        Array Size : 52487168 (50.06 GiB 53.75 GB)
     Used Dev Size : 52487168 (50.06 GiB 53.75 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Fri Oct  4 21:55:24 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : debian:129  (local to host debian)
              UUID : a6172091:d026463f:ac1b8edf:e2419cb8
            Events : 517

    Number   Major   Minor   RaidDevice State
       3       8        3        0      active sync   /dev/sda3
       2       8       19        1      active sync   /dev/sdb3

Настройка работает нормально. Но когда я удаляю один диск, система не может смонтировать корневую файловую систему. После тайм-аута он возвращается к оболочке initramfs. Удивительно, но md129 отображается как неактивный и отображается как raid0.

вывод mdadm

Кто-нибудь знает, почему ядро ​​собирает рейд как уровень 0, если сам раздел sda3 не отображается как raid1?

вывод загрузки

Наконец-то собрал рейд вручную в initramfs. После выхода из оболочки initramfs ядро ​​продолжает загрузку. Мне не удалось найти исправления для первоначального поведения, но теперь я знаю, как с этим справиться.

Вероятно, это пример той же проблемы, описанной в этом отчет bugzilla. Это из-за плохого взаимодействия между dracut и системным модулем, который должен собирать корневой массив.

Обязательно обновите свою систему, так как проблема может / должна быть решена с помощью обновления dracut. В качестве обходного пути попробуйте передать rd.retry=30 в командную строку ядра (в grub Подсказка).

Дополнительные сведения, взятые из bugzill, объясняющие последовательность событий:

  • mdadm --incremental не будет запускать / запускать массив, который неожиданно оказался поврежденным;
  • dracut должен принудительно запустить массив после 2/3 переданного значения тайм-аута. С текущим значением по умолчанию RHEL это составляет 180/3 * 2 = 120 с;
  • systemctl ожидает смонтировать корневую файловую систему максимум за 90 секунд. Если это не удается, он прерывает скрипт dracut и переходит в аварийную оболочку. Будучи на 90 секунд меньше, чем таймаут dracut, это означает, что у dracut нет возможности принудительно запустить массив.

Уменьшение тайм-аута rd.retry (настройка, предлагаемая на странице руководства) позволяет dracut принудительно запустить массив, позволяя службе systemctl успешно работать.