Teknologi Virtualisasi : VirtualBox & Xen Hypervisor, Full Virtualization & Paravirtualization
Xen merupakan teknologi virtualisasi yang powerful dan banyak digunakan pada berbagai data center dan ISP. Xen mendukung teknologi virtualisasi dengan tipe paravirtualization dan full virtualization. Berikut saya kutipkan email dari mas Adi Nugroho, salah seorang aktivis Komunitas openSUSE Indonesia wilayah Sulawesi yang menjawab email dari salah seorang member milis openSUSE Indonesia mengenai perbedaan antara kedua teknologi diatas, utamanya antara VirtualBox dan Xen :
Virtualbox itu full virtualization.
Jadi, dia memvirtualisasi seluruh hardware untuk si guest.Kelebihannya:
OS guest sama sekali tidak tahu kalau dia jalan di atas mesin virtual. Dia kira dia jalan di atas hardware betulan.
Alhasil, hampir semua OS bisa jalan di atas virtualisasi penuh ini.Kekurangannya:
Karena semua divirtualisasi penuh, jadi siguest ngomong pake bahasa hardware, diterjemahkan ke bahasa aplikasi sama virtualbox, lalu diterjemahkan lagi ke bahasa hardware, maka full virtualization macam virtualbox ini makan resource besar.Xen itu paravirtualization.
Daripada guest ngomong dengan bahasa hardware, diterjemahkan menjadi bahasa aplikasi, lalu diterjemahkan kembali ke bahasa hardware, mending baik host maupun guest di-custom kernelnya agar ngomong dengan bahasa yang sama, sehingga lebih cepat.Kelebihannya:
Lebih cepat, hemat resource.
Kekurangannya:
Lebih sedikit OS yang disupportAda lagi OS level virtualization, seperti openvz.
Yang ini paling cepat dan paling hemat resource. Karena si guest tidak perlu kernel. Dia jalan menggunakan kernelnya si host. Alhasil, semua guest bisa saling sharing memory (kalau kita perbolehkan). Kalau di full virtualization dan paravirtualization, ram host harus lebih besar dari total alokasi ram guest, maka di os level virtualization tidak.
Jalankan 100 mesin virtual dengan RAM beberapa GB pun bisa.Kelebihan:
amat sangat hemat resource.Kekurangan:
Guest dan host harus OS yang sama, walaupun boleh beda distro.Kesimpulan:
Use the right tools for the right job.
* Kalau baik host maupun guest semuanya linux, gunakan os level virtualization
* kalau os mulai beragam (misalnya ada linux, ada windows), gunakan paravirtualization.
* kalau hanya untuk coba coba, atau hanya untuk memamerkan/mempertunjukkan ke siswa, atau os guest tidak disupport oleh paravirtualisasi, gunakan full virtualization.Kesimpulan dari kesimpulan:
Yang bapak lakukan sudah benar.
Pakai virtualbox sudah cukup.
Penjelasan lain :
As I understand “full” virtualization and paravirtualization, a system with paravirtualization only in drivers can never quite match a system with complete paravirtualization.
“Full” virtualization = the interface between the VM and the hypervisor is exactly the same as with the real hardware. The operating system of the VM does not neeed to “know” it is a VM.
Paravirtualization = the code “knows” it is running within a VM and is allowed to take certain “shortcuts” as the hypervisor handles the actual hardware.
In other words:
Full virtualization = the operating system of the VM is not at all optimized for working in the virtual environment.Drivers-only paravirtualization = the drivers are optimized for the virtual environment, but the OS kernel of the VM is not. This has a better performance than full virtualization, but not quite as good as complete paravirtualization.
Complete paravirtualization = the drivers and the OS kernel of the VM are both fully optimized to the virtual environment.
The complete paravirtualization should always have the best performance, but depending on the characteristics of the particular workload, the difference between complete and drivers-only paravirtualization may be insignificant.
For a rule of thumb, remember that the overhead of the virtualization is incurred whenever the application needs to access anything other than CPU or RAM. So an application which is mainly CPU-bound (=number-cruncher) is not going to care much about the virtualization type, but for an I/O-bound application you’ll really want as much paravirtualization as you can get.
Of course, there may be other things that limit your choices: if you’re moving a legacy system into a virtual environment and are required to limit the changes within the legacy system to absolute minimum, full virtualization is the way to go.
A simple enough, eh 🙂 .
Penjelasan diatas kira-kira menggambarkan secara gamblang mengenai perbedaan antara paravirtualization dan full virtualization. Untuk mengetahui perbedaan teknologi virtualisasi tersebut secara detail, silakan download artikel PDF yang berkaitan.
Artikel berikutnya : Bagaimana cara melakukan instalasi, konfigurasi dan menjalankan Xen Hypervisor pada openSUSE
bagaimana dengan yang ini om?? ada saran/komen?? http://www.indovps.com/tutorial/openvz-or-xen
baru ngerti tentang virtualization setelah membaca postingan ini.thanks then. 🙂
Kalo VM-nya Linux, XenServer host adalah paling bagus buat production karena paling cepat dan efficient.
Tapi saya sendiri ndak pakai karena selain tidak support (Open) Solaris, juga gak bisa pakai normal kernel sehingga kalo kudu testing Linux for HPC yang pakai customized LustreFS kernel, ndak jalan, Buat beginian, jadilah pakai VMware ESX4i.
Tapi belakangan VMWare ngeselin juga, setelah 3.5U4 ke atas, CLI-nya dibuat Read-Only, ndak bisa do any significant command, sehingga menyulitkan saya yang jalan jalan tapi punya test lab di remote. Mosok dikit dikit kudu launch Remote Desktop buat sekedar start stop VM? Jadilah sekarang untuk test platform pakai VirtualBox running over CentOS, semata karena butuh CLI over SSH. Lambat tapi jalannya 🙁
dari beberapa yang udah saya coba, xen paling bagus karena deploy-nya cepat dan efisien.
@Iqbal,
Link tersebut malah sudah memberikan kesimpulan kok boss 🙂
Dedhi & Dudi,
Thanks buat share pengalamannya, Ded.
mas, kalo dibandingkan dengan solaris container gimana? tulung kirim jawabanya ke email yaaaa,,,? ke chikosetiyawan@gmail.com