Pergunta

Eu estou olhando para usar máquinas virtuais para vários sistemas operacionais de host e eu estou olhando para as soluções livres que há um monte deles. Estou confuso com o que um hypervisor é e por que eles diferente ou melhor do que uma máquina virtual "padrão" são. Quando eu quero dizer padrão I vai usar a máquina virtual de referência VMWare Server 2.0.

Para um sistema dual core com 4 GB de memória RAM que seria capaz de executar um máximo de 3 VMs. Qual é a melhor escolha? Hypervisor ou não-hypervisor e por quê? Eu já li o artigo Wikipedia, mas os detalhes técnicos estão sobre a minha cabeça. Eu preciso de uma resposta básica do que pode estes sabores VM diferentes fazer por mim.

A minha pergunta principal relaciona-se como eu faria testes em vários ambientes. Estou preocupado com o isolamento de sistemas operacionais para que eu possa testar os aplicativos em vários sistemas operacionais ao mesmo tempo. Também qual sabor dá uma experiência mais próxima de como uma máquina real opera?

Estou pensando o seguinte:

(hypervisor)

  • Xen
  • Hyper-V

(não-hypervisor)

  • VirtualBox
  • VMWare Server 2.0
  • Virtual PC 2007

* As classificações das VMs que eu listei pode estar incorreta.

Foi útil?

Solução

A principal diferença é que o Hyper-V não é executado no topo do sistema operacional, mas em vez disso, juntamente com o sistema que roda em cima de uma camada fina chamada hypervisor. Hypervisor é um software de virtualização de plataforma de hardware de computador que permite que vários sistemas operacionais sejam executados em um computador host ao mesmo tempo.

Muitos outros solução de virtualização usa outras técnicas como a emulação. Para mais detalhes veja Wikipedia .

Outras dicas

Disclaimer, tudo abaixo é (amplamente) minha opinião.

Sua útil considerar um monitor de máquina virtual (um hypervisor) como uma pequena microkernel. Tem muito poucos empregos além acessando o hardware subjacente, tais como monitoramento de canais evento ea concessão de domínios de hóspedes acesso a recursos específicos .. enquanto aplica algum tipo de programador.

Todas as máquinas de hóspedes estão completamente inconscientes dos outros, o isolamento é verdade. Os hóspedes não compartilham memória com o cliente privilegiado (ou outro). Assim, neste exemplo, você poderia (aproximadamente) pensar de cada convidado (mesmo aquele privilegiado) como um processo, na medida em que o VMM está em causa. Normalmente, o primeiro hóspede recebe privilégios extras para que ele possa gerir o resto. Esta é a tecnologia ideal para usar quando as máquinas virtuais são colocados em produção e exposto ao mundo.

Além disso, alguns clientes podem ser corrigidos para se tornar ciente do hypervisor, aumentando significativamente o seu desempenho.

Por outro lado, temos coisas como VMWare e QEMU, que contam com o kernel do host para dar-lhe acesso a nu metal e memória suficiente para existir. Eles assumem que todos os hóspedes precisam ser apresentados com uma máquina completa, os limites colocados no processo de apresentação destes (mais ou menos) tornam-se os limites da máquina virtual. Eu digo mais ou menos, porque QoS dispositivo mapeador não é comumente implementado. Esta é a solução ideal para tentar código em algum outro SO, ou alguma outra arquitetura. Um monte de gente vai chamar QEMU, Simics ou mesmo, por vezes, VMWare (dependendo do produto) um 'simulador'.

Para a produção rolo saídas Eu uso Xen, para testar algo que eu só atravessar compilado Eu uso QEMU, Simics ou VirtualBox.

Se você está apenas testando / rolando novo código em vários sistemas operacionais e arquiteturas, eu recomendo # 2. Se sua necessidade é a introspecção (ou seja, observando a mudança de memória convidado como maus programas executados em um convidado) ... eu precisaria de mais explicações antes de responder.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top