Как я могу обновить ядро ​​моего сервера без перезагрузки?

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

Я заметил вопрос о Unix.SE , в котором говорится:

Вы можете создавать свои собственные патчи ksplice для динамической загрузки в ваше собственное ядро ​​

Отлично! Но как?!

Я установил бесплатный пакет ksplice в репозиторий на своем рабочем столе (не ksplice-uptrack, который не является бесплатным) и теперь хочу создавать и применять обновления. Что за процесс? Существуют ли какие-либо сценарии для автоматизации процесса?

Более того, если весь механизм, необходимый для обновлений без перезагрузки, находится в ядре (и пакете ksplice), почему же мы не пользуемся преимуществами? по умолчанию?


Совсем недавно было объявлено kGraft . Кажется, что это примерно тот же результат, так что если у вас есть ответ, который включает в себя, я был бы так же счастлив с этим. Это в настоящее время несколько месяцев с момента освобождения.


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

Примечание 2: Я скажу это снова; основной "сервис" ksplice не поддерживает Ubuntu Server. Раньше, но больше нет. Когда я говорю о желании использовать ksplice, я говорю об инструментах с открытым исходным кодом в пакете ksplice. Любой ответ, в котором говорится о ksplice-uptrack, вероятно, не тот, который мне нужен, поскольку именно эта часть напрямую интегрируется с вышеупомянутой «службой».

29
задан 13 April 2017 в 15:37

6 ответов

Все остальные ответы здесь великолепны, но для Ubuntu, в частности, Canonical теперь предоставляет эту услугу 16.04.

Используется технология исправления в реальном времени в ядре Linux с версии 4.0, выпущенной ранее.

0
ответ дан 13 April 2017 в 15:37

Я не знаю много о ksplice, но подумал, что упомяну это - вы слышали о kexec? Это может быть то, что вам нужно.

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

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

0
ответ дан 13 April 2017 в 15:37

ksplice позволяет менять ядро ​​без перезагрузки. Uptrack работает в ksplice и имеет редактируемый файл конфигурации в /etc/uptrack/uptrack.conf

0
ответ дан 13 April 2017 в 15:37

Существует пара полностью открытых альтернатив Ksplice, которые были представлены для включения в основное ядро ​​Linux. Еще слишком рано говорить, что окажется в ядре, но вы все равно можете попробовать их, если вы достаточно смелы:

. Вы можете прочитать больше об обоих их здесь: SUSE Posts kGraft, Red Hat Posts Kpatch Patches

0
ответ дан 13 April 2017 в 15:37

Вики в Arch Linux содержали инструкции: https://wiki.archlinux.org/index.php/ksplice

Единственная часть, которая, похоже, специфична для дистрибутива, - это как установить Сам ксплице. Поскольку вы уже поняли это, кажется, я думаю, это должно помочь вам в этом.

0
ответ дан 13 April 2017 в 15:37

С 16 июля 2015 года «Oracle Ksplice предлагается бесплатно в Fedora и Ubuntu Desktop Edition.», Официально.

Просто установите скачанный файл .deb , который вы можете получить здесь .

Если вы попытаетесь sudo dpkg -i ksplice-uptrack.deb, вам, возможно, придется исправить зависимости с помощью sudo apt-get install -f.

0
ответ дан 13 April 2017 в 15:37

Другие вопросы по тегам:

Похожие вопросы: