I-Multikernel, ithuluzi elihle kakhulu lokusebenzisa ama-kernel amaningi ngaphandle kokusebenzisa i-virtualization

Amaphuzu abalulekile:
  • I-Multikernel Linux ivumela ukusebenzisa ama-kernel azimele ngesikhathi esisodwa ku-bare metal.
  • Ngokusekelwe ku-kernel ye-Linux 7.0, isebenzisa i-CONFIG_MULTIKERNEL futhi okwamanje isekela ukwakheka kwe-x86_64.
  • Iqeda izindleko ze-virtualization (ama-hypervisors e-KVM), ifinyelela ukushintsha komongo ngokushesha izikhathi ezingu-2,5.
  • Ngokungafani neziqukathi, izimo azihlanganyeli nge-kernel, okuvimbela ukwehluleka noma ubuthakathaka ukuthi bungathinti yonke iseva.
  • Sebenzisa ithuluzi le-Kerf kanye namamojula e-Lazy CMA kanye ne-DAXFS ukuze uphathe izinsiza ngendlela enamandla futhi uqalise izithombe ze-Docker.

I-Linux ye-Multikernel

Ngonyaka odlule sixoxe lapha kubhulogi ngesiphakamiso esivela ku -ByteDance (umdali we-TikTok) sensizakalo ebizwa ngokuthi i-Parker (PARTitioned KERnel), ubuchwepheshe bokuhlola obuvumela ama-kernel amaningi e-Linux ukuthi asebenze ngasikhathi sinye. Futhi manje, ngemuva konyaka nesigamu, insizakalo entsha yomphakathi evela kuphrojekthi, i-"Multikernel Linux (mklinux-v7.0-mk2)," ikhishwe.

Lokhu kuthuthukiswa kwethula uhlobo olukhethekile lwe-kernel ye-Linux oluvumela ukwenziwa ngasikhathi sinye kwezimo eziningi ze-kernel ezizimele ngaphakathi kweseva eyodwa ebonakalayo. Ngokusebenza ngqo ku-bare metal, lobu buchwepheshe buqeda ngokuphelele isidingo sama-hypervisor noma izendlalelo ze-virtualization, okunikeza i-instance ngayinye ukufinyelela okuqondile kwimemori eyabelwe, i-CPU, namadivayisi.

I-ByteDance-Parker-multikernel
I-athikili ehlobene:
I-Parker: Ubuchwepheshe obusha obuvumela ukusebenzisa izinhlamvu eziningi ze-Linux ngaphandle kokwenza izinto ezibonakalayo

Ngokusekelwe ku-kernel ye-Linux 7.0 esanda kukhishwa, iphrojekthi ivumela ukuvumela lesi sici ngepharamitha yokucushwa ye-CONFIG_MULTIKERNEL . Uma le nketho ikhutshaziwe, i-kernel ephumayo iyafana ncamashi futhi isebenza njenge-Linux 7.0 ejwayelekile. Njengamanje, le nguqulo yokuqala (v7.0-mk2) isekela kuphela ukwakheka kwe-x86_64 futhi yenzelwe ukuvala igebe lokusebenza kanye nokuphepha phakathi kokwenziwa kwe-virtualization yendabuko kanye nokuhlukaniswa kwesitsha.

Ukuhlukaniswa ngaphandle kwesijeziso sokusebenza

Inkinga enkulu nge-virtualization "intela" yokusebenza ekhokhiswa ama-hypervisor. Ngokuphambene nalokho, i-Multikernel Linux isusa ukuguqulwa kokuphuma komshini okubonakalayo , ukuhumusha kwememori yezinga lesibili, kanye nemali ekhokhwayo ekhiqizwa amamodeli edivayisi.

Ngokusho kwedatha yokusebenza eshicilelwe ngemuva kokuhlolwa kumaprosesa e-Xeon Gold 5418Y (Sapphire Rapids), uhlelo lwe-multikernel lubonisa ukwanda okukhulu kwesivinini sokusebenza uma kuqhathaniswa nezivakashi ze-KVM. Isibonelo, ukushintsha komongo phakathi kwezinqubo kushesha ngokuphindwe izikhathi ezingu-2,5, ukubambezeleka kwepayipi kuncishiswa ngaphezu kwengxenye (2,18x), kanye nezingcingo zesistimu eyisisekelo, njengokusebenza kokufunda nokubhala, zithola okungaphezu kuka-25% ngesikhathi sokuphendula.

