Powered by Blogger.

Pengenalan Kernel-Based Virtual Machine (KVM)


Kernel-Based Virtual Machine (KVM) adalah salah satu teknologi virtualisasi (hypervisor) yang dikembangkan oleh Linux. KVM merupakan sebuah solusi untuk melakukan virtualisasi pada Linux dengan perangkat keras type x86 (64-bit). KVM diimplementasikan sebagai modul kernel loadable yang mengubah kernel Linux menjadi baremetal hypervisor. Ada dua prinsip desain utama yang diadopsi oleh KVM dengan tujuan agar KVM menjadi hypervisor dengan kinerja tinggi dan
melampaui open source hypervisors lainnya.

– Pertama, karena KVM didesain setelah kemunculan teknologi virtualisasi dibantu perangkat keras (hardware assisted virtualization), KVM tidak perlu mengimplementasikan fitur yang telah disediakan oleh perangkat keras. KVM membutuhkan prosesor Intel VT-X atau AMD-V dan menggunakan fitur tersebut untuk virtualisasi CPU. Karena memanfaatkan dukungan perangkat keras yang telah tersedia, KVM mampu merancang solusi hypervisor yang optimal tanpa memerlukan beban yang mendukung perangkat keras dan tidak perlu modifikasi untuk mendukung sistem operasi guest.

– Kedua, tim KVM menerapkan pepatah “don’t reinvent the wheel”. Terdapat banyak komponen yang dibutuhkan oleh hypervisor agar KVM mampu memvirtualisasi CPU dan memori, seperti: pengatur memori, penjadwal proses, I/O stack, device drivers, pengatur keamanan, network stack, dan sebagainya. Faktanya, suatu hypervisor adalah sistem operasi khusus, hanya saja tujuan hypervisor berbeda dengan tujuan umum sistem operasi lainnya. Hypervisor menjalankan mesin virtual, bukan aplikasi-aplikasi. Karena kernel Linux sudah mencakup fitur inti yang diperlukan oleh hypervisor dan Linux telah menjadi platform skala enterprise yang stabil selama lebih dari lima belas tahun, KVM dibangun berdasarkan kernel Linux agar lebih efisien, daripada menulis semua komponen yang dibutuhkan seperti pengatur memori dan penjadwal dari awal.

Dalam hal ini, KVM mendapatkan pelajaran dari pengalaman Xen. Salah satu tantangan utama arsitektur Xen adalah arsitektur pemecahan domain0 dan hypervisor Xen. Karena hypervisor Xen menyediakan fitur platform inti dalam stack, Xen perlu mengimplementasikan fitur-fitur tersebut, seperti penjadwal dan pengatur memori, dibangun dari nol. Misalnya saat kernel Linux memiliki pengatur memori yang telah teruji dan baik termasuk dukungan untuk NUMA dan sistem skala besar, hypervisor Xen perlu membangun dukungan ini dari awal. Demikian pula fitur seperti manajemen daya di Linux yang sudah matang dan telah terbukti di lapangan harus diimplementasi ulang pada hypervisor Xen.