Tahun lepas kami telah membincangkan di blog ini tentang cadangan daripada ByteDance (pencipta TikTok) untuk utiliti yang dipanggil Parker (PARTitioned KERnel), satu teknologi eksperimen yang membolehkan berbilang kernel Linux dijalankan secara serentak. Dan kini, lebih kurang setahun setengah kemudian, utiliti awam baharu daripada projek tersebut, "Multikernel Linux (mklinux-v7.0-mk2)," telah dikeluarkan.
Perkembangan ini memperkenalkan varian khusus kernel Linux yang membolehkan pelaksanaan serentak pelbagai tika kernel bebas dalam satu pelayan fizikal. Dengan beroperasi secara langsung pada logam terdedah, teknologi ini menghapuskan sepenuhnya keperluan untuk hipervisor atau lapisan virtualisasi, memberikan setiap tika akses langsung kepada memori, CPU dan peranti yang diperuntukkan.
Berdasarkan kernel Linux 7.0 yang dikeluarkan baru-baru ini, projek ini membolehkan ciri ini diaktifkan melalui parameter konfigurasi CONFIG_MULTIKERNEL . Jika pilihan ini dinyahdayakan, kernel yang terhasil adalah sama dan berfungsi seperti Linux 7.0 standard. Pada masa ini, versi pertama ini (v7.0-mk2) secara eksklusif menyokong seni bina x86_64 dan direka bentuk untuk merapatkan jurang prestasi dan keselamatan antara virtualisasi tradisional dan pengasingan kontena.
Pengasingan tanpa penalti prestasi
Masalah terbesar dengan virtualisasi ialah "cukai" prestasi yang dikenakan oleh hipervisor. Sebaliknya, Multikernel Linux menghapuskan peralihan keluar mesin maya , terjemahan memori peringkat kedua dan overhed yang dijana oleh model peranti.
Menurut data prestasi yang diterbitkan selepas ujian pada pemproses Xeon Gold 5418Y (Sapphire Rapids), sistem multikernel menunjukkan peningkatan dramatik dalam kelajuan pelaksanaan berbanding dengan tetamu KVM. Contohnya, penukaran konteks antara proses adalah 2,5 kali lebih pantas, latensi paip dikurangkan lebih daripada separuh (2,18x), dan panggilan sistem asas, seperti operasi baca dan tulis, memperoleh lebih daripada 25% dalam masa tindak balas.
Berbanding dengan kontena Docker tradisional, Multikernel menawarkan perlindungan yang lebih baik kerana, memandangkan kontena berkongsi kernel hos yang sama, kerentanan peringkat kernel, panik atau ketepuan kunci dalaman menjejaskan semua penyewa. Dalam ekosistem Multikernel, setiap persekitaran mempunyai kernel bebasnya sendiri ; iaitu, jika satu contoh mengalami kegagalan kritikal, yang lain terus beroperasi tanpa terjejas, menjamin persekitaran terpencil yang sesuai untuk menjalankan segala-galanya daripada pelayan web kepada beban kerja latihan AI intensif (pembelajaran mesin) pada perkakasan yang sama.
Tugasan Dinamik dan Orkestrasi dengan Kerf
Multikernel Linux beroperasi menggunakan kernel hos yang mengurus himpunan sumber yang besar (CPU, RAM dan peranti PCI). Menggunakan struktur pokok peranti sedia ada (boleh diakses di /sys/fs/multikernel/), kernel mengukir himpunan ini dan melancarkan "kernel anak" melalui subsistem kexec_file_load() natif. Melalui keupayaan hotplug Linux, sumber ini boleh dialihkan secara dinamik antara tika tanpa memerlukan but semula pelayan, memastikan prestasi yang boleh diramal dan boleh laras masa nyata.
Untuk mengatur ekosistem ini, pembangun telah memperkenalkan alat baris arahan Kerf . Utiliti ini mengurus keseluruhan kitaran hayat tika, bergantung pada modul sumber terbuka pelengkap. Salah satunya ialah Lazy CMA, yang memperuntukkan memori fizikal bersebelahan semasa masa jalan tanpa memerlukan sebarang konfigurasi pra-but.
Tonggak lain ialah DAXFS, modul yang membolehkan contoh berkongsi sistem fail secara langsung dalam memori; hasil daripada ini, Kerf boleh but kernel anak terus di dalam imej kontena Docker, memanfaatkan sistem failnya tanpa memerlukan lapisan emulasi dan menggunakan deskriptor dalam memori untuk sambungan rangkaian tanpa penyalinan data.
Perlu dinyatakan bahawa keluaran pertama ini telah lulus ujian kestabilan intensif di bawah seni bina paging 5 peringkat dan KASLR aktif, menunjukkan bahawa pemulihan sumber adalah selamat sepenuhnya walaupun kernel anak ranap.
Dengan membenarkan beban kerja yang bertembung akibat penguncian sistem (seperti sebilangan besar proses penyahpautan atau penamaan semula pada cache yang sama) dibahagikan merentasi kernel berasingan yang sejajar dengan soket pemproses fizikal, Multikernel Linux menunjukkan keupayaan untuk melangkaui halangan prestasi yang dikenakan oleh kernel monolitik tunggal, membuka era baharu dalam penyatuan pelayan dan pengkomputeran awan berprestasi tinggi.
Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut, anda boleh mendapatkan butiran lanjut di pautan berikut.