Lani smo na blogu razpravljali o predlogu ByteDancea (ustvarjalca TikToka) za pripomoček z imenom Parker (PARTITIONED KERnel), eksperimentalno tehnologijo , ki omogoča hkratno delovanje več jeder Linuxa. In zdaj, nekaj več kot leto in pol pozneje, je izšel nov javni pripomoček iz projekta, "Multikernel Linux (mklinux-v7.0-mk2)".
Ta razvojna rešitev uvaja specializirano različico jedra Linuxa, ki omogoča hkratno izvajanje več neodvisnih primerkov jedra znotraj enega samega fizičnega strežnika. Z neposrednim delovanjem na golem strežniku ta tehnologija popolnoma odpravlja potrebo po hipervizorjih ali virtualizacijskih plasteh, saj vsaki instanci omogoča neposreden dostop do dodeljenega pomnilnika, procesorja in naprav.
Projekt , ki temelji na nedavno izdanem jedru Linuxa 7.0, omogoča omogočanje te funkcije prek konfiguracijskega parametra CONFIG_MULTIKERNEL . Če je ta možnost onemogočena, je nastalo jedro popolnoma enako in se obnaša kot standardni Linux 7.0. Trenutno ta prva različica (v7.0-mk2) podpira izključno arhitekture x86_64 in je zasnovana tako, da premosti vrzel v zmogljivosti in varnosti med tradicionalno virtualizacijo in izolacijo vsebnikov.
Izolacija brez kazni za uspešnost
Največja težava virtualizacije je "davek" na zmogljivost, ki ga zaračunavajo hipervizorji. Nasprotno pa večjedrni Linux odpravlja prehode ob izhodu virtualnih strojev , prevajanje pomnilnika druge ravni in režijske stroške, ki jih ustvarjajo modeli naprav.
Glede na podatke o zmogljivosti, objavljene po testiranju na procesorjih Xeon Gold 5418Y (Sapphire Rapids), večjedrni sistem kaže dramatično povečanje hitrosti izvajanja v primerjavi z gosti KVM. Na primer, preklapljanje konteksta med procesi je 2,5-krat hitrejše, latenca cevovoda se zmanjša za več kot polovico (2,18-krat), osnovni sistemski klici, kot sta branje in pisanje, pa dobijo več kot 25 % odzivnega časa.
V primerjavi s tradicionalnimi Dockerjevimi vsebniki ponuja Multikernel vrhunsko zaščito , saj si vsebniki delijo isto jedro gostitelja, zato ranljivost na ravni jedra, panika ali notranja zasičenost z zaklepanjem vplivajo na vse najemnike. V ekosistemu Multikernel ima vsako okolje svoje neodvisno jedro ; to pomeni, da če en primerek doživi kritično napako, drugi še naprej delujejo nespremenjeni, kar zagotavlja izolirano okolje, idealno za izvajanje vsega, od spletnih strežnikov do intenzivnih delovnih obremenitev usposabljanja umetne inteligence (strojno učenje) na isti strojni opremi.
Dinamično dodeljevanje in orkestracija s Kerfom
Večjedrni Linux deluje z gostiteljskim jedrom , ki upravlja velik nabor virov (CPE, RAM in PCI naprave). Jedro z uporabo obstoječe drevesne strukture naprav (dostopne na /sys/fs/multikernel/) izreže ta nabor in zažene "podjedra" prek izvornega podsistema kexec_file_load(). Z zmožnostmi vžigalnika Linuxa je mogoče te vire dinamično premikati med instancami brez ponovnega zagona strežnika, kar zagotavlja predvidljivo in v realnem času prilagodljivo delovanje.
Za orkestracijo tega ekosistema so razvijalci uvedli orodje ukazne vrstice Kerf . To orodje upravlja celoten življenjski cikel primerkov, pri čemer se zanaša na dopolnilne module odprte kode. Eden od teh je Lazy CMA, ki dodeli sosednji fizični pomnilnik med izvajanjem, ne da bi zahteval kakršno koli konfiguracijo pred zagonom.
Drugi steber je DAXFS, modul, ki omogoča instancam skupno rabo datotečnih sistemov neposredno v pomnilniku; zahvaljujoč temu lahko Kerf zažene podrejeno jedro neposredno znotraj slike vsebnika Docker, pri čemer izkorišča njegov datotečni sistem brez potrebe po emulacijskih plasteh in uporablja deskriptorje v pomnilniku za omrežno povezavo brez kopiranja podatkov.
Omeniti velja, da je ta prva izdaja prestala intenzivne teste stabilnosti v arhitekturah ostranja s 5 ravnmi in aktivnim KASLR, kar dokazuje, da je obnovitev virov popolnoma varna tudi v primeru sesutja podrejenega jedra.
Z omogočanjem razdelitve delovnih obremenitev, ki so se zaradi sistemskih zaklepov (kot je veliko število procesov za odvezovanje ali preimenovanje v istem predpomnilniku) zadrževale med ločena jedra, usklajena s fizičnimi vtičnicami procesorja, Multikernel Linux dokazuje sposobnost skaliranja preko ovire zmogljivosti, ki jo nalaga eno samo monolitno jedro, in odpira novo dobo v konsolidaciji strežnikov in visokozmogljivem računalništvu v oblaku.
Nenazadnje, če vas zanima več informacij, lahko podrobnosti najdete na naslednji povezavi.