Minggu, Mei 07, 2006

Virtual Machine, OS di dalem OS?? Lohh!!??

Perkembangan Open Source Software (OSS) kayanya makin gila dan asik aja belakangan ini, walaupun saya rada sebel ngeliat distro-distro Penguin (baca: LINUX) yang semakin bervariasi dan makin banyak jenisnya itu. Akhirnya sekarang saya ngekor Hendro Wicaksono, ikut-ikutan pake FreeBSD. Ternyata asiikk juga pake Operating System (OS) yang satu ini, BELOM terlalu banyak variannya trus nawarin konsep port, instalasi aplikasi 3rd party lansung dari source code tapi udah di-patch sama orang-orang di freebsd.org biar kompilasinya bisa sesuai sama FreeBSD. Udah gitu banyak belajar konsep network security juga dari FreeBSD, karna OS yang satu ini menurut developer-nya udah "secure by default". At least setelah melalui journey mencari OS berbasis *NIX yang ingin saya dalami, saya menjatuhkan pilihan pada FreeBSD dengan logonya si Daemon yang imut itu (goodbye Ubuntu, that doesn't mean i hate you).

Lohh kok jadi curhat masalah OS, bukan masalah ini yang saya pengen omongin tapi saya mau ngomongin mengenai teknologi software yang lagi anget-angetnya saat ini yaitu Virtual Machine. Apaan lagi tuh Virtual Machine (kita singkat aja dia VM)? Gampangnya VM adalah sebuah aplikasi yang memungkinkan kita menjalankan sebuah atau beberapa OS lainnya di dalam sebuah OS. Gila yah? iya emang gila saya juga bingung kok bisa-bisanya (lagi-lagi saya senyum sendiri dan geleng-geleng kepala ngeliat programmer Open Source). Dengan VM kita bisa menjalankan 2, 3, 4, 5 atau 6 OS sekaligus dalam SATU komputer yang berperan sebagai Host OS. Dalam domain VM ada dua istilah penting, Host OS dan Guest OS. Host OS adalah OS yang yang menjadi induk utama bagi OS-OS virtual lainnya. OS-OS virtual ini disebut juga Guest OS atau OS tamu (bisa yah OS namu, silaturahmi ke OS lainnya). Saya dah mencoba salah satu VM yang sekarang cukup populer di dunia OSS saat ini yaitu QEMU (baca: kiemu). QEMU berlisensi GPL kecuali untuk modul akselerasi kernel-nya yang free tapi Closed Source namanya KQEMU. Saya install QEMU di FreeBSD saya, awalnya saya coba compile sendiri (saya coba apply patch FreeBSD ke source code asli-nye) tapi pada akhirnya karna gagal trus pas proses kompilasi sampe saya gedegg banget. Akhirnya saya install ajah yang binary-nye yang udah mateng tinggal dilahap. Trus saya install module kernel-nya pake ports FreeBSD (alhamdulillah lancar) dan VOIILLAA!!! saya nginstall FreeBSD 5.4, 6.0 sama Ubuntu di dalem OS FreeBSD 5.4 saya.

Klik pada screenshot buat memperbesar :


FreeBSD 6.0 dengan desktop KDE di atas FreeBSD 5.4


Ubuntu 5.10 di atas FreeBSD 5.4 (sambil dengerin MP3)


Lagi-lagi FreeBSD 6.0 dengan desktop KDE di atas FreeBSD 5.4 (ngetik di Koffice)


QEMU sedang mem-boot FreeBSD 5.4


QEMU sedang menjalankan FreeBSD 5.4 dan 6.0 dalam mode teks

Saya tertarik sama QEMU karena VM ini memungkinkan kita membangun virtual network, jadi saya yang masih awam network ini bisa belajar networking tanpa harus punya banyak PC! Gila! si QEMU ini ternyata bisa juga mem-virtualkan network, bahkan antar sesama Guest OS-pun bisa saling dihubungkan dalam sebuah virtual network. QEMU ternyata mensimulasikan kartu network virtual untuk setiap Guest OS (saya lupa tipe-nya apa kalo ga salah Novell deh). Kebetulan komputer di rumah RAM-nya agak gede 768 MB, jadi saya agak bebas eksperimen nginstall 2 sampe 3 Guest OS.

QEMU bisa mem-virtualisasikan hampir semua OS yang ada di muka bumi saat ini tidak terbatas pada OS-OS berarsitektur X86 saja, tapi Mac, OS X yang berbasis PowerPC pun bisa divirtualkan. menurut Fabrice Bellard, sang pembuat QEMU, Modul kernel KQEMU dikatakan bisa mempercepat proses virtualisasi Guest OS hingga mendekati kecepatan native (seperti menjalankan OS langsung). Hal ini bisa terjadi karena KQEMU memungkinkan kode-kode Guest OS dijalankan langsung ke prosesor.

Untuk menjalankan Guest OS dibutuhkan image dari Guest OS atau kita bisa membuat sebuah image kosong dengan menggunakan tool command-line qemu-img. Image kosong ini nantinya kita akan isikan dengan Guest OS, misalnya Kubuntu, Fedora ataupun Windows XP. Cara membuatnya adalah dengan mengetikan perintah berikut ini pada console :

qemu-img create kubuntu.img 2G

Perintah di atas akan membuat sebuah image kosong dengan nama kubuntu.img, berukuran 2 Giga. Sekarang bagaimana cara kita untuk mengisikan Guest OS Kubuntu linux kita ke dalam image kosong tadi? Caranya mudah, masukan CD instalasi Kubuntu ke dalam drive CD (ga perlu di mount CD-nya) dan periksa nama device CD-nya (biasanya /dev/acd0) dan kemudian jalankan perintah berikut ini :

qemu -dummy-net -m 256 -boot d -cdrom /dev/acd0 -hda /home/dicarve/kubuntu.img

perintah di atas akan menjalankan QEMU untuk memboot CD dari /dev/acd0 dan kemudian memulai proses instalasi ke dalam image kubuntu.img. Ikutin aja proses instalasinya kaya kita lagi nginstall OS biasa sampe selesai.

Apabila CD instalasi OS kita lebih dari satu maka untuk meng-eject CD dari CD Drive kita harus masuk ke dalam QEMU Monitor dengan menekan [Ctrl]+[Alt]+[2]. QEMU Monitor adalah shell khusus QEMU yang berguna untuk misalnya mem-pause proses emulasi, mengeluarkan CD dari CD Drive, me-reboot ulang Guest OS, mengganti drive CD dan lain-lain. Untuk mengganti CD pada Guest OS jalankan perintah berikut pada QEMU monitor :

qemu> stop
qemu> eject cdrom


lalu keluarkan CD dari CD Drive dan masukan CD berikutnya
qemu> change cdrom /dev/acd0 (pada FreeBSD drive CD pertama berada pada /dev/acd0)
qemu> continue Kembali ke Guest OS dengan menekan [Ctrl]+[Alt]+[1]

Proses instalasi windows XP dengan QEMU


Windows 2000 dijalankan dengan QEMU pada Linux

Di web juga banyak yang nyediain image-image OS yang tinggal di pake. Coba kunjungin qemu.org.

VM bisa menjadi solusi bagi server-server kecil yang ingin memisahkan fungsi-fungsi seperti Web Server, Mail Server, Firewall dsb. Masing-masing bisa diinstalasikan pada Guest OS yang berbeda dan dihubungkan dengan virtual LAN. Hal ini tentunya juga dimungkinkan apabila hardware server mendukung. Pertimbangan memakai QEMU utamanya adalah memaksimalkan penggunaan resource hardware yang ada. Untuk apa membeli server baru hanya untuk firewall apabila, server yang sudah ada hanya menggunakan 25% resource komputer. Selain QEMU saat ini juga ada beberapa VM lainnya seperti Xen yang terkenal karena kehebatannya menjalankan Guest OS dengan kemampuan native. Xen bahkan sudah disertakan secara default pada distro-distro Linux besar seperti Suse dan Fedora. VMware adalah VM komersial yang terkenal karena kemudahan instalasi dan konfigurasinya.