Tahun lalu, di blog ini kita membahas proposal dari ByteDance (pencipta TikTok) untuk sebuah utilitas bernama Parker (PARTitioned KERnel), sebuah teknologi eksperimental yang memungkinkan beberapa kernel Linux berjalan secara bersamaan. Dan sekarang, sedikit lebih dari satu setengah tahun kemudian, utilitas publik baru dari proyek tersebut, "Multikernel Linux (mklinux-v7.0-mk2)," telah dirilis.
Pengembangan ini memperkenalkan varian khusus dari kernel Linux yang memungkinkan eksekusi simultan dari beberapa instance kernel independen dalam satu server fisik. Dengan beroperasi langsung pada perangkat keras (bare metal), teknologi ini sepenuhnya menghilangkan kebutuhan akan hypervisor atau lapisan virtualisasi, memberikan setiap instance akses langsung ke memori, CPU, dan perangkat yang dialokasikan.
Berdasarkan kernel Linux 7.0 yang baru saja dirilis, proyek ini memungkinkan pengaktifan fitur ini melalui parameter konfigurasi CONFIG_MULTIKERNEL . Jika opsi ini dinonaktifkan, kernel yang dihasilkan akan sama persis dan berperilaku seperti Linux 7.0 standar. Saat ini, versi pertama ini (v7.0-mk2) secara eksklusif mendukung arsitektur x86_64 dan dirancang untuk menjembatani kesenjangan kinerja dan keamanan antara virtualisasi tradisional dan isolasi kontainer.
Isolasi tanpa mengurangi performa.
Masalah terbesar dengan virtualisasi adalah "beban" kinerja yang dibebankan oleh hypervisor. Sebaliknya, Multikernel Linux menghilangkan transisi keluar mesin virtual , translasi memori tingkat kedua, dan overhead yang dihasilkan oleh model perangkat.
Menurut data kinerja yang dipublikasikan setelah pengujian pada prosesor Xeon Gold 5418Y (Sapphire Rapids), sistem multikernel menunjukkan peningkatan kecepatan eksekusi yang dramatis dibandingkan dengan guest KVM. Misalnya, peralihan konteks antar proses 2,5 kali lebih cepat, latensi pipe berkurang lebih dari setengahnya (2,18x), dan panggilan sistem dasar, seperti operasi baca dan tulis, mengalami peningkatan waktu respons lebih dari 25%.
Dibandingkan dengan kontainer Docker tradisional, Multikernel menawarkan perlindungan yang lebih unggul karena, поскольку kontainer berbagi kernel host yang sama, kerentanan tingkat kernel, panic, atau saturasi kunci internal akan memengaruhi semua tenant. Dalam ekosistem Multikernel, setiap lingkungan memiliki kernel independennya sendiri ; artinya, jika satu instance mengalami kegagalan kritis, instance lainnya akan terus beroperasi tanpa terpengaruh, menjamin lingkungan terisolasi yang ideal untuk menjalankan segala hal mulai dari server web hingga beban kerja pelatihan AI intensif (machine learning) pada perangkat keras yang sama.
Penugasan dan Orkestrasi Dinamis dengan Kerf
Multikernel Linux beroperasi menggunakan kernel host yang mengelola sejumlah besar sumber daya (CPU, RAM, dan perangkat PCI). Dengan memanfaatkan struktur device tree yang ada (dapat diakses di /sys/fs/multikernel/), kernel membagi kumpulan sumber daya ini dan meluncurkan "kernel anak" melalui subsistem kexec_file_load() bawaan. Melalui kemampuan hotplug Linux, sumber daya ini dapat dipindahkan secara dinamis antar instance tanpa memerlukan reboot server, sehingga memastikan kinerja yang dapat diprediksi dan dapat disesuaikan secara real-time.
Untuk mengatur ekosistem ini, para pengembang telah memperkenalkan alat baris perintah Kerf . Utilitas ini mengelola seluruh siklus hidup instance, dengan mengandalkan modul sumber terbuka yang saling melengkapi. Salah satunya adalah Lazy CMA, yang mengalokasikan memori fisik yang berdekatan saat runtime tanpa memerlukan konfigurasi pra-boot apa pun.
Pilar lainnya adalah DAXFS, sebuah modul yang memungkinkan instance untuk berbagi sistem file secara langsung di memori; berkat ini, Kerf dapat menjalankan kernel anak secara langsung di dalam citra kontainer Docker, memanfaatkan sistem file-nya tanpa memerlukan lapisan emulasi dan menggunakan deskriptor dalam memori untuk interkoneksi jaringan tanpa penyalinan data.
Perlu disebutkan bahwa rilis pertama ini telah melewati uji stabilitas intensif di bawah arsitektur paging 5 tingkat dan KASLR aktif, yang menunjukkan bahwa pemulihan sumber daya sepenuhnya aman bahkan ketika kernel anak mengalami crash.
Dengan memungkinkan beban kerja yang saling bertabrakan karena penguncian sistem (seperti sejumlah besar proses unlink atau rename pada cache yang sama) untuk dibagi di antara kernel terpisah yang selaras dengan soket prosesor fisik, Multikernel Linux menunjukkan kemampuan untuk meningkatkan skala melampaui batasan kinerja yang diberlakukan oleh kernel monolitik tunggal, membuka era baru dalam konsolidasi server dan komputasi awan berkinerja tinggi.
Terakhir, jika Anda tertarik untuk mempelajari lebih lanjut, Anda dapat menemukan detailnya di tautan berikut.