Я создал настройку сервера с загрузкой 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.
Кто-нибудь знает, почему ядро собирает рейд как уровень 0, если сам раздел sda3 не отображается как raid1?
Наконец-то собрал рейд вручную в initramfs. После выхода из оболочки initramfs ядро продолжает загрузку. Мне не удалось найти исправления для первоначального поведения, но теперь я знаю, как с этим справиться.
Вероятно, это пример той же проблемы, описанной в этом отчет bugzilla. Это из-за плохого взаимодействия между dracut и системным модулем, который должен собирать корневой массив.
Обязательно обновите свою систему, так как проблема может / должна быть решена с помощью обновления dracut. В качестве обходного пути попробуйте передать rd.retry=30
в командную строку ядра (в grub
Подсказка).
Дополнительные сведения, взятые из bugzill, объясняющие последовательность событий:
Уменьшение тайм-аута rd.retry (настройка, предлагаемая на странице руководства) позволяет dracut принудительно запустить массив, позволяя службе systemctl успешно работать.