Обновление ядра: почему самое опасное обновление, самое тихое

Ядро ставится, ничего не происходит, всё выглядит обычно. Опасность приходит при следующей загрузке, а она может быть через недели. Между причиной и следствием ложатся недели.

AtlasPVE ·

Эта статья отвечает на

  • proxmox обновление ядра
  • proxmox новое ядро не загружается
  • proxmox закрепить ядро
  • proxmox не вернулся после перезагрузки
  • proxmox загрузиться со старым ядром

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

И вот там-то опасность и прячется.

Между причиной и следствием ложатся недели

Большинство пакетных сбоев проявляются, пока вы смотрите. Служба падает, выдаёт ошибку, вы замечаете в тот же день.

С ядром не так. Беда появляется при следующей загрузке, а эта загрузка может оказаться не плановой ночью обслуживания. Пропадает электричество, машина перезапускается сама, и она не возвращается.

В этот миг никто не связывает это с «обновлением, которое я делал в прошлом месяце». У вас на руках необъяснимый отказ, который совсем не похож на проблему обновления.

Общий принцип: новое не должно быть выбором по умолчанию, пока не докажет себя

Это переносимый урок статьи, и он относится не только к ядрам.

Новое ядро можно установить, но постоянным выбором по умолчанию должно остаться старое ядро. Новое следует пробовать только как «попробуй это один раз при следующей загрузке».

При такой настройке меняется форма отказа: если машина зависнет, при следующей загрузке она сама вернётся к старому. Потому что одноразовый выбор по определению действует один раз.

Что вы выигрываете: имя неудачи становится «ничего не произошло», а не «машина пропала».

Второй слой: установленное не должно тихо становиться выбором по умолчанию

В тот момент, когда ядро установлено, большинство систем говорит «отныне загружаюсь самым новым». Если вы этого не хотите, перед обновлением надо закрепить работающее ядро.

Закрепление не мешает новому ядру, оно лишь не даёт ему стать выбором по умолчанию самому по себе. Когда захотите его попробовать, выберете вы.

Третий слой: кто заметит зависание

Чтобы механизм отката сработал, что-то должно сказать «эта машина не поднялась». Если есть сторож на уровне оборудования, он это делает и перезапускает машину.

Если его нет, откат требует ручного сброса. Это не делает механизм бесполезным, но это надо знать: фраза «откатится автоматически» без сторожа верна лишь наполовину.

Правило, которое действует и без продукта

После обновления ядра перезагрузитесь осознанно и скоро. Пока вы смотрите.

Перезагрузка, которую вы запланировали сами, это проверка. Перезагрузка, навязанная отключением света через три недели, это происшествие. Единственная разница между ними в том, были ли вы рядом в тот момент.

Что делает Atlas

Выполняя обновление, Atlas по умолчанию закрепляет работающее ядро, чтобы только что установленное ядро само не стало выбором по умолчанию при загрузке. Это поведение не обязательно: оно предлагается как настройка, которую можно отключить в интерфейсе. Продукт здесь не решает, он делает безопасную сторону значением по умолчанию.

Механизм проверенного перехода тоже построен по принципу выше: постоянный выбор, это всегда старое ядро, новое пробуется только одноразовой следующей загрузкой, и при зависании система откатывается сама. Тип загрузчика определяется во время работы, потому что он отличается от машины к машине.

И две честные границы:

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

Если аппаратного сторожа нет, механизм не обходит это молча: он изящно отключается и говорит, что может понадобиться ручной сброс. Изображать гарантию, которой нет, хуже, чем не давать никакой.

Источники

Собственная документация Proxmox. На английском, и последнее слово в этом вопросе за ней.

Похожие статьи

Как это выглядит внутри Atlas?

Перейти на страницу продукта