Apakah mungkin untuk memasang mesin virtual di dalam mesin virtual lain

30

Saya telah bermain dengan mesin virtual latley, dan bertanya-tanya apakah saya bisa menjalankan mesin virtual di dalam mesin virtual?
Apa itu mungkin?
Apakah ini praktis?

Penguji101
sumber
3
Alasan praktisnya adalah jika Anda menyewa server. Apakah server itu fisik atau virtual tidak masalah - itu server saya. Dan jika saya ingin menginstal VirtualPC atau Virtual Server di server saya: itu urusan saya.
Ian Boyd
2
Itu sebenarnya bukan alasan praktis, karena "kepraktisan" memasang VM di dalam VM pada akhirnya akan bergantung pada apakah itu "praktis" untuk mengimplementasikan kemampuan ini dalam platform HW + SW yang dipilih. Hanya karena seseorang "ingin" melakukannya tidak membuatnya praktis.
Joe Internet
1
Bagi siapa pun yang bertanya-tanya mengapa orang ingin melakukan ini, inilah alasan saya, meskipun saya akui itu bukan alasan "dunia nyata" dan bahwa saya tidak dapat benar-benar memikirkan salah satu dari itu. Saya sedang belajar untuk ujian RHCSA tetapi saya tidak memiliki akses ke sistem dengan virtualisasi perangkat keras. Oleh karena itu, saya berharap untuk mencapai ini pada mesin virtual RHEL yang berjalan sebagai instance Amazon AWS. Karena mesin AWS (hampir pasti) mesin virtual itu sendiri, menjalankan KVM di atasnya akan membutuhkan VM bersarang.
Stephen C

Jawaban:

27

Nesting VMs adalah sesuatu yang telah dilakukan untuk selamanya pada perangkat keras IBM Mainframe. Perangkat keras itu melakukan banyak hal untuk membuat prosesnya sangat sangat efisien. Anda dapat membuat VM bersarang ke kedalaman yang arbitrer dan berfungsi dengan sangat baik.

Perangkat keras PC baru-baru ini agak membuat ini hampir tidak mungkin. Sebuah dokumen di situs web VMware membahasnya, tetapi intinya adalah Anda dapat membuat VM bersarang 2 dalam, tetapi hanya pada perangkat keras yang sangat modern yang mendukung virtualisasi perangkat keras yang sebenarnya (VT-x atau AMD-V), dan kedalaman VM kedua haruslah menjalankan gaya lama BT / virtualisasi gaya terjemahan biner. Ada juga batasan ketat pada monitor virtual yang dapat Anda jalankan pada tamu dalam.

Tak perlu dikatakan, itu tidak didukung dan saya berharap itu akan menjadi sangat flakey jika Anda melakukan sesuatu yang aneh bahkan jauh (seperti Hyper-V di bawah ESX). Dan kinerjanya tidak akan baik, terlepas dari apakah itu stabil.

chris
sumber
2
Dokumen itu telah berubah secara signifikan sejak ini ditulis, seperti halnya yang canggih. Jawaban ini, seperti yang ditulis, benar-benar tidak berlaku hari ini. Pertimbangkan untuk memperbaruinya.
Michael Hampton
1
@MichaelHampton Komentar Anda sangat skeptis dan terdengar optimis; dapatkah ANDA memberikan jawaban atau tautan yang diperbarui ke satu?
ILMostro_7
Berikut ini tautan ke halaman fedora-wiki yang menjelaskan cara mengaktifkan nested virt di KVM .
ILMostro_7
1
Hanya untuk konfirmasi - Sejauh menawarkan Hyper-v dari MS, saya percaya VM bersarang tidak didukung hingga saat ini.
RBT
2

Ya kamu bisa. Misalnya, di Linux, Anda dapat menjalankan Xen dengan beberapa VM yang menjalankan OpenVZ, VirtualServer atau beberapa jenis sistem VM lainnya. Ini sangat mungkin dan juga sangat praktis tergantung pada tujuan Anda.

Salah satu alasan yang dapat saya pikirkan untuk melakukan ini adalah menjalankan beberapa server pada satu mesin fisik. Apakah Anda menjalankannya sebagai satu tingkat hirarki VM atau beberapa yang tergantung pada rencana isolasi sumber daya Anda.

sybreon
sumber
2

Jika Anda memerlukan beberapa spesifik, katakanlah warisan, sistem yang akan divirtualisasi Anda selalu dapat melakukannya dalam perangkat lunak, bersarang bukan masalah saat itu. Coba qemu, saya melakukannya 2 level dengannya, tetapi Anda bisa masuk lebih dalam, kinerjanya mungkin akan membuatnya tidak berguna. BTW, arsitektur PC adalah pertanda yang dibuat oleh IBM, tetapi untuk penggunaan yang sama sekali berbeda dibandingkan dengan apa yang digunakan untuk hari ini.

Michael
sumber
1

Saya tidak percaya sebagian besar paket virtualisasi akan memungkinkan Anda untuk menjalankan VM di VM. Saya tahu bahwa VMware akan memeriksa kapan diinstal untuk melihat apakah itu diinstal dalam VM, dan saya berharap produk lain melakukan hal yang sama. Saya tidak berpikir instruksi CPU yang diperlukan akan disajikan melalui dari hypervisor yang berjalan pada perangkat keras melalui VM untuk mencapai VM kedua. Jika berhasil, Anda juga akan menambahkan overhead tanpa mendapat imbalan apa pun.

