Loni jsme zde na blogu diskutovali o návrhu od ByteDance (tvůrce TikToku) na utilitu s názvem Parker (PARTITIONED KERnel), experimentální technologii , která umožňuje současný běh více linuxových jader. A nyní, o něco více než rok a půl později, byl vydán nový veřejný nástroj z projektu s názvem „Multikernel Linux (mklinux-v7.0-mk2)“.
Tato technologie představuje specializovanou variantu linuxového jádra, která umožňuje simultánní spouštění více nezávislých instancí jádra v rámci jednoho fyzického serveru. Díky provozu přímo na holém železe tato technologie zcela eliminuje potřebu hypervizorů nebo virtualizačních vrstev a každé instanci poskytuje přímý přístup k alokované paměti, CPU a zařízením.
Projekt , založený na nedávno vydaném jádře Linuxu 7.0, umožňuje povolit tuto funkci pomocí konfiguračního parametru CONFIG_MULTIKERNEL . Pokud je tato možnost zakázána, výsledné jádro je naprosto stejné a chová se jako standardní Linux 7.0. V současné době tato první verze (v7.0-mk2) podporuje výhradně architektury x86_64 a je navržena tak, aby překlenula rozdíly ve výkonu a zabezpečení mezi tradiční virtualizací a izolací kontejnerů.
Izolace bez postihu za výkon
Největším problémem virtualizace je „daň“ z výkonu, kterou si účtují hypervizory. Naproti tomu vícejádrový Linux eliminuje přechody při ukončení virtuálního stroje , překlad paměti druhé úrovně a režii generovanou modely zařízení.
Podle údajů o výkonu zveřejněných po testování na procesorech Xeon Gold 5418Y (Sapphire Rapids) vykazuje vícejádrový systém dramatický nárůst rychlosti provádění ve srovnání s hostovanými KVM systémy. Například přepínání kontextu mezi procesy je 2,5krát rychlejší, latence kanálu je snížena o více než polovinu (2,18x) a základní systémová volání, jako jsou operace čtení a zápisu, získají o více než 25 % rychlejší dobu odezvy.
Ve srovnání s tradičními kontejnery Docker nabízí Multikernel vynikající ochranu , protože kontejnery sdílejí stejné hostitelské jádro, takže zranitelnost na úrovni jádra, panika nebo saturace interních zámků ovlivňují všechny klienty. V ekosystému Multikernel má každé prostředí své vlastní nezávislé jádro ; to znamená, že pokud jedna instance utrpí kritickou chybu, ostatní pokračují v provozu beze změny, což zaručuje izolované prostředí ideální pro provozování všeho od webových serverů až po intenzivní úlohy trénování umělé inteligence (strojové učení) na stejném hardwaru.
Dynamické přiřazení a orchestrace s Kerfem
Vícejádrový Linux pracuje s hostitelským jádrem , které spravuje velký fond zdrojů (CPU, RAM a PCI zařízení). Jádro využívá existující stromovou strukturu zařízení (přístupnou v /sys/fs/multikernel/) a spouští „podřízená jádra“ prostřednictvím nativního subsystému kexec_file_load(). Díky možnostem hotplug v Linuxu lze tyto zdroje dynamicky přesouvat mezi instancemi bez nutnosti restartu serveru, což zajišťuje předvídatelný a v reálném čase nastavitelný výkon.
Pro orchestraci tohoto ekosystému vývojáři představili nástroj příkazového řádku Kerf . Tento nástroj spravuje celý životní cyklus instancí a spoléhá se na doplňkové moduly s otevřeným zdrojovým kódem. Jedním z nich je Lazy CMA, který alokuje souvislou fyzickou paměť za běhu bez nutnosti jakékoli konfigurace před spuštěním.
Druhým pilířem je DAXFS, modul, který umožňuje instancím sdílet souborové systémy přímo v paměti; díky tomu může Kerf spustit podřízené jádro přímo uvnitř obrazu kontejneru Docker, a to s využitím jeho souborového systému bez nutnosti emulačních vrstev a s využitím deskriptorů v paměti pro síťové propojení bez kopírování dat.
Za zmínku stojí, že tato první verze prošla intenzivními testy stability v rámci 5úrovňové stránkovací architektury a aktivního KASLR, což dokazuje, že obnova zdrojů je zcela bezpečná i v případě pádu podřízeného jádra.
Tím, že umožňuje rozdělení úloh, které kolidovaly kvůli systémovým zámkům (například velký počet procesů odpojení nebo přejmenování ve stejné mezipaměti), mezi samostatná jádra zarovnaná s fyzickými sockety procesorů, demonstruje Multikernel Linux schopnost škálovat se za hranice výkonu dané jedním monolitickým jádrem a otevírá novou éru v konsolidaci serverů a vysoce výkonném cloud computingu.
A konečně, pokud máte zájem dozvědět se více, podrobnosti naleznete na následujícím odkazu.