Predstavljen kmorph za brzo obnavljanje nakon kvara ili ažuriranja Linux jezgre

Programeri projekta Multikernel, koji omogućava izvođenje nekoliko neovisnih kopija jezgre na jednom fizičkom računalu bez hipervizora i virtualizacije, predstavili su alat kmorph, koji pruža sredstva za brzo obnavljanje nakon iznenadnog zaustavljanja Linux jezgre ili za zamjenu jezgre u Live-režimu bez potpunog ponovnog pokretanja. Projekt razvija Cong Wang, koji održava sustav upravljanja prometom (TC, Traffic Control) unutar jezgre. Metoda brzog ponovnog pokretanja temelji se na prethodnom učitavanju zamjenske jezgre u memoriju, koja zamjenjuje glavnu radnu jezgru u slučaju kvara ili kada je potrebno zamijeniti jezgru novom verzijom.

Predloženi pristup omogućava izbjegavanje potpunog ponovnog pokretanja i gotovo trenutno obnavlja rad, smanjujući vrijeme zastoja na minimum. Trenutno, u slučaju iznenadnog zaustavljanja rada jezgre, potrebno je potpuno ponovo pokretanje velikih poslužitelja potriva nekoliko minuta zbog dugotrajnih procesa inicijalizacije opreme, učitavanja sistemskog okruženja i spremanja memorijske slike jezgre putem mehanizma kdump. U suštini, korištenjem kdump-a izvode se dva ponovna pokretanja jezgre — prvo se putem kexec-a učitava zasebna kopija jezgre za spremanje memorijske slike, nakon čega slijedi učitavanje radne jezgre i pokretanje sistemskih servisa.

U slučaju korištenja kmorph u vezi s određenom jezgrom CPU-a, unaprijed se učitava zamjenska Linux jezgra i minimalno sistemsko okruženje koje prati stanje glavne jezgre. U slučaju zastoja ili povratka u stanje panike glavne jezgre, zamjensko okruženje preuzima kontrolu, sprema memorijsku sliku neispravne jezgre, prebacuje na sebe procesorske jezgre, memoriju, uređaje, mrežnu konfiguraciju i FS.

Prebacivanje se koordinira pomoću dva programa: kmorph — pokreće se u aktivnom okruženju, formira sadržaj rezervnog okruženja i sinkronizira stanje mreže u njemu; kmorphd — pokreće se u rezervnom okruženju i prati stanje aktivnog okruženja. Osim prebacivanja u slučaju kvara, omogućuje se korištenje kmorpha za ažuriranje jezgre bez tradicionalnog restartanja. Za ubrzavanje oporavka u rezervnom okruženju, osim jezgre i minimalnog skupa sistemskih komponenti, mogu se pokretati tipične usluge, poput nginx-a, dok su u stanju čekanja. U tom slučaju, u trenutku aktivacije rezervnog okruženja, usluga nginx već će biti učitana u memoriju i odmah će početi obrađivati zahtjeve nakon prebacivanja u novo okruženje mrežne kartice, aktivacije mrežne konfiguracije i promjene korijenskog FS-a.

U provedenim testovima server s nginx-om pomoću kmorpha obnavlja rad otprilike dvije sekunde nakon kvara jezgre, ali u budućnosti se planira postići trenutačno prebacivanje neprimjetno za povezane klijente. Trenutno kmorph podržava arhitekture x86_64 i ARM64, a također se radi na podršci za RISC-V. Integracija kmorpha u distribucije Linuxa provodi se po analogiji s podrškom za kdump, putem standardnih alata dracut, initramfs-tools, kernel-install i usluge systemd.

U sastavu jezgre već postoje mehanizmi Kexec HandOver (KHO) i Live Update Orchestrator (LUO), koji omogućuju pokretanje nove jezgre iz stare bez gubitka stanja sustava i bez zaustavljanja rada uređaja. Međutim, ne mogu se primijeniti u slučaju kvara u jezgri, jer zahtijevaju očuvanje stanja aktivne jezgre. KHO i LUO također su sporiji od kmorpha u brzini prebacivanja zbog toga što se u kmorphu nova jezgra već nalazi u memoriji, dok KHO i LUO zahtijevaju ponovo pokretanje jezgre putem kexec-a.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster