Рубрика:
Администрирование /
Тонкая настройка
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ДЕНИС СИЛАКОВ, к.ф.-м.н., старший системный архитектор Virtuozzo, dsilakov@virtuozzo.com
Обновление ядра Linux без перезагрузки Исправляем уязвимости, не затрагивая других процессов
Преимуществом Linux является отсутствие необходимости перезагружать машину после установки обновлений или новых программ. Кроме одного случая – обновления ядра ОС
Перезагрузка сервера – не всегда желаемое событие для системного администратора. Например, если речь идет о сервере хостинг-компании, и на этом сервере находятся сайты пользователей, то перезагрузка сервера приведет к временной недоступности всех расположенных на нем сайтов. Однако обновлять ядро время от времени необходимо – какминимум для устранения уязвимостей, которые могут быть использованы злоумышленниками для компрометации сервера вместе со всем его содержимым.
Есть несколько путей для решения этой проблемы:
- Произвести-таки перезагрузку сервера, честно предупредив пользователей, что по причине технических работ некоторое время все сервисы будут недоступны.
- Если все клиентские сервисы работают внутри виртуальных сред (контейнеров или полноценных ВМ), то можно предварительно перенести все виртуальные окружения надругой сервер, после чего спокойно обновить текущий.
- Воспользоваться одним из инструментов, позволяющих наложить необходимые патчи на работающее ядро без перезагрузки.
Ниже мы кратко остановимся на первых двух подходах, а затем посмотрим, как современные технологии позволяют обойтись без них, по крайней мере в некоторых ситуациях.
Перезагрузка – плюсы и минусы
Полная перезагрузка сервера – дело не мгновенное. Во-первых, сначала надо остановить все клиентские сервисы, а после возобновления работы снова их запустить. Во-вторых, перезагрузка машины сама по себе отнимает некоторое время. Частично эта проблема решается с помощью механизма kexec, позволяющего осуществить перезагрузку с новым ядром без физического рестарта сервера. Этот механизм используется, например, в Virtuozzo 6 для обновления ядра без перезагрузки [1], однако он все-таки сопряжен с заметным временем простоя системы, поскольку подразумевает приостановку всех процессов в системе на время переключения ядра.
В случае Virtuozzo это означает, что приостанавливается работа всех виртуальных окружений. В зависимости от мощности сервера и количества таких окружений время ихнедоступности
может составлять от нескольких секунд до нескольких минут. К тому же остается нерешенным одно из главных опасений системного администратора – при старте системы с новым ядром могут возникнуть и новые ошибки. Если потери времени на перезапуск системы и всех сервисов в штатном режиме можно оценить и выдать эту оценку пользователям, топредсказать, сколько займет починка неожиданно возникших проблем, сложно. Конечно, можно оперативно откатить систему на старое ядро, но ведь задачу обновления это неснимет.
Применим или нет такой путь обновления, зависит от конкретных задач, которые лежат на обновляемой машине. Если речь идет об офисном сервере, то в его перезагрузке навыходных или ночью скорее всего ничего страшного нет. Однако, например, на рынке хостинг-провайдеров, где конкуренция очень высока и альтернативных предложений всегда хватает, даже недолгая недоступность клиентских сервисов может привести к оттоку клиентов.
С другой стороны, как раз для провайдеров может подойти второй путь, ведь львиная доля рынка хостинга сегодня – это предоставление клиентам виртуальных серверов (VPS/VDS).
Статью целиком читайте в журнале «Системный администратор», №10 за 2016 г. на страницах 07-11.
PDF-версию данного номера можно приобрести в нашем магазине.
- How do rebootless updates work? // Virtuozzo Knowledge Base – https://kb.plesk.com/en/117839.
- Силаков Д. Virtuozzo – резервные копии и миграция. // «Системный администратор», №3, 2016 г. – С. 8-10 (http://samag.ru/archive/article/3141).
- J. Arnold, M.F. Kaashoek. Ksplice: automatic rebootless kernel updates. // Proceedings of the 4th ACM European conference on Computer systems. P. 187-198.
- CloudLinux KernelCare – https://www.cloudlinux.com/all-products/product-overview/kernelcare.
- Introducing kpatch: Dynamic Kernel Patching. // RHEL Blog – http://rhelblog.redhat.com/2014/02/26/kpatch.
- SUSE Releases kGraft for Live Patching of Linux Kernel. // SUSE Blog – http://goo.gl/lBABNW.
- Virtuozzo 7 Product Site – https://virtuozzo.com/products/virtuozzo.
- Сервис ReadyKernel – http://readykernel.com.
- Preparing a patch – pitfalls. // Переписка в списке рассылок Red Hat – http://goo.gl/7xPXJO.
- Josh Poimboeuf. Kpatch – Have your security and eat it too! // LinuxCon North America 2014 – http://goo.gl/degZDP.
- Oracle Ksplice – http://www.ksplice.com.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|