É possível configurar uma máquina virtual dentro de outra máquina virtual?

29

Eu tenho jogado com máquinas virtuais e me perguntei se eu poderia rodar uma máquina virtual dentro de uma máquina virtual?
É possível?
É prático?

    
por Tester101 28.07.2009 / 15:50

12 respostas

25

O aninhamento de VMs é algo que foi feito para sempre no hardware do IBM Mainframe. Esse hardware faz muitas coisas para tornar o processo muito eficiente. Você pode ter VMs aninhadas em uma profundidade arbitrária e funciona muito bem.

O hardware de PC recentemente tornou isso quase impossível. Um documento no site da VMware discute, mas a essência é que você pode ter 2 VMs aninhadas em profundidade, mas apenas em hardware muito moderno que suporta virtualização de hardware real (VT-x ou AMD-V), e a segunda profundidade de VM deve estar executando a virtualização de estilo de tradução BT / estilo binário mais antiga. Também há restrições severas nos monitores virtuais que você pode executar no convidado interno.

Escusado será dizer que não é suportado e seria de esperar que fosse realmente esquisito se fizesse algo remotamente estranho (como o Hyper-V no ESX). E o desempenho não será bom, independentemente de ser estável.

    
por 28.07.2009 / 17:28
2

Sim, você pode. Por exemplo, no Linux, você pode executar o Xen com várias VMs executando o OpenVZ, VirtualServer ou algum outro tipo de sistema VM. É certamente possível e também muito prático, dependendo do seu propósito.

Um motivo pelo qual eu consegui pensar nisso é executar vários servidores em uma única máquina física. Se você executá-lo como um nível único de hierarquia de VM ou vários, isso depende do seu plano de isolamento de recursos.

    
por 28.07.2009 / 18:15
2

Se você precisa de um sistema específico, digamos legado, para ser virtualizado, você sempre pode fazê-lo em software, o aninhamento não é um problema. Tente qemu, eu fiz 2 níveis de profundidade com isso, mas você pode ir mais fundo, o desempenho provavelmente vai torná-lo inútil, no entanto. BTW, a arquitetura do PC foi um presságio feito pela IBM, mas para usos totalmente diferentes em comparação com o que é usado hoje.

    
por 01.06.2012 / 08:32
1

Não acredito que a maioria dos pacotes de virtualização permitirá que você execute uma VM em uma VM. Eu sei que a VMware irá verificar quando estiver instalada para ver se está sendo instalada em uma VM, e espero que outros produtos façam o mesmo. Eu não acho que as instruções de CPU necessárias seriam apresentadas a partir do hypervisor em execução no hardware até a VM para alcançar a segunda VM. Se funcionasse, você também estaria adicionando sobrecarga sem receber nada em troca.

Quanto a se é prático - não vejo porquê. Se você precisar de outra VM, basta executá-la ao lado da que já está em execução. Não consigo imaginar um caso em que você precise ter uma VM em execução em outra VM. A sobrecarga adicional sem um ganho proporcional de algum recurso tornaria isso impraticável.

    
por 28.07.2009 / 15:55
1

Sim. Existem até maneiras de executar o VMware ESX / vSphere em uma máquina virtual. Eu não sei por que você iria querer na prática, mas isso já foi feito.

    
por 28.07.2009 / 15:55
1

Sim, você pode, mas gostar de muitas coisas não significa que você deveria. Eu vi um servidor ESX virtualizado executando uma máquina virtual que tem outro servidor ESX virtual dentro dele. Concedido foi um teste apenas para ver se poderia ser feito (e pode) eu realmente não recomendaria isso.

    
por 28.07.2009 / 15:57
1

Depende da técnica de virtualização. Se você usa soluções que não são virtualização "real", como a UML, então você pode executá-las internamente, digamos, VMWare. Ou a si mesmos para esse assunto.

As instalações baseadas em UML podem ser executadas dentro de VMs VMWare e outras instalações baseadas em UML (mesmo aninhadas). As métricas de desempenho não serão bonitas!

    
por 28.07.2009 / 16:05
1

Sim, é possível, mas muito lento.

É particularmente útil se você estiver alugando um servidor com IP público limitado (que depende, por exemplo, do endereço MAC para não envenenar a rede do provedor do servidor); e que você deseja que seu IP de VM seja conectado para se comunicar diretamente com a Internet. Então, quando você não pode ter mais do que, por exemplo, 3 endereços IP públicos, mas precisa de 10 VM, é uma boa ideia ter VMs em uma VM global: você usará apenas um dos seus IPs públicos e, em seguida, tem muitas VMs com sub-ponte.

Mas, na verdade, você pode usar uma combinação de configuração de rede de ponte e encaminhada, mas é mais difícil quanto à configuração.

    
por 09.12.2010 / 16:00
0

Até onde eu sei, não é possível, mas o VMware ESX pode executar no VMware Workstation, por exemplo. IMHO só é bom para testes.

    
por 28.07.2009 / 15:58
0

Como muitas pessoas já disseram, é claro: é possível. Depende de quão bem o hardware da VM é emulado e qual software de virtualização você está usando. O VMWare Workstation, pelo menos, não quer que você o virtualize.

Quanto a se é prático, talvez devêssemos fazer a pergunta de volta para você: por que você precisaria fazer esse tipo de coisa? O que há de errado em apenas executar duas VMs lado a lado? E até que ponto você pergunta se é prático? Isto é, se você está preocupado em ser prático configurar e configurar, provavelmente não. Se você está mais preocupado com o seu uso prático, novamente, não consigo pensar em nada que eu precise fazer isso, a menos que eu esteja procurando por bugs no software de virtualização ou algo assim.

    
por 28.07.2009 / 16:05
0
por 16.02.2010 / 21:30
0

Você pode, mas eu não recomendo.

O desempenho geralmente é bastante afetado em todo esse processo na máquina "guest of the guest". Se você realmente precisa fazer isso sem o hardware e o software especializados, boa sorte para você. No entanto, geralmente não é uma boa prática, especialmente com os métodos comuns usados para obter virtualização.

Eu sei que se você tentar executar o VMWare dentro dos sistemas VMWare, ele irá reclamar e não permitirá que você faça isso. Não tenho certeza sobre o VirtualBox. Eu conheço algumas pessoas que, por alguma razão, implantam contêineres do Docker em contêineres do Docker (ou assim eles dizem). A moral da história é: embora seja possível, provavelmente não é inteligente fazê-lo, a menos que você realmente saiba o que está fazendo.

Eu pessoalmente não conheço nenhum caso de uso real para isso além da rede.

    
por 31.10.2015 / 05:40