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?
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?
Odpowiedzi:
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.
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.
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.
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.
Tak. Istnieją nawet sposoby uruchamiania VMware ESX / vSphere na maszynie wirtualnej. Nie wiem, dlaczego miałbyś chcieć w praktyce, ale zostało to zrobione.
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.
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!
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.
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.
Tak. Spójrz tutaj:
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ą.