Pengertian
Virtualisasi adalah sebuah metode untuk menyediakan suatu duplikat dari sebuah sistem beserta komponen-komponen perangkat kerasnya. Beberapa guest – profil pengguna dalam suatu sistem – dapat dijalankan dalam satu sistem, dan setiap guest tersebut akan bertindak layaknya sistem operasi native yang memiliki kontrol penuh terhadap semua komponen sistem.
Sedikit Sejarah
Virtualisasi dimulai dari sebuah metode yang digunakan IBM untuk memisahkan para pengguna dengan menyediakan masing-masing pengguna sebuah execution environment (lingunkan eksekusi) pada mainframe IBM. Sekarang, dengan perkembangan dan kemajuan sistem, CPU dalam hal performa, dan teknik-teknik inovatif dalam software, virtualisasi adalah fitur yang sering dijumpai di data center dan bahkan komputer pribadi. Karena popularitas nya, para pengembang CPU menambahkan fitur untuk mendukung virtualisasi. Hal ini diyakini menciptakan snowball effect yang akan terus berkembang seiring perkembangan virtualisasi dan hardware support.
Full-virtualisation dan Paravirtualisation
Virtualisasi memiliki dua jenis utama: full-virtualisation dan paravirtualisation. Konsep full virtualisation awalnya diperkenalkan oleh IBM pada tahun 1966 sebagai solusi software pertama untuk virtualisasi server. Full-virtualisation menggunakan translasi biner dan teknik-teknik pendekatan direct. Dalam full virtualisation, sistem tamu diisolir secara menyeluruh oleh mesin virtual dari virtualisation layer dan hardware. Contoh dari full virtualisation adalah Microsoft dan sistem Parallels.
Sementara itu, paravirtualisation adalah suatu kategori dari virtualisasi CPU yang menggunakan hypercalls untuk operasi-operasi yang mengatur instruksi pada saat waktu compile. Dalam paravirtualisation, sistem tamu tidak terisolir secara penuh namun terisolir secara parsial dari virtualisation layer dan hardware. Contoh dari paravirtualisation adalah WMware dan Xen.
Arsitektur Virtualisasi
Arsitektur virtualisasi adalah sebuah model konseptual yang merinciskan susunan dan hubungan antara komponen-komponen tertentu yang terlibat dalam sesuatu yang bersifat virtual, seperti sistem operasi, server, perangkat penyimpanan, atau netowork resources.
Umumnya, virtualisasi didasari oleh hypervisor. Hypervisor mengisolir sistem operasi dan aplikasi dari perangkat komputer utama agar mesin host dapat menjalankan berbagai mesin virtual sebagai ‘tamu’ yang dapat berbagi resource, seperti siklus prosesor, ruang memori, bandwidth jaringan, dsb.
Hypervisor
Semua mesin virtual memiliki yang namanya hypervisor, atau dalam kata lain virtual machine manager (pengelola mesin sistem). Hypervisor memiliki fungsi untuk membuat dan menjalankan mesin virtual. Hypervisor dibagi menjadi tiga jenis:
- Hypervisor tipe 0 – hypervisor ini diterapkan di level perangkat keras dan membutuhkan beberapa modifikasi untuk dilakukan terhadap sistem operasi nya agar dapat beroperasi dengan benar. Hypervisor tipe 0 merupakan sebuah contoh dari paravirtualisasi.
- Hypervisor tipe 1 – hypervisor ini menyediakan fitur-fitur beserta environment (lingkungan) yang dibutuhkan untuk membuat, menjalankan, dan mengelola guest virtual machines (mesin-mesin virtual tamu). Setiap tamu memiliki semua perangkat lunak yang umumnya terpasang di suatu sistem native penuh, seperti sistem operasi, driver perangkat, aplikasi, akun pengguna, dll.
- Hypervisor tipe 2 – hypervisor ini secara sederhana adalah aplikasi yang berjalan pada sistem operasi lain tanpa mengetahui jika virtualisasi sedang berjalan. Mereka tidak memilki dukungan hardware atau host yang membuatnya harus melakukan semua langkah-langkah virtualisasi sendiri dalam konteks proses.
Hypervisor memanfaatkan dukungan hardware apapun yang disediakan saat mengoptimalkan CPU scheduling, manajemen memori, dan modul I/O demi menyediakan pengguna dengan resource seoptimal mungkin sekaligus menjaga hypervisor nya dari sistem tamunya sendiri dan suatu tamu dengan tamu lain.
Intel VT-x/AMD-V dan Intel VT-d/AMD-Vi
Intel VT-x/AMD-V adalah virtualisasi dari CPU. VT-x/AMD-V memungkinkan mesin virtual tamu untuk berjalan pada level privilege di CPU yang memungkinkan pengoperasian yang baik dan benar. Sedangkan Intel VT-d/AMD-Vi adalah fitur CPU yang memungkinkan virtualisasi dari resource I/O.
Emulasi
Emulasi digunakan saat sistem tamu yang dicompile memiliki arsitektur yang berbeda dari arsitektur sistem host. Setiap instruksi yang ingin dieksekusi oleh sistem tamu harus diterjemahkan terlebih dahulu agar dapat dibaca oleh perangkat keras native milik sistem host. Meskipun metode ini mengorbankan performa, kompromi tersebut terseimbangkan oleh kegunaannya dalam menjalankan program-program lama pada hardware baru yang mungkin tidak kompatibel, seperti menjalankan gim-gim konsol lama pada hardware terbaru.
Menerapkan virtualisasi adalah hal yang susah, apalagi saat dukungan hardware minim. Semakin banyak fitur yang disediakan oleh sistem, semakin mudah virtualisasi untuk diterapkan, dan semakin baik performa dari sistem guest.
Riset saat ini sedang meluaskan penggunaan dari virtualisasi. Unikernel bertujuan untuk meningkatkan efisiensi dan mengurangi permukaan serangan keamanan dengan cara mengcompile suatu aplikasi beserta library dan resource kernelnya menjadi satu bilangan biner dengan satu address space yang berjalan pada suatu mesin virtual. Sementara itu, partitioning hypervisors menyediakan eksekusi aman, operasi real-time, dan fitur-fitur lain yang dulunya hanya ada untuk aplikasi yang berjalan pada dedicated hardware.
Kelebihan dan Kekurangan dari Virtualisasi
Virtualisasi memiliki banyak manfaat:
- Penggunaan hardware: server fisik umumya tidak pernah memakan semua kapasitas yang telah diberikannya. Oleh karena itu, virtualisasi dapat mengoptimalkan semua kapasitas hardware agar hardware benar-benar digunakan secara optimal dan efisien.
- Manajemen: mesin virtual dapat dibuat dan dikonfigurasi secara otomatis demi mengelola resource pool
- Konsumsi energi: karena virtualisasi memungkinkan berbagai aplikasi untuk berjalan pada jumlah hardware yang lebih sedikit, konsumsi energi lebih kecil.
- Ruang: Membutuhkan ruang yang lebih sedikit.
- Perencaan emergensi: pemindahan mesin virtual dari satu resource pool ke resource pool lain dapat dilakukan.
Namun, virtualisasi juga memiliki beberapa kekurangan:
- Biaya implementasi bisa mahal.
- Munculnya resiko keamanan yang terjadi karena terbaginya resource dan data suatu host sistem.
- Munculnya isu skalabilitas karena banyaknya entiti yang menggunakan resource yang sama.
Green IT dengan Virtualisasi
Data center umumnya menggunakan banyak daya yang jika dibandingkan dapat digunakan untuk menakomodasi kebutuhan energi ribuan rumah. Tingginya penggunaan daya tersebut memaksa pengelola data center dan pecinta lingkungan untuk mencari cara untuk menguranginya. Virtualisasi menjadi kandidat untuk melakukan hal tersebut.
Dalam konteks data center, virtualisasi adalah memasang infrastruktur virtual yang memungkinkan beberapa sistem operasi dan aplikasi untuk berjalan pada jumlah server yang lebih sedikit, yang membantu mengurangi penggunaan energi. Disaat jumlah server berkurang, ukuran bangunan untuk mengakomodasi server pun juga berkurang. Beberapa manfaat dari virtualisasi yang secara langsung memengaruhi efisiensi dan berkontribusi terhadap lingkungan adalah:
- Dihapusnya Planned downtime dengan cara memindahkan sebuah mesin virtual dari satu server ke server lain/
- Menyeimbangkan secara dinamis workload dalam suatu grup server dan secara otomatis menyediakan failover untuk aplikasi virtual.
- Alokasi resource terkelola dan terjaga lebih baik.
- Virtualisasi meningkatkan kemampuan grup server untuk berbagi utilitas.
- Tingkat penggunaan server dapat meningkat sebanyak 80% dibandingkan dengan 10% atau 15% (yang umumnya terjadi jika tidak menggunakan virtualisasi).