Мултикернел, одличан алат за покретање више језгара без виртуелизације

Кључне тачке:
  • Вишејезгарни Линукс омогућава истовремено покретање независних језгара на голом металу.
  • Базиран на Линуксу 7.0 језгру, користи CONFIG_MULTIKERNEL и тренутно подржава x86_64 архитектуру.
  • Елиминише трошкове виртуелизације (KVM хипервизори), постижући 2,5 пута брже пребацивање контекста.
  • За разлику од контејнера, инстанце не деле језгро, што спречава да кварови или рањивости утичу на цео сервер.
  • Користите алатку Kerf заједно са модулима Lazy CMA и DAXFS за динамичко управљање ресурсима и покретање Docker слика.

Вишејезгарни Линукс

Прошле године смо овде на блогу разговарали о предлогу компаније ByteDance (творац TikTok-а) за услужни програм под називом Parker (PARTITIONED KERnel), експерименталну технологију која омогућава истовремено покретање више Linux језгара. А сада, нешто више од годину и по дана касније, објављен је нови јавни услужни програм из пројекта, „Multikernel Linux (mklinux-v7.0-mk2)“.

Овај развој представља специјализовану варијанту Линукс кернела која омогућава истовремено извршавање више независних инстанци кернела унутар једног физичког сервера. Радећи директно на голом металу, ова технологија потпуно елиминише потребу за хипервизорима или слојевима виртуелизације, дајући свакој инстанци директан приступ додељеној меморији, процесору и уређајима.

Бајтденс-Паркер-вишејезгарни
Повезани чланак:
Паркер: Нова технологија која омогућава покретање више Линукс језгара без виртуелизације

На основу недавно објављеног Linux 7.0 језгра, пројекат омогућава омогућавање ове функције путем конфигурационог параметра CONFIG_MULTIKERNEL . Ако је ова опција онемогућена, резултујуће језгро је потпуно исто и понаша се као стандардни Linux 7.0. Тренутно, ова прва верзија (v7.0-mk2) искључиво подржава x86_64 архитектуре и дизајнирана је да премости јаз у перформансама и безбедности између традиционалне виртуелизације и изолације контејнера.

Изолација без казне за учинак

Највећи проблем са виртуелизацијом је „порез“ на перформансе који наплаћују хипервизори. Насупрот томе, вишејезгарни Линукс елиминише прелазе излаза из виртуелне машине , превођење меморије другог нивоа и оптерећење које генеришу модели уређаја.

Према подацима о перформансама објављеним након тестирања на Xeon Gold 5418Y процесорима (Sapphire Rapids), вишејезгарни систем показује драматично повећање брзине извршавања у поређењу са KVM гостима. На пример, пребацивање контекста између процеса је 2,5 пута брже, латенција цеви је смањена за више од половине (2,18x), а основни системски позиви, као што су операције читања и писања, добијају више од 25% у времену одзива.

У поређењу са традиционалним Docker контејнерима, Multikernel нуди супериорну заштиту јер, пошто контејнери деле исто језгро хоста, рањивост на нивоу језгра, паника или засићење интерних закључавања утичу на све кориснике. У Multikernel екосистему, свако окружење има своје независно језгро ; то јест, ако једна инстанца претрпи критични квар, остале настављају да раде без утицаја, гарантујући изоловано окружење идеално за покретање свега, од веб сервера до интензивних радних оптерећења за обуку вештачке интелигенције (машинско учење) на истом хардверу.

Динамичко додељивање и оркестрација са Kerf-ом

Вишејезгарни Линукс ради користећи језгро хоста које управља великим скупом ресурса (процесори, РАМ и PCI уређаји). Користећи постојећу структуру стабла уређаја (доступну на /sys/fs/multikernel/), језгро дели овај скуп и покреће „подјезгра“ путем изворног подсистема kexec_file_load(). Захваљујући Линуксовим могућностима „hotplug“-а, ови ресурси се могу динамички премештати између инстанци без потребе за поновним покретањем сервера, осигуравајући предвидљиве и подесиве перформансе у реалном времену.

Да би оркестрирали овај екосистем, програмери су увели алатку командне линије Kerf . Овај услужни програм управља целим животним циклусом инстанци, ослањајући се на комплементарне модуле отвореног кода. Један од њих је Lazy CMA, који додељује континуирану физичку меморију током извршавања без потребе за било каквом конфигурацијом пре покретања.

Други стуб је DAXFS, модул који омогућава инстанцама да деле фајл системе директно у меморији; захваљујући томе, Kerf може да покрене подређено језгро директно унутар слике Docker контејнера, користећи предности његовог фајл система без потребе за слојевима емулације и користећи дескрипторе у меморији за мрежно повезивање без копирања података.

Вреди напоменути да је ово прво издање прошло интензивне тестове стабилности под архитектурама страничења на 5 нивоа и активним KASLR-ом, показујући да је опоравак ресурса потпуно безбедан чак и када се подређено језгро сруши.

Омогућавањем да се радна оптерећења која су се колирала због системских закључавања (као што је велики број процеса одвајања или преименовања на истом кешу) поделе на одвојена језгра усклађена са физичким процесорским сокетима, вишејезгарни Линукс демонстрира способност скалирања изван баријере перформанси коју намеће једно монолитно језгро, отварајући нову еру у консолидацији сервера и високоперформансном рачунарству у облаку.

На крају, ако сте заинтересовани да сазнате више, детаље можете пронаћи на следећем линку.


Додај као жељени извор на Гуглу