URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 94743
[ Назад ]

Исходное сообщение
"Компания Red Hat открыла код kpatch для организации обновлен..."

Отправлено opennews , 04-Мрт-14 21:05 
Компания Red Hat открыла (http://rhelblog.redhat.com/2014/02/26/kpatch/) под лицензией GPLv2 наработки проекта kpatch (https://github.com/dynup/kpatch), в рамках которого подготовлена система динамического применения патчей к работающему ядру Linux, без перезагрузки и остановки работы системы. По своему назначению kpatch напоминает развиваемую компанией Oracle систему KSplice (http://www.ksplice.com/) и анонсированный компанией SUSE проект kGraft (http://www.opennet.me/opennews/art.shtml?num=38994), и также позволяет администраторам на лету устранять уязвимости и некоторые типы ошибок в ядре.

По организации обновления ядра kpatch напоминает kGraft и также  выполняет замену целиком функций в ядре, используя для перенаправления на новую функцию штатные средства подсистемы ftrace. Методы формирования и загрузки патча более близки к ksplice и также основаны на сравнении бинарных сборок и использовании отдельного базового модуля для координации наложения изменений. Отмечается, что реализация kpatch ещё до конца не стабилизирована, поэтому систему динамического обновления ядра пока не стоит использовать для промышленного применения. Инструкция по сборке и экспериментах с  kpatch подготовлена (https://github.com/dynup/kpatch) для Fedora 20. После открытия кода kGraft, которое запланировано на март, между системами динамического обновления ядра от Red Hat и SUSE разразится конкурентная борьба по продвижению в состав основного ядра Linux.

В состав kpatch входят следующие компоненты:

-  kpatch-build - набор утилит для преобразования патча к исходным текстам ядра, созданного утилитой diff, в специализированный модуль ядра, осуществляющий наложение изменений на работающее ядро. Для оценки подлежащих замене компонентов, осуществляется сборка двух бинарных образов ядра, один для состояния до наложения патча на код ядра, а второй - после наложения патча. Далее выявляются отличия между бинарными патчами и генерируется модуль горячего обновления ядра.

-  Модуль горячего обновления ядра представляет собой обычный модуль ядра (файл с разрешением.ko), содержащий бинарные варианты изменённых функций ядра и метаданные об размещении оригинальных функций, подлежащих замене.
-  Базовый модуль kpatch - модуль ядра, предоставляющий  интерфейс для регистрации новых функций, определённых в модуле горячего обновления ядра. Для перенаправления вызова на новую функцию используется подсистема ftrace, при помощи которой ставится хук на инструкцию вызова старой функции для перенаправления обращения на новую функцию.
-  Утилита kpatch с интерфейсом командной строки для управления коллекцией модулей горячего обновления ядра. Один или более подобных модулей могут быть настроены для применения в процессе загрузки, что позволяет системе сохранить работоспособность применённых в процессе работы  горячих патчей, даже в случае перезагрузки сервера.

URL: http://rhelblog.redhat.com/2014/02/26/kpatch/
Новость: http://www.opennet.me/opennews/art.shtml?num=39235


Содержание

Сообщения в этом обсуждении
"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 04-Мрт-14 21:05 
Опердили SuSE :)

---
Пара патчей

https://github.com/pavlinux/kpatch/commit/041c7ccae68e36b771...
https://github.com/pavlinux/kpatch/commit/db9c6e989b7c1a5005...
---


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено FractalizeR , 04-Мрт-14 23:26 
Патчи гениальны. Они изменят судьбу мира Linux.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 04-Мрт-14 23:41 
Ты как большой специалист знаешь же, где найти руткит на неправильные спецификаторы printf/scanf

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено анонимус , 05-Мрт-14 01:07 
руткит — это немного не о том, наверное эксплойт

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 05-Мрт-14 17:09 
руткит - это цель, эксплойт - это инструмент, как черепно-мозговая травма тупым предметом и молоток.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 05-Мрт-14 03:56 
Нафиг нужны твои патчи?

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 05-Мрт-14 14:25 
> Нафиг нужны твои патчи?

лохов раздражать


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 05-Мрт-14 06:24 
Так вот ты какой, северный pavlinux https://identicons.github.com/35a2ad62b28e3c7cf02bdc9d1c2932...

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено qwerty , 05-Мрт-14 08:45 
>Type coeection

*facepalm*


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 05-Мрт-14 17:10 
>>Type coeection
> *facepalm*

Да, вот так,... не хватило сил дотянуть палец до соседней кнопки. :-P


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено umbr , 04-Мрт-14 21:19 
Новые фичи - новые дыры.
Вопрос к специалистам: не повлияет-ли это на совместимость ядер?

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 04-Мрт-14 21:34 
> Новые фичи - новые дыры.
> Вопрос к специалистам: не повлияет-ли это на совместимость ядер?

Кроме как CONFIG_FTRACE и CONFIG_FUNCTION_TRACER вроде ничего волшебного не просит,
и само в код ядра не просится.  


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено umbr , 04-Мрт-14 21:58 
Теперь бэкдоры можно пихать прямо в работающее ядро?
И никаких следов, разве что оперативку сканировать.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 04-Мрт-14 23:37 
> Теперь бэкдоры можно пихать прямо в работающее ядро?

Да, от рута всё можно.


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 05-Мрт-14 00:38 
> CONFIG_FUNCTION_TRACER

А с этой фичей, оверхед проца-то вырос, прим. на 10°C

В общем, поюзал... глюкалово страшное. Если патч на модуль, то раз в 500 проще
перекомпилить модуль, остановить сервис, rmmod/insmod и снова в путь.
Если на ROOTFS, в принципе, через mount --bind на ramfs, перегрузить модуль и обратно.
Но это, по сути, тот же reboot. :)

