Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

Представлен kmorph для быстрого восстановления после сбоя или обновления ядра Linux

08.11.2026 18:50 (MSK)

Разработчики проекта Multikernel, позволяющего на одном физическом компьютере выполнять несколько независимых экземпляров ядра без гипервизора и виртуализации, представили инструментарий kmorph, реализующий средства для быстрого восстановления после аварийной остановки ядра Linux или для замены ядра в Live-режиме без полноценной перезагрузки. Проект развивает Конг Ванг (Cong Wang), сопровождающий подсистему управления трафиком (TC, Traffic Control) в ядре. Метод быстрого перезапуска основан на предварительной загрузке в память запасного ядра, которым подменяется основное рабочее ядро в случае сбоя или при необходимости замены ядра на новую версию.

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

В случае применения kmorph в привязке к отдельному ядру CPU в память заранее загружается запасное ядро Linux и минимальное системное окружение, которое отслеживает состояние основного ядра. В случае зависания или впадение в состояние panic основного ядра, запасное окружение берёт управление на себя, сохраняет дамп памяти сбойного ядра, переключает на себя процессорные ядра, память, устройства, сетевую конфигурацию и ФС.

Переключение координируется при помощи двух программ: kmorph - запускается в активном окружении, формирует начинку запасного окружения и синхронизирует в нём состояние сети; kmorphd - запускается в запасном окружении и отслеживает состояние активного окружения. Помимо переключения в случае аварии, предоставляется возможность использования kmorph для обновления ядра без традиционной перезагрузки. Для ускорения восстановления в запасном окружении помимо ядра и минимального набора системных компонентов в режиме ожидания могут запускаться типовые сервисы, такие как nginx. В этом случае в момент активации запасного окружения сервис nginx уже будет загружен в память и сразу начнёт обрабатывать запросы после переключения в новое окружения сетевой карты, активации сетевой конфигурации и смены корневой ФС.

В проведённых тестах сервер с nginx при помощи kmorph возобновляет работу примерно через 2 секунды после сбоя ядра, но в будущем намерены добиться мгновенного переключения незаметно для подключённых клиентов. В настоящее время в kmorph поддерживаются архитектуры x86_64 и ARM64, а также ведётся работа над поддержкой RISC-V. Интеграция kmorph в дистрибутивы Linux осуществляется по аналогии с поддержкой kdump, через штатные инструменты dracut, initramfs-tools, kernel-install и сервис systemd.

В состав ядра уже входят механизмы Kexec HandOver (KHO) и Live Update Orchestrator (LUO), позволяющие запускать новое ядро из старого без потери состояния системы и без остановки работы устройств. Но они не могут применяться в случае сбоя в ядре, так как требуют для сохранения состояния работающего ядра. KHO и LUO также отстают от kmorph по скорости переключения из-за того, что в kmorph новое ядро уже находится в памяти, а KHO и LUO требуют перезагрузки ядра через kexec.

  1. Главная ссылка к новости (https://lore.kernel.org/lkml/a...)
  2. OpenNews: Первый выпуск mklinux для одновременного выполнения нескольких экземпляров ядра Linux
  3. OpenNews: Представлена ФС DAXFS, похожая на ramfs и tmpfs, но работающая в обход страничного кэша
  4. OpenNews: Для ядра Linux развивается система распределённого выполнения потоков Popcorn
  5. OpenNews: Механизм Kexec HandOver для перезагрузки ядра Linux без потери состояния
  6. OpenNews: Google развивает систему перезагрузки ядра без остановки работы устройств
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66643-kmorph
Ключевые слова: kmorph, multikernel, reboot, crash
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (3) RSS
  • 1, Аноним (1), 19:09, 08/11/2026 [ответить]  
  • +/–
    звучит как тулза для хацкеров. типа, не грей голову, сразу ядро подмени.
    какое практическое применение кроме сервера??
     
     
  • 2, Аноним (2), 19:18, 08/11/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А какое ещё должно быть?
     
  • 3, Stanislavvv (ok), 19:20, 08/11/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Достаточно и сервера — на железном сервере даунтайм может быть от нескольких минут чисто из-за инициализации железа (supermicro, мать его). Тут — вполне себе закрытие дырок с даунтаймом в секунды.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: