Ist es möglich, eine virtuelle Maschine in einer anderen virtuellen Maschine einzurichten?

30

Ich habe latley mit virtuellen Maschinen gespielt und mich gefragt, ob ich eine virtuelle Maschine in einer virtuellen Maschine ausführen kann.
Ist es möglich?
Ist es praktisch

Tester101
quelle
3
Ein praktischer Grund ist, wenn Sie einen Server mieten. Ob der Server physisch oder virtuell ist, sollte keine Rolle spielen - es ist mein Server. Und wenn ich VirtualPC oder Virtual Server auf meinem Server installieren möchte: das ist meine Sache.
Ian Boyd
2
Dies ist kein praktischer Grund, da die "Praktikabilität" der Installation einer VM innerhalb einer VM letztendlich davon abhängt, ob es "praktisch" ist, diese Funktion in der ausgewählten HW + SW-Plattform zu implementieren. Nur weil jemand "will", macht es das nicht praktisch.
Joe Internet
1
Für alle, die sich fragen, warum man das tun möchte, hier ist mein Grund, obwohl ich zugebe, dass es kein Grund für die "reale Welt" ist und dass ich nicht wirklich an einen von diesen denken kann. Ich lerne für die RHCSA-Prüfung, habe aber keinen Zugriff auf ein System mit Hardware-Virtualisierung. Daher hatte ich gehofft, dies auf einer virtuellen RHEL-Maschine zu erreichen, die als Amazon AWS-Instanz ausgeführt wird. Da es sich bei der AWS-Maschine (fast sicher) um eine virtuelle Maschine handelt, sind für die Ausführung von KVM geschachtelte VMs erforderlich.
Stephen C

Antworten:

27

Das Verschachteln von VMs wurde für immer auf IBM Mainframe-Hardware durchgeführt. Diese Hardware leistet eine Menge, um den Prozess sehr, sehr effizient zu gestalten. Sie können VMs bis zu einer beliebigen Tiefe verschachteln lassen, was sehr gut funktioniert.

PC-Hardware hat dies in letzter Zeit kaum möglich gemacht. In einem Dokument auf der VMware-Website wird dies erläutert. Das Wichtigste ist jedoch, dass Sie VMs bis zu einer Tiefe von 2 verschachteln können, jedoch nur auf sehr moderner Hardware, die echte Hardwarevirtualisierung (VT-x oder AMD-V) unterstützt. Die zweite VM-Tiefe muss angegeben werden Ausführen der älteren BT / Binary Translation Style-Virtualisierung. Es gibt auch strenge Einschränkungen für die virtuellen Monitore, die Sie auf dem inneren Gast ausführen können.

Es ist unnötig zu erwähnen, dass es nicht unterstützt wird, und ich würde erwarten, dass es wirklich auffällig ist, wenn Sie etwas tun, das auch nur aus der Ferne seltsam ist (wie Hyper-V unter ESX). Und die Leistung wird nicht gut sein, unabhängig davon, ob sie stabil ist.

chris
quelle
2
Dieses Dokument hat sich seit seiner Erstellung erheblich geändert, ebenso wie der Stand der Technik. Diese Antwort, wie sie geschrieben wurde, ist heute wirklich nicht anwendbar. Erwägen Sie, es zu aktualisieren.
Michael Hampton
1
@MichaelHampton Ihre Kommentare sind sehr skeptisch und klingen optimistisch; Können Sie eine aktualisierte Antwort oder einen Link zu einer Antwort bereitstellen?
ILMostro_7
Hier ist ein Link zu einer Fedora-Wiki- Seite, die beschreibt, wie verschachtelte Virtuelle in KVM aktiviert werden .
ILMostro_7
1
Nur zur Bestätigung - Was das Hyper-V-Angebot von MS betrifft, glaube ich, dass geschachtelte VM bis dato nicht unterstützt wird.
RBT
2

Ja, du kannst. Unter Linux können Sie Xen beispielsweise mit mehreren VMs ausführen, auf denen OpenVZ, VirtualServer oder ein anderes VM-System ausgeführt wird. Dies ist mit Sicherheit möglich und je nach Verwendungszweck auch sehr praktisch.

Ein Grund, den ich mir dabei vorstellen könnte, ist die Ausführung mehrerer Server auf einer einzigen physischen Maschine. Ob Sie es als einzelne oder als mehrere Ebenen der VM-Hierarchie ausführen, hängt von Ihrem Ressourcenisolierungsplan ab.

Sybreon
quelle
2

Wenn Sie ein bestimmtes, beispielsweise älteres, zu virtualisierendes System benötigen, können Sie es jederzeit in Software ausführen. Die Verschachtelung ist dann kein Problem. Versuchen Sie qemu, ich habe es 2 Level tief damit gemacht, aber Sie können tiefer gehen, die Leistung wird es jedoch wahrscheinlich unbrauchbar machen. Übrigens, die PC-Architektur war ein von IBM hergestelltes Nomen, das jedoch für ganz andere Zwecke verwendet wurde als heute.

MichaelS
quelle
1

Ich glaube nicht, dass Sie mit den meisten Virtualisierungspaketen eine VM in einer VM ausführen können. Ich weiß, dass VMware bei der Installation überprüft, ob es in einer VM installiert ist, und ich hoffe, dass andere Produkte dies auch tun. Ich glaube nicht, dass die erforderlichen CPU-Anweisungen vom Hypervisor, der auf der Hardware bis zur VM ausgeführt wird, bis zur zweiten VM übermittelt werden. Wenn es funktioniert hat, würden Sie auch Overhead hinzufügen, ohne etwas dafür zu bekommen.

Ob es praktisch ist, verstehe ich nicht. Wenn Sie eine andere VM benötigen, können Sie diese einfach neben der bereits ausgeführten VM ausführen. Ich kann mir keinen Fall vorstellen, in dem eine VM in einer anderen VM ausgeführt werden muss. Der zusätzliche Aufwand ohne einen proportionalen Gewinn irgendeiner Ressource würde dies unpraktisch machen.

baumgart
quelle
1

Ja. Es gibt sogar Möglichkeiten, VMware ESX / vSphere in einer virtuellen Maschine auszuführen. Ich weiß nicht, warum Sie jemals in der Praxis wollen würden, aber es wurde getan.

Kevin Kuphal
quelle
Ich habe Leute gesehen, die ESX in einer VM testen wollten, aber die Installation erfordert zusätzliche Arbeit, die über die normale Installationsmethode hinausgeht. Es ist nicht etwas, das sofort funktioniert.
Baumgart
1

Ja, Sie KÖNNEN, aber so viele Dinge mögen, heißt nicht, dass Sie das sollten. Ich habe einen virtualisierten ESX-Server gesehen, auf dem eine virtuelle Maschine mit einem anderen virtuellen ESX-Server ausgeführt wird. Zugegeben, es war ein Test, nur um zu sehen, ob er durchgeführt werden konnte (und kann). Ich würde ihn wirklich nicht empfehlen.

SQLChicken
quelle
1

Das hängt von der Virtualisierungstechnik ab. Wenn Sie Lösungen verwenden, die keine "echte" Virtualisierung wie UML sind, können Sie diese beispielsweise in VMWare ausführen. Oder sich selbst für diese Angelegenheit.

UML-basierte Installationen können in VMWare-VMs und anderen UML-basierten Installationen (auch verschachtelt) ausgeführt werden. Die Performance-Metriken werden allerdings nicht besonders hübsch sein!

David Spillett
quelle
1

Ja, es ist möglich, aber sehr langsam.

Dies ist besonders nützlich, wenn Sie einen Server mit einer begrenzten öffentlichen IP-Adresse mieten (dies hängt beispielsweise von Ihrer MAC-Adresse ab, damit das Netzwerk Ihres Serveranbieters nicht vergiftet wird). und dass Sie möchten, dass Ihre VM-IP überbrückt wird, um direkt mit dem Internet zu kommunizieren. Wenn Sie also nicht mehr als beispielsweise 3 öffentliche IP-Adressen haben können, aber 10 VMs benötigen, ist es eine gute Idee, VMs in einer globalen VM zu haben: Sie verwenden nur eine Ihrer angegebenen öffentlichen IP-Adressen und dann habe viele unterbrückte VMs.

Sie können jedoch auch eine Mischung aus Bridge- und gerouteter Netzwerkkonfiguration verwenden. Die Konfiguration ist jedoch schwieriger.

Yannovitch
quelle
0

Soweit ich weiß , es ist nicht möglich, aber VMware ESX kann laufen in VMware Workstation zum Beispiel. IMHO ist es nur zum Testen gut.

Saabi
quelle
0

Wie viele Leute schon gesagt haben: Natürlich ist es möglich. Dies hängt davon ab, wie gut die VM-Hardware emuliert ist und welche Virtualisierungssoftware Sie verwenden. Zumindest VMWare Workstation möchte nicht, dass Sie es virtualisieren.

Wenn es praktisch ist, sollten wir Ihnen vielleicht die Frage stellen, warum Sie so etwas tun müssen. Was ist falsch daran, nur zwei VMs nebeneinander auszuführen? Und inwieweit fragst du, ob es praktisch ist? Das heißt, wenn Sie befürchten, dass das Einrichten und Konfigurieren praktisch ist, ist dies wahrscheinlich nicht der Fall. Wenn Sie sich mehr Sorgen über die praktische Verwendung machen, fällt mir nichts ein, wofür ich das tun müsste, es sei denn, ich suche nach Fehlern in der Virtualisierungssoftware oder so.

mrduclaw
quelle
0

Sie können, aber ich empfehle es nicht.

Die Leistung wird in diesem gesamten Prozess auf dem Computer "guest of the guest" normalerweise ziemlich stark beeinträchtigt. Wenn Sie dies wirklich ohne die spezielle Hard- und Software tun müssen, wünschen wir Ihnen viel Glück. Dies ist jedoch im Allgemeinen keine gute Vorgehensweise, insbesondere bei den gängigen Methoden zum Erreichen der Virtualisierung.

Ich weiß, dass Sie sich beschweren, wenn Sie versuchen, VMWare in VMWare-Systemen auszuführen, und dies nicht zulassen. Ich bin mir nicht sicher, was VirtualBox angeht. Ich kenne einige Leute, die aus irgendeinem Grund Docker-Container in Docker-Containern bereitstellen (oder so). Die Moral der Geschichte lautet: Es ist zwar möglich, aber wahrscheinlich nicht klug, es zu tun, es sei denn, Sie wissen wirklich, was Sie tun.

Ich persönlich kenne keinen konkreten Anwendungsfall dafür, der über die Vernetzung hinausgeht.

Mythischer Moloch
quelle
2
Die "spezialisierte" Hardware, die Sie benötigen, ist praktisch jede CPU, die in den letzten sieben oder acht Jahren hergestellt wurde.
Michael Hampton