И во-вторых kpatch - это временное средство, ядро всё равно обновлять придётся.
Не, можно и так работать, но есть вероятность, что модуль прибьёт OOM_killer,
или при крэшдампе отвалится.    

> ... не могут применяться к функциям, вызываемым только на стадии инициализации ядра;

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


Лучше бы за пилили работу с двумя ядрами - master/slave ©
В каждом ядре список символов с версиями, менеджер версий.
Например та же schedule() была бы ссылкой на более старшую
версию из таблицы: schedule()_3121155 и schedule()_3121157  
При появлении символа schedule()_3140000, все новые вызовы  
schedule(), вызывали бы schedule()_3140000.



"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Геннадий Кернес , 05-Мрт-14 02:50 
>в 500 проще перекомпилить модуль, остановить сервис

Что _проще_ - никто и не спорил.
Только дороговато некоторые сервисы останавливать.


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Anonymus , 05-Мрт-14 08:41 
тщательнее надо проектировать, остановка сервера не должна приводить к остановке сервиса

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Маленькая Серая Мышка , 05-Мрт-14 13:54 
То есть вы предлагаете перепроектировать этот мир вместо того чтобы использовать kpatch, я так понимаю.
Ну что ж, предложение интересное, практичное.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 04-Мрт-14 22:05 
Господа, а как на счет безопасности для параноикрв?

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено backbone , 04-Мрт-14 22:17 
Безопасности, в смысле, security или безопасности процесса применения патча?

Ради 1-го и развиваются эти технологии. По поводу 2-го - в новости сказано, что не готово для production.


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 05-Мрт-14 01:48 
Для параноиков ее нет.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Нанобот , 05-Мрт-14 15:33 
для параноиков ничего не изменилось - всё как было опасно, так и остаётся

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено AlexAT , 04-Мрт-14 22:40 
>>> Не вызовет удивления, если компания Oracle откроет свежий исходный код KSplice и также подключится к борьбе за upstream

Поздновато. У редхата большой опыт по пропихиванию разработок в апстрим. В отличие от.


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено AlexAT , 04-Мрт-14 22:43 
Блин, в который раз редхату эпическое шпасибо за следование GPL. У меня даже есть место для применения этой штуки, весьма специфичное, но реальное.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено pavlinux , 05-Мрт-14 00:06 
# This script currently only works on Fedora and will need to be adapted to
# work on other distros.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено anonymous , 05-Мрт-14 01:38 
Да там три с половиной строки поправить. Кто не сможет - тому рано пока это использовать.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 05-Мрт-14 02:08 
секретничает, какое?

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено AlexAT , 05-Мрт-14 08:36 
> секретничает, какое?

Есть определенная операторская сетевая платформа, которой возможность проапдейтить ядро (особенно собственные модули, например, для добавления мелкофич или затыкания мелкобагов) на ходу очень даже пригодится. Цена останова - обрыв всех абонентских сеансов в случае PPPoE/PPTP. Даже если есть резерв. Но это применение скорее типовое.

И при разработке оной иметь такую штуку тоже очень даже неплохо, ибо можно не перегружая тестовую площадку и не выгружая/перезагружая модулей (т.е. с сохранением состояния) проапдейтить кусок ядра (если не меняются структуры данных и API/ABI), и сразу на живую посмотреть, как оно работает. Это как раз "специфичное" применение.


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 05-Мрт-14 01:01 
<delirium>Ага, значит наклепали за 5 минут, дабы пропихнуть побыстрее своё, чтоб не дай рандом клиенты не ушли к зелёным из-за фичи, которой у них нет, а потом будут это чинить годами в манере одного своего известного сотрудника.</delirium>

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Мегазаычы , 05-Мрт-14 05:22 
5 лет не уходили (см. ksplice) а тут вдруг подорвались.

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Anonymus , 05-Мрт-14 08:42 
неужто великим умищам нечем боле заняться чем костыли клепать?

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено AlexAT , 05-Мрт-14 08:45 
> неужто великим умищам нечем боле заняться чем костыли клепать?

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


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 05-Мрт-14 21:59 
> В любой системе есть время на техническое обслуживание, в течении которого проводится в т.ч. обновление ПО.

И что делать если даунтайм запланирован на следующей неделе, а проблему надо исправить уже сейчас ?


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Маленькая Серая Мышка , 05-Мрт-14 13:56 
> - там и часовой простой может быть нормой, бизнес от одной
> системы не встанет.

Ну да, помнится вот у Сбербанка "не встал".


"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 07-Мрт-14 17:54 
IBM K24 же

"Компания Red Hat открыла код kpatch для организации обновлен..."
Отправлено Аноним , 07-Мрт-14 17:55 
K42 (: