Virtualisation: invité en invité?

9

Est-il logique d'exécuter une machine virtuelle avec un invité "maître"
et dans cet invité maître d'exécuter de nombreux autres invités?

Quelqu'un a-t-il testé cela? Est-ce même possible?
Existe-t-il de meilleures façons d'atteindre mes objectifs? (Lisez la suite.)
(J'ai cherché sur Google "invité en invité" et je n'ai rien trouvé)

Ce que je veux faire : je voudrais configurer et tester divers réseaux virtuels, avec des serveurs de base de données et d'applications, et tester différents pare-feu, serveur DNS, configurations de serveur de base de données, etc.

Je pourrais le faire en exécutant des invités directement sur mon ordinateur hôte, mais je pourrais alors avoir besoin de modifier la configuration réseau sur mon hôte (par exemple, configurer dnsmasq ?), En fonction de la configuration réseau que je suis sur le point de tester. Je devrais également commencer chaque invité individuellement. Alors que si tous les invités s'exécutent à l'intérieur d'un invité principal, je peux configurer le réseau sur cet invité principal, et je n'ai besoin que de démarrer et d'arrêter cet invité principal, et de prendre des instantanés de celui-ci, pour démarrer et arrêter implicitement et instantané tous les invités s'exécutant à l'intérieur. .

(J'aurais beaucoup de maîtres invités, probablement un seul à la fois.)

J'utilise Ubuntu 11.4 et KVM, avec prise en charge de la virtualisation matérielle (AMD-V).
Pensez-vous que les invités invités bénéficieraient de la virtualisation?

Mise à jour : j'aurais dû googler pour "Virtualisation imbriquée" et non "invités en invité". Maintenant, je trouve beaucoup de liens :-) Par exemple, cet exemple de migration d'une machine virtuelle en cours d'exécution de la machine hôte vers un hôte VM imbriqué: VMotion de ESX 4 physique à ESX 4 virtuel
Vous qui avez répondu, merci d'avoir mentionné "Virtualisation imbriquée": - )

Mise à jour : Informations sur les performances, pour les processeurs AMD, de 2008 : [...] jusqu'à présent, lorsque kvm virtualise un processeur, l'invité voit un processeur similaire au processeur hôte, mais sans extension de virtualisation. Cela signifie que vous ne pouvez pas exécuter un hyperviseur qui a besoin de ces extensions de virtualisation au sein d'un invité (vous pouvez toujours exécuter des hyperviseurs qui ne dépendent pas de ces extensions, tels que VMware, mais avec des performances inférieures). Avec les nouveaux correctifs, le processeur virtualisé inclut les extensions de virtualisation; cela signifie que l'invité peut exécuter un hyperviseur, y compris kvm, et avoir ses propres invités. (merci "wzzrd")

Mise à jour : Informations sur les performances des processeurs Intel, à partir de 2011 : "Il n'y a pas de support pour la virtualisation imbriquée avec Intel vmx dans la version actuelle de kvm dans les référentiels Ubuntu. Avec les derniers correctifs pour kvm c'est possible, mais il y en a encore en développement"

KajMagnus
la source
3
Gardez une toupie à portée de main.
nedm
La virtualisation imbriquée est possible, mais vous doublez votre pénalité de performances liée au processeur, gaspillez de la RAM car dans les configurations par défaut, les invités hôte, invité principal et "invité" se mettront mutuellement en cache les mêmes données plusieurs fois, et les performances d'E / S seront désastreuses pour les données qui n'ont pas été mises en cache.
André Borie

Réponses:

3
  1. C'est possible, lisez plus ici - http://blog.jasonruiz.com/2011/01/24/kvm-nested-virtualization-support/

  2. le but actuel de la virtuosité imbriquée est de tester, mais je pense que cela signifiait tester des hyperviseurs et non des bases de données, des DNS, etc ...

afin de tester de tels services, je pense que la virtualisation "normale" fera l'affaire.

vous pouvez avoir plusieurs réseaux virtuels différents, avec différents services dhcp / dns / routage.

John
la source
7

Ce que vous voulez faire est possible, ce n'est tout simplement pas vraiment pratique du point de vue des performances.

user9517
la source
2
Concis, au point et vrai :)
wzzrd
6

ESXi peut se virtualiser. Vous pouvez donc exécuter ESXi en tant qu'invité sur ESXi (ou ESX d'ailleurs).entrez la description de l'image ici

Itinéraire trouvé ici

JamesBarnett
la source
3

Je ne connais pas les autres hyperviseurs, mais c'est certainement possible avec ESX / i, comme discuté ici . En outre, ce n'est certainement pas possible avec Hyper-V, comme indiqué ici .

Cependant, lorsque cela est possible, il est totalement non pris en charge et également tout à fait inutile, sauf à des fins de test. Personnellement, je l'ai fait avec ESX pour tester un cluster VMware, qui nécessitait au moins deux hôtes ESX, une machine Virtual Center et du stockage partagé; Je n'avais pas plus d'un serveur ni de stockage "réel" disponible à ce moment-là, j'ai donc utilisé des hôtes ESX virtuels avec un disque virtuel partagé (tout comme je l'aurais fait pour tester un cluster Microsoft). Cela a fonctionné et ce n'était pas non plus terriblement mauvais en matière de performances. Mais je ne vois aucune raison au monde d'utiliser ce type de configuration dans un environnement de production.

Massimo
la source
1
C'était un exemple intéressant. J'utiliserais aussi des VM imbriquées pour les tests, comme vous, pas pour la production.
KajMagnus
0

kvm dans kvm ne fonctionnera pas, bien que les invités internes puissent fonctionner sur du qemu pur, en mode émulation.

Je laisserais les machines virtuelles sur un seul hôte, sans trop compliquer les choses

Dyasny
la source
Faux. C'est très possible et ce depuis environ 2008. Lien: linux-kvm.com/content/kvm-nested-virtualization-works
wzzrd
1
oui, avec des jeux d'instructions CPU très spécifiques, et loin des environnements de production ou de test sérieux. Le T / S veut tester les configurations et les services réseau, pas les hyperviseurs supplémentaires, alors pourquoi compliquer les choses jusqu'à présent? Surtout depuis les outils de gestion standard. Vous avez raison sur le fait que kvm au sein de kvm peut fonctionner, sous certaines conditions, c'était mon erreur, mais pour répondre à la question d'origine - ce n'est pas la meilleure idée sous aucun hyperviseur
dyasny
"ce n'est la meilleure idée sous aucun hyperviseur": maintenant c'est vrai :) ici, ayez un vote positif :)
wzzrd
LOL, pas qu'un vote positif soit si important :)
dyasny
0

KVM n'est probablement pas la meilleure option pour votre objectif, vous devriez essayer Virtualbox.

Avec Virtualbox, vous pouvez créer une machine virtuelle à l'intérieur d'une machine virtuelle, et les outils réseau sont très pratiques.

erickzetta
la source
1
Ordures. KVM suffira parfaitement.
wzzrd
@wzzrd Je n'ai pas dit que KVM ne suffisait pas. J'ai dit que Virtualbox peut être une meilleure option, dans ce cas, car c'est une configuration complexe.
erickzetta
En fait, j'aime configurer les machines virtuelles KVM avec virsh:-)
KajMagnus
prise en charge de VMX, traduction d'adresses de deuxième niveau (SLAT), para-ops, pages imbriquées, machines dans les machines - c'était une fonctionnalité introduite il y a longtemps dans la version majeure 2.0 de VirtualBox. virtualbox.org/wiki/Changelog-2.0
Bent Cardan
0

Avez-vous vérifié XenServer? La nouvelle version bêta s'appelle "XenServer boston". Pour en savoir plus, cliquez ici:

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

Dans les notes de version, vous verrez ce qui suit:

Prise en charge de l'appliance virtuelle. Dans XenCenter, vous pouvez créer des appliances virtuelles multi-VM (vApp), avec des relations entre les VM à utiliser avec la séquence de démarrage pendant Site Recovery. Les vApp peuvent être facilement importés et exportés à l'aide de la norme OVF (Open Virtualization Format)

En utilisant cette fonctionnalité combinée avec des réseaux locaux virtuels, vous pourrez accomplir ce que vous voulez. Je ne suis pas positif, mais je pense que vous pouvez également créer un instantané de tous les Vm dans l'appliance virtuelle à la fois.

Veuillez me faire savoir si vous avez d'autres questions sur XenServer (je l'utilise 2 fois par jour)

portforwardpodcast
la source
-1

Que ce soit possible ou non n'a pas d'importance. Cela n'a tout simplement pas de sens. Vous ne gagnez absolument rien en imbriquant des machines virtuelles, tout en perdant beaucoup.

John Gardeniers
la source
En fait, les / certains développeurs KVM pensent que cela a du sens: sur la liste de diffusion des développeurs KVM, il y a ce fil avec un correctif pour la prise en charge de la virtualisation imbriquée. Je pense que les développeurs semblent assez heureux, si vous continuez à lire certaines réponses.
KajMagnus
Un développeur non KVM qui aime la virtualisation imbriquée: "Une autre utilisation est d'avoir plusieurs réseaux virtualisés dans une même machine. Chaque réseau aurait une configuration différente d'hôtes. J'attendais cela." (À partir d' ici .)
KajMagnus
@KajMagnus, ce n'est pas parce que les gens le veulent que cela a du sens. Certaines personnes ne peuvent tout simplement pas voir le bois pour la forêt.
John Gardeniers
Est logique pour tester des scénarios. Vous voulez déployer un déploiement d'hyperviseur de test juste pour voir comment une fonctionnalité particulière se comporte dans une nouvelle version? Faites tourner une machine virtuelle. Vous avez raison de dire que ce n'est pas très utile pour l'utilisation particulière d'OP, cependant.
Chris Thorpe
Les gens d'IBM VM le faisaient tout le temps lors du développement de nouvelles versions de VM. Il y a un excellent document là- dessus (par exemple p. 28), si vous êtes intéressé.
fission