Adapun apakah itu praktis - saya tidak mengerti mengapa. Jika Anda membutuhkan VM lain, Anda bisa menjalankannya di sebelah yang sudah Anda jalankan. Saya tidak bisa membayangkan kasus di mana Anda harus memiliki VM yang berjalan di dalam VM lain. Biaya tambahan tambahan tanpa keuntungan proporsional dari beberapa sumber daya akan membuat ini tidak praktis.

Baumgart
sumber
1

Iya nih. Bahkan ada cara untuk menjalankan VMware ESX / vSphere di mesin virtual. Saya tidak tahu mengapa Anda ingin berlatih, tetapi itu sudah dilakukan.

Kevin Kuphal
sumber
Saya telah melihat orang-orang yang ingin menguji ESX dalam VM, tetapi instalasi membutuhkan kerja tambahan melewati metode instalasi normal. Itu bukan sesuatu yang bekerja di luar kotak.
baumgart
1

Ya, Anda BISA tetapi suka banyak hal tidak berarti Anda harus. Saya telah melihat server ESX tervirtualisasi menjalankan mesin virtual yang memiliki server ESX virtual lain di dalamnya. Memang itu adalah tes hanya untuk melihat apakah itu bisa dilakukan (dan itu bisa) saya benar-benar tidak akan merekomendasikan itu.

SQLCtebal
sumber
1

Itu tergantung pada teknik virtualisasi. Jika Anda menggunakan solusi yang bukan virtualisasi "nyata" seperti UML maka Anda dapat menjalankannya di dalam, katakanlah, VMWare. Atau diri mereka sendiri dalam hal ini.

Instalasi berbasis UML dapat berjalan di dalam VM VMware dan instalasi berbasis UML lainnya (bahkan bersarang). Metrik kinerja tidak akan cantik!

David Spillett
sumber
1

Ya, itu mungkin tapi sangat lambat.

Ini sangat berguna jika Anda menyewa server dengan IP publik yang dialokasikan terbatas (yang misalnya tergantung pada alamat MAC Anda untuk tidak meracuni jaringan penyedia server Anda); dan Anda ingin VM IP Anda dijembatani untuk berkomunikasi langsung dengan internet. Jadi, ketika Anda tidak dapat memiliki lebih dari, misalnya, 3 alamat IP publik, tetapi Anda membutuhkan 10 VM, itu ide yang cukup bagus untuk memiliki VM di VM global: Anda hanya akan menggunakan salah satu IP publik yang diberikan dan kemudian memiliki banyak VM dijembatani sub.

Tapi Anda benar-benar bisa menggunakan campuran bridge dan konfigurasi jaringan yang dirutekan, itu hanya lebih sulit mengenai konfigurasi.

Yannovitch
sumber
0

Sejauh yang saya tahu itu tidak mungkin, tetapi VMware ESX dapat berjalan di VMware Workstation misalnya. IMHO itu hanya baik untuk pengujian.

Saabi
sumber
0

Seperti banyak orang sudah siap mengatakan: tentu saja itu mungkin. Itu tergantung pada seberapa baik perangkat keras VM ditiru dan perangkat lunak virtualisasi apa yang Anda gunakan. VMWare Workstation, setidaknya, tidak ingin Anda melakukan virtualisasi.

Adapun jika itu praktis, mungkin kita harus mengajukan pertanyaan kembali kepada Anda: mengapa Anda perlu melakukan hal semacam itu? Apa yang salah dengan menjalankan dua VMs berdampingan? Dan sampai tingkat berapa Anda bertanya apakah ini praktis? Artinya, jika Anda khawatir praktis mengatur dan mengkonfigurasi, mungkin tidak. Jika Anda lebih khawatir tentang penggunaan praktisnya, sekali lagi, saya tidak bisa memikirkan apa pun yang saya perlukan untuk melakukan ini kecuali saya mencari bug dalam perangkat lunak virtualisasi atau sesuatu.

mrduclaw
sumber
0

Anda bisa, tetapi saya tidak merekomendasikannya.

Performa biasanya sangat terpukul dalam seluruh proses ini pada mesin "guest of the guest". Jika Anda benar-benar harus melakukan ini tanpa perangkat keras dan perangkat lunak khusus, semoga sukses untuk Anda. Namun, ini umumnya bukan praktik yang baik terutama dengan metode umum yang digunakan untuk mencapai virtualisasi.

Saya tahu bahwa jika Anda mencoba menjalankan VMWare dalam sistem VMWare, itu akan mengeluh dan tidak membiarkan Anda melakukannya. Saya tidak yakin tentang VirtualBox. Saya tahu beberapa orang yang, dengan alasan apa pun, menyebarkan kontainer Docker dalam kontainer Docker (atau begitulah kata mereka). Moral dari cerita ini adalah: walaupun mungkin, mungkin tidak pintar untuk melakukannya kecuali Anda benar-benar tahu apa yang Anda lakukan.

Saya pribadi tidak tahu ada kasus penggunaan aktual untuk ini di luar jaringan.

Juggernaut Mythical
sumber
2
Perangkat keras "khusus" yang Anda butuhkan adalah hampir semua CPU yang diproduksi dalam tujuh atau delapan tahun terakhir.
Michael Hampton