Что такое Live Patching для ядра Linux? — CloudSavvy ИТ

Баш Шелл

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

Что такое Live Kernel Patching?

Перед внесением исправлений в ядро ​​системным администраторам нужно было выбирать между сохранением сервера или применением обновлений безопасности. Это явно не идеально, поэтому в 2008 г. Джефф Арнольд из Массачусетского технологического института создал KSplice, инструмент, который может применять обновления, беря двоичный файл diff и применяя исправления к работающему ядру в памяти.

KSplice, инструмент, который применяет обновления, используя двоичный файл diff и применяя исправления к работающему ядру в памяти.

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

На самом деле исправление живого ядра немного менее полезно, чем может показаться. Если вы заботитесь о времени безотказной работы сервера, вы, вероятно, также захотите выполнить какое-то соглашение об уровне обслуживания или иметь критически важный сервис, который будет продолжать работать. В сети с высокой доступностью любой отдельный сервер теоретически должен иметь возможность спонтанно сгорать, не влияя на время безотказной работы приложения. В идеале у вас должно быть два или более серверов за балансировщиками нагрузки, и если у вас более одного сервера, их можно обновлять по одному, не сильно влияя на доступность службы, хотя на короткое время у вас может быть 50% -ная нагрузка.

С учетом этого, исправление ядра в реальном времени обычно выполняется автоматически, как только становится доступен новый патч. При включении оперативного исправления ваша система должна автоматически обновляться, и вам не нужно будет, чтобы кто-то организовывал последовательное обновление сервера с возможным временем простоя. Это огромный плюс для большинства системных администраторов.

Недостатки Live Patching

Внесение исправлений в живое ядро ​​по-прежнему довольно сложно — исправления должны быть написаны экспертами для каждой системы, и они зарезервированы только для важных исправлений безопасности. Даже в этом случае не гарантируется, что ваша система не выйдет из строя. Ubuntu управляет этим риском, медленно распространяя исправления среди нескольких пользователей, одновременно отслеживая сбои.

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

Кто поддерживает Live Patching?

К сожалению, исходная программа KSplice больше не является открытой после того, как Oracle в 2011 году приобрела ее для интеграции в Oracle Linux.

Поскольку KSplice стал закрытым исходным кодом, многие другие компании в области серверов Linux разработали свои собственные версии. Поскольку патчи должны быть специально написаны и протестированы для каждой системы, это очень затрудняет поддержку единого «Live Kernel Patcher» с открытым исходным кодом.

Большинство компаний предлагают это как платную услугу. KernelCare является наиболее близким к решению общего назначения и поддерживает большинство дистрибутивов с платной подпиской. Amazon Linux 2 — один из немногих, предлагает это бесплатно. RHEL имеет kpatch. Oracle Linux по-прежнему использует ksplice.

Ubuntu имеет Канонический Livepatch. Это бесплатно для трех машин, после чего вам понадобится Преимущество Ubuntu подписка на каждую машину.

Похожие записи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *