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

24

Eu uso o VMWare há muitos anos, executando dezenas de servidores de produção com muito poucos problemas. Mas 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. US $ 5.000 me proporcionam uma máquina de classe de servidor de 8 núcleos com 64 GB de RAM e quatro espelhos SAS.
  3. Como 100 VMs mencionadas acima se encaixam nesse servidor, meu custo de hardware é de apenas US $ 50 por VM, o que é super agradável (mais barato do que alugar VMs no GoDaddy ou em qualquer outra loja de hospedagem).

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

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

user9517 suporta GoFundMonica
fonte
4
Qual produto VMware você planeja usar? ESX? ESXi? Servidor?
Wzzrd 22/06/2009
2
Você pode executar o XP com 256 sem muita dificuldade, especialmente se forem tarefas leves. Microsoft requer 64, mas 128 é "suficiente" technet.microsoft.com/en-us/library/bb457057.aspx
Matt Rogish
1
de onde você está comprando seus servidores? Eu quero um :) #
1111 warren
1
5000 USD apenas, você pode me vender dois? :)
Taras Chuhay 04/08/09
Você tem "essa quantidade de CPU" em seu servidor de hospedagem, e cada VM receberá um compartilhamento. Além disso, o esxi terá sobrecarga: "alterne para esta VM, gerencie-a, alterne para a próxima etc.", muitas vezes por segundo. Isso significa que cada VM receberá apenas uma fração do total da CPU. Quanto mais VMs, mais você divide sua CPU (e mais sobrecarga você adiciona, o que significa que, em vez de ter 100 vms, na verdade você tem um pouco mais).
Olivier Dulac

Respostas:

15

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

Umas 100 VMs é um pouco íngreme, mas é possível, principalmente se as VMs não estiverem muito ocupadas. Executamos facilmente 60 servidores (Windows 2003 e RHEL) em um único servidor ESX.

Supondo que você esteja falando do VMware ESX, também deve saber que é capaz de comprometer demais a memória. As VMs quase nunca usam toda a ração de memória nomeada, para que o ESX possa comprometer mais do que a quantidade disponível de RAM nas VMs e executar mais VMs do que realmente 'oficialmente' possui RAM.

Provavelmente, seu gargalo não será CPU ou RAM, mas E / S. A VMware possui grandes quantidades de IOPS em seu marketing, mas, quando se trata de um empurrão, conflitos de reserva SCSI e largura de banda limitada o impedirão antes de você se aproximar dos IOPS que a VMware se vangloria.

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

wzzrd
fonte
Obrigado Wzzrd! Atualmente, estou usando o VMWare Server 2.0, mas planejando experimentar o ESX muito em breve. Eu tenho observado a E / S em todas as matrizes de host com muito cuidado, e a única maneira de maximizar isso é reiniciando vários convidados por vez. Quando os convidados realizam uma carga de trabalho leve ou permanecem ociosos, os discos do host ficam 99% ociosos. Portanto, suspeito que algo além de CPU e E / S esteja causando lentidão em todas as VMs. A propósito, eles diminuem drasticamente - são necessários 20 segundos para abrir o menu Iniciar e, se eu executar o Gerenciador de Tarefas em uma VM, o gerenciador de tarefas terá 90% da CPU - estranho!
Dennis Kashkin
2
Isso seria porque você está usando o VMware Server. O VMware Server é uma plataforma de virtualização sobre outra plataforma (Linux, na maioria das vezes), enquanto o ESX é uma plataforma de virtualização bare metal. Muito diferente, tanto no conceito como no desempenho.
Wzzrd 23/06/09
Infelizmente, quando o dia do patch chegar com 100 vm, você estará reinicializando grande parte do tapete ao mesmo tempo;) E o patch é difícil. Cuidado com um service pack - que é quando a verdadeira dor começa;)
TomTom
Pare de se enganar sobre pensar que o bare metal é algo especial. O ESXi é apenas um Linux despojado. Sim, Linux.
dresende
2
@dresende. Não é não. Confie em mim.
Wzzrd
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 morrerão com ele.

Você precisa planejar algum tipo de failover das VMs e planejar algum tipo de gerenciamento "extra-VM" que protegerá suas VMs em caso de falha. Obviamente, esse tipo de redundância significa aumento de custo - e é provavelmente por isso que muitas vezes esse desembolso não é aprovado até que seus benefícios tenham sido 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 de CPU morre, 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?

São apenas algumas: uma infraestrutura maciça de VM requer atenção cuidadosa à prevenção de perda de dados e à prevenção de perda de VM.

Mei
fonte
2
Escute David. Você deseja uma configuração N + 1, o que significa que você precisa de pelo menos uma máquina ociosa sobressalente capaz de absorver toda a carga de trabalho de outra máquina, caso ela falhe. Minha recomendação é um cluster de dois servidores que distribua a carga uniformemente, mas que possa manipular independentemente toda a carga de trabalho caso uma máquina falhe.
Jason Pearce
4

Nenhuma declaração sobre a viabilidade disso na produção, mas há uma demonstração muito interessante da NetApp em que eles fornecem 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 na VM comum imagens

http://www.youtube.com/watch?v=ekoiJX8ye38

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

Kevin Kuphal
fonte
3

Nunca fiz isso - mas prometo que você gastará muito mais do que em armazenamento para obter IOPs suficientes para suportar tantas VMs quanto o hardware do servidor. Você precisará de muitas IOPs se todas as 100 estiverem ativas ao mesmo tempo. Para não parecer negativo, mas você também considerou colocar muitos ovos em uma cesta (parece que você está atrás da solução de servidor único?)

Jeff Hengesbach
fonte
2
Definitivamente, eu criaria várias "cestas" e configuraria alguns backups automatizados. Os gargalos de E / S podem ser facilmente resolvidos com unidades SSD atualmente. Eu tenho usado drives Intel MLC de 160GB na produção e eles são espetaculares. Você basicamente obtém um desempenho de E / S aleatória 5 vezes melhor do que as unidades SAS de primeira linha (em configurações RAID simples).
Dennis Kashkin
1

Eu ficaria mais preocupado com a contenção de CPU com 100 VMs em um único host. Você deve se lembrar que o processador NÃO é virtualizado, portanto cada máquina terá que esperar pelo acesso à CPU. Você pode começar a ver a disputa observando o ESXTOP. Foi-me dito que algo acima de 5 no campo% RDY é muito ruim pelos engenheiros da VMWare.

Na minha experiência, eu vi cerca de 30 a 40 servidores sendo executados em um host (sem fazer muito).

Zypher
fonte
1

Eu tinha 10 Hosts no VMWare Server 1.0.6 (no Windows 2003) e ele enfrentava problemas de E / S regularmente (e se as compilações noturnas se sobreporem a alguma outra coisa, elas teriam problemas). Após a atualização do Windows para o ESXi U3, descobrimos que nossos problemas de desempenho desapareciam (as compilações noturnas não mais falhavam).

Observe também que, embora os SSDs tenham uma taxa de E / S muito mais alta 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 gravações pequenas espalhadas pela unidade prejudicam o desempenho, a menos que o controlador tenha uma cache de buffer de gravação inteligente que faz um bom trabalho em gravações de dispersão).

Eu recomendo investigar / testar os arquivos SWAP em unidades diferentes, se você tiver problemas.

Walter
fonte
1

Se você fizer isso, recomendo que você use os novos processadores Intel 'Nehalem' Xeon 55xx series - eles foram projetados para executar VMs e sua largura de banda de memória extra também ajudará enormemente. Ah, e se você puder usar mais discos menores do que poucos, grandes - isso ajudará bastante. Se você também pode usar o ESX v4 acima de 3.5U4.

Chopper3
fonte
1

Eu tenho 20 algo VMs XP rodando 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. Porém, essas são sempre VMs XP ativas.

O VMware e seu recurso OverCommit devem permitir que você forneça mais memória ram a 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 analisar em nossa configuração para tentar adicionar mais máquinas, pois nossas VMs XP estão executando 10 a 20meg de tráfego contínuo em disco.

Ryaner
fonte
1

Não conseguimos atingir 100 convidados felizes no VMWare Server, mas descobrimos que o ESXi está fazendo um trabalho muito melhor. Portanto, parece que 100 XP vms não é um problema se você usar o ESXi e um servidor decente (alguns espelhos de disco para espalhar a E / S, alguns chips I7 e 64 GB de RAM). Não há atraso visível para os usuários finais e os recursos do host não são atingidos no máximo (o mais quente é a CPU, mas geralmente tem pelo menos 70% de ociosidade).

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

Dennis Kashkin
fonte
0

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

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

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

Hans Malherbe
fonte
1
Isso é anterior ao ESX 3.5U2 - o documento de máximos de configuração da atualização 2 indica 8 para fins gerais, mas esse número aumenta para 11 para cargas de trabalho de VDI. Tenho certeza de que vi algo que não consigo descobrir de imediato que aumentou a recomendação de VDI para 19 na atualização 3 ou 4. No vSphere, esse limite agora é 20. Pesquise os máximos de configuração do VMware ESX para os documentos oficiais da VMware.
22430 Helvick
Minhas VMs permanecem ociosas na maioria das vezes. As pessoas se conectam talvez algumas vezes ao dia para executar algum software leve. Confirmei que essas VMs criam sobrecarga de CPU muito pequena no host quando estão ociosas (20 VMs somam até 9% de utilização da CPU com base no sistema quadcore duplo). Você seria capaz de lembrar como o limite de quatro VM por CPU é justificado? Eles estão pensando em servidores da Web ou instâncias de SO de desktop?
Dennis Kashkin