Sebuah Virtual Machine (VM) yang cukup istilah umum untuk banyak teknologi virtualisasi.
Ada banyak variasi pada teknologi virtualisasi, tetapi yang utama adalah:
- Virtualisasi Tingkat Perangkat Keras
- Virtualisasi Tingkat Sistem Operasi
qemu-kvm
dan VMWare
merupakan contoh dari yang pertama. Mereka menggunakan hypervisor untuk mengelola lingkungan virtual di mana sistem operasi penuh berjalan. Misalnya, pada qemu-kvm
sistem Anda dapat memiliki satu VM yang menjalankan FreeBSD, yang lain menjalankan Windows, dan yang lain menjalankan Linux.
Mesin virtual yang dibuat oleh teknologi ini berperilaku seperti komputer individu yang terisolasi untuk tamu. Ini memiliki CPU virtual, RAM, NIC, grafik dll yang menurut tamu adalah artikel asli. Karena itu, banyak sistem operasi yang berbeda dapat diinstal pada VM dan mereka bekerja "di luar kotak" tanpa modifikasi yang diperlukan.
Meskipun ini sangat mudah, karena banyak OS akan diinstal tanpa banyak usaha, ia memiliki kelemahan karena hypervisor harus mensimulasikan semua perangkat keras, yang dapat memperlambat segalanya. Alternatifnya adalah perangkat keras para-virtual, di mana perangkat dan driver virtual baru dikembangkan untuk tamu yang dirancang untuk kinerja di lingkungan virtual. qemu-kvm
sediakan virtio
kisaran perangkat dan driver untuk ini. Kelemahan dari ini adalah bahwa OS tamu harus didukung; tetapi jika didukung, manfaat kinerja sangat besar.
lxc
adalah contoh Virtualisasi Tingkat Sistem Operasi, atau wadah. Di bawah sistem ini, hanya ada satu kernel yang diinstal - kernel host. Setiap kontainer hanyalah sebuah isolasi dari proses userland. Misalnya, server web (misalnya apache
) dipasang di sebuah wadah. Sejauh menyangkut server web, satu-satunya server yang terinstal adalah dirinya sendiri. Wadah lain mungkin menjalankan server FTP. Server FTP itu tidak mengetahui instalasi server web - hanya miliknya sendiri. Wadah lain dapat berisi instalasi penuh pengguna distro Linux (selama distro itu mampu berjalan dengan kernel sistem host).
Namun, tidak ada instalasi sistem operasi yang terpisah saat menggunakan wadah - hanya contoh layanan pengguna yang terisolasi. Karena itu, Anda tidak dapat menginstal platform yang berbeda dalam wadah - tanpa Windows di Linux.
Wadah biasanya dibuat dengan menggunakan a chroot
. Ini membuat root privat terpisah ( /
) untuk proses bekerja. Dengan membuat banyak root pribadi individu, proses (server web, atau distro Linux, dll) berjalan di sistem file yang terisolasi. Teknik yang lebih maju, seperti cgroups
dapat mengisolasi sumber daya lain seperti jaringan dan RAM.
Ada pro dan kontra untuk keduanya dan banyak perdebatan panjang berjalan yang terbaik.
- Wadah lebih ringan, karena OS lengkap tidak diinstal untuk masing-masing; yang merupakan kasus untuk hypervisors. Karena itu mereka dapat berjalan pada perangkat keras spec'd yang lebih rendah. Namun, mereka hanya dapat menjalankan tamu Linux (di host Linux). Juga, karena mereka berbagi kernel, ada kemungkinan bahwa wadah yang dikompromikan dapat mempengaruhi yang lain.
- Hypervisor lebih aman dan dapat menjalankan OS yang berbeda karena OS lengkap diinstal di masing-masing VM dan para tamu tidak mengetahui VM lain. Namun, ini menggunakan lebih banyak sumber daya pada host, yang harus relatif kuat.