Vitin e kaluar diskutuam këtu në blog një propozim nga ByteDance (krijuesi i TikTok) për një program të quajtur Parker (PARTitioned KERnel), një teknologji eksperimentale që lejon që shumë bërthama Linux të funksionojnë njëkohësisht. Dhe tani, pak më shumë se një vit e gjysmë më vonë, është publikuar një program i ri publik nga projekti, "Multikernel Linux (mklinux-v7.0-mk2)".
Ky zhvillim prezanton një variant të specializuar të kernelit Linux që mundëson ekzekutimin e njëkohshëm të shumë instancave të pavarura të kernelit brenda një serveri të vetëm fizik. Duke vepruar drejtpërdrejt në thelb, kjo teknologji eliminon plotësisht nevojën për hipervizorë ose shtresa virtualizimi, duke i dhënë secilës instancë qasje të drejtpërdrejtë në memorien, CPU-në dhe pajisjet e alokuara.
Bazuar në kernelin Linux 7.0 të publikuar së fundmi, projekti lejon aktivizimin e kësaj veçorie nëpërmjet parametrit të konfigurimit CONFIG_MULTIKERNEL . Nëse ky opsion çaktivizohet, kerneli që rezulton është saktësisht i njëjtë dhe sillet si Linux 7.0 standard. Aktualisht, ky version i parë (v7.0-mk2) mbështet ekskluzivisht arkitekturat x86_64 dhe është projektuar për të kapërcyer hendekun e performancës dhe sigurisë midis virtualizimit tradicional dhe izolimit të kontejnerëve.
Izolim pa penalizim të performancës
Problemi më i madh me virtualizimin është "taksa" e performancës që ngarkohet nga hipervizorët. Në të kundërt, Linux me shumë bërthama eliminon tranzicionet e daljes nga makina virtuale , përkthimin e memories së nivelit të dytë dhe kostot e përgjithshme të gjeneruara nga modelet e pajisjeve.
Sipas të dhënave të performancës të publikuara pas testimit në procesorët Xeon Gold 5418Y (Sapphire Rapids), sistemi me shumë bërthama tregon një rritje dramatike të shpejtësisë së ekzekutimit krahasuar me procesorët mysafirë KVM. Për shembull, ndërrimi i kontekstit midis proceseve është 2,5 herë më i shpejtë, vonesa e tubacionit zvogëlohet me më shumë se gjysmën (2,18x) dhe thirrjet e sistemit bazë, siç janë operacionet e leximit dhe shkrimit, fitojnë më shumë se 25% në kohën e përgjigjes.
Krahasuar me kontejnerët tradicionalë Docker, Multikernel ofron mbrojtje superiore sepse, meqenëse kontejnerët ndajnë të njëjtin kernel pritës, një cenueshmëri në nivel kerneli, panik ose ngopje e bllokimit të brendshëm prek të gjithë qiramarrësit. Në ekosistemin Multikernel, çdo mjedis ka kernelin e vet të pavarur ; domethënë, nëse një instancë pëson një dështim kritik, të tjerët vazhdojnë të funksionojnë të paprekur, duke garantuar një mjedis të izoluar ideal për të drejtuar gjithçka, nga serverët web deri te ngarkesat intensive të trajnimit të IA-së (mësimi automatik) në të njëjtin harduer.
Caktimi Dinamik dhe Orkestrimi me Kerf
Linux me shumë bërthama funksionon duke përdorur një bërthamë pritëse që menaxhon një grup të madh burimesh (CPU, RAM dhe pajisje PCI). Duke përdorur strukturën ekzistuese të pemës së pajisjeve (e aksesueshme në /sys/fs/multikernel/), bërthama e ndau këtë grup dhe nisi "bërthama fëmijësh" nëpërmjet nënsistemit nativ kexec_file_load(). Përmes aftësive të hotplug të Linux-it, këto burime mund të zhvendosen dinamikisht midis instancave pa kërkuar një rinisje të serverit, duke siguruar performancë të parashikueshme dhe të rregullueshme në kohë reale.
Për të orkestruar këtë ekosistem, zhvilluesit kanë prezantuar mjetin e linjës së komandës Kerf . Ky program menaxhon të gjithë ciklin jetësor të instancave, duke u mbështetur në module plotësuese me burim të hapur. Një nga këto është Lazy CMA, i cili ndan memorie fizike të vazhdueshme gjatë kohës së ekzekutimit pa kërkuar ndonjë konfigurim para nisjes.
Shtylla tjetër është DAXFS, një modul që lejon instancat të ndajnë sistemet e skedarëve direkt në memorie; falë kësaj, Kerf mund të ngarkojë një kernel fëmijë direkt brenda një imazhi kontejneri Docker, duke përfituar nga sistemi i tij i skedarëve pa pasur nevojë për shtresa emulimi dhe duke përdorur përshkrues në memorie për ndërlidhje në rrjet pa kopjim të të dhënave.
Vlen të përmendet se ky version i parë ka kaluar teste intensive stabiliteti nën arkitekturat e faqezimit me 5 nivele dhe KASLR aktiv, duke demonstruar se rikuperimi i burimeve është plotësisht i sigurt edhe kur një bërthamë fëmijë rrëzohet.
Duke lejuar që ngarkesat e punës që përplaseshin për shkak të bllokimeve të sistemit (siç është një numër i madh procesesh të shkëputura ose riemëruara në të njëjtën memorie të përkohshme) të ndahen nëpër bërthama të veçanta të rreshtuara me soketat fizike të procesorit, Multikernel Linux demonstron aftësinë për të shkallëzuar përtej barrierës së performancës së imponuar nga një bërthamë e vetme monolitike, duke hapur një epokë të re në konsolidimin e serverëve dhe cloud computing me performancë të lartë.
Së fundmi, nëse jeni të interesuar të mësoni më shumë, mund t'i gjeni detajet në lidhjen e mëposhtme.