Představen kmorph pro rychlé obnovení po selhání nebo aktualizaci jádra Linux

Vývojáři projektu Multikernel, který umožňuje na jednom fyzickém počítači provozovat několik nezávislých instancí jádra bez hypervizoru a virtualizace, představili nástroj kmorph, který implementuje prostředky pro rychlé obnovení po havarijním ukončení jádra Linuxu nebo pro výměnu jádra v režimu Live bez úplného restartu. Projekt vede Cong Wang, který spravuje pod systém řízení provozu (TC, Traffic Control) v jádru. Metoda rychlého restartu je založena na předběžném načtení záložního jádra do paměti, které nahrazuje hlavní pracovní jádro v případě selhání nebo při potřebě výměny jádra za novou verzi.

Navrhovaný přístup umožňuje oběžení bez úplného restartu a téměř okamžité obnovení provozu, čímž se minimalizuje doba prostojů. V současné době, v případě havarijního ukončení činnosti jádra, trvá úplný restart větších servery několik minut kvůli dlouhým procesům inicializace hardwaru, načítání systémového prostředí a ukládání jádrového paměťového dumpu prostřednictvím mechanismu kdump. V podstatě při použití kdump dochází ke dvěma restartům jádra — nejprve se přes kexec načte samostatná instance jádra pro uložení paměťového dumpu, po čemž následuje načtení pracovnímu jádra a spuštění systémových služeb.

V případě použití kmorph v připojení k samostatnému CPU jádru se do paměti předem načte záložní jádro Linuxu a minimální systémové prostředí, které sleduje stav hlavního jádra. V případě zamrznutí nebo vstupu do stavu paniky hlavního jádra převezme záložní prostředí kontrolu, uloží paměťový dump selhávajícího jádra, přepne na sebe procesorová jádra, paměť, zařízení, síťovou konfiguraci a FS.

Přepínání je koordinováno pomocí dvou programů: kmorph — spouští se v aktivním prostředí, vytváří obsah záložního prostředí a synchronizuje v něm stav sítě; kmorphd — spouští se v záložním prostředí a sleduje stav aktivního prostředí. Kromě přepínání v případě havárie je možné použít kmorph k aktualizaci jádra bez tradičního restartu. Pro urychlení obnovy v záložním prostředí mohou být kromě jádra a minimálního souboru systémových komponent v pohotovostním režimu spuštěny standardní služby jako nginx. V tomto případě bude v okamžiku aktivace záložního prostředí služba nginx již načtena do paměti a okamžitě začne zpracovávat požadavky po přepnutí na nové prostředí síťové karty, aktivaci síťové konfigurace a změně kořenového FS.

Ve provedených testech server s nginx pomocí kmorph obnovuje činnost přibližně 2 sekundy po selhání jádra, ale v budoucnu se plánuje dosáhnout okamžitého přepnutí, které bude neviditelné pro připojené klienty. V současné době kmorph podporuje architektury x86_64 a ARM64, a také se pracuje na podpoře RISC-V. Integrace kmorph do distribucí Linuxu se uskutečňuje analogicky s podporou kdump, prostřednictvím standardních nástrojů dracut, initramfs-tools, kernel-install a služby systemd.

Součástí jádra již jsou mechanismy Kexec HandOver (KHO) a Live Update Orchestrator (LUO), které umožňují spouštět nové jádro ze starého bez ztráty stavu systému a bez zastavení provozu zařízení. Ale nemohou být použity v případě selhání jádra, protože vyžadují k zachování stavu běžícího jádra. KHO a LUO také zaostávají za kmorph z hlediska rychlosti přepínání, protože v kmorph je nové jádro již v paměti, zatímco KHO a LUO vyžadují restartování jádra přes kexec.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster