Multikernel, una excel·lent utilitat per executar nuclis múltiples sense virtualització

Punts clau:
  • Multikernel Linux permet executar nuclis independents simultanis sobre bar metall.
  • Basat en el nucli de Linux 7.0, utilitza CONFIG_MULTIKERNEL i actualment suporta arquitectura x86_64.
  • Elimina la sobrecàrrega de la virtualització (hipervisors KVM), aconseguint canvis de context 2,5 vegades més ràpids.
  • A diferència dels contenidors, les instàncies no comparteixen el nucli, evitant que fallades o vulnerabilitats afectin tot el servidor.
  • Utilitza l'eina Kerf juntament amb els mòduls Lazy CMA i DAXFS per gestionar recursos dinàmicament i bootejar imatges de Docker.

Multikernel Linux

L'any passat vam parlar aquí al bloc sobre una proposta que realitzava ByteDance (creadora de TikTok), sobre una utilitat anomenada Parker (PARtitioned KERnel), una tecnologia experimental que permet executar diversos kernels de Linux de manera simultània. I ara, poc més d'un any i mig després, es presenta una nova utilitat pública del projecte Multikernel Linux (mklinux-v7.0-mk2)».

Aquest desenvolupament presenta una variant especialitzada del nucli de Linux que introdueix una capacitat d' executar múltiples instàncies de nucli independents i simultànies dins d'un mateix servidor físic. En operar directament sobre el bar metall, aquesta tecnologia elimina completament la necessitat d'hipervisors o capes de virtualització, atorgant a cada instància accés directe a la memòria, la CPU i els dispositius assignats.

ByteDance-Parker-multikernel
Article relacionat:
Parker: la nova tecnologia que permet executar múltiples kernels de Linux sense virtualització

Basat en el kernel acabat de llançar de Linux 7.0, el projecte permet habilitar aquesta funció mitjançant el paràmetre de configuració CONFIG_MULTIKERNEL . Si aquesta opció es desactiva, el nucli resultant és exactament idèntic i es comporta com a Linux 7.0 estàndard. Actualment, aquesta primera versió (v7.0-mk2) compta amb suport exclusiu per a arquitectures x86_64 i està dissenyada per cobrir la bretxa de rendiment i seguretat que hi ha entre la virtualització tradicional i l'aïllament de contenidors.

Aïllament sense penalització de rendiment

El problema més gran de la virtualització és l'«impost» de rendiment que cobren els hipervisors. En contrast, Multikernel Linux elimina les transicions de sortida de les màquines virtuals (VM exit) , la traducció de memòria de segon nivell i la sobrecàrrega generada pels models de dispositius.

Segons les dades de rendiment publicades després de proves en processadors Xeon Gold 5418Y (Sapphire Rapids), el sistema multikernel demostra un augment dramàtic en la velocitat d'execució davant dels convidats KVM. Per exemple, el canvi de context entre processos és 2,5 vegades més ràpid, la latència de canonades (Pipes) es redueix a més de la meitat (2,18x), i les trucades al sistema base, com ara la lectura i l'escriptura, guanyen més d'un 25% de velocitat de resposta.

Davant dels contenidors Docker tradicionals, Multikernel ofereix un blindatge superior , atès que els contenidors comparteixen el mateix nucli de l'amfitrió, una vulnerabilitat a nivell de kernel, un bloqueig (panic) o una saturació de bloquejos interns afecta tots els llogaters. A l'ecosistema de Multikernel, cada entorn té el seu propi nucli independent , és a dir, si una instància pateix un col·lapse crític, les altres segueixen funcionant sense assabentar-se, garantint un entorn aïllat ideal per executar des de servidors web fins a càrregues intensives d'entrenament d'intel·ligència artificial (Machine Learning) al mateix maquinari.

Assignació Dinàmica i Orquestració amb Kerf

El funcionament de Multikernel Linux es basa en un nucli amfitrió que actua com a administrador d'un gran conjunt de recursos (CPU, memòria RAM i dispositius PCI). Utilitzant l'estructura existent de l'arbre de dispositius (accessible a /sys/fs/multikernel/), el nucli talla aquest conjunt i llança «nuclis fills» a través del subsistema nadiu kexec_file_load(). A través de les funcions de connexió en calent (hotplug) de Linux, aquests recursos poden moure's dinàmicament entre instàncies sense requerir un reinici del servidor, assegurant un rendiment predictible i ajustable en temps real.

Per orquestrar aquest ecosistema, els desenvolupadors han presentat l'eina de línia de comandes Kerf . Aquesta utilitat gestiona el cicle de vida complet de les instàncies, recolzant-se en mòduls complementaris de codi obert. Un és Lazy CMA, encarregat d'assignar memòria física contigua en temps d'execució sense necessitat de configuracions prèvies a l'arrencada.

L'altre pilar és DAXFS, un mòdul que permet a les instàncies compartir sistemes de fitxers directament en memòria; gràcies a això, Kerf pot arrencar un nucli fill directament dins una imatge de contenidor Docker, aprofitant el sistema de fitxers sense necessitat de capes d'emulació i utilitzant descriptors en memòria per a la interconnexió de xarxes sense còpia de dades.

Val a dir que aquest primer lliurament ha superat proves intensives d'estabilitat sota arquitectures de paginació de 5 nivells i KASLR actiu, demostrant que la recuperació de recursos és completament segura fins i tot quan un nucli fill col·lapsa.

En permetre que càrregues de treball que col·lisionaven pels bloquejos del sistema (com un gran nombre de processos unlink o rename sobre una mateixa memòria cau) es divideixen en nuclis separats alineats amb els sòcols del processador físic, Multikernel Linux demostra poder escalar més enllà de la barrera de rendiment que imposa un nucli monolític únic, obrint una nova de nou.

Finalment, si estàs interessat en poder conèixer més sobre això, pots consultar els detalls al següent enllaç.


Afegir com a font preferida a Google