включить редактирование

Обновление ядра Linux без перезагрузки

Создан:

В Linux существует два решения — kexec и ksplice, позволяющие свести к минимуму количество аппаратных перезагрузок. Системный вызов кехес в mainline-версии ядра появился еще в июне 2005-го. Как раз предназначение его именно для загрузки нового ядра прямо из существующего. Работа технологии сводится к следующим пунктам:
• сперва копирование образа ядра в память;
• затем перемещение образа в динамическую память текущего ядра;
• и далее, этот образ копируется на нужные страницы, и затем ему передается управление.

Преимущество данного способа перед обычной перезагрузкой системы - очевидны: перезагрузка происходит быстрее, а в случае со SCSI-контроллерами, нет нужды ждать определения устройств, относительная независимость от загрузчиков и возможность быстрого переключения на другой установленный дистрибутив. Но есть и недостатки: первое, перед загрузкой ядра рекомендуется корректно завершить все процессы и синхронизировать файловые системы, поскольку все подсистемы ядра инициализируются заново. Второе, все устройства будут находиться в неизвестном состоянии, и, если драйвер написан криво, работать он не будет.
Для практического применения kexec необходимо ядро с включенной опцией (CONFIG_KEXEC=Y) и пакет kexec-tools. Ручная загрузка ядра (в случае с Ubuntu) осуществляется следующими двумя командами:
kexec -1 /vmlinuz --initrd=/initrd.img --reuse-cmdline kexec -е
Первая команда загрузит ядро в память, а вторая передает ему управление. При этом используется текущая строка параметров ядра. Чтобы использовать свои параметры, задайте их в опции --cmdline="".

В Ubuntu можно также использовать kexec для быстрой перезагрузки — для этого установи параметр LOADKEXEC в файле /etc/default/kexec равным true, и после этого все стандартные процедуры перезагрузки будут осуществляться через него.
Ksplice же, по утверждениям его разработчиков, позволяет накладывать патчи безопасности на ядро на лету. При этом все работающие приложения работают по-прежнему, без необходимости их перезапускать. Данный проект был куплен Oracle, и для RHEL, из-за конкуренции фирм, патчи платные. Однако, это ничуть не мешает раздавать патчи для Ubuntu. Качаем и устанавливаем пакет (для версии 12.04):

$ wget http://goo.gl/MHAZ6c
$ sudo dpkg -i ./ksplice-uptrack.deb
$ sudo apt-get -f install

Применение всех доступных патчей выполняется всего лишь одной простой командой:

$ sudo uptrack-upgrade -у

Для удаления же всех патчей используется команда

$ sudo uptrack-remove --all -у

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

Автор: xvzL Просмотров: 4709


Рейтинг статьи: 0

Общий рейтинг из всех статей автора :
{0 [724]} [ - - - - - - - - - - ]

Общий рейтинг из всех статей на сайте :
{0 [888]} [ - - - - - - - - - - ]

[?]
комментариев к данной статье нет

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


Ctrl+Enter

Для активации кнопки, введите символы, которые Вы видите на картинки.

новая

тема

Заметки на тему IT

Монитор поиска
[x]
Новое сообщение

Сообщения в чате

Вы спрашиваете у гостей/у зарегистрированных/ У Вас спрашивают
всем Ctrl+Enter
зарегистрированным Ctrl+Enter
Ctrl+Enter

Краткая инструкция по работе с чатом

  • Вы должны ввести имя, которое будет запомнено и применяться для чата и комментариев на сайте.
  • Выбрать одну из возможностей
    "Вы спрашиваете у гостей/
    у зарегистрированных/
    У Вас спрашивают"
  • Кликните на один из способов и появиться дополнительная информация