Virtualisasi Dengan KVM Linux

Sekilas Tentang Virtualisasi

Saya sudah cukup lama menggunakan Virtualbox untuk melakukan virtualisasi OS. Virtualisasi gampangnya dapat diartikan menjalankan suatu OS di dalam OS. Dengan virtualisasi kita bisa punya beberapa komputer virtual (virtual machine=VM) sekaligus. Misalnya di Mac saya bisa memasang OS Windows 7 dalam sebuah VM. Saya juga bisa punya beberapa VM berisi Linux, dan aneka macam OS lainnya. Dulu sebelum kenal Virtualbox, bila saya menggunakan sebuah notebook pasti saya pasang 2 OS di dalamnya. Saya perlu menentukan akan boot ke OS Linux atau Windows. Sistem dual boot seperti itu memang lebih powerful karena OS langsung berinteraksi dengan hardware komputer. Akan tetapi memasang beberapa OS dalam satu komputer seperti itu sangat tidak praktis.

Dalam dunia virtulisasi komputer (physical computer) disebut sebagai host sementara semua virtual machine akan disebut sebagai guest. Virtualbox membantu saya untuk melakukan beberapa hal seperti misalnya :

  • mengakses aplikasi yang hanya tersedia di Windows tanpa harus punya komputer/laptop dengan OS Windows.
  • mencoba varian distro Linux baru tanpa perlu melakukan instal ulang atau dual boot.
  • bereksperimen dengan Linux server, Solaris server, dsb.
  • melakukan eksperimen networking (routing, load balancing, firewall) dengan beberapa VM sekaligus.

Bayangkan bila saya tidak punya VM, berapa banyak komputer (komputer dalam arti fisik sebenarnya) yang harus saya miliki untuk melakukan eksperimen-eksperimen tadi. Dengan menggunakan VM, saya jadi bisa melakukan testing yang memerlukan beberapa komputer sekaligus. Selama komputer saya punya kapasitas memori dan kapasitas harddisk yang cukup, saya bisa membuat banyak VM & menjalankannya sekaligus.

Ada beberapa macam aplikasi virtualisasi seperti misalnya :

  • Virtualbox
  • VMware
  • KVM
  • Xen Hypervisor
  • Oracle VM
  • Proxmox

Aplikasi-aplikasi tersebut biasanya dikenal sebagai hypervisor. Hypervisor menurut Wikipedia didefinisikan sebagai berikut :

A hypervisor or virtual machine monitor (VMM) is a piece of computer software, firmware or hardware that creates and runs virtual machines.

Teknologi virtualisasi sendiri dapat digolongkan menjadi 3 macam :

  • Full Virtualization, yang termasuk dalam kategori ini adalah Virtualbox, KVM. Full Virtualization maksudnya adalah komputer host akan melakukan emulasi perangkat keras (hardware) yang digunakan oleh guest. Guest tidak tahu kalau mesin yang digunakannya adalah virtual machine. Full virtualization ini adalah tipe virtualisasi yang paling fleksibel. Kita tidak perlu menggunakan OS dengan kernel khusus. Kita bisa langsung menginstal sistem operasi layaknya kita menginstal OS pada komputer fisik. Kelemahan full virtualization adalah guest tidak bisa mendapat kecepatan akses penuh saat mengakses hardware (misalnya menulis/membaca data dari dalam harddisk atau bertukar data lewat network interface). Lambatnya akses Input/Output ini akibat dari emulasi hardware yang dilakukan oleh host.
  • Paravirtualization (PV), yang termasuk dalam kategori ini contohnya adalah Xen Hypervisor. PV mengatasi kendala yang dimiliki oleh full virtualisation. OS yang dipasang pada VM adalah versi termodifikasi dari sistem operasi (operating system/OS) aslinya. Misalnya, RedHat Linux menyediakan kernel-xen untuk PV guest. Guest VM sadar kalau mesin yang dipakainya adalah virtual machine. Sistem ini memiliki throughtput yang jauh lebih baik daripada full virtualization & boleh dibilang yang paling baik di antara 3 tipe virtualisasi. Sayangnya kita terikat pada pemilihan OS. Guest hanya bisa menggunakan OS yang memang sudah disiapkan untuk berjalan di atas paravirtualized VM.
  • Para-virtualized driver : sistem ini adalah kombinasi dari kedua sistem sebelumnya. OS yang dipasang pada guest adalah OS biasa (native OS). Hanya saja ada tambahan driver khusus yang perlu dipasang di komputer guest. Meskipun Virtualbox termasuk dalam kategori Full virtualization, Virtualbox bisa termasuk juga dalam kategori ini. Virtualbox menyediakan “Virtualbox Guest Addition”. Virtualbox Guest Addition menyediakan driver-driver khusus untuk perangkat seperti network interface, video card, dsb. Sistem ini menawarkan fleksibilitas dalam pemilihan OS sekaligus menawarkan performa I/O yang lebih baik daripada full virtualization.

Menginstal KVM

Tulisan ini akan jadi catatan pribadi saya tentang langkah-langkah menginstal KVM pada CentOS Linux 6.5. KVM adalah teknologi virtualisasi yang terintegrasi dengan kernel Linux. KVM pertama kali diintegrasikan ke dalam kernel linux sejak versi kernel 2.6.20.

Dalam percobaan ini saya menggunakan notebook Fujitsu S6140 dengan spesifikasi seperti berikut ini :

  • CPU Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz
  • 3GB RAM
  • Harddisk 160GB
  • CentOS 6.5 (@base packages)

Untuk bisa menggunakan KVM, komputer host harus memiliki CPU dengan fitur “hardware virtualization extension”. Pada CPU Intel fitur ini dikenal dengan nama vmx (Intel VT Extention). Sementara pada CPU AMD, fitur tadi dikenal dengan nama “svm” (AMD-V Extention).

Notebook Fujitsu yang saya gunakan sudah dilengkapi dengan vmx. Untuk memastikan saya bisa menggunakan perintah berikut ini :

root@centosdev02:~# egrep "svm|vmx" /proc/cpuinfo
flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm ida dts tpr_shadow vnmi flexpriority
flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm ida dts tpr_shadow vnmi flexpriority
root@centosdev02:~# 

Berikut ini adalah langkah-langkah yang perlu dilakukan untuk menyiapkan KVM :

Continue reading