Uma kuqhathaniswa neziqukathi ze-Docker zendabuko, i-Multikernel inikeza isivikelo esingcono ngoba, njengoba iziqukathi zine-kernel efanayo yokusingatha, ubuthakathaka bezinga le-kernel, ukwethuka, noma ukugcwala kwangaphakathi kokukhiya kuthinta bonke abaqashi. Kuhlelo lwe-Multikernel, indawo ngayinye ine-kernel yayo ezimele ; okungukuthi, uma esinye isenzakalo sihluleka kakhulu, ezinye ziyaqhubeka nokusebenza zingathinteki, okuqinisekisa indawo ehlukanisiwe efanele ukusebenzisa konke kusukela kumaseva ewebhu kuya emisebenzini yokuqeqeshwa kwe-AI ejulile (ukufunda komshini) kuhadiwe efanayo.

Umsebenzi Oguquguqukayo kanye Nokuhlelwa Nokuhlela Nge-Kerf

I-Multikernel Linux isebenza kusetshenziswa i-kernel ephethe ichibi elikhulu lezinsiza (ama-CPU, ama - RAM, kanye namadivayisi e-PCI). Isebenzisa isakhiwo sesihlahla sedivayisi esikhona (esitholakala ku-/sys/fs/multikernel/), i-kernel iqopha leli chibi bese iqala "ama-kernel ezingane" ngesistimu encane ye-kexec_file_load() yomdabu. Ngamakhono e-hotplug e-Linux, lezi zinsiza zingahanjiswa ngokuguquguqukayo phakathi kwezimo ngaphandle kokudinga ukuqala kabusha kweseva, okuqinisekisa ukusebenza okulungisekayo nokubikezelwa kwesikhathi sangempela.

Ukuze bahlele le nqubo, abathuthukisi bethule ithuluzi lomugqa womyalo we-Kerf . Le nsizakalo iphatha yonke imijikelezo yokuphila yezimo, ithembele kumamojula ahambisanayo omthombo ovulekile. Enye yalezi yi-Lazy CMA, enikeza imemori ebonakalayo ehambisanayo ngesikhathi sokusebenza ngaphandle kokudinga ukucushwa kwangaphambi kokuqalisa.

Enye insika yi-DAXFS, imodyuli evumela ama-instance ukuthi abelane ngezinhlelo zamafayela ngqo kwimemori; ngenxa yalokhu, i-Kerf ingakwazi ukuqala i-kernel yengane ngqo ngaphakathi kwesithombe sesitsha se-Docker, isebenzisa uhlelo lwayo lwamafayela ngaphandle kwesidingo sezingqimba zokulingisa futhi isebenzise izincazelo zememori ukuze kuxhunywe inethiwekhi ngaphandle kokukopisha idatha.

Kuhle ukusho ukuthi lokhu kukhishwa kokuqala kudlule ukuhlolwa okuqinile kokuzinza ngaphansi kokwakhiwa kwe-paging okunezinga eli-5 kanye ne-KASLR esebenzayo, okubonisa ukuthi ukubuyiselwa kwezinsiza kuphephile ngokuphelele ngisho noma i-kernel yengane iphahlazeka.

Ngokuvumela imithwalo yemisebenzi eshayisane ngenxa yokukhiya kwesistimu (njengenani elikhulu lezinqubo zokususa ukuxhumanisa noma ukuqamba kabusha ku-cache efanayo) ukuthi ihlukaniswe kuma-kernel ahlukene ahambisana nama-socket e-processor angokoqobo, i-Multikernel Linux ibonisa ikhono lokukhuphuka ngale kwesithiyo sokusebenza esibekwe yi-kernel eyodwa ye-monolithic, ivula inkathi entsha ekuhlanganisweni kweseva kanye nokubalwa kwamafu okusebenza okuphezulu.

Okokugcina, uma unesithakazelo sokufunda okwengeziwe, ungathola imininingwane kusixhumanisi esilandelayo.


Engeza njengomthombo okhethwayo ku-Google