Virtualizando o servidor do Banco de Dados Microsoft SQL

6

Minha empresa está procurando virtualizar nosso servidor Microsoft SQL. Eu li em outra pergunta que os bancos de dados em VMs sofrem com um gargalo de IO que não é muito bom para nós. Mas eu queria saber se desde que estamos usando o Microsoft HyperV, Microsoft Server e Microsoft SQL, que a Microsoft tem estes otimizados para funcionar tão bem quanto uma máquina física?

Obrigado

    
por poconnor 08.12.2011 / 16:15

5 respostas

17

that Microsoft has these optimized to work as good as a physical machine?

Sim, a MS tem - muito perto.

O principal problema é que faz sentido apenas em pequenas instalações. No momento em que seu SQL Server virtual requer sua própria máquina com uma configuração de disco cuidadosamente definida - que é qualquer uma, exceto uma pequena instância de SQL com baixo volume - não há mais nada para realmente colocar nesse servidor.

Eu executo um servidor SQL em uma plataforma de virtualização. Dos 20 discos dessa máquina, 12 são dedicados ao servidor SQL (para logs e dados, incluindo tempdb - o sistema operacional carrega de um VHD). A próxima atualização irá levá-lo ao limite - mesmo agora é a VM mais gordo com 16 GB de RAM dos meus 64 GB disponíveis. Uma vez que eu preciso atualizar isso ... que sentido ele tem?

Com a tecnologia atual, você está limitado a 4 núcleos virtuais - 16 no Hyper-V 3 (próximo ano). Isso não é muito para análise de banco de dados. Se você faz processamento do tipo OLAP, a visualização com o Hyper-V pode simplesmente não aumentar o suficiente.

O problema principal não é que o MS não consiga se aproximar de hardware comparável, mas que os SQL Servers podem ficar tão grandes que o hardware comparável significa 1 SQL Server em um nível de hardware, além de não se escalar uma VM como bom como hardware, infelizmente.

    
por 08.12.2011 / 16:22
3

Os hypervisors de hoje podem fornecer quase o mesmo desempenho que o hardware físico subjacente, desde que o desempenho esteja fisicamente lá e você não coloque muitas VMs no mesmo hardware; Portanto, a virtualização per se não afetará muito o desempenho, se você tiver CPUs / RAM suficientes e garantir que os discos de dados dessa VM não sejam compartilhados com outras VMs.

Para uma carga de trabalho pequena / média, isso é quase sempre suficiente; mas para grandes cargas de trabalho, você realmente deseja que o SQL Server seja executado em hardware físico, por dois motivos principais:

  1. O hardware virtualizado só pode escalar até um certo nível, você não pode ter mais de 4 CPUs virtuais com o Hyper-V e 8 com o ESXi.
  2. Se você for atribuir todos os recursos físicos de um host de virtualização a uma única VM, também poderá executá-lo diretamente no hardware físico e remover essa (pequena) sobrecarga de virtualização.
por 08.12.2011 / 16:36
2

Resposta curta: nenhuma VM, não importa qual pilha, pode corresponder ao desempenho do IO de um servidor físico.

Resposta longa: Depende realmente da carga. Se você é uma empresa de 80 usuários, e seu servidor SQL está atendendo a um aplicativo de contabilidade, uma instância do SharePoint e algum outro aplicativo aleatório de Linha de Negócios, duvido que você veja muito impacto no desempenho.

Se esse servidor SQL estiver atendendo a milhares de usuários ou tiver algum aplicativo intensivo sendo executado com milhares de consultas e cálculos / segundo, você verá um grande impacto no desempenho.

    
por 08.12.2011 / 16:21
2

Não vejo razão para não virtualizar bancos de dados. Mesmo se um servidor SQL usar um hypervisor inteiro ...

Sim, a virtualização sempre vem com alguma perda de desempenho. No entanto, essa perda está ficando menor e menor a cada lançamento e acredito que hoje, isso pesa pouco em comparação com todos os outros benefícios que você obterá da virtualização de servidores. Pense na alta disponibilidade e na recuperação de desastre, a opção de adicionar temporariamente recursos de nuvem pública à sua infraestrutura quando houver um aumento repentino na demanda, fácil implantação de novos servidores.

Além disso, também vejo todos mencionando as limitações da vCPU. Dois comentários: regra geral do polegar; não inclua mais vCPUs em uma VM, em seguida, há núcleos disponíveis em um determinado host / hipervisor. Portanto, se seu host tiver 8 núcleos, 8 vCPUs serão tudo o que você precisará. Segundo comentário, o vSphere 5 Enterprise Plus suporta até 32 vCPUs por VM.

    
por 10.12.2011 / 00:51
0

Tudo que eu já experimentei de virtualização vem com um impacto considerável no desempenho, em particular no IO. Eu nunca iria executar um banco de dados pesado em uma VM.

    
por 14.12.2011 / 20:26