Multikernel projekta izstrÄdÄtÄji, kas ļauj vienÄ fiziskajÄ datorÄ darbinÄt vairÄkus neatkarÄ«gus kodola instancus bez hipervizora un virtualizÄcijas, ir piedÄvÄjuÅ”i kmorph rÄ«ku, kas nodroÅ”ina lÄ«dzekļus Ätrai atjaunoÅ”anai pÄc Linux kodola avÄrijas apstÄÅ”anÄs vai kodola nomaiÅai Live-režīmÄ bez pilnas restartÄÅ”anas. Projekta attÄ«stīŔana notiek Konga Vanga (Cong Wang) vadÄ«bÄ, kurÅ” uztur satiksmes vadÄ«bas (TC, Traffic Control) apakÅ”sistÄmu kodolÄ. Ätras restartÄÅ”anas metode balstÄs uz rezerves kodola iepriekÅ”Äju ielÄdÄÅ”anu atmiÅÄ, kas aizvieto galveno darba kodolu avÄrijas gadÄ«jumÄ vai nepiecieÅ”amÄ«bas gadÄ«jumÄ pÄrejai uz jauno versiju.
Ieteiktais pieejas veids ļauj iztikt bez pilnas restartÄÅ”anas un gandrÄ«z nekavÄjoties atsÄkt darbu, samazinot dÄ«kstÄves laiku lÄ«dz minimumam. Å obrÄ«d, ja kodols avÄrijÄ apstÄjas, liela mÄroga pilna restartÄÅ”ana serveriem aizÅem vairÄkas minÅ«tes dÄļ ilgstoÅ”Äm aparatÅ«ras inicializÄÅ”anas, sistÄmas vides ielÄdes un kodola atmiÅas izgÄÅ”anÄs saglabÄÅ”anas procesiem, izmantojot kdump mehÄnismu. PatiesÄ«bÄ, izmantojot kdump, tiek veiktas divas kodola restartÄÅ”anas - vispirms caur kexec tiek ielÄdÄts atseviŔķs kodola instants datu izguvei, pÄc tam tiek ielÄdÄts darba kodols un uzsÄkti sistÄmas pakalpojumi.
Ja tiek izmantots kmorph attiecÄ«bÄ uz atseviŔķu CPU kodolu, atmiÅÄ iepriekÅ” tiek ielÄdÄts rezerves Linux kodols un minimÄla sistÄmas vide, kas uzrauga galvenÄ kodola stÄvokli. Ja galvenais kodols iesprÅ«st vai nonÄk panikas stÄvoklÄ«, rezerves vide pÄrÅem kontroli, saglabÄ bojÄtÄ kodola atmiÅas notikumu un pÄrslÄdz uz sevi procesoru kodolus, atmiÅu, ierÄ«ces, tÄ«kla konfigurÄciju un FSh.
PÄrslÄgÅ”anu koordinÄ divas programmas: kmorph ā tiek palaista aktÄ«vÄ vidÄ, veido rezerves vides saturu un sinhronizÄ tajÄ tÄ«kla stÄvokli; kmorphd ā tiek palaista rezerves vidÄ un seko aktÄ«vÄs vides stÄvoklim. Papildus pÄrslÄgÅ”anai avÄrijas gadÄ«jumÄ, ir iespÄja izmantot kmorph, lai atjauninÄtu kodolu bez tradicionÄlÄs restartÄÅ”anas. Lai paÄtrinÄtu atjaunoÅ”anos rezerves vidÄ, papildus kodolam un minimÄlajam sistÄmas komponentu komplektam, gaidīŔanas režīmÄ var tikt palaisti tipveida pakalpojumi, piemÄram, nginx. Å ajÄ gadÄ«jumÄ brÄ«dÄ«, kad tiek aktivizÄta rezerves vide, nginx pakalpojums jau bÅ«s ielÄdÄts atmiÅÄ un nekavÄjoties sÄks apstrÄdÄt pieprasÄ«jumus pÄc pÄrslÄgÅ”anÄs uz jauno tÄ«kla kartes vidi, tÄ«kla konfigurÄcijas aktivizÄÅ”anas un saknes FSl maiÅas.
Veiktajos testos serveris ar nginx, izmantojot kmorph, atsÄk darbu aptuveni divu sekunžu laikÄ pÄc kodola kļūmes, taÄu nÄkotnÄ plÄnots panÄkt tÅ«lÄ«tÄju pÄrslÄgÅ”anos, kas bÅ«tu nemanÄma savienotajiem klientiem. PaÅ”laik kmorph atbalsta x86_64 un ARM64 arhitektÅ«ras, un tiek strÄdÄts pie RISC-V atbalsta. Kmorph integrÄcija Linux izplatÄ«jumos tiek veikta analogi kdump atbalstam, izmantojot standarta rÄ«kus dracut, initramfs-tools, kernel-install un systemd pakalpojumu.
KodolÄ jau ir iekļauti mehÄnismi Kexec HandOver (KHO) un Live Update Orchestrator (LUO), kas ļauj palaist jaunu kodolu no vecÄ bez sistÄmas stÄvokļa zuduma un bez ierÄ«Äu darbÄ«bas apturÄÅ”anas. TaÄu tie nevar tikt izmantoti kodola kļūmes gadÄ«jumÄ, jo prasa, lai bÅ«tu saglabÄts strÄdÄjoÅ”a kodola stÄvoklis. KHO un LUO arÄ« atpaliek no kmorph Ätruma ziÅÄ, jo kmorph jaunais kodols jau ir atmiÅÄ, bet KHO un LUO prasa kodola restartÄÅ”anu, izmantojot kexec.
Avots: opennet.lv
