- Подписка на печатную версию:
-
- Подписка на электронную версию:
-
- Подшивки старых номеров журнала (печатные версии)
-
LXF138:Что за штука
Материал из Linuxformat.
Что за штука… Ksplice?
- Забудьте об этилметансульфанате как о щелочном реагенте: Грэм Моррисон расскажет об удобной программе для рекомбинации ядра.
- Нет, только не это! Неужели в KDE работают над инструментами для генетических мутаций?
- Успокойтесь, мой друг, с вашим рабочим столом всё в порядке. Пока. Насколько нам известно, команда KDE не занимается расщеплением ДНК, к тому же название обманчиво: Ksplice – вовсе не проект KDE. Буква К, которая и сбивает с толку, относится к ядру [kernel], а не к Kool Desktop Environment, и для работы Ksplice не понадобится графический интерфейс с тысячей параметров настройки.
- Ядро, говорите? Звучит тревожно.
- Да, вы правы, и аналогия с ДНК не так уж надуманна. Ядро Linux – это сердце операционной системы, оно управляет всем, от доступа к устройствам до планирования процессов. Если представить, что ядро работает как ДНК компьютера, то Ksplice служит для выделения участка цепочки, замены последовательности команд и обратной сборки. Короче, происходит рекомбинация ядра «на ходу».
- Это такой метод обновления ядра?
- Да, но только по частям. Лучшее в Ksplice то, что обновляется работающее ядро, без перезагрузки системы – это солидное преимущество, если заказчики щедро платят вам за бесперебой ную работу серверов. Как правило, при необходимости обновления ядра следует загрузить его, установить новую версию, перезапустить машину и выбрать новый вариант для загрузки. Этот процесс требует времени и организационных и умственных усилий, к тому же приходится предупреждать заказчиков, чтобы и они подготовились к операции. Иногда остановка серверов и баз данных занимает значительно больше времени, чем простая перезагрузка компьютера. И так постоянно: за 12 месяцев средний дистрибутив выпускает порядка 10 обновлений ядра, и для применения каждого из них необходима перезагрузка системы.
- Значит, Ksplice разрабатывается только для серверов?
- Коммерческое применение проекта очевидно там, где время – деньги. Но многие из нас вздрагивают, увидев маленькое окошко, уведомляющее об очередном обновлении безопасности ядра: рано или поздно это приводит к дружелюбному предложению перезагрузить компьютер. С Ksplice о таких напоминаниях можно забыть: система будет обновляться в рабочем порядке, без перезагрузки.
- Довольно тонко. Ключевой элемент – не способность программы к работе с действующим ядром, а методика сборки заплат. Обновления готовятся на уровне объектов, а не на уровне исходного кода, поэтому заплата формируется для вашего конкретного экземпляра ядра. Это осуществляется путём анализа различий между работающим двоичным образом и тем, который предстоит установить. По выявлении различий подготовить заплату не составит особого труда.
- Заплата требует оценки, и если предстоит значительно изменить внутреннюю структуру данных ядра, программист должен вручную разработать обходнойвариант.В худшем случае после установки заплаты придётся применить стандартный вариант – перезагрузить машину. Однако обновления безопасности редко вызывают глобальные изменения в структурах данных или в режимах работы процессов, и в большинстве случаев применение заплат можно автоматизировать. Разработчики Ksplice подсчитали, что только восемь из пятидесяти исследованных ими заплат могут вызвать затруднения.
- И где брать такие заплаты?
- Вот здесь возможны трения: приложение Ksplice относится к открытому ПО, но обслуживание построено на коммерческой основе. Ksplice Inc., компания-разработчик Ksplice, рассчитываетполучать доход от продажи заплат со своих серверов. Это немалый соблазн, если у вас дистрибутив промышленного уровня типа RHEL или CentOS – вы охотно заплатите за удобство; но индивидуальные пользователи к такому не привыкли. Вероятно, поэтому Ksplice предлагает бесплатные обновления для отдельных дистрибутивов. Например, большинство пользователей Ubuntu может загружать обновления бесплатно, а недавно команда Ksplice объявила о распространении опыта на Fedora.
- А дороги ли коммерческие версии?
- Расходы на услуги Ksplice по обслуживанию группы серверов рассчитать нетрудно. Не забудьте сравнить эту цифру со стоимостью 10‑кратной перезагрузки каждой машины в течение года. Если в сети не более 20 машин, то оплата составит 3,95 доллара в месяц. Если машин больше 20, цена снижается до 2,95 доллара. Получается около 1000 долларов для сети из 20 машин в год.
- Как же можно модифицировать работающее ядро?
- Это делается с помощью модуля ядра. Модули работают подобно драйверам устройств. Модуль, отвечающий за Ksplice, ожидает высвобождения той части кода, которую нужно модифицировать. Ожидание слегка замедляет работу системы, но оно возникает только в том случае, когда Ksplice узнает о доступности заплаты. После этого наложение заплаты займёт всего 0,7 секунды – во много раз быстрее перезагрузки. Перезапуск не нужен, даже если вы установите новый модуль ядра через менеджер пакетов: когда он заработает, компоненты ядра можно менять прямо на ходу, более не слыша зуммера BIOS.
- А вдруг новая заплатка что-нибудь испортит?
- Ещё одна особенность Ksplice – любое изменение можно откатить, и тоже без перезагрузки! А значит, риск при наложении заплату на группу серверов с помощью Ksplice невелик, что и делает его превосходным средством тестирования заплат ядра. Создаёте заплату, накладываете и тестируете – и всё это без тягот перезагрузки. Если что-то пойдёт не так, заплату всегда можно снять.
- Мне по-прежнему надо устанавливать обновления безопасности моего дистрибутива?
- Да. Обновления пользовательского пространства все равно полезны, даже если вы не перезагружаете компьютер. Если ваш дистрибутив установил обновление безопасности для ядра, вы сможете применить его при вынужденной перезагрузке: например, в случае сбоя аппаратуры или при перебоях в сети электропитания.
- Как мне испытать новинку?
- Если у вас Fedora или Ubuntu, установить Ksplice легко: просто загрузите пакет для своего дистрибутива с сайта Ksplice. Пользователи Ubuntu могут добавить репозиторий Ksplice к своему перечню источников пакетов (через Synaptic или командную строку). Кроме того, рекомендуем установить uptrack-manager: эта полезная графическая программа показывает список готовых обновлений и меняет глобальные настройки Ksplice. Её запуск, или команда в терминале, загрузит модули ядра, подготовит заплаты и настроит систему для обновления ядра без перезагрузки. Предусмотрен и web-интерфейс для дистанционного управления группой машин, и можно настроить автоматические обновления.
- Поделитесь ссылками напоследок?
- Конечно. Сайт Ksplice: http://www.ksplice.com. Для пользователей Ubuntu или Fedora подготовлены специальные пакеты в комплекте с доходчивыми визуальными инструкциями. Настроить систему нетрудно, так что начинайте хоть сейчас.