Apa itu Virtual Machine (VM)?

Mungkin anda datang kesini untuk mencari jawaban singkat, mungkin ingin mengerti sepenuhnya, tenang aja kok, disini ada dua duanya.

Jawaban singkatnya, virtual machine adalah emulasi berbasis perangkat lunak (software) dari sebuah komputer fisik. Maka dalam virtual machine ini, layaknya sebuah komputer, punya cpu, memory, storage, dan lainnya (namun virtual dan dijalankan diatas sebuah hypervisor).

Jawaban panjangnya gini aja sih, bilang saja kita punya sebuah komputer. Komputer ini pasti memiliki CPU (Central Processing Unit), memory, penyimpanannya, Input/Output (I/O), dan lainnya. Dan biasanya, kita akan install sistem operasi (juga disebut OS atau Operating System) langsung ke komputer ini, misalnya install Windows.

Ini contoh sederhananya, jika kita punya sebuah komputer biasa:

Ini memang gambar yang bener-bener sederhana sih, tapi seharusnya ini udah cukup untuk penjelasan kali ini, di gambar ini terlihat bahwa ada satu host machine, yang dipasang sebuah OS langsung, dan menjalankan aplikasi-aplikasi biasa.

Tapi gimana kalau kita ingin punya lebih dari satu komputer, atau kita bagi bagi? Jika kita punya suatu komputer dengan CPU 8 core, dan 16 GB ram, apakah gabisa dibagi dua saja, jadi ada dua komputer, masing masing 4 core dan 8 GB ram? Nah disini kita bisa menggunakan virtual machine, dengan menjalankan sebuah hypervisor.

Tugasnya hypervisor ini, adalah untuk membagi-bagi resource atau sumber daya dalam komputer ini, memungkinkan setiap bagian yang terbagi ini, jalan terisolasi masing masing, meskipun secara hardware atau perangkat kerasnya, mereka menggunakan perangkat yang sama. Jadi setiap bagian ini, dapat jalan sendiri, dengan OS nya sendiri.

Mungkin ini dapat digambarkan dengan cara yang sama sederhananya seperti yang tadi, jadi gini:

Kelihatan ya, dalam host machine yang sama, bisa punya beberapa virtual machine yang berbeda, semua dengan OSnya sendiri, dan masing masing juga bisa punya spesifikasi yang beda, misal satu punya 2 vCPU dan 4GB RAM, sedangkan yang lain bisa hanya diberikan 1vCPU (asal tersedia dari host).

vCPU sendiri adalah satuan processing unit yang biasa digunakan dalam pembuatan VM, dan biasanya dihubungkan dengan banyaknya thread yang dimiliki oleh CPU host. Contohnya saja, mini pc yang saya miliki menggunakan i3 9100T, yang memiliki 4 core dan 4 thread, dan berarti dapat dijadikan 4 vCPU.

CPU yang punya multithreading seperti i7 7700, bisa memiliki 2 thread per core, di spec-nya juga terlihat 4 core dan 8 thread, dan i7 7700 akan memiliki maksimal 8 vCPU. Sebagai alternatif jika butuh performa single core lebih baik, biasanya hypervisor juga memberikan kita pilihan untuk menggunakan 1 core sepenuhnya untuk sebuah vCPU.

Jenis Jenis Hypervisor

Ada dua jenis hypervisor utama, yaitu:

  • Hypervisor Tipe 1 (Bare Metal), yaitu hypervisor yang langsung dijalankan diatas hardware. Biasanya lebih cocok untuk penggunaan dengan skala besar, contohnya VMware EXSI.
  • Hypervisor Tipe 2 (Hosted), yaitu hypervisor yang dapat jalan diatas OS, biasanya lebih mudah digunakan dan diinstall, contohnya VMware Workstation atau VirtualBox.

Kegunaan dari VM

Lingkungan terisolasi yang didapat oleh VM dapat berarti:

  • Jika satu VM mengalami serangan malware atau kerusakan di OSnya, VM lain dalam hardware yang sama tidak akan terkena dampaknya. Ini sebabnya VM sering digunakan untuk Malware Analysis atau Pentesting. (ini pembahasan yang menarik, tapi lain kali saja)
  • Developer yang ingin mengetes suatu konfigurasi dapat mensimulasikan komputernya menggunakan VM saja, tanpa perlu sebuah komputer lain secara fisik.

Dan masih banyak manfaat lain.

Kekurangannya

  • VM agak pelan untuk dijalankan, karena hypervisor harus mensimulasikan ulang hardware dari mesin virtualnya secara manual dari awal, mengetes konfigurasi dapat membutuhkan waktu beberapa menit.
  • Hypervisor juga membutuhkan overhead, yaitu sumber daya yang ia gunakan untuk melakukan semua virtualisasi dan pekerjaannya. Maka virtual machine yang dibuat oleh hypervisor mungkin tidak akan sekuat sebuah komputer fisik dengan spesifikasi yang sama.

Virtual Machine sangat bermanfaat, namun tidak selalu cocok untuk setiap kegunaan, di post selanjutnya akan membahas tentang Docker, yang dapat digunakan sebagai alternatif dari virtual machine dalam beberapa kasus, dan akan dilihat juga manfaatnya.

One response to “Apa itu Virtual Machine (VM)?”

  1. absolute cinema

Leave a Reply

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

Collaborative Insights from an Aspiring Engineer