Virtualización: ¿Invitado en invitado?

9

¿Tiene sentido ejecutar una máquina virtual con un invitado "maestro",
y en ese invitado maestro se ejecutan muchos otros invitados?

¿Alguien ha probado esto? ¿Es posible?
¿Hay mejores maneras de lograr mis objetivos? (
Sigue leyendo.) (Busqué en Google "invitado en invitado" y no encontré nada)

Lo que quiero hacer : me gustaría configurar y probar varias redes virtuales, con bases de datos y servidores de aplicaciones, y probar diferentes firewalls, servidores DNS, configuraciones de servidores de bases de datos, etc.

Podría hacerlo ejecutando invitados directamente en mi computadora host, pero luego podría necesitar modificar la configuración de red en mi host (por ejemplo, ¿configurar dnsmasq ?), Dependiendo de la configuración de red que estoy a punto de probar. También necesitaría comenzar cada invitado individualmente. Mientras que si todos los invitados se ejecutan dentro de un invitado maestro, entonces puedo configurar la red en ese invitado maestro, y solo necesito iniciar y detener ese invitado maestro, y tomar instantáneas de él, para iniciar, detener y capturar instantáneamente a todos los invitados que se ejecutan dentro de él. .

(Tendría muchos invitados principales, probablemente solo uno corriendo a la vez).

Estoy usando Ubuntu 11.4 y KVM, con soporte de virtualización de hardware (AMD-V).
¿Crees que los invitados en el invitado se beneficiarían de la virtualización?

Actualización : debería haber buscado en Google "Virtualización anidada" y no "invitados en invitado". Ahora encuentro muchos enlaces :-) Por ejemplo, este ejemplo de migrar realmente una máquina virtual en ejecución desde la máquina host a una máquina virtual anidada: VMotion de ESX 4 físico a ESX 4 virtual
Usted que respondió, gracias por mencionar "Virtualización anidada": - )

Actualización : Información de rendimiento, para procesadores AMD, desde 2008 : [...] hasta ahora, cuando kvm virtualiza un procesador, el invitado ve una CPU que es similar al procesador host, pero no tiene extensiones de virtualización. Esto significa que no puede ejecutar un hipervisor que necesite estas extensiones de virtualización dentro de un invitado (aún puede ejecutar hipervisores que no dependen de estas extensiones, como VMware, pero con un rendimiento más bajo). Con los nuevos parches, la CPU virtualizada incluye las extensiones de virtualización; esto significa que el invitado puede ejecutar un hipervisor, incluido kvm, y tener sus propios invitados. (gracias "wzzrd")

Actualización : Información de rendimiento en los procesadores Intel, de 2011 : "No hay soporte para la virtualización anidada con Intel vmx en la versión actual de kvm en los repositorios de Ubuntu. Con los parches más nuevos para kvm es posible, pero todavía hay en desarrollo"

KajMagnus
fuente
3
Mantenga una peonza a mano.
nedm
La virtualización anidada es posible, pero duplica la penalización de rendimiento relacionada con la CPU, desperdicia RAM porque en las configuraciones predeterminadas, tanto el host, el invitado principal y los invitados "invitados" almacenan en caché los mismos datos varias veces, y el rendimiento de IO será desastroso para datos que no se almacenaron en caché.
André Borie

Respuestas:

3
  1. Es posible, lea más aquí: http://blog.jasonruiz.com/2011/01/24/kvm-nested-virtualization-support/

  2. El propósito actual de virt anidado es probar, pero creo que significa probar hipervisores, no bases de datos, dns, etc.

Para probar dichos servicios, creo que la virtualización "normal" servirá.

puede tener algunas redes virtuales diferentes, con diferentes servicios dhcp / dns / enrutamiento.

Juan
fuente
7

Lo que desea hacer es posible, simplemente no es realmente práctico desde el punto de vista del rendimiento.

usuario9517
fuente
2
Conciso, al grano y verdadero :)
wzzrd
6

ESXi puede virtualizarse a sí mismo. Por lo tanto, puede ejecutar ESXi como invitado en ESXi (o ESX para el caso).ingrese la descripción de la imagen aquí

Direcciones encontradas aquí

JamesBarnett
fuente
3

No sé sobre otros hipervisores, pero definitivamente es posible con ESX / i, como se discute aquí . Además, definitivamente no es posible con Hyper-V, como se discute aquí .

Sin embargo, donde esto es posible, es totalmente incompatible y también bastante inútil, a menos que sea con fines de prueba. Personalmente lo hice con ESX para probar un clúster de VMware, que requería al menos dos hosts ESX, una máquina del Centro Virtual y algo de almacenamiento compartido; No tenía más de un servidor ni ningún almacenamiento "real" disponible en ese momento, por lo que utilicé hosts ESX virtuales con un disco virtual compartido (tal como lo habría hecho para probar un clúster de Microsoft). Funcionó, y tampoco fue terriblemente malo en el rendimiento. Pero no se me ocurre ninguna razón en el mundo para usar este tipo de configuración en un entorno de producción.

Massimo
fuente
1
Este fue un ejemplo interesante. También usaría máquinas virtuales anidadas para las pruebas, como usted, no para la producción.
KajMagnus
0

kvm dentro de kvm no funcionará, aunque los invitados internos pueden ejecutarse en qemu puro, en modo de emulación.

Dejaría las máquinas virtuales en un solo host, sin complicar demasiado las cosas

dyasny
fuente
Falso. Es muy posible y lo ha sido desde 2008 más o menos. Enlace: linux-kvm.com/content/kvm-nested-virtualization-works
wzzrd
1
Sí, con conjuntos de instrucciones de CPU muy específicos, y nada cerca de producción o entornos de prueba serios. El T / S quiere probar configuraciones y servicios de red, no hipervisores adicionales, entonces ¿por qué complicar las cosas hasta aquí? Especialmente desde las herramientas de gestión estándar. Tiene razón en la cuenta de kvm dentro de kvm puede funcionar, bajo ciertas condiciones, ese fue mi error, pero responder a la pregunta original - esta no es la mejor idea bajo ningún hipervisor
dyasny
"Esta no es la mejor idea bajo ningún hipervisor": ahora eso es cierto :) aquí, tenga un
voto a favor
LOL, no es que un
voto positivo
0

KVM probablemente no sea la mejor opción para su propósito, debería probar Virtualbox.

Con Virtualbox, puede hacer una máquina virtual dentro de una máquina virtual, y las herramientas de red son muy convenientes.

erickzetta
fuente
1
Basura. KVM será suficiente perfectamente.
wzzrd
@wzzrd No dije que KVM no sea suficiente. Dije que Virtualbox puede ser una mejor opción, en este caso, ya que es una configuración compleja.
erickzetta
En realidad, me gusta configurar máquinas virtuales KVM con virsh:-)
KajMagnus
soporte para VMX, traducción de direcciones de segundo nivel (SLAT), para-operaciones, páginas anidadas, máquinas dentro de máquinas: esta fue una característica introducida en la versión 2.0 principal de VirtualBox. virtualbox.org/wiki/Changelog-2.0
Bent Cardan
0

¿Has echado un vistazo a XenServer? La nueva versión beta se llama "XenServer boston". Lea más sobre esto aquí:

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

En las notas de la versión, verá lo siguiente:

Soporte de dispositivo virtual. Dentro de XenCenter puede crear dispositivos virtuales de varias máquinas virtuales (vApps), con relaciones entre las máquinas virtuales para usar con la secuencia de arranque durante la recuperación del sitio. vApps se puede importar y exportar fácilmente utilizando el estándar Open Virtualization Format (OVF)

Usando esta función combinada con Virtual Lans, podrá lograr lo que desea. No soy positivo, pero creo que también puede crear una instantánea de todos los Vm en el dispositivo virtual a la vez.

Avíseme si tiene más preguntas sobre XenServer (lo uso 2 veces al día)

portforwardpodcast
fuente
-1

Si es posible o no es irrelevante. Simplemente no tiene sentido. No gana absolutamente nada anidando máquinas virtuales, mientras pierde mucho.

John Gardeniers
fuente
En realidad, los / algunos desarrolladores de KVM piensan que tiene sentido: en la lista de correo de desarrollo de KVM, hay este hilo con un parche para soporte de virtualización anidada. Creo que los desarrolladores parecen bastante felices, si continúas leyendo algunas respuestas.
KajMagnus
Un desarrollador no KVM al que le gusta la virtualización anidada: "Otro uso es tener múltiples redes virtualizadas dentro de una máquina. Cada red tendría una configuración diferente de hosts. He estado esperando esto". (Desde aquí .)
KajMagnus
@KajMagnus, solo porque la gente lo quiera no significa que tenga sentido. Algunas personas simples no pueden ver la madera del bosque.
John Gardeniers
Tiene sentido para probar escenarios. ¿Desea implementar una implementación de hipervisor de prueba solo para ver cómo se comporta una característica en particular en una nueva versión? Gira una VM. Sin embargo, tienes razón en que no es muy útil para el uso particular de OP.
Chris Thorpe
La gente de IBM VM solía hacer esto todo el tiempo cuando desarrollaba nuevas versiones de VM. Hay un gran documento sobre esto (por ejemplo, p. 28), si está interesado.
fisión