Czy można skonfigurować maszynę wirtualną w innej maszynie wirtualnej?

30

Grałem z maszynami wirtualnymi latley i zastanawiałem się, czy mogę uruchomić maszynę wirtualną w maszynie wirtualnej?
Czy to możliwe?
Czy to jest praktyczne?

Tester101
źródło
3
Praktycznym powodem jest wynajem serwera. To, czy serwer jest fizyczny czy wirtualny, nie powinno mieć znaczenia - to mój serwer. A jeśli chcę zainstalować VirtualPC lub Virtual Server na moim serwerze: to moja firma.
Ian Boyd
2
To nie jest tak naprawdę praktyczny powód, ponieważ „praktyczność” instalacji maszyny wirtualnej w maszynie wirtualnej będzie ostatecznie zależeć od tego, czy „praktyczne” jest wdrożenie tej możliwości na wybranej platformie HW + SW. To, że ktoś „chce” to zrobić, nie czyni tego praktycznym.
Joe Internet
1
Dla każdego, kto zastanawia się, dlaczego ktoś może chcieć to zrobić, oto mój powód, chociaż przyznaję, że nie jest to powód „prawdziwego świata” i że tak naprawdę nie mogę wymyślić żadnego z nich. Studiuję do egzaminu RHCSA, ale nie mam dostępu do systemu z wirtualizacją sprzętową. Dlatego miałem nadzieję to osiągnąć na maszynie wirtualnej RHEL działającej jako instancja Amazon AWS. Ponieważ maszyna AWS jest (prawie na pewno) samą maszyną wirtualną, uruchomienie KVM na niej wymagałoby zagnieżdżonych maszyn wirtualnych.
Stephen C

Odpowiedzi:

27

Zagnieżdżanie maszyn wirtualnych to coś, co zostało zrobione na zawsze na sprzęcie IBM Mainframe. Ten sprzęt robi wiele rzeczy, aby proces był bardzo wydajny. Możesz mieć maszyny VM zagnieżdżone na dowolnej głębokości i działa to bardzo dobrze.

Sprzęt komputerowy bardzo niedawno sprawił, że było to prawie niemożliwe. Dokument VMware witryna internetowa omawia, ale sedno jest to, że można mieć VM zagnieżdżone 2 głębokie, ale tylko w bardzo nowoczesny sprzęt, który obsługuje prawdziwe wirtualizacji sprzętowej (VT-x lub AMD-V), a druga głębokość VM musi być uruchomienie starszej stylizacji wirtualizacji BT / binarnego stylu tłumaczenia. Istnieją również poważne ograniczenia dotyczące wirtualnych monitorów, które można uruchomić na wewnętrznym gościu.

Nie trzeba dodawać, że nie jest obsługiwany i spodziewam się, że będzie naprawdę płatny, jeśli zrobisz coś nawet zdalnie dziwnego (jak Hyper-V pod ESX). A wydajność nie będzie dobra, niezależnie od tego, czy jest stabilna.

Chris
źródło
2
Ten dokument znacznie się zmienił od czasu jego napisania, podobnie jak najnowszy stan wiedzy. Ta odpowiedź, tak jak została napisana, naprawdę nie ma dziś zastosowania. Rozważ zaktualizowanie go.
Michael Hampton
1
@MichaelHampton Twoje komentarze są bardzo sceptyczne i brzmią optymistycznie; czy możesz podać zaktualizowaną odpowiedź lub link do niej?
ILMostro_7,
Oto link do strony fedora-wiki opisującej, jak włączyć zagnieżdżoną virt w KVM .
ILMostro_7,
1
Tylko dla potwierdzenia - w zakresie, w jakim chodzi o ofertę Hyper-v od MS, uważam, że zagnieżdżona maszyna wirtualna nie jest obsługiwana do daty.
RBT
2

Tak, możesz. Na przykład w systemie Linux możesz uruchomić Xen z wieloma maszynami wirtualnymi z uruchomionym OpenVZ, VirtualServer lub innym rodzajem systemu VM. Jest to z pewnością możliwe, a także bardzo praktyczne w zależności od celu.

Jednym z powodów, dla których mogłem to zrobić, jest uruchomienie wielu serwerów na jednej fizycznej maszynie. To, czy uruchomisz go jako jeden poziom hierarchii maszyn wirtualnych, czy wiele, zależy od planu izolacji zasobów.

sybreon
źródło
2

Jeśli potrzebujesz jakiegoś konkretnego, powiedzmy, starszego systemu do wirtualizacji, zawsze możesz to zrobić w oprogramowaniu, zagnieżdżanie nie jest wtedy problemem. Spróbuj qemu, zrobiłem to na 2 poziomie głęboko, ale możesz zejść głębiej, wydajność prawdopodobnie uczyni go jednak bezużytecznym. BTW, architektura komputerów PC była nazewnictwem stworzonym przez IBM, ale do zupełnie innych zastosowań niż w dzisiejszych czasach.

MichaelS
źródło
1

Nie wierzę, że większość pakietów wirtualizacji pozwala na uruchomienie maszyny wirtualnej na maszynie wirtualnej. Wiem, że VMware sprawdzi, kiedy zostanie zainstalowany, aby sprawdzić, czy jest instalowany na maszynie wirtualnej, i mam nadzieję, że inne produkty zrobią to samo. Nie sądzę, aby niezbędne instrukcje procesora były przedstawiane od hiperwizora działającego na sprzęcie do maszyny wirtualnej, aby dotrzeć do drugiej maszyny wirtualnej. Jeśli to zadziała, będziesz również dodawać koszty ogólne, nie otrzymując nic w zamian.

Jeśli chodzi o to, czy jest to praktyczne - nie rozumiem dlaczego. Jeśli potrzebujesz innej maszyny wirtualnej, możesz po prostu uruchomić ją obok już uruchomionej. Nie mogę sobie wyobrazić przypadku, w którym musisz mieć maszynę wirtualną działającą wewnątrz innej maszyny wirtualnej. Dodatkowe koszty ogólne bez proporcjonalnego zwiększenia niektórych zasobów sprawiłyby, że byłoby to niepraktyczne.

baumgart
źródło
1

Tak. Istnieją nawet sposoby uruchamiania VMware ESX / vSphere na maszynie wirtualnej. Nie wiem, dlaczego miałbyś chcieć w praktyce, ale zostało to zrobione.

Kevin Kuphal
źródło
Widziałem ludzi, którzy chcą przetestować ESX na maszynie wirtualnej, ale instalacja wymaga dodatkowej pracy poza zwykłą metodą instalacji. To nie jest coś, co działa po wyjęciu z pudełka.
baumgart
1

Tak, MOŻESZ, ale tak wiele rzeczy nie oznacza, że ​​powinieneś. Widziałem zwirtualizowany serwer ESX z uruchomioną maszyną wirtualną, na której jest inny wirtualny serwer ESX. To prawda, że ​​był to test, aby sprawdzić, czy da się to zrobić (i można). Naprawdę nie poleciłbym tego.

SQLChicken
źródło
1

To zależy od techniki wirtualizacji. Jeśli korzystasz z rozwiązań, które nie są „prawdziwą” wirtualizacją, takich jak UML, możesz uruchomić te wewnątrz, powiedzmy, VMWare. Albo sami w tej sprawie.

Instalacje oparte na UML mogą działać w maszynach wirtualnych VMWare i innych instalacjach opartych na UML (nawet zagnieżdżonych). Jednak wskaźniki wydajności nie będą ładne!

David Spillett
źródło
1

Tak, jest to możliwe, ale bardzo powolne.

Jest to szczególnie przydatne, jeśli wynajmujesz serwer z ograniczonym publicznym adresem IP (który zależy na przykład od adresu MAC, aby nie zatruć sieci dostawcy serwera); i że chcesz, aby Twój adres IP maszyny wirtualnej był zmostkowany w celu bezpośredniej komunikacji z Internetem. Jeśli więc nie możesz mieć więcej niż, na przykład, 3 publiczny adres IP, ale potrzebujesz 10 maszyn wirtualnych, dobrym pomysłem jest posiadanie maszyn wirtualnych w globalnej maszynie wirtualnej: użyjesz tylko jednego z podanych publicznych adresów IP, a następnie mają wiele maszyn wirtualnych z mostkami.

Ale możesz użyć kombinacji mostka i routowanej konfiguracji sieci, jest to trudniejsze w konfiguracji.

Yannovitch
źródło
0

O ile wiem, nie jest to możliwe, ale VMware ESX może na przykład działać na VMware Workstation. IMHO nadaje się tylko do testowania.

Saabi
źródło
0

Jak wielu ludzi już gotowych powiedział: oczywiście jest to możliwe. To zależy od tego, jak dobrze emulowany jest sprzęt VM i jakiego oprogramowania do wirtualizacji używasz. VMWare Workstation przynajmniej nie chce, abyś go zwirtualizował.

Jeśli jest to praktyczne, może powinniśmy zadać ci pytanie: dlaczego miałbyś robić takie rzeczy? Co jest nie tak z uruchomieniem dwóch maszyn wirtualnych obok siebie? W jakim stopniu pytasz, czy to jest praktyczne? Oznacza to, że jeśli martwisz się praktyczną konfiguracją i konfiguracją, prawdopodobnie nie. Jeśli bardziej martwisz się jego praktycznym użyciem, znowu nie mogę wymyślić niczego, co musiałbym to zrobić, chyba że szukam błędów w oprogramowaniu do wirtualizacji lub coś w tym rodzaju.

mrduclaw
źródło
0

Możesz, ale nie polecam tego.

Wydajność jest zwykle bardzo mocno uderzana w całym tym procesie na maszynie „gościa gościa”. Jeśli naprawdę musisz to zrobić bez specjalistycznego sprzętu i oprogramowania, powodzenia. Jednak generalnie nie jest to dobra praktyka, zwłaszcza w przypadku powszechnych metod wykorzystywanych do osiągnięcia wirtualizacji.

Wiem, że jeśli spróbujesz uruchomić VMWare w systemach VMWare, narzeka i nie pozwoli ci tego zrobić. Nie jestem pewien co do VirtualBox. Znam kilka osób, które z jakiegokolwiek powodu wdrażają kontenery Docker w kontenerach Docker (a przynajmniej tak mówią). Morał tej historii jest taki: chociaż może być to możliwe, prawdopodobnie nie jest to mądre, chyba że naprawdę wiesz, co robisz.

Osobiście nie znam żadnego rzeczywistego przypadku użycia poza siecią.

Mityczny Juggernaut
źródło
2
Potrzebny „specjalistyczny” sprzęt to praktycznie każdy procesor wyprodukowany w ciągu ostatnich siedmiu lub ośmiu lat.
Michael Hampton