Executando 100 máquinas virtuais em um único servidor host VMWare

24

Estou usando o VMWare há muitos anos, executando dezenas de servidores de produção com poucos problemas. Mas eu nunca tentei hospedar mais de 20 VMs em um único host físico. Aqui está a ideia:

  1. Uma versão simplificada do Windows XP pode viver com 512 MB de RAM e 4 GB de espaço em disco.
  2. $ 5.000 me fornece uma máquina de classe de servidor de 8 núcleos com 64 GB de RAM e quatro espelhos SAS.
  3. Como 100 VMs acima mencionadas se encaixam nesse servidor, meu custo de hardware é de apenas US $ 50 por VM, o que é super legal (mais barato do que alugar VMs no GoDaddy ou em qualquer outra loja de hospedagem).

Gostaria de ver se alguém é capaz de alcançar esse tipo de escalabilidade com o VMWare? Eu fiz alguns testes e esbarrei em um problema estranho. O desempenho da VM começa a degradar drasticamente quando você inicia 20 VMs. Ao mesmo tempo, o servidor host não mostra nenhum afunilamento de recursos (os discos estão 99% ociosos, a utilização da CPU está abaixo de 15% e há bastante RAM livre).

Aprecio se você puder compartilhar suas histórias de sucesso sobre o dimensionamento do VMWare ou de qualquer outra tecnologia de virtualização!

    
por Iain 22.06.2009 / 22:30

10 respostas

15

Sim, você pode. Mesmo para algumas cargas de trabalho do Windows 2003, 384MiB são suficientes, então 512MiB é uma estimativa muito boa, seja um pouco alta. A RAM não deve ser um problema, nem a CPU.

A 100 VMs é um pouco íngreme, mas é factível, especialmente se as VMs não forem muito ocupadas. Nós facilmente executamos 60 servidores (Windows 2003 e RHEL) em um único servidor ESX.

Supondo que você esteja falando sobre o VMware ESX, você também deve saber que é capaz de comprometer a memória. As VMs quase nunca usam sua ração completa de memória, de modo que o ESX pode comprometer mais do que a quantidade disponível de RAM para as VMs e executar mais VMs do que realmente 'oficialmente' tem RAM.

O mais provável é que o seu bottlenech não seja CPU ou RAM, mas IO. A VMware possui imensas quantidades de IOPS em seu marketing, mas quando o push chega ao fim, os conflitos de reserva SCSI e a largura de banda limitada o impedirão antes que você chegue perto do IOPS VMware se vangloria.

De qualquer forma, não estamos experimentando a degradação do desempenho de 20 VMs. Qual versão do ESX você está usando?

    
por 22.06.2009 / 22:45
11

Um grande problema com um ambiente grande como esse seria a prevenção de desastres e a proteção de dados. Se o servidor morrer, 100 VMs morrem com ele.

Você precisa planejar algum tipo de failover das VMs e planejar algum tipo de gerenciamento "extra-VM" que proteja suas VMs em caso de falha. É claro que esse tipo de redundância significa aumento de custo - o que provavelmente é o motivo pelo qual muitas vezes esse gasto não é aprovado até que seus benefícios sejam vistos na prática (por sua ausência).

Lembre-se também de que o host da VM é apenas um dos vários pontos de falha únicos:

  • Rede - e se a placa de rede do host da VM cair?
  • Memória - e se um pedaço da memória do host da VM ficar ruim?
  • CPU - se um núcleo da CPU morrer, o que acontece com as VMs?
  • Energia - há apenas um ou dois cabos de energia?
  • Porta de gerenciamento - suponha que você não consiga acessar o gerenciamento de host da VM?

Estes são apenas alguns: uma infra-estrutura massiva de VMs requer cuidadosa atenção à prevenção da perda de dados e à prevenção da perda de VMs.

    
por 23.06.2009 / 01:07
4

Nenhuma declaração sobre a viabilidade disso em produção, mas há uma demo muito interessante da NetApp em que eles provisionam 5440 desktops XP em 32 hosts ESX (170 por host) em cerca de 30 minutos usando muito pouco espaço em disco devido à desduplicação contra as imagens comuns da VM

link

Meu palpite é que suas limitações estão vindo do subsistema de disco. Você parece ter explicado a memória e o uso da CPU de acordo.

    
por 22.06.2009 / 22:50
3

Nunca fiz isso - mas prometo que você gastará muito mais do que em armazenamento para obter IOPs suficientes para suportar várias VMs do que no hardware do servidor. Você precisará de muitos IOPs se todos os 100 deles estiverem ativos ao mesmo tempo. Não para soar negativo, mas você também considerou que está colocando muitos ovos em uma cesta (parece que você está atrás de uma solução de servidor único?)

    
por 22.06.2009 / 22:53
1

Eu ficaria mais preocupado com a contenção da CPU com 100 VMs em um único host. Você tem que lembrar que o processador não é virtualizado, então cada máquina terá que esperar pelo acesso à CPU. Você pode começar a ver a contenção, olhando ESXTOP eu tenho dito nada mais de 5 no campo% RDY é muito ruim por engenheiros de VMWare.

Na minha experiência eu vi cerca de 30 - 40 servidores em execução em um host (não fazendo muito).

    
por 23.06.2009 / 01:58
1

Eu tinha 10 Hosts no VMWare Server 1.0.6 (no Windows 2003) e ele se deparava com problemas de IO regularmente (e se as compilações noturnas já se sobrepunham com outra coisa, eles teriam problemas). Após a atualização do Windows para o ESXi U3, descobrimos que nossos problemas de desempenho desapareceram (as construções noturnas não falharam mais).

Observe também que, embora os SSDs tenham uma taxa de E / S muito maior do que a mídia giratória, há alguns casos em que isso não ocorre, como certos tipos de padrões de gravação (muitas pequenas gravações espalhadas pela unidade matam o desempenho, a menos que controlador tem um cache de buffer de gravação inteligente que faz um bom trabalho em gravações de dispersão).

Eu recomendaria investigar / testar os arquivos SWAP em unidades diferentes se você encontrar problemas.

    
por 27.06.2009 / 19:45
1

Se você for fazer isso, então eu recomendo strongmente que você use os novos processadores Intel 'Nehalem' Xeon 55xx - eles são projetados para executar VMs e sua largura de banda extra de memória também ajudará muito. Ah, e se você puder usar mais, discos menores que poucos, grandes - isso ajudará muito. Se você pode usar o ESX v4 sobre 3.5U4 também.

    
por 27.06.2009 / 21:19
1

Tenho 20 XP VMs em execução com 512M de ram cada em uma máquina com 16G de RAM. Menos que isso e eles trocam para o disco e isso dá o gargalo. Estas são sempre VMs XP ativas.

O VMware e seu recurso OverCommit permitem que você envie mais memória ram para cada máquina XP. Uma máquina semelhante compartilhará as mesmas páginas para reduzir a gravação do disco. É algo que eu gostaria de ver em nossa configuração para tentar adicionar mais máquinas, já que nossas VMs XP estão fazendo 10-20meg de tráfego de disco contínuo.

    
por 14.09.2009 / 00:32
1

Não conseguimos alcançar 100 convidados felizes no VMWare Server, mas descobrimos que o ESXi está fazendo um trabalho muito melhor. Assim, parece que 100 XP vms não é um problema se você usar o ESXi e um servidor decente (alguns espelhos de disco para espalhar o I / O, um par de chips I7 e 64GB de RAM). Não há atraso visível para os usuários finais e os recursos do host não estão maximizados (o mais popular é o CPU, mas normalmente é pelo menos 70% inativo).

PS. Esta questão foi postada por mim quando estávamos lutando com o VMWare Server.

    
por 04.11.2009 / 18:29
0

A última vez que verifiquei, a VMware não recomenda mais que 4 VMs por núcleo de processamento para ESX, supondo uma vCPU por VM.

Isso sugere que as despesas gerais de gerenciamento se tornam um fator.

Estou muito interessado em ver se você pode realmente atingir um fator de 4x em uma caixa de 8 núcleos.

    
por 22.06.2009 / 23:03