Virtualisierung: Gast im Gast?

9

Ist es sinnvoll, eine virtuelle Maschine mit einem "Master"
-Gast auszuführen und in diesem Master-Gast viele andere Gäste auszuführen?

Hat jemand das getestet? Ist es überhaupt möglich?
Gibt es bessere Möglichkeiten, um meine Ziele zu erreichen? (Lesen Sie weiter.)
(Ich habe nach "Gast in Gast" gegoogelt und nichts gefunden.)

Was ich tun möchte : Ich möchte verschiedene virtuelle Netzwerke mit Datenbank- und Anwendungsservern einrichten und testen sowie verschiedene Firewall-, DNS-Server-, Datenbankserver-Konfigurationen usw. testen.

Ich könnte dies tun, indem ich Gäste direkt auf meinem Host-Computer ausführe , aber dann muss ich möglicherweise die Netzwerkkonfiguration auf meinem Host ändern (z. B. dnsmasq konfigurieren ?), Je nachdem, welches Netzwerk-Setup ich testen möchte . Ich müsste auch jeden Gast einzeln starten. Wenn alle Gäste in einem Hauptgast ausgeführt werden, kann ich das Netzwerk auf diesem Hauptgast konfigurieren. Ich muss nur diesen Hauptgast starten und stoppen und Snapshots davon erstellen, um implizit alle darin ausgeführten Gäste zu starten, zu stoppen und einen Snapshot zu erstellen .

(Ich hätte viele Hauptgäste, wahrscheinlich immer nur einen, der gleichzeitig läuft.)

Ich verwende Ubuntu 11.4 und KVM mit Unterstützung für Hardwarevirtualisierung (AMD-V).
Glauben Sie, dass die Gäste im Gast von der Virtualisierung profitieren würden?

Update : Ich hätte nach "Nested Virtualization" googeln sollen, nicht nach "Guests in Guest". Jetzt finde ich viele Links :-) ZB dieses Beispiel für die tatsächliche Migration einer laufenden VM vom Host-Computer auf einen verschachtelten VM-Host: VMotion von physischem ESX 4 zu virtuellem ESX 4
Sie haben geantwortet, danke, dass Sie "Verschachtelte Virtualisierung" erwähnt haben: - )

Update : Leistungsinformationen für AMD-Prozessoren von 2008 : [...] Bis jetzt, wenn kvm einen Prozessor virtualisiert, sieht der Gast eine CPU, die dem Host-Prozessor ähnlich ist, jedoch keine Virtualisierungserweiterungen hat. Dies bedeutet, dass Sie keinen Hypervisor ausführen können, der diese Virtualisierungserweiterungen innerhalb eines Gasts benötigt (Sie können weiterhin Hypervisoren ausführen, die nicht auf diesen Erweiterungen basieren, z. B. VMware, jedoch mit geringerer Leistung). Mit den neuen Patches enthält die virtualisierte CPU die Virtualisierungserweiterungen. Dies bedeutet, dass der Gast einen Hypervisor, einschließlich kvm, ausführen und seine eigenen Gäste haben kann. (danke "wzzrd")

Update : Leistungsinformationen zu Intel-Prozessoren ab 2011 : "In der aktuellen Version von kvm in den Ubuntu-Repositorys wird die verschachtelte Virtualisierung mit Intel vmx nicht unterstützt. Mit den neuesten Patches für kvm ist dies möglich, aber noch in der Entwicklung."

KajMagnus
quelle
3
Halten Sie einen Kreisel bereit.
Nedm
Verschachtelte Virtualisierung ist möglich, aber Sie verdoppeln Ihre CPU-bezogene Leistungseinbuße und verschwenden RAM, da in den Standardkonfigurationen sowohl der Host-, der Master-Gast- als auch der "Gast" -Gast die gleichen Daten mehrmals zwischenspeichern und die E / A-Leistung katastrophal ist für Daten, die nicht zwischengespeichert wurden.
André Borie

Antworten:

3
  1. Lesen Sie hier mehr - http://blog.jasonruiz.com/2011/01/24/kvm-nested-virtualization-support/

  2. Der derzeitige Zweck von verschachtelter Tugend ist das Testen, aber ich denke, es sollte Hypervisoren testen, nicht Datenbanken, DNS usw.

Um solche Dienste zu testen, reicht meiner Meinung nach eine "normale" Virtualisierung aus.

Sie können einige verschiedene virtuelle Netzwerke mit verschiedenen DHCP / DNS / Routing-Diensten haben.

John
quelle
7

Was Sie tun möchten, ist möglich, aus Sicht der Leistung ist es einfach nicht wirklich praktisch.

user9517
quelle
2
Prägnant, auf den Punkt und wahr :)
wzzrd
6

ESXi kann sich selbst virtualisieren. Sie können ESXi also als Gast auf ESXi (oder ESX) ausführen.Geben Sie hier die Bildbeschreibung ein

Anweisungen finden Sie hier

JamesBarnett
quelle
3

Ich weiß nichts über andere Hypervisoren, aber es ist definitiv mit ESX / i möglich, wie hier beschrieben . Außerdem ist es mit Hyper-V definitiv nicht möglich, wie hier beschrieben .

Wo dies jedoch möglich ist, wird es nicht unterstützt und ist auch ziemlich nutzlos, außer zu Testzwecken. Ich persönlich habe es mit ESX gemacht, um einen VMware-Cluster zu testen, für den mindestens zwei ESX-Hosts, ein Virtual Center-Computer und ein gemeinsamer Speicher erforderlich waren. Zu diesem Zeitpunkt war weder mehr als ein Server noch ein "realer" Speicher verfügbar, daher habe ich virtuelle ESX-Hosts mit einer gemeinsam genutzten virtuellen Festplatte verwendet (genau wie beim Testen eines Microsoft-Clusters). Es hat funktioniert und es war auch nicht besonders schlecht bei der Leistung. Aber ich kann mir keinen Grund auf der Welt vorstellen, diese Art von Setup in einer Produktionsumgebung zu verwenden.

Massimo
quelle
1
Dies war ein interessantes Beispiel. Ich würde verschachtelte VMs auch zum Testen verwenden, wie Sie, nicht für die Produktion.
KajMagnus
0

kvm innerhalb von kvm funktioniert nicht, obwohl die inneren Gäste im Emulationsmodus auf reinem Qemu laufen können.

Ich würde die VMs auf einem einzelnen Host belassen, ohne die Dinge zu komplizieren

dyasny
quelle
Unwahr. Es ist sehr gut möglich und seit 2008 oder so. Link: linux-kvm.com/content/kvm-nested-virtualization-works
27.
1
Ja, mit sehr spezifischen CPU-Befehlssätzen und bei weitem nicht in der Nähe von Produktions- oder ernsthaften Testumgebungen. Das T / S möchte Netzwerkkonfigurationen und -dienste testen, nicht zusätzliche Hypervisoren. Warum also die Dinge so weit komplizieren? Zumal die Standard-Management-Tools. Sie haben Recht, weil kvm innerhalb von kvm unter bestimmten Bedingungen funktionieren kann , das war mein Fehler, aber die ursprüngliche Frage zu beantworten - dies ist nicht die beste Idee unter einem Hypervisor
dyasny
"Dies ist nicht die beste Idee unter einem Hypervisor": Nun , das ist wahr :) Hier, haben Sie eine positive Bewertung :)
wzzrd
LOL, nicht dass eine Gegenstimme so wichtig ist :)
dyasny
0

KVM ist wahrscheinlich nicht die beste Option für Ihren Zweck. Sie sollten Virtualbox ausprobieren.

Mit Virtualbox können Sie eine virtuelle Maschine in einer virtuellen Maschine erstellen, und die Netzwerk-Tools sind sehr praktisch.

erickzetta
quelle
1
Müll. KVM wird vollkommen ausreichen.
wzzrd
@wzzrd Ich habe nicht gesagt, dass KVM nicht ausreicht. Ich sagte, Virtualbox könnte in diesem Fall eine bessere Option sein, da es sich um eine komplexe Konfiguration handelt.
Erickzetta
Eigentlich mag ich es, KVM-VMs zu konfigurieren mit virsh:-)
KajMagnus
Unterstützung für VMX, SLAT (Second Level Address Translation), Para-Ops, verschachtelte Seiten und Computer innerhalb von Computern - diese Funktion wurde bereits in der 2.0-Hauptversion von VirtualBox eingeführt. virtualbox.org/wiki/Changelog-2.0
Bent Cardan
0

Haben Sie XenServer ausgecheckt? Die neue Beta-Version heißt "XenServer Boston". Lesen Sie hier mehr darüber:

http://blogs.citrix.com/2011/05/18/xenserver-boston-beta-program/

In den Versionshinweisen sehen Sie Folgendes:

Unterstützung für virtuelle Appliances. In XenCenter können Sie virtuelle VM-Appliances (vApps) mit mehreren VMs erstellen, deren Beziehungen zwischen den VMs für die Startsequenz während der Standortwiederherstellung verwendet werden. vApps können mithilfe des OVF-Standards (Open Virtualization Format) einfach importiert und exportiert werden

Mit dieser Funktion in Kombination mit Virtual Lans können Sie das erreichen, was Sie wollen. Ich bin nicht positiv, aber ich glaube, Sie können auch einen Schnappschuss aller VMs in der virtuellen Appliance gleichzeitig erstellen.

Bitte lassen Sie mich wissen, wenn Sie weitere Fragen zu XenServer haben (ich benutze es 2x täglich).

portforwardpodcast
quelle
-1

Ob es möglich ist oder nicht, spielt keine Rolle. Es macht einfach keinen Sinn. Sie gewinnen absolut nichts, wenn Sie VMs verschachteln, während Sie viel verlieren.

John Gardeniers
quelle
Tatsächlich halten es einige KVM-Entwickler für sinnvoll: Auf der KVM-Entwickler-Mailingliste befindet sich dieser Thread mit einem Patch für die Unterstützung verschachtelter Virtualisierung. Ich denke, die Entwickler scheinen ziemlich glücklich zu sein, wenn Sie weiterhin einige Antworten lesen.
KajMagnus
Ein Nicht-KVM-Entwickler, der verschachtelte Virtualisierung mag: "Eine andere Verwendung besteht darin, mehrere virtualisierte Netzwerke in einem Computer zu haben. Jedes Netzwerk hätte eine andere Konfiguration von Hosts. Ich habe darauf gewartet." (Von hier .)
KajMagnus
@KajMagnus, nur weil die Leute es wollen, heißt das nicht, dass es Sinn macht. Einige Leute können einfach nicht den Wald für den Wald sehen.
John Gardeniers
Sinnvoll zum Testen von Szenarien. Möchten Sie eine Test-Hypervisor-Bereitstellung bereitstellen, um zu sehen, wie sich eine bestimmte Funktion in einer neuen Version verhält? Starten Sie eine VM. Sie haben Recht, dass es für die spezielle Verwendung von OP nicht viel nützt.
Chris Thorpe
Die IBM VM-Mitarbeiter haben dies bei der Entwicklung neuer VM-Versionen immer getan. Wenn Sie interessiert sind, gibt es ein großartiges Papier darüber (z. B. S. 28).
Spaltung