Bug 42017 - Не детектится RAID для включения фичи mdadm
Summary: Не детектится RAID для включения фичи mdadm
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-02-21 17:37 MSK by Vitaly Lipatov
Modified: 2022-02-23 16:19 MSK (History)
4 users (show)

See Also:


Attachments
Лог # make-initrd -v -k 5.10.100-std-def-alt1 (10.33 KB, text/x-log)
2022-02-23 15:03 MSK, Vitaly Lipatov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2022-02-21 17:37:27 MSK
При наличии разделов с типом fd и RAID1 версии 0.9 на них в старых ядрах происходила автоматическая сборка RAID.
Позднее автосборку выкинули и эта функция перешла к initrd.

Мне по коду показалось, что там есть автоматическое определение, нужно ли включать фичу raid (при наличии raid версии 0.9) или фичу mdadm (при наличии /etc/mdadm.conf).

Но это не работает, мне помогло добавление
FEATURES += mdadm

Всё или идёт по плану или здесь есть расхождение с задумкой?
Comment 1 Alexey Gladkov 2022-02-21 17:52:03 MSK
Никогда не было кода выбора между фичей raid и mdadm.

Что показывает на такой машине:
```
cat /sys/class/block/$(findmnt -no SOURCE / | sed -e s,/dev/,,)/md/level
```
?
Comment 2 Vitaly Lipatov 2022-02-21 21:23:38 MSK
(Ответ для Alexey Gladkov на комментарий #1)
> Никогда не было кода выбора между фичей raid и mdadm.
Я имел в виду, есть ли вообще код выбора нужной фичи по результату детекта.
Правильно ли я понимаю, что
raid — это автодетект для raid v0.9
mdadm — это сборка raid вплоть до v1.2 по /etc/mdadm.conf
?


> Что показывает на такой машине:
> ```
> cat /sys/class/block/$(findmnt -no SOURCE / | sed -e s,/dev/,,)/md/level
> ```
> ?
# cat /sys/class/block/$(findmnt -no SOURCE / | sed -e s,/dev/,,)/md/level
raid1
Comment 3 Alexey Gladkov 2022-02-22 15:20:21 MSK
(Ответ для Vitaly Lipatov на комментарий #2)
> Я имел в виду, есть ли вообще код выбора нужной фичи по результату детекта.

Нет и никогда не было. Рейд никогда не анализировался на версию метаданных.

> Правильно ли я понимаю, что
> raid — это автодетект для raid v0.9
> mdadm — это сборка raid вплоть до v1.2 по /etc/mdadm.conf
> ?

Не совсем. raid это ядерный raid autodetect. Это тот функционал, что был в mkinitrd и который был перенесён в make-initrd. Поскольку он не работает в ряде случаев, то была написана фича mdadm. Можно сказать, что mdadm пришёл на смену raid, но я не удаляю raid, потому что она может быть кому-то полезна.

> # cat /sys/class/block/$(findmnt -no SOURCE / | sed -e s,/dev/,,)/md/level
> raid1

Ясно. Спасибо.
Comment 4 Alexey Gladkov 2022-02-22 15:21:51 MSK
А фича mdadm не собирает такой рейд ?
Comment 5 Alexey Gladkov 2022-02-22 15:23:42 MSK
(Ответ для Vitaly Lipatov на комментарий #0)
> При наличии разделов с типом fd и RAID1 версии 0.9 на них в старых ядрах
> происходила автоматическая сборка RAID.
> 
> Но это не работает, мне помогло добавление
> FEATURES += mdadm

То есть фича mdadm, но по какой-то причине она автоматически не включилась ?
Comment 6 Vitaly Lipatov 2022-02-23 13:01:52 MSK
(Ответ для Alexey Gladkov на комментарий #5)
> (Ответ для Vitaly Lipatov на комментарий #0)
> > При наличии разделов с типом fd и RAID1 версии 0.9 на них в старых ядрах
> > происходила автоматическая сборка RAID.
> > 
> > Но это не работает, мне помогло добавление
> > FEATURES += mdadm
> 
> То есть фича mdadm, но по какой-то причине она автоматически не включилась ?
Да, выходит так.

В теории для совместимости raid autodetect был бы логичен (возможны конфигурации без /etc/mdadm.conf), но вряд ли это кому-то интересно.
Если есть смысл, могу проверить, сработает ли фича raid.
Comment 7 Alexey Gladkov 2022-02-23 13:59:42 MSK
(Ответ для Vitaly Lipatov на комментарий #6)
> > То есть фича mdadm, но по какой-то причине она автоматически не включилась ?
> Да, выходит так.
> 
> В теории для совместимости raid autodetect был бы логичен (возможны
> конфигурации без /etc/mdadm.conf), но вряд ли это кому-то интересно.
> Если есть смысл, могу проверить, сработает ли фича raid.

Уточните пожалуйста. Рут на raid1 ?

(Ответ для Vitaly Lipatov на комментарий #2)
> # cat /sys/class/block/$(findmnt -no SOURCE / | sed -e s,/dev/,,)/md/level
> raid1

Я спрашиваю, потому что вот это очень упрощённый guess и кажется всё должно работать.

Можете прислать в личку bug-report ?
Comment 8 Vitaly Lipatov 2022-02-23 15:03:13 MSK
Created attachment 10334 [details]
Лог # make-initrd -v -k 5.10.100-std-def-alt1

Я немного разобрался, картина выглядит так:

1. Фича mdadm работает и собирает raid.
2. Фича mdadm корректно автодетектится.
3. Естественно, для фичи mdadm нужно поставить пакет make-initrd-mdadm.

Поскольку пакета make-initrd-mdadm у меня не было, ничего и не работало через mdadm.

Теперь о фиче raid.
Прикрепляю лог создания initrd.
1. Фича raid автодетектится.
2. При загрузке сборка не происходит. Как можно её отладить?
md_run как-то относится к этому?
Comment 9 Alexey Gladkov 2022-02-23 15:18:47 MSK
(Ответ для Vitaly Lipatov на комментарий #8)
> Создано вложение 10334 [details] [подробности]
> Лог # make-initrd -v -k 5.10.100-std-def-alt1
> 
> Я немного разобрался, картина выглядит так:
> 
> 1. Фича mdadm работает и собирает raid.
> 2. Фича mdadm корректно автодетектится.
> 3. Естественно, для фичи mdadm нужно поставить пакет make-initrd-mdadm.
> 
> Поскольку пакета make-initrd-mdadm у меня не было, ничего и не работало
> через mdadm.

Аааа! ну тогда всё понятно :)

> Теперь о фиче raid.
> Прикрепляю лог создания initrd.
> 1. Фича raid автодетектится.
> 2. При загрузке сборка не происходит. Как можно её отладить?
> md_run как-то относится к этому?

Фича raid устарела как раз из-за того, что md_run невозможно отлаживать. По сути фича пинает ядро, чтобы оно собрало рейды и оно как-то там само пытается понять что к чему.

Наверное стоит окончательно выкинуть raid и предложить устанавливать make-initrd-mdadm. Поскольку последний имеет ряд преимуществ.
Comment 10 Vitaly Lipatov 2022-02-23 16:19:25 MSK
(Ответ для Alexey Gladkov на комментарий #9)
> (Ответ для Vitaly Lipatov на комментарий #8)
> > Создано вложение 10334 [details] [подробности]
> > Лог # make-initrd -v -k 5.10.100-std-def-alt1
> > 
> > Я немного разобрался, картина выглядит так:
> > 
> > 1. Фича mdadm работает и собирает raid.
> > 2. Фича mdadm корректно автодетектится.
> > 3. Естественно, для фичи mdadm нужно поставить пакет make-initrd-mdadm.
> > 
> > Поскольку пакета make-initrd-mdadm у меня не было, ничего и не работало
> > через mdadm.
> 
> Аааа! ну тогда всё понятно :)
:)

...
> Фича raid устарела как раз из-за того, что md_run невозможно отлаживать. По
> сути фича пинает ядро, чтобы оно собрало рейды и оно как-то там само
> пытается понять что к чему.
Не могу доказать, но мне кажется, что autodetect в ядре просто выкинули в какой-то момент.
 
> Наверное стоит окончательно выкинуть raid и предложить устанавливать
> make-initrd-mdadm. Поскольку последний имеет ряд преимуществ.
Поддерживаю.

Спасибо, я наконец разобрался с загрузкой двух машин, которые неожиданно не смогли загружать новое ядро при обновлении p9 -> p10.