ZaLinux.ru

Нужно ли перезагружать сервер после обновления ядра Linux (РЕШЕНО)

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

Обновление ядра Linux не является исключением — можно обновить ядро на работающей системе и продолжить её использовать.

Отсюда возникает вопрос, на самом ли деле перезагрузка системы является обязательной после обновления ядра Linux? Этот вопрос особенно актуален для веб-серверов, которые на период перезагрузки становятся недоступны. Также это имеет значение при использовании кэширования (Varnish или NGINX), поскольку обычно кэш хранится в оперативной памяти и при перезагрузке теряется, в результате возникает необходимость заново наполнять кэш веб страниц.

Так обязательно ли перезагружать компьютер после обновления ядра Linux?

Если коротко — да, обязательно. Чтобы система начала использовать новое ядро, компьютер (сервер) нужно перезагрузить.

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

1. Избегайте последующие обновления пакетов до перезагрузки

Поскольку вместе с ядром обновляются пакеты заголовков ядра (linux-headers, kernel-headers), то может возникнуть проблема со сборкой модулей, использующих dkms (Dynamic Kernel Modules System). Возникает ситуация, когда используется старое ядро, для которого файлы заголовков ядра (linux-headers) могли быть уже удалены, поэтому нормально собрать модули dkms система не может.

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

2. Модули dkms могут не работать до обновления ядра

При обновлении ядра пересобираются все модули ядра, использующие dkms. Примерами пакетов, использующие модули ядра dkms являются драйверы Wi-Fi адаптеров, гостевые дополнения VirtualBox, другие драйверы и модули ядра.

Так вот, новые модули ядра собираются заново при обновлении ядра, но не могут использоваться, пока используется старое ядро. То есть для того, чтобы они заработали, необходима перезагрузка. При этом старые модули ядра в некоторых дистрибутивах сразу удаляются.

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

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

Как не перезагружать Linux после обновления ядра

1. Kexec

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

Коротко говоря, Kexec это перезагрузка компьютера с пропуском аппаратной загрузки (то, что вы видите начиная с запуска БИОСа).

2. Ядро Linux 4.0 больше не требует перезагрузки компьютера?

В списке нововведений Linux 4.0 говориться о том, что начиная с этой версии больше не требуется перезагрузка ядра. Но это либо не так, либо не работает из коробки. Как минимум, это требует дополнительных шагов для реализации.

Итог

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

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

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *