Kernel Based Virtual Machine Implementation

Setelah beberapa lama terbengkalai, akhirnya saya kelar juga untuk mengerjakan sebuah server dengan model virtualisasi. sebetulnya proses pengerjaannya tidak begitu kompleks, namun waktu yang membuat saya sedikit sulit untuk melakukan instalasi. tapi berkat bantuan rekan mas alan dan mas lastono ( UPPTI ) yang sudah memahami kvm terlebih dulu, akhirnya saya juga bisa untuk mengimplementasikan KVM sendiri.

Definisi KVM

Mungkin beberapa rekan sebenarnya sudah sering menggunakan istilah virtual machine, dan bagi rekan-rekan yang familiar dengan sistem operasi windows mungkin lebih banyak tahu mengenai virtual box atau vmware sebagai perangkat pendukung virtual machine. tapi dalam hal ini saya akan coba membicarakan mengenai KVM. apakah KVM itu ? anda bisa mendapatkan informasi mengenai KVM disini. tapi saya akan coba untuk meringkasnya.

KVM adalah kependekan dari “Kernel Based Virtual Machine” adalah sebuah solusi untuk melakukan virtualisasi pada linux dengan hardware type x86 (64-bit). KVM memiliki keunggulan karena dapat diinstall pada sebuah linux OS minimum Server configuration ( No-GUI ) sehingga cenderung lebih ringan dibanding rekan-rekan aplikasi Virtual Machine yang lainnya :) . tetapi KVM cenderung memiliki kelemahan pada lambatnya proses I/O masing-masing Guest OS nya ( sorry untuk ini saya lupa sumbernya ). ada lagi kelebihan KVM dibandig VM lainnya yaitu proses live migration,

Preparing “KVM Implementation”

Pertama kita harus memiliki sebuah server dengan CPU yang mendukung sistem 64 bit. untuk linux anda bisa cek pada file /proc/cpuinfo. tampilan akan tampak seperti yang dibawah ini :

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz
stepping	: 5
cpu MHz		: 1600.000
cache size	: 4096 KB
physical id	: 1
siblings	: 4
core id		: 3
cpu cores	: 4
apicid		: 22
initial apicid	: 22
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts
acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon
pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3
 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm tpr_shadow vnmi flexpriority ept vpid
bogomips	: 3999.39
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual

pada tampilan OS diatas kita bisa lihat pada bagian flags terdapat fitur vmx, ini artinya cpu kita mendukung OS 64 bit. dan untuk memastikan kernel kita support 64 bit kita bisa ketikkan command uname -a.

menginstall kvm sangat amat mudah bila kita sudah terhubung dengan sebuah server repos. untuk pemakai centos atau red hat based linux kita bisa memanfaatkan :

yum groupinstall kvm

untuk persiapan network kita bisa memanfaatkan fasilitas bridge pada linux sebagai “jembatan” untuk menghubungkan guest OS pada KVM agar bisa berkomunikasi via masing-masing network devices nya. yang dibutuhkan sebelum kita mengkonfigurasi bridge pada Host OS adalah kita harus menginstall packet bridge-utils pada Host OS. oh.. iya saya akan menggunakan host OS sebagai Mesin KVM dan Guest OS sebagai mesin server virtualnya. sekali lagi, mengginstall bridge-utils tidak sesusah yang kita bayangkan bila kita terhubung dengan server repos :) thanks to singo.ub.ac.id yang sudah memfasilitasi repos OS server saya selama ini. and here we go the yum application do the bridge-utils installation :

yum install bridge-utils

setelah bridge-utils terinstall sekarang kita akan lakukan konfigurasi bagian bridge nya . why we need bridge network configuration ? jawabannya adalah karena kita akan membuat virtual machine kita dapat diakses dari luar dan seolah-olah menjadi sebuah physiscal system pada network.

sekarang kita akan bikin file konfigurasi untuk network bridge nya, kita akan buat file /etc/sysconfig/network-scripts/ifcfg-br0, isinya adalah sebagai berikut :

DEVICE=br0 // nama device bridge (br0)
TYPE=Bridge // tipe interface dengan bridge
BOOTPROTO=static // konfigurasi untuk statik ip
DNS1=IP_DNS // isi dengan ip DNS network anda
GATEWAY=IP_GATEWAY // isi dengan ip gateway anda
IPADDR=IP_ADDR // isi dengan ip addr anda
NETMASK=SUBNET_MASK // isi dengan subnet mask anda
ONBOOT=yes // untuk memastikan interface tersebut aktif pada saat service network dijalankan
SEARCH="example.com"

Sekarang kita akan pastikan salah satu interface fisik kita menjadi anggota bridge diatas, dalam konfigurasi ini saya bikin eth0 menjadi anggota br0(bridge 0 ) .

# Networking Interface
DEVICE=eth0
HWADDR=INTERFACE_MAC_ADDRESS //isi dengan mac address interface anda
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
BRIDGE=br0 // memasukkan eth0 sebagai member br0

Sekarang kita restart networknya, pastikan bekerja on site :) bila anda bekerja remote dan ada miss configuration anda akan terpaksa mengunjungi lokasi server fisik untuk konfigurasi langsung :p.

Client Preparation 

untuk bagian client kita tidak memerlukan sistem 64 bit karena pada klien kita hanya menginstall virtual machine manager untuk melakukan manajemen guest OS pada KVM. untuk konfigurasi klien, saya sarankan untuk install OS linux dengan GUI untuk mempermudah konfigurasi Guest OS KVM karena tinggal klak-klik-klak saja. once again … the yum will do the task :)

yum install virt-manager

dan kemudian tampilan virt-manager anda akan muncul seperti ini :

Virtual Manager

Virtual Manager

dan sekarang kita sudah selesai menginstall KVM dan virtual manager nya pada klien, dan kemudian kita bisa klak-klik untuk konfigurasi dan install guest OS, saya akan coba bahas kapan-kapan ya :) . btw karena implementasi server pada guest OS KVM ini masih banyak yang harus diteliti,maka riset untuk Virtualisasi ini masih sangat diperlukan, bagi mahasiswa yang tertarik untuk menjadikannya judul skripsi atau penelitian silahkan hubungi saya.

referensi  :

http://www.howtoforge.com/virtualization-with-kvm-on-a-fedora-11-server

http://www.techotopia.com/index.php/Installing_and_Configuring_Fedora_KVM_Virtualization

15 thoughts on “Kernel Based Virtual Machine Implementation

  1. muhamad arief hidayat

    wah sampeyan nduwe bakat menulis artikel teknologi populer mas. cocok gawe nulis nang majalah infokomputer/infolinux/buku2ne elex media komputindo. diterusno wae mas

    Reply
      1. RahmanSaputra

        ini rencana emang buat T.A pak :)
        Konsultasi nya ke bapak yak pak.. :)
        kangen pak udah lama g diajar sama pak sabrian :D

    1. Avatar of Sabriansyah Rizqika AkbarSabriansyah Rizqika Akbar Post author

      saya menerapkan KVM Qemu Server sebagai Virtual servernya di centos, tetapi untuk virt-manager saya install di komputer saya yang make ubuntu, so sepertinya tidak ada masalah mau di install di distro mana saja pada linux … Selamat mencoba :)

      Reply
  2. Sendy Deva

    Apabila digabungkan dengan konsep Live Migration gimana pak Sabri ? saya mulai tertarik sama topik ini untuk dijadikan TA. Mumpung sudah mendekati semester akhir :D

    Reply

Leave a Reply to redityo Cancel reply

Your email address will not be published. Required fields are marked *

CAPTCHA Image

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>