[make-initrd] [degraded md-raid] make-initrd в p9 и в Сизифе

Leonid Krivoshein klark.devel at gmail.com
Sat Feb 29 00:43:37 MSK 2020



28.02.2020 16:33, Alexey Gladkov пишет:
> On Fri, Feb 28, 2020 at 03:17:12AM +0300, Leonid Krivoshein wrote:
>>> [...]
>> Но главный аргумент в другом: желательно собрать рейды до перехода в
>> корень и сразу починить ситуацию с read-auto. Если этого не сделать, всё
>> равно нормально система не загрузится.
> Если корень собран, то загрузится. Если в корне лежит не всё, что нужно
> для закрузки, то это неправильная конфигурация.

В корне есть всё, чтобы начать процесс загрузки. ELF, которому ты 
передаёшь управления по выходу из stage1 (ну хорошо, ядро передаёт) -- 
это пресловутый systemd, а о том, что в конфигурации что-то не так, 
админ узнает только когда отъедет рейд. И не факт, что к этому моменту 
будет сеть или запущен ssh. Я это частенько вижу -- есть только 
локальный рутовый доступ и страшная сага о невозможности запуска 
некоторой службы.


> Кстати, make-initrd умеет ждать не только рут, но и другие точки
> монтирования. Для этого можно либо добавить точку монтирования в
> MOUNTPOINTS, либо добавить x-initrd-mount в опции точки монтирования в
> fstab.

Отлично, уже хлеб!


>> Даже если загрузится, как показали мои предыдущие
>> эксперименты, уже не нормально, что SWAP в состоянии read-only и по сути
>> отключен. Это значит, что несмотря на удачную загрузку, в каких-то
>> конфигурациях прилетит нежданчиик ООМ.
> Зачем swap на рейд ?! Не делай так.

Это почему же? Так делают многие. Рейд, в отличие от одиночного диска, 
нужен для избыточности, и чтобы в случае выхода одного диска из строя, 
всё не встало колом.


>>> Меня беспокоит, что в этом случае любая проблема с любым рейдом в системе
>>> может привезти к невозможности загрузки.
>> Если ставить целью перейти как можно быстрее в корень, как только для этого
>> образуется любая возможность, то да. Но, мне кажется, это неверная цель, и
>> не надо беспокоиться о невозможности загрузки рейдов на этой стадии. Как раз
>> наоборот. Либо всё починили и грузимся, либо бестолку грузиться, поскольку
>> ещё неизвестно, что там поломано и как оно себя поведёт.
> Рейд как раз и нужен для того чтобы загрузится если диск вылетел.

Так а по факту сейчас получается наоборот. Бери в расчёт не стадию 
выхода из stage1, а хотя бы ту стадию, когда будет доступен вход снаружи 
по ssh. Это ещё не конец загрузки, но при отъезде рейдов, и до неё можно 
не дотянуть.


> Ты, видимо, никогда не чинил сервера удалённо через суппорт сервис ...

Слава богу! Но в данном случае лучше попробовать починить сборку рейдов 
в stage1, чем застрять в самом начале stage2. Иначе шансы иметь дело с 
удалённым саппортом будут намного выше.


>> Рабочий корень это ещё не средство для ремонта.
> Ты ошибаешься. Для этого у нас есть деление на /bin, /sbin и /usr .

Я имел ввиду, что рабочий корень ещё не панацея, с него нельзя починить 
все мыслимые поломки в дисковой подсистеме. Для удалённых ремонтов 
сейчас есть IPMI, BMC, iLO и прочие приблуды, в конце концов.


> Только не нужно мне рассказывать о моих коллегах, которые всё
> перенесли в /usr.
>
>> Но если уж так совсем боязно, можно
>> предусмотреть загрузочную опцию типа NO_REPAIR=1 и писать о ней в конце при
>> невозможности авто-ремонта.
> Вот подумай, как ты сможешь ввести этот параметр, если ты _уже_ не смог
> загрузиться ? Поедешь не площадку к серверу, чтобы этот параметр ввести ?

Нужна рабочая консоль. Хоть локальная, хоть удалённая. На современных 
серверах этого добра хватает.


-- 
Best regards,
Leonid Krivoshein.



More information about the Make-initrd mailing list