Osegi
Oprogramowanie·2 min czytania

kmorph: otwarte narzędzie ratuje Linuksa po awarii jądra w 2 s

Zespół Multikernel udostępnił kmorph – otwarty projekt, który po awarii lub przy aktualizacji podmienia jądro Linuksa na zapasowe i przywraca serwer w około dwie sekundy.

Server rack with a terminal showing a Linux kernel switching to a standby kernel after a crash.
Zdjęcie: Хабр

Zespół projektu Multikernel zaprezentował kmorph, otwarte narzędzie do szybkiego odzyskiwania systemu po awarii jądra Linuksa. Pozwala też wymienić jądro na działającym systemie bez pełnego restartu. W testach twórców serwer z nginx wznawia pracę mniej więcej dwie sekundy po awarii jądra.

Projekt rozwija Cong Wang, opiekun podsystemu kontroli ruchu (TC, Traffic Control) w jądrze Linuksa.

Jak działa zapasowe jądro

Dziś po awarii jądra pełny restart komputera lub serwera trwa nawet kilka minut: dochodzi do inicjalizacji sprzętu, ładowania środowiska systemowego i zapisu zrzutu pamięci przez kdump. W praktyce kdump oznacza dwa uruchomienia jądra – najpierw przez kexec startuje osobna instancja zapisująca zrzut, potem ładowane jest jądro robocze wraz z usługami.

kmorph działa inaczej. Zapasowe jądro i minimalne środowisko są wcześniej ładowane do pamięci i przypisane do osobnego rdzenia procesora, skąd monitorują jądro główne. Gdy to się zawiesi lub wpadnie w panikę (panic), środowisko zapasowe przejmuje kontrolę, zapisuje zrzut pamięci uszkodzonego jądra i przejmuje rdzenie procesora, pamięć, urządzenia, konfigurację sieci oraz system plików.

Całość koordynują dwa programy: kmorph, uruchamiany w aktywnym środowisku, który przygotowuje zawartość zapasowego i synchronizuje z nim stan sieci, oraz kmorphd, działający w środowisku zapasowym i obserwujący to aktywne. W trybie oczekiwania można uruchomić tam typowe usługi, na przykład nginx, który po przełączeniu od razu zaczyna obsługiwać zapytania.

Aktualizacje i dostępność

To samo podejście służy do aktualizacji jądra bez tradycyjnego restartu. Jądro Linuksa ma już mechanizmy Kexec HandOver (KHO) i Live Update Orchestrator (LUO), ale nie nadają się one do awarii, bo wymagają stanu działającego jądra. Są też wolniejsze, ponieważ nowe jądro trzeba uruchomić przez kexec, a w kmorph jest już w pamięci.

kmorph obsługuje architektury x86_64 i ARM64, trwają prace nad RISC-V. Integracja z dystrybucjami ma przebiegać podobnie jak w przypadku kdump – przez dracut, initramfs-tools, kernel-install i usługę systemd. Twórcy zapowiadają, że w przyszłości chcą uzyskać przełączenie natychmiastowe i niezauważalne dla podłączonych klientów.

Aplikacje warte uwagi

SUMO: łamigłówka liczbowa

Wybierz właściwe pola, dodaj je i trafiaj w cel. Łatwa do nauczenia, trudna do opanowania. Za darmo, dla każdego wieku.

Tagi:linuxkmorphmultikernelkernelkdumpopen source

Więcej z tego dnia

Zobacz wszystkie →

Więcej w kategorii: Oprogramowanie

Zobacz wszystkie →