При наличии разделов с типом fd и RAID1 версии 0.9 на них в старых ядрах происходила автоматическая сборка RAID. Позднее автосборку выкинули и эта функция перешла к initrd. Мне по коду показалось, что там есть автоматическое определение, нужно ли включать фичу raid (при наличии raid версии 0.9) или фичу mdadm (при наличии /etc/mdadm.conf). Но это не работает, мне помогло добавление FEATURES += mdadm Всё или идёт по плану или здесь есть расхождение с задумкой?
Никогда не было кода выбора между фичей raid и mdadm. Что показывает на такой машине: ``` cat /sys/class/block/$(findmnt -no SOURCE / | sed -e s,/dev/,,)/md/level ``` ?
(Ответ для 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
(Ответ для 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 Ясно. Спасибо.
А фича mdadm не собирает такой рейд ?
(Ответ для Vitaly Lipatov на комментарий #0) > При наличии разделов с типом fd и RAID1 версии 0.9 на них в старых ядрах > происходила автоматическая сборка RAID. > > Но это не работает, мне помогло добавление > FEATURES += mdadm То есть фича mdadm, но по какой-то причине она автоматически не включилась ?
(Ответ для Alexey Gladkov на комментарий #5) > (Ответ для Vitaly Lipatov на комментарий #0) > > При наличии разделов с типом fd и RAID1 версии 0.9 на них в старых ядрах > > происходила автоматическая сборка RAID. > > > > Но это не работает, мне помогло добавление > > FEATURES += mdadm > > То есть фича mdadm, но по какой-то причине она автоматически не включилась ? Да, выходит так. В теории для совместимости raid autodetect был бы логичен (возможны конфигурации без /etc/mdadm.conf), но вряд ли это кому-то интересно. Если есть смысл, могу проверить, сработает ли фича raid.
(Ответ для 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 ?
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 как-то относится к этому?
(Ответ для 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. Поскольку последний имеет ряд преимуществ.
(Ответ для 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.