SQL Server 2005 em ambiente virtualizado

Virtualização tem sido um dos assuntos mais freqüentes nos bate-papos que tenho feito com meus clientes. Todos querem saber se  o SQL Server é um bom candidato para virtualização, tanto no aspecto econômico quanto do aspecto de disponibilidade e tempo de resposta. Com o lançamento do Hyper-V no segundo semestre deste ano as possibilidades de economia em ambientes de TI se tornam uma real possibilidade. Não apenas a economia, aliás, mas também a melhor utilização de seus recursos. Vamos explorar então alguns dos principais aspectos em torno deste assunto.

Benefícios da virtualização

A virtualização de servidores traz diversos benefícios às organizações, não importa o tamanho delas. Vamos entender quais são os principais benefícios desta opção:

Consolidação de Servidores

Estima-se que servidores dedicados funcionem muito abaixo de sua capacidade, mais exatamente de 5% a 15% das capacidades reais do hardware (veja maiores detalhes aqui). Virtualizando servidores em um número menor de servidores físicos ajuda a utilizar melhor o seu investimento em hardware, reduzir custos de energia e de refrigeração, além da economia de espaço físico. Se você precisar crescer sua estrutura, faz mais sentido (e é mais barato) adicionar digamos processador, memória e discos a um sistema existente do que comprar servidores novos. Em alguns servidores hoje pode-se particionar o hardware a fim de se alocar os recursos entre suas "máquinas virtuais" - embora este seja um conceito um pouco diferente do que estamos discutindo.

Licenciamento

Este é um dos assuntos mais importantes a abordar quando falamos em virtualização. Então, vamos primeiro aos básicos de licenciamento para SQL Server. O SQL Server pode ser licenciado de duas formas:

  • Por processador: é necessária uma licença do SQL Server 2005 para cada processador presente no servidor onde ele está sendo executado. O importante é lembrarmos que este método de licenciamento leva em consideração os processadores físicos, e não os núcleos em caso de processadores com mais de um núcleo. Por exemplo: uma máquina com quatro processadores quadcore (e, portanto com 16 núcleos) precisa apenas de quatro licenças para o SQL Server. Não é cobrado nada por cada um dos demais núcleos - este é, na verdade, um dos diferenciais do SQL Server em relação aos concorrentes. Este modelo é em geral utilizado em casos onde o número de SQL CALs torna o valor do modelo Server + CAL menos interessante ou em casos onde o acesso ao banco de dados é feito por clientes indeterminados (internet, por exemplo)
  • Server+CAL: neste caso adquire-se uma licença para o servidor e uma SQL CAL (Client Access License) para cada acesso feito ao SQL Server. Quando falamos em user CAL, é importante lembrar que esta licença é tratada de forma nominal, e não de acesso simultâneo

O grande benefício do ambiente virtualizado se faz realidade utilizando o SQL Server 2005 Enterprise Edition. Com esta edição, se você tem, digamos, dez máquinas virtuais em um servidor com quatro processadores, é necessário licenciar apenas os quatro processadores físicos do host. Se você utilizar SQL Server 2005 Standard Edition ou Workgroup Edition, seria necessário licenciar cada uma das dez máquinas virtuais.

Vários ambientes consolidados

Pode-se ter em um mesmo servidor físico os seus ambientes de produção, homologação e desenvolvimento, por exemplo. Cada um destes em uma instância virtualizada. Além disto, pode-se implementar soluções de alta disponibilidade como o cluster, log shipping ou database mirroring "in a box". Concordo que algumas destas soluções são específicas para endereçar problemas de hardware, como o cluster, mas mesmo assim é importante registrar.

Administração Centralizada

Ao invés de se ter vários servidores, consoles e racks, um local único para administração ajuda a reduzir os custos de operação e erros humanos.

Performance e Suporte

Tendo em vista todas as reduções de custo ainda permanece a dúvida: devo virtualizar meus servidores de banco de dados? A primeira preocupação é com performance. Também existe a preocupação não menos importante quanto a suportabilidade do ambiente.

Eu entendo que a resposta a este assunto vai variar de caso em caso, sendo oportuno um trabalho de testes comparativos. Em muitos casos, vai melhorar (ou ficar igual). Em muitos outros, vai piorar. Eu entendo que tendo feito um trabalho de capacity planning onde se estima o sizing dos servidores e atribuindo aos servidores virtuais tais recursos mínimos, não devam existir problemas de performance. No entanto, o príncipal gargalo em servidores de banco de dados está no subsistema de discos. Lembre-se que seus servidores virtualizados vão compartilhar de um mesmo bus para fazer IO e esta operação pode se tornar custosa. Com um ambiente de storage bem dimensionado e performático as chances se reduzem aqui.

Quanto ao suporte, desde que seus servidores estejam virtualizados utilizando tecnologia Microsoft (Virtual Server ou Hyper-V, quando este estiver disponível) o suporte é 100% garantido. Em tecnologias de virtualização não-Microsoft, o suporte poderá estar condicionado ao fato de se poder simular o mesmo problema em ambiente físico. Veja a política da Microsoft para suporte a ambientes virtualizados em https://support.microsoft.com/kb/897615/en-us 

Conclusão

A virtualização de servidores permite a empresas reduzir seus custos com data center reduzindo espaço necessário, economizando energia e recursos de resfriação. Além disso, viabiliza a melhor utilização dos seus recursos de hardware e a reduzir custos também com licenciamento.

No entanto, é interessante avaliar bem esta solução e suas conseqüências antes de tomar a decisão. Para maiores informações visite os sites:

Como sempre, fique a vontade para deixar suas dúvidas.