Predstavený kmorph na rýchle obnovenie po zlyhaní alebo aktualizácii jadra Linuxu

Vývojári projektu Multikernel, ktorý umožňuje na jednom fyzickom počítači spravovať niekoľko nezávislých inštancií jadra bez hypervízora a virtualizácie, predstavili nástroj kmorph, ktorý realizuje prostriedky na rýchle obnovenie po havárii jadra Linuxu alebo na výmenu jadra v režime Live bez úplného reštartovania. Projekt vedie Cong Wang, ktorý spravuje subsystém riadenia prevádzky (TC, Traffic Control) v jadre. Metóda rýchlej reštartácie je založená na predbežnom načítaní rezervného jadra do pamäte, ktoré nahradí hlavné pracovné jadro v prípade poruchy alebo pri potrebe výmeny jadra za novú verziu.

Navrhnutý prístup umožňuje obísť sa bez úplného reštartu a takmer okamžite obnoviť činnosť, čím sa minimalizuje čas nečinnosti. V súčasnosti, v prípade havárie jadra, plný reštart veľkých serverov trvá niekoľko minút kvôli dlhým procesom inicializácie hardvéru, načítania systémového prostredia a uloženia dumpu pamäte jadra prostredníctvom mechanizmu kdump. V podstate pri použití kdump prebiehajú dve reštarty jadra — najprv sa prostredníctvom kexec načíta samostatná inštancia jadra na uloženie dumpu pamäte, po čom sa načíta pracovné jadro a spustia sa systémové služby.

Pri aplikácii kmorph v spojení so samostatným jadrom CPU sa do pamäte vopred načíta rezervné jadro Linuxu a minimálne systémové prostredie, ktoré sleduje stav hlavného jadra. V prípade zamrznutia alebo prechodu do stavu panic hlavného jadra, rezervné prostredie preberá kontrolu, uloží dump pamäte zlyhaného jadra, prepne na seba procesorové jadrá, pamäť, zariadenia, sieťovú konfiguráciu a FS.

Prepínanie sa koordinuje prostredníctvom dvoch programov: kmorph — spúšťa sa v aktívnom prostredí, vytvára obsah záložného prostredia a synchronizuje v ňom stav siete; kmorphd — spúšťa sa v záložnom prostredí a sleduje stav aktívneho prostredia. Okrem prepínania v prípade havárie je k dispozícii možnosť používania kmorph na aktualizáciu jadra bez tradičného reštartovania. Na urýchlenie obnovenia v záložnom prostredí môžu byť okrem jadra a minimálneho súboru systémových komponentov v režime čakania spúšťané štandardné služby, ako napríklad nginx. V tomto prípade bude v momente aktivácie záložného prostredia služba nginx už načítaná do pamäte a okamžite začne spracovávať požiadavky po prepnutí do nového prostredia sieťovej karty, aktivácii sieťovej konfigurácie a zmene koreňového FS.

V vykonaných testoch server s nginx pomocou kmorph obnovuje prácu približne po 2 sekundy po zlyhaní jadra, ale v budúcnosti sa plánuje dosiahnuť okamžité prepínanie nepozorovane pre pripojených klientov. V súčasnosti kmorph podporuje architektúry x86_64 a ARM64, a taktiež sa pracuje na podpore RISC-V. Integrácia kmorph do distribúcií Linux sa realizuje podobne ako podpora kdump, prostredníctvom štandardných nástrojov dracut, initramfs-tools, kernel-install a služby systemd.

Jadro už obsahuje mechanizmy Kexec HandOver (KHO) a Live Update Orchestrator (LUO), ktoré umožňujú spúšťať nové jadro zo starého bez straty stavu systému a bez zastavenia práce zariadení. Ale nemôžu sa používať v prípade zlyhania v jadre, pretože vyžadujú na zachovanie stavu bežiaceho jadra. KHO a LUO tiež zaostávajú za kmorph z hľadiska rýchlosti prepínania, pretože v kmorph už je nové jadro v pamäti, zatiaľ čo KHO a LUO vyžadujú reštartovanie jadra cez kexec.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster