Системное администрирование

kmorph: замена ядра Linux за 2 секунды без перезагрузки сервера

Проект Multikernel представил инструмент kmorph: запасное ядро заранее загружено в память и перехватывает сервер при panic или зависании основного. В тестах nginx снова отвечал через две секунды, а команда kmorph upgrade меняет ядро без перезагрузки.

Что случилось

Разработчики проекта Multikernel выпустили инструментарий kmorph: он позволяет заменить работающее ядро Linux запасным, уже загруженным в память, — при аварийной остановке или при плановом обновлении, без перезагрузки. Проект развивает Конг Ванг, сопровождающий подсистему управления трафиком (TC) в ядре Linux.

Детали

Multikernel даёт одному физическому серверу несколько независимых экземпляров ядра без гипервизора, каждый на своём наборе процессорных ядер. kmorph использует эту схему так: рядом с рабочим ядром (predecessor) заранее готовится преемник (successor) с минимальным системным окружением.

  • kmorph работает в активном окружении: собирает образ преемника, взводит его и синхронизирует сетевую конфигурацию;
  • kmorphd живёт внутри преемника и следит за предшественником;
  • при panic или зависании преемник фиксирует молчание — по умолчанию около половины секунды — останавливает чужие CPU и забирает память, PCI-устройства, сеть и корневую ФС;
  • устройства принимаются по одному через FLR или сброс питания, при необходимости снимается Bus Master Enable, чтобы остановить DMA мёртвого ядра;
  • память сбойного ядра сохраняется как vmcore для посмертного разбора.

В тестах сервер с nginx после сбоя ядра возвращался к работе примерно за две секунды: преемник держит типовые сервисы уже загруженными в память и начинает обслуживать запросы сразу после переключения сетевой карты и смены корневой ФС. Команда kmorph upgrade выполняет ту же передачу по запросу — это обновление ядра без перезагрузки. Поддержаны архитектуры x86_64 и ARM64, ведётся работа над RISC-V; установка задумана по образцу kdump, через dracut, initramfs-tools, kernel-install и systemd.

Механизмы Kexec HandOver и Live Update Orchestrator в ядре решают похожую задачу, но требуют живого ядра для сохранения состояния и перезагружают его через kexec, а потому не спасают при сбое и переключаются медленнее.

Что это значит

Для серверов, где минуты простоя на счету, меняется сам сценарий аварии: вместо двух перезагрузок — на дамп через kexec и на рабочее ядро — остаётся одно переключение, а обновление ядра перестаёт быть окном обслуживания. Пока это не готовый продукт: нужно ядро с CONFIG_MULTIKERNEL и интерфейсом host-tree, для дампа — CONFIG_CRASH_DUMP, а после перехвата преемник не взводит следующего без kmorph.service. Ограничения перечислены в документации: нет вторичного сброса шины для принятых устройств, память забирается целыми гранулами, дамп не фильтруется и его приходится ужимать makedumpfile. Кроме того, преемник не может работать на ядре без поддержки multikernel, так что первое внедрение всё равно начинается с обычной перезагрузки — уже с новым ядром в конфигурации.

Комментарии 0

Комментариев пока нет — будьте первым.

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

Имя и текст — этого достаточно. Комментарий появится сразу; подозрительные сообщения уходят на проверку.

Сдвиньте ползунок вправо для проверки
Спам и реклама блокируются автоматически.
Читайте также

Похожие публикации

10 Ноя

SSHole в OpenSSH: вход без пароля на Alpine и первые атаки через 40 часов после патча

Уязвимость CVE-2026-123158 позволяет войти в OpenSSH на системах с musl без пароля: достаточно аккаунта со звёздочкой в поле хеша. Патч вышел 5 ноября, PoC — через четыре часа, первая успешная эксплуатация зафиксирована 7 ноября.

→
10 Ноя

N-able отключила N-central по всему миру после публикации 30+ уязвимостей нулевого дня

Исследователь выложил в открытый доступ более 30 эксплоитов для платформы удалённого управления N-central, включая цепочку от XXE без аутентификации до выполнения команд. N-able выключила облачные окружения в трёх регионах и просила клиентов остановить серверы.

→
09 Ноя

Выход из Firecracker: PwnEscape доводит гостя до root на хосте

Исследователи pwn.ai показали полный выход из microVM Firecracker: гостевая система находит процесс гипервизора в памяти хоста и подменяет регистры его потока. Цепочка опирается на критическую CVE-2026-99999 в сетевом стеке ядра Linux с оценкой 9,3.

→