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


13

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

Так перезагружаются ли серверы, использующие дистрибутивы Linux, после обновления ядра, или они используют какую-то хитрость, чтобы избежать загрузки ??

Ответы:


8

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

Сервер может быть перезагружен, и обслуживание не будет затронуто, если сервер является частью кластера. Вы также можете создавать кластеры межсетевого экрана / маршрутизатора, чтобы не было центральной точки отказа (SPOF). Для этого вы используете так называемый виртуальный IP (VIP), который используется несколькими системами.

Если вы хотите поэкспериментировать с этой идеей, вы можете использовать QEMU или VirtualBox и другие для создания виртуальных сетей.


8
Как насчет живых исправлений ядра?
Jiggunjer

Вопрос не был специфичен для незначительных исправлений, но упоминает «обновление», которое я буду понимать как крупные обновления версии. Поэтому для «обновления» с 2.6 -> 3.0 я бы порекомендовал сбросить машину с нагрузки перед началом работ по обновлению. После изменений ядра я бы перезагрузился. Поскольку grub / lilo, вероятно, нуждаются в изменениях, я бы все равно предложил перезагрузку вежливости.
Эд Невилл

15

Да, они выполняют «перезагрузку», но могут выполнить системный вызов kexec_load для предварительной загрузки нового ядра.

Существует также возможность исправления работающего ядра, например, redhat kpatch . Все, что мне известно, не может изменить структуры данных.

Конечно, в прошлом столетии машины lisp могли исправлять свои работающие ядра.


1
Также есть ваниль kexec, просто для немедленной загрузки нового ядра. В зависимости от вашего определения «перезагрузка», это может быть квалифицировано как обновление без перезагрузки ядра.
Патрик
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.