Multikernel, sebuah utilitas yang sangat baik untuk menjalankan beberapa kernel tanpa virtualisasi.

Poin kunci:
  • Multikernel Linux memungkinkan menjalankan kernel independen secara bersamaan pada perangkat keras fisik.
  • Berdasarkan kernel Linux 7.0, ia menggunakan CONFIG_MULTIKERNEL dan saat ini mendukung arsitektur x86_64.
  • Ini menghilangkan biaya tambahan virtualisasi (hypervisor KVM), sehingga mencapai peralihan konteks 2,5 kali lebih cepat.
  • Tidak seperti kontainer, instance tidak berbagi kernel, sehingga mencegah kegagalan atau kerentanan memengaruhi seluruh server.
  • Gunakan alat Kerf bersama dengan modul Lazy CMA dan DAXFS untuk mengelola sumber daya secara dinamis dan menjalankan image Docker.

Linux Multikernel

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.

ByteDance-Parker-multikernel
Artikel terkait:
Parker: Teknologi baru yang memungkinkan menjalankan beberapa kernel Linux tanpa virtualisasi

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.


Tambahkan sebagai sumber pilihan di Google