Kursus
Mesin virtual (VM) adalah komponen inti dari infrastruktur TI. VM merupakan emulasi komputer fisik berbasis perangkat lunak yang memberikan fleksibilitas logistik dan komputasi.
Dalam artikel ini, saya akan menjelaskan mesin virtual, cara kerjanya, manfaatnya, use case umum, dan banyak lagi!
Apa itu Mesin Virtual (VM)?
Mesin virtual adalah teknologi yang menirukan sistem komputasi lengkap mulai dari CPU, memori, penyimpanan, antarmuka jaringan, hingga OS.
VM meminjam sumber daya dari komputer fisik untuk menghasilkan komputer virtual ini. Misalnya, jika sebuah komputer memiliki 8 CPU dan RAM 16 GB, kita dapat memvirtualisasi lingkungan dengan 4 CPU dan RAM 8 GB, dipisahkan dari perangkat keras fisik.
Kita mengandalkan hypervisor, perangkat lunak yang mengendalikan virtualisasi sumber daya perangkat keras dan mengelola beberapa lingkungan virtual, untuk mengelola banyak VM pada satu set perangkat keras.
Mesin Virtual vs. Mesin Fisik
Penting untuk memahami bagaimana mesin virtual dapat berbeda dari mesin fisik.
Mari mulai dengan memperjelas perbedaan antara perangkat keras dan perangkat lunak. Perangkat keras mengacu pada komponen fisik suatu sistem, seperti motherboard, CPU, memori, GPU, dan penyimpanan. Perangkat lunak, seperti sistem operasi atau program lain, berjalan di atas perangkat keras.
Mesin fisik berjalan langsung pada perangkat keras. Di sisi lain, VM menjalankan perangkat lunak yang membuat perangkat keras yang “divirtualisasi”. Seperti yang telah disebutkan, sistem dasar mungkin berjalan dengan RAM 64 GB, tetapi kita dapat memvirtualisasi RAM 32 GB untuk dibagikan ke mesin virtual.
Karena VM dapat berbagi sumber daya perangkat keras, kita dapat mengalokasikan hanya sumber daya yang diperlukan oleh sebuah VM secara efisien. Misalnya, jika kita memiliki server yang bertenaga, kita dapat menjalankan beberapa VM yang melakukan banyak tugas secara paralel dengan hanya sumber daya yang diperlukan untuk setiap VM menyelesaikan tugasnya. Ini dapat meningkatkan pemanfaatan sumber daya secara keseluruhan dan biaya.
Tabel berikut membandingkan mesin virtual dan mesin fisik secara berdampingan:
|
Fitur |
Mesin virtual (VM) |
Mesin fisik |
|
Ketergantungan perangkat keras |
Berjalan pada perangkat keras tervirtualisasi yang disediakan oleh perangkat lunak. |
Berjalan langsung pada komponen perangkat keras fisik. |
|
Alokasi sumber daya |
Berbagi sumber daya perangkat keras (mis., RAM, CPU) dengan VM lain. |
Sumber daya perangkat keras sepenuhnya terdedikasi. |
|
Skalabilitas |
Sangat dapat diskalakan; beberapa VM dapat berjalan pada satu mesin fisik. |
Dibatasi oleh perangkat keras mesin fisik. |
|
Efisiensi |
Memungkinkan pemanfaatan sumber daya yang lebih baik dengan mengalokasikan hanya sumber daya yang diperlukan. |
Dapat menyebabkan perangkat keras kurang termanfaatkan. |
|
Fleksibilitas |
Mudah dikonfigurasi ulang dan direplikasi. |
Kurang fleksibel; memerlukan penyesuaian atau penggantian fisik. |
|
Biaya |
Biaya lebih rendah karena berbagi sumber daya. |
Biaya lebih tinggi karena setiap mesin memerlukan perangkat kerasnya sendiri. |
|
Kinerja |
Ada sedikit overhead karena virtualisasi. |
Kinerja lebih tinggi karena penggunaan perangkat keras langsung. |
Jenis-Jenis Mesin Virtual
Ada dua jenis utama mesin virtual: sistem dan proses. Yang satu menirukan seluruh sistem operasi, sedangkan yang lain menirukan satu aplikasi:
Mesin virtual sistem
VM sistem adalah yang paling sering kita bayangkan saat membicarakan VM. VM ini mensimulasikan seluruh sistem operasi, seperti satu komputer Linux utuh. Satu perangkat keras dapat mensimulasikan beberapa instance OS dengan cara ini. Ini berguna jika kita memerlukan beberapa lingkungan untuk melakukan hal yang berbeda.
Mesin virtual cloud adalah contoh yang umum. Di dalamnya, seluruh lingkungan OS dihosting dan diakses dari jarak jauh melalui Internet, menjadikannya ideal untuk infrastruktur yang dapat diskalakan.
Mesin virtual proses
VM proses adalah proses tunggal yang berjalan pada sistem operasi host. Mereka bukan sistem lengkap, melainkan lingkungan yang lebih kecil yang memungkinkan komputer apa pun menjalankan aplikasi yang mungkin tidak native terhadap sistem operasi dasarnya. Misalnya, Java Virtual Machine memungkinkan mesin apa pun menjalankan aplikasi Java secara native.
VM proses lebih ringan dibandingkan VM sistem dan banyak digunakan untuk menjalankan aplikasi terisolasi tertentu, terutama dalam skenario pengembangan dan debugging.
|
Jenis VM |
Deskripsi |
Use case |
|
Mesin virtual sistem |
Mensimulasikan seluruh mesin fisik, termasuk perangkat keras dan OS. |
Menjalankan banyak sistem operasi, konsolidasi server, dan pengujian. |
|
Mesin virtual proses |
Menjalankan satu aplikasi atau proses, menyediakan lingkungan terisolasi. |
Eksekusi aplikasi lintas platform, pengembangan, dan debugging. |
Komponen Mesin Virtual
Setiap mesin virtual memiliki beberapa komponen inti. Walau implementasi persisnya dapat berbeda, semuanya harus mencakup bagian serupa. Mari kita tinjau pada bagian ini.
1. Hypervisor
Secara umum, hypervisor adalah lapisan perangkat lunak yang menginisialisasi dan mengelola mesin virtual. Ia mengelola sumber daya antara VM dan mesin fisik.
Ada dua jenis hypervisor:
- Hypervisor Tipe 1 berjalan langsung di atas bare metal dan dijalankan dari server itu sendiri. Biasanya memiliki akses langsung ke sumber daya server.
- Hypervisor Tipe 2 umumnya dipasang pada sistem operasi host. Mereka tidak memiliki kendali penuh atas sumber daya komputer dan justru dikelola oleh sistem operasi host.
2. Perangkat keras virtual
Hypervisor akan mengalokasikan perangkat keras virtual ke VM. Ini berarti memisahkan sumber daya fisik dari mesin secara virtual dan memberikannya ke lingkungan virtual. Itu bisa berarti membagi RAM, inti CPU, dan sumber daya komputasi lain agar VM dapat menjalankan proses.
3. Sistem operasi tamu
Sistem operasi tamu berjalan di dalam VM. Tidak harus sama dengan sistem operasi host dan bisa berupa sistem operasi apa pun. VM yang berbeda pada hypervisor atau server yang sama bahkan dapat memiliki sistem operasi yang berbeda bergantung pada use case-nya.
4. Disk virtual
VM sering memiliki disk virtual untuk menyimpan informasi sementara saat berjalan. Terkadang, kita memindahkan data dari disk virtual ke sistem penyimpanan aktual komputer host, tetapi hal itu dilakukan dengan hati-hati untuk mencegah kerusakan pada host.

Diagram arsitektur server yang menjalankan tiga mesin virtual. Sumber gambar: DataCamp.
Mesin Virtual vs. Container
Metode virtualisasi populer lainnya adalah containerization. Meskipun memiliki tujuan yang mirip, mesin virtual dan container cukup berbeda dalam implementasinya. Mari kita lihat perbedaannya.
- Mesin virtual dirancang untuk mereplikasi keseluruhan perangkat, termasuk perangkat kerasnya. Itu berarti VM akan mereplikasi hal-hal seperti motherboard, CPU, perangkat jaringan, dan seterusnya untuk memastikan aplikasi apa pun yang berjalan di VM tampak berjalan pada perangkat keras yang independen.
- Container, sebaliknya, dirancang untuk menjalankan aplikasi perangkat lunak tertentu apa pun lingkungannya. Mereka tidak menginisialisasi sumber dayanya sendiri, melainkan berjalan di atas sumber daya komputer host.

Diagram arsitektur server yang menjalankan tiga container. Sumber gambar: DataCamp.
Kapan menggunakan VM vs. container
Gunakan VM saat Anda perlu menjalankan beberapa sistem operasi secara paralel dan memerlukan pengelolaan sumber daya yang terpisah. VM juga lebih disukai saat Anda memerlukan jumlah sumber daya yang konsisten dan dapat diprediksi untuk proses Anda.
Container, di sisi lain, ideal untuk penerapan aplikasi yang ringan. Karena container berbagi sumber daya, penting untuk memastikan server Anda dapat menangani beberapa container sekaligus dan mengalokasikan sumber daya dengan tepat.
Jika Anda baru mengenal konsep ini, Anda mungkin akan terbantu dengan kursus tentang konsep containerization dan virtualisasi untuk memahami use case-nya. Untuk pembahasan lebih mendalam tentang perbedaan VM dan container, lihat artikel blog yang membandingkan container vs. mesin virtual.
Manfaat Mesin Virtual
Mesin virtual memiliki banyak manfaat, termasuk peningkatan efisiensi sumber daya dan keamanan. Penggunaan VM yang tepat dapat membuat infrastruktur teknologi Anda lebih sederhana dan tangguh. Mari kita lihat lebih dekat manfaatnya:
Efisiensi sumber daya dan penghematan biaya
Karena VM berbagi perangkat keras yang sama, Anda dapat memperoleh pemanfaatan yang jauh lebih besar dari server fisik dengan menggunakan VM. Menggabungkan berbagai lingkungan mengurangi kebutuhan untuk membeli perangkat keras yang spesifik untuk suatu use case dan memungkinkan penggunaan sumber daya bersama serta penghematan biaya secara keseluruhan.
Isolasi dan keamanan
Karena setiap VM berjalan terpisah dari sistem host, VM secara alami terisolasi. Ini meningkatkan keamanan dengan meminimalkan risiko satu sistem yang crash atau dibobol menjadi masalah. Biasanya tidak ada komunikasi antarsesama VM, dan mereka tidak saling bergantung, sehingga mudah untuk mematikan VM yang bermasalah atau dengan cepat mengisolasi isu keamanan.
Fleksibilitas dan portabilitas
VM menawarkan fleksibilitas yang besar bagi infrastruktur TI karena mudah direplikasi. Ini menyederhanakan saat beberapa lingkungan perlu dijalankan secara bersamaan, karena dapat berbagi instruksi start-up yang sama. Hal ini juga memudahkan pengujian, pencadangan, dan pemulihan bencana.
Use Case Umum untuk Mesin Virtual
Mari bahas beberapa penggunaan VM yang lebih umum. VM dapat melakukan tugas apa pun yang bisa dilakukan pada komputer biasa dan sangat berharga untuk berbagai operasi!
Lingkungan pengujian dan pengembangan
Developer sering menggunakan VM untuk membuat lingkungan pengujian dan pengembangan bagi perangkat lunak baru atau patch. VM memudahkan untuk menguji perubahan program pada berbagai ekosistem untuk pengujian menyeluruh tanpa memengaruhi mesin host. Satu skrip dapat digunakan untuk menerapkan perubahan yang sama di berbagai VM untuk pengujian.
Konsolidasi server
Para profesional mengonsolidasikan beberapa server fisik menjadi lebih sedikit server dengan menggunakan VM. Ini mengurangi biaya pemeliharaan perangkat keras secara keseluruhan dan menghemat ruang di ruang server. Ini juga meningkatkan pemanfaatan sumber daya, karena mesin fisik tidak lagi terikat pada satu lingkungan atau tugas saja.
Menjalankan aplikasi warisan
Seiring perubahan teknologi, sistem operasi modern mungkin tidak lagi mampu mendukung proses warisan (legacy). Menggunakan VM dapat mempertahankan aplikasi warisan ini sambil dimodernisasi, sehingga operasional dapat terus berjalan tanpa kendala.
Pemulihan bencana dan pencadangan
Dengan meningkatnya volume data dan informasi, VM dapat berfungsi sebagai cadangan cepat dari seluruh lingkungan untuk meningkatkan ketangguhan dalam suatu sistem. Jika satu VM crash pada satu server fisik, salinan VM yang sama dapat terus berjalan atau mengambil alih. Ini adalah komponen inti dari komputasi awan.
Komputasi awan
Mayoritas cloud berjalan di atas virtualisasi. Platform cloud seperti AWS, Azure, dan Google Cloud dapat menyediakan infrastruktur yang dapat diskalakan dan fleksibel karena mudah untuk menyalakan dan mematikan mesin virtual. Mereka dapat dengan cepat membuat salinan virtual dari seluruh situs web atau program untuk mendukung permintaan yang meningkat dan kemudian mematikannya saat tidak lagi diperlukan.
Untuk mempelajari lebih lanjut tentang bagaimana komputasi awan memanfaatkan virtualisasi, lihat kursus memahami komputasi awan.
Mesin Virtual dalam Data Science
Berkat fleksibilitas dan kegunaannya, VM merupakan alat yang sangat baik untuk data science! Berikut beberapa dari banyak penggunaannya di bidang ini:
Lingkungan pengembangan terisolasi
Seperti halnya software engineer dapat menggunakan VM untuk membangun lingkungan pengembangan yang unik, data scientist dapat menggunakan VM untuk membuat lingkungan terisolasi bagi proyek data yang berbeda.
Sebagai contoh, Anda dapat menggunakan satu VM untuk membangun model prediktif di Python dan yang lain untuk prapemrosesan data dengan R. Pemisahan ini memungkinkan beberapa proyek yang memerlukan komputasi intensif berjalan pada lingkungan berbeda secara bersamaan, sehingga meningkatkan efisiensi.
Reproduksibilitas dalam eksperimen data science
Data scientist sering kali perlu dapat mereproduksi hasil. Misalnya, saat melatih model deep learning, Anda dapat membagikan sebuah VM kepada rekan kerja yang mencakup versi TensorFlow, pustaka, dan dataset yang sama. Ini memastikan konsistensi dalam eksperimen dan menghilangkan risiko perbedaan lingkungan yang memengaruhi hasil.
Skalabilitas untuk proyek big data
Seiring pertumbuhan proyek, beberapa klaster mesin virtual di cloud mungkin diperlukan. Bayangkan melatih model pemrosesan bahasa alami pada terabyte data teks; penyedia cloud seperti AWS dapat secara otomatis mendistribusikan beban kerja ke beberapa VM. Sebagai contoh, alat seperti Apache Spark dapat memanfaatkan klaster virtual untuk menangani komputasi skala besar secara efisien.
Perangkat Lunak Mesin Virtual Populer
Ada banyak alat yang memungkinkan Anda menjalankan mesin virtual di komputer Anda dan di lingkungan enterprise. Berikut beberapa yang paling populer:
VMware
VMware adalah salah satu alat virtualisasi paling populer untuk lingkungan enterprise. Ia menawarkan dukungan yang kuat dan solusi berbasis cloud. VMware bekerja sama dengan klien untuk menyediakan alat virtualisasi desktop dan server, tergantung kebutuhan mereka. Hypervisor utama mereka adalah VMware ESXi Tipe 1, yang memungkinkan virtualisasi server dengan mudah dan hadir dengan antarmuka HTML 5 yang mudah digunakan.
Microsoft Hyper-V
Hyper-V milik Microsoft adalah hypervisor yang disesuaikan untuk lingkungan Windows Server. Artinya semua virtualisasi memerlukan OS Windows untuk berjalan dan memanfaatkan partisi disk. Hyper-V memungkinkan virtualisasi desktop virtual dengan mudah di lingkungan Windows Server dan merupakan solusi yang sangat baik bagi mereka yang ingin tetap berada di ekosistem Windows atau bahkan Azure.
VirtualBox
VirtualBox adalah salah satu perangkat lunak virtualisasi open-source paling populer. Ia memungkinkan pengguna membuat desktop virtual apa pun di komputer mereka sendiri. VirtualBox menawarkan antarmuka yang lugas dan dapat memanfaatkan image disk untuk kemudahan reproduksibilitas. Ini adalah alat pengantar yang hebat ke dunia virtualisasi dan sangat direkomendasikan untuk latihan dan pengalaman.
KVM (Kernel-based Virtual Machine)
Kernel Linux memungkinkan Anda membuat mesin yang disebut KVM. Setiap sistem Linux modern hadir dengan KVM dan memungkinkan pengguna mengubah perangkat keras berbasis Linux apa pun menjadi hypervisor. KVM memanfaatkan perangkat keras yang ada dan sering dikelola menggunakan perangkat lunak virtualisasi seperti Red Hat.
Kesimpulan
Mesin virtual merupakan bagian integral dari ekosistem TI dengan memungkinkan Anda membuat beberapa lingkungan virtual dari satu server secara cepat. VM sering dikelola oleh perangkat lunak hypervisor, yang membuat dan mengalokasikan sumber daya sesuai kebutuhan. Ini memungkinkan pemanfaatan sumber daya, reproduksibilitas, ketahanan, dan efisiensi yang lebih besar, terutama saat beberapa proses perlu berjalan secara paralel.
Untuk mengeksplorasi konsep ini dan memahami bagaimana VM dibandingkan dengan teknologi seperti container, lihat kursus tentang konsep containerization dan virtualisasi. Ini adalah cara yang bagus untuk memperdalam pemahaman Anda tentang teknologi esensial ini!
FAQs
Apakah VM bisa memakan terlalu banyak sumber daya?
Ada kemungkinan mengalokasikan sumber daya berlebihan ke sebuah VM. Jika Anda melakukannya, buat ulang VM dengan sumber daya yang lebih sedikit menggunakan perangkat lunak manajemen Anda.
Apakah ada masalah keamanan dengan VM?
Karena VM biasanya dirancang untuk sepenuhnya terisolasi dari sistem lainnya, umumnya hanya ada risiko keamanan minimal terkait penggunaannya.
Apa saja use case utama untuk sebuah VM?
Kita umumnya menggunakan VM untuk memastikan alokasi sumber daya yang tepat bagi beragam tugas, seperti algoritma machine learning, pengelolaan situs web, dan pemrograman berbasis cloud. Ini hanyalah beberapa contoh cara menggunakan VM.
Apakah ada cara terbaik untuk membuat VM?
Tidak ada satu VM optimal yang cocok untuk semua tujuan. VM dirancang untuk disesuaikan dengan kebutuhan spesifik, dan lebih baik menyesuaikan VM dengan tujuan spesifik daripada membuat VM yang bisa melakukan semuanya.
Perangkat lunak VM populer apa yang bisa saya gunakan untuk mencoba virtualisasi?
Saya sangat merekomendasikan mencoba VMware untuk memulai.
Saya seorang data scientist dengan pengalaman dalam analisis spasial, machine learning, dan pipeline data. Saya pernah bekerja dengan GCP, Hadoop, Hive, Snowflake, Airflow, dan proses data science/engineering lainnya.

