Thursday, March 5, 2015

Memahami Konsep Bagaimana Virtualisasi Bekerja

Cuma mau sharing aja buat temen-temen yang mau belajar virtualisasi. Saya bahas bedasarkan konsep yang saya pelajari dari vmware, namun seharusnya konsep seperti ini adalah standard di semua platform sih mungkin istilahnya saja yang beda. #pleasecmiiw

Kunci utama dalam memahami teknologi virtualisasi adalah kamu benar-benar menyadari bahwa virtualisasi sebenernya menggunakan sumber daya infrastruktur physical yang resourcenya dibagi-bagi. Nah dengan adanya virtualisasi ini kita dapat menjalankan beberapa mesin secara virtual di dalam sebuah resource/mesin tunggal dalam waktu yang simultan dan bersamaan.

Gambar dibawah mungkin bisa ngebantu temen-temen memahami konsep awal virtualisasi.


Kalo diliat dari gambar diatas, virtual machine dapat berjalan dengan mengakses resource yang di share oleh induk/hostnya dimana virtual machine tersebut berjalan. Bagaimana vm-vm tersebut dapat berjalan? Nah disinilah fungsi penting dari hypervisor, hypervisor lah yang bertugas untuk melakukan scheduling resource.

Nah apa saja sih yang dapat di jadikan virtual? Saya coba jabarkan dibawah bedasarkan konsep dari yang saya pelajari di vmware yah.

CPU Physical VS CPU Virtual

Gambar diatas menunjukan perbedaan arsitektur fisik dan arsitektur virtual, virtualisasi CPU ini menekankan pada performance dan berjalan langsung benar-benar diatas CPU si induk/fisik. 
Nah yang harus diperhatikan disini adalah meskipun beberapa platform teknologi virtualisasi menjamin sebuah overcommitment (kemampuan platform tsb menjalankan resource secara bersamaan dalam satu waktu) ini bukan berarti tanpa batas. Dan yang harus diingat juga, CPU virtualization hampir di semua platform bukan lah sebuah emulator, dengan kata lain apabila banyak VM berjalan diatas sebuah hypervisor ini sangat memungkinkan terjadinya resource contention

Note :
Resource Contetion adalah kondisi dimana tiap-tiap mesin virtual berebut resource dari induk/hostnya. Hal ini memungkinkan terjadinya degradasi performance resource secara keseluruhan terutama vm-vm yang ada di dalam host tersebut.

Memory Physical VS Memory Virtual

Kalo sebelumnya kita membahas CPU kita beralih membahas Memory. Nah kalo dari gambar diatas pada environment non-virtual, Operating System benar-benar menguasai seluruh resource memory yang dimiliki oleh si Host/Induk. Singkatnya dalam environment non-virtual apabil host memiliki memory 4GB maka OS system yang di install di Host tsb pun menguasai 4GB resource memory.

Berbeda cerita apabila system yang kita miliki bekerja di virtual environment, resource memory yang dimiliki si Host 4 GB belum tentu vm-vm nya memiliki resource memory yang sama dengan si host, bisa jadi VM-A 1GB, VM-B 2GB, VM-C 1GB. Pertanyaannya itu, bagaimana mereka bekerja? Pada environment virtual, layer virtualisasi akan menciptakan space address memory yang berkedekatan ketika VM di create. Cara kerja seperti inilah yang memungkinkan hypervisor menjalankan dan melakukan schedulling virtual machine secara simultan sekaligus melindungi memory masing-masing VM agar tidak diakses oleh yang lainnya.

Yang harus dipahami disini ialah persamaan konsep bahwa hampir di semua platform teknologi sharing termasuk memory seperti ini bukanlah sebuah emulator, oleh karena itu pembagian resource memory ketika proses deployment harus diperhatikan dengan baik untuk mencegah resource contention.

Network Physical VS Network Virtual

Nah bagian ini agak seru dibahas sebab ini merupakan komponen kunci virtual environment berjalan dengan baik. Virtual Ethernet Adapters dan Virtual Switches adalah kunci bagaimana vm-vm di dalam sebuah host dapat berhubungan dengan internet ataupun public infrastruktur. 
Hal penting yang harus diinget ialah, VM di dalam host dapat dikonfigurasi agar mempunyai lebih dari satu virtual ethernet.
Hal lain yang harus diinget, Virtual Switches di dalam virtual-environment bertugas untuk membuat VM yang ada di dalam host tersebut saling berkomunikasi dengan protocol yang sama. Nah di dalam platform VMware bahkan Virtual Switches support standard VLAN protocol yang bisa di integrasikan dengan beberapa perangkat seperti Cisco, Juniper, dsb. Yang lebih canggihnya lagi Virtual Switches di platform vmware (yang saya pelajari) mampu melakukan segmentasi VLAN. Saya masih belum tau apakah di Platform Openstack atau Hyper-V mampu melakukan hal yang sama, seharusnya bisa sih.

Nah sekian dulu yah temen-temen semoga berguna. :)

1 comment: