Multikernel, et fremragende værktøj til at køre flere kerner uden virtualisering

Centrale punkter:
  • Multikernel Linux tillader kørsel af uafhængige kerner samtidigt på bare metal.
  • Baseret på Linux 7.0-kernen bruger den CONFIG_MULTIKERNEL og understøtter i øjeblikket x86_64-arkitekturen.
  • Det eliminerer overheadomkostningerne ved virtualisering (KVM-hypervisorer) og opnår kontekstskift 2,5 gange hurtigere.
  • I modsætning til containere deler instanser ikke kernen, hvilket forhindrer fejl eller sårbarheder i at påvirke hele serveren.
  • Brug Kerf-værktøjet sammen med Lazy CMA- og DAXFS-modulerne til dynamisk at administrere ressourcer og starte Docker-billeder.

Multikernel Linux

Sidste år diskuterede vi her på bloggen et forslag fra ByteDance (skaberen af ​​TikTok) til et værktøj kaldet Parker (PARTitioned KERnel), en eksperimentel teknologi , der tillader flere Linux-kerner at køre samtidigt. Og nu, lidt over halvandet år senere, er et nyt offentligt værktøj fra projektet, "Multikernel Linux (mklinux-v7.0-mk2)," blevet udgivet.

Denne udvikling introducerer en specialiseret variant af Linux-kernen, der muliggør samtidig udførelse af flere uafhængige kerneinstanser inden for en enkelt fysisk server. Ved at operere direkte på bare metal eliminerer denne teknologi fuldstændigt behovet for hypervisorer eller virtualiseringslag, hvilket giver hver instans direkte adgang til allokeret hukommelse, CPU og enheder.

ByteDance-Parker-multikernel
relateret artikel:
Parker: Den nye teknologi, der tillader at køre flere Linux-kerner uden virtualisering

Baseret på den nyligt udgivne Linux 7.0-kerne tillader projektet aktivering af denne funktion via konfigurationsparameteren CONFIG_MULTIKERNEL . Hvis denne indstilling er deaktiveret, er den resulterende kerne nøjagtig den samme og opfører sig som standard Linux 7.0. I øjeblikket understøtter denne første version (v7.0-mk2) udelukkende x86_64-arkitekturer og er designet til at bygge bro over ydeevne- og sikkerhedskløften mellem traditionel virtualisering og containerisolering.

Isolation uden præstationsstraf

Det største problem med virtualisering er den ydelses"skat", som hypervisorer opkræver. I modsætning hertil eliminerer Multikernel Linux overgange fra virtuelle maskiner , oversættelse af hukommelse på andet niveau og den overhead, der genereres af enhedsmodeller.

Ifølge ydelsesdata offentliggjort efter test på Xeon Gold 5418Y-processorer (Sapphire Rapids) viser multikernel-systemet en dramatisk stigning i udførelseshastighed sammenlignet med KVM-gæster. For eksempel er kontekstskift mellem processer 2,5 gange hurtigere, pipe-latensen reduceres med mere end halvdelen (2,18x), og basissystemkald, såsom læse- og skriveoperationer, får mere end 25% bedre responstid.

Sammenlignet med traditionelle Docker-containere tilbyder Multikernel overlegen beskyttelse , fordi containerne deler den samme værtkerne, hvilket påvirker alle lejere, hvis de er sårbare over for kerneniveau, panik eller intern låsemætning. I Multikernel-økosystemet har hvert miljø sin egen uafhængige kerne ; det vil sige, at hvis én instans oplever en kritisk fejl, fortsætter de andre med at køre upåvirket, hvilket garanterer et isoleret miljø, der er ideelt til at køre alt fra webservere til intensive AI-træningsbelastninger (maskinlæring) på den samme hardware.

Dynamisk tildeling og orkestrering med Kerf

Multikernel Linux fungerer ved hjælp af en værtkerne , der administrerer en stor pulje af ressourcer (CPU'er, RAM og PCI-enheder). Ved at udnytte den eksisterende enhedstræstruktur (tilgængelig på /sys/fs/multikernel/) opdeler kernen denne pulje og starter "underkerner" via det native kexec_file_load()-undersystem. Gennem Linux' hotplug-funktioner kan disse ressourcer dynamisk flyttes mellem instanser uden at kræve en genstart af serveren, hvilket sikrer forudsigelig og justerbar ydeevne i realtid.

For at orkestrere dette økosystem har udviklerne introduceret kommandolinjeværktøjet Kerf . Dette værktøj administrerer hele livscyklussen for instanser ved hjælp af supplerende open source-moduler. Et af disse er Lazy CMA, som allokerer sammenhængende fysisk hukommelse under kørsel uden at kræve nogen konfiguration før opstart.

Den anden søjle er DAXFS, et modul der tillader instanser at dele filsystemer direkte i hukommelsen. Takket være dette kan Kerf starte en underkerne direkte inde i et Docker-containerbillede, udnytte dens filsystem uden behov for emuleringslag og bruge in-memory-beskrivelser til netværksforbindelse uden datakopiering.

Det er værd at nævne, at denne første udgivelse har bestået intensive stabilitetstests under 5-niveau paging-arkitekturer og aktiv KASLR, hvilket viser, at ressourcegendannelse er fuldstændig sikker, selv når en underordnet kerne går ned.

Ved at tillade arbejdsbelastninger, der kolliderede på grund af systemlåse (såsom et stort antal afkoblings- eller omdøbningsprocesser på den samme cache), at blive opdelt på tværs af separate kerner, der er justeret med de fysiske processorsockets, demonstrerer Multikernel Linux evnen til at skalere ud over den ydeevnebarriere, der pålægges af en enkelt monolitisk kerne, og åbner dermed en ny æra inden for serverkonsolidering og højtydende cloud computing.

Endelig, hvis du er interesseret i at lære mere, kan du finde detaljerne på følgende link.


Tilføj som foretrukken kilde i Google