LINUX.ORG.RU

Компания SUSE представила систему для обновления ядра без перезагрузки

 ,


3

1

Представленная компанией SUSE система kGraft позволяет выполнить обновление ядра без перезагрузки. В настоящее время аналогичная система Ksplice предлагается только компанией Oracle, но она является проприетарной разработкой. Возможности kGraft ограничены внесением на лету исправлений, не затрагивающих динамически изменяемые структуры данных ядра, но этого вполне достаточно для устранения уязвимостей в ядре и исправления ошибок. Обновление ядра Linux без перезагрузки является востребованной возможностью для серверных и промышленных дистрибутивов, критичных ко времени простоя. В настоящее время свободная и общедоступная реализация такой возможности не предоставляется ядром Linux.

Сейчас kGraft находится на стадии работающего прототипа, требующего доработки. После доработки созданные в рамках проекта наработки будут предложены для включения в состав основной ветки ядра Linux. Компоненты, работающие на уровне ядра, будут открыты под лицензией GPLv2, а выполняемые в пространстве пользователя утилиты, позволяющие создавать патчи к ядру, - под лицензией GPLv3. Средства наложения патчей на базе kGraft ограничены заменой целиком функций и связанных с ними констант. Патч формируется при помощи специального инструментария, на основе анализа исправлений исходных текстов выявляющего подлежащие замене функции и формирующего исходных код модуля ядра с реализацией патча. Cгенерированный модуль загружается в ядро штатными средствами, как и любой другой модуль ядра, после чего выполняет все необходимые действия по внесению изменений в ядро без прерывания работы системы.

>>> Подробности (на английском языке)

★★★★★

Проверено: Shaman007 ()

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

Ну тут скорее всего проблема админов а не серверов - допускать эксплуатацию серверов без резервирования/замены.

SI ★★☆☆
()
Последнее исправление: SI (всего исправлений: 2)

Так ведь они сделали клон ksplice, по которому в 2005? году написали дисер/науч.статью + сделали стартап, который опосля выкупил Oracle.

Update: проморгал новость. На самом деле до 1.0 версии ksplice распространялся как опенсорс, в инете до сих пор можно найти эти рарные исходники.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)

Это просто замечательная новость

anonymous_sama ★★★★★
()

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

xorik ★★★★★
()
Ответ на: комментарий от Yilativs

Хотелось бы и в RHEL такую фичу.

они же в апстим ядрышка хотят позже запилить

megabaks ★★★★
()
Ответ на: комментарий от Yilativs

Кто-то пробовал Ksplice на OracleLinux в действии?

Когда ksplice был в составе RH все работало как и описано в доках. Т.е. патчится, ребутать не надо, только фича не настолько актуальна как кажется. Если у вас не имеется подписанный с клиентами договор SLA на 99.95%, то перезагрузку раз в полгода на несколько минут они переживут. Главное предупредить о работах.

gh0stwizard ★★★★★
()
Ответ на: комментарий от xorik

Чтобы оновить ядро, нужно все процессы кроме инита убить?

Тогда в чём профит? Сохранить аптайм?

Rubystar ★★
()
Ответ на: комментарий от xorik

Замораживает все процессы, обновляет функции и структуры в памяти в соответствии с изменениями в коде ядра на основе информации из ELF-объектов. После - процессы выполняются как если не было никакой перезагрузки.

backbone ★★★★★
()
Ответ на: комментарий от backbone

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

xorik ★★★★★
()

Толк от этого не сильно большой, прикладной софт без перезапуска этого софта всё равно обновить не возможно.

Black_Shadow ★★★★★
()

А зачем оно, если задуматься, нужно?

В системах реального времени ядро на каждый чих не обновляют, в других системах, работающих 24/7 должна быть система дублирования и резервирования, да и для чисто технического обслуживания сервера иногда надо выключать: пыль там пропылесосить.

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

ogiel
()
Ответ на: комментарий от ogiel

При чем тут это, некоторые малые конторы не могут себе такого позволить, тут то и придет на помощь эта функция. То есть управление с умом теперь называется костылями? По-моему докупать еще один сервер на такой случай - костыль.

Deliverance ★★
()
Ответ на: комментарий от Deliverance

Маздай после обновления любого, даже не совсем системного файла требует ребут.

Вот это позор... как эту недо-ОСь юзают на серверах? Только в мелких шарагах.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Deliverance

Так один единственный сервер может ещё и полететь. Бэкапы-бэкапами, а недоступность несколько часов будет.

ogiel
()
Ответ на: комментарий от loz

kexec это же типо пререзагрузки, но без выхода в bios и post?

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Да, именно в такой шараге и вынужден это админить.

Deliverance ★★
()

Надо будет посмотреть. В принципе, пересборка отдельного модуля и rmmod/insmod уже работает нормально с начала времен. Если такое можно будет даже если модуль/драйвер занят и используется, то получается более годно.

Ребут при смене версии и самого ядра, ну это уже не так страшно даже на серверах.

anonymous
()
Ответ на: комментарий от ogiel

Если это не веб-сервер, то не сильно критично. Сетевой NAS - единственное, что действительно необходимо.

Deliverance ★★
()

Что-то не понимаю, по-моему же наоборот всегда к увеличению кол-ва перезагрузок двигались:

http://www.linux.org.ru/news/redhat/7902931

А теперь что? Новая мода?

anonymous
()

Оно имеет преимущества перед ksplice кроме открытости, или это можно рассмотреть как NIH? Если преимуществ нет, то планируются ли технические нововведения?

Quasar ★★★★★
()

А вообще самым лучшим способом был бы содержание двух ядер в памяти с плавным переходом сервисов на второе ядро. Но тут надо как-то ресурсы распределять и гипервизор ставить. В принципе на базе L4 можно сделать.

Quasar ★★★★★
()

Изменения должны быть невелики, типа патчей латающих уязвимости. Иначе кто libc менять будет? Весь userspace с ядром через libc работает.

A-234 ★★★★★
()
Ответ на: комментарий от Quasar

oo имеет преимущества перед mso или это nih? Любая свободная реализация даже с недостатками априори лучше закрытой

anonymous
()
Ответ на: комментарий от toney

Да-а-а-а ладно, даже gnu.org хостится на форке убунты: пруф.

anonymous
()

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

Novel ★★★★
()
Ответ на: комментарий от Deliverance

Маздай после обновления любого, даже не совсем системного файла требует ребут.

4.2 Винда для ядра ЕМНИП еще с Висты юзает аналогичную ksplice вещь. А userspace - ну да, msiexec не любит открытых кем-то другим файлов.

Pavval ★★★★★
()
Ответ на: комментарий от ogiel

единственный сервер может ещё и полететь.
недоступность несколько часов будет.

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

BigAlex ★★★
()
Ответ на: комментарий от Deliverance

Маздай после обновления любого, даже не совсем системного файла требует ребут.

Ну и врёшь же федораст. Ты когда венду в последний раз видел то? Почитай http://www.zdnet.com/microsoft-aims-to-reduce-windows-update-restarts-4010024...

anonymous
()
Ответ на: комментарий от backbone

А если что-то пойдёт не так, процессы уже не разморозятся? И удалённо сервак тоже уже не перезапустить, т.к. всё отвалилось? Как-то сыкотно

anonymoos ★★★★★
()
Ответ на: комментарий от Quasar

Кстати интересная идея, давно думал, почему с ядрами нельзя как со вкладками хрома. Запустил ещё одно, передал ему управление, отдал память а сам закрылся. Технологически на первый взгляд я не вижу непреодолимых препятствий для реализации.

anonymoos ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Вот оно очень надо?

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

denkin
()
Ответ на: комментарий от Novel

перестать сажать баги в ядро

Идеалисты в треде.

Alsvartr ★★★★★
()
Ответ на: комментарий от Quasar

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

А как потом на лету апдейтить гипервизор?

FriendshipIsMagic
()
Ответ на: комментарий от I-Love-Microsoft

Надо только если ты дрочишь на аптайм.

CYB3R ★★★★★
()
Ответ на: комментарий от anonymoos

Кстати интересная идея, давно думал, почему с ядрами нельзя как со вкладками хрома. Запустил ещё одно, передал ему управление, отдал память а сам закрылся. Технологически на первый взгляд я не вижу непреодолимых препятствий для реализации.

А ничего, что для каждого процесса хранится докуя данных в ядре? Причем в очень неочевидном и непереносимом виде. К тому же эти данные меняются в каждом минорном релизе ядра.

Pavval ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.