Alguns clientes tem me apresentado várias dúvidas em relação à utilização de NLB e MSCS (Microsoft Cluster Services) em ambientes virtuais. O assunto virtualização é um tópico que vem crescendo ano a ano e consolidei alguns pontos importantes sobre as principais plataformas de virtualização utilizadas hoje: Hyper-V e VMWare.
Primeiramente, para que não se tenha dúvida sobre o que se trata o post, máquinas virtuais se referem à guest ou child na literatura de virtualização, e são hospedadas em um ou mais servidores de virtualização - host ou root.
A política de suporte de virtualização da Microsoft não contempla guest clustering com Windows NT Server 4.0, Windows 2000 Server ou Windows Server 2003. As únicas exceções são duas configurações de Windows Server 2003 que foram certificadas pelo programa de virtualização da Microsoft com vSphere 4.0 e EMC storage. Como o programa de virtualização para Windows Server 2003 já foi encerrado essas exceções serão as únicas.
Guest Clustering em Hyper-V
Certifique-se que a solução de hardware escolhida para o ambiente de Hyper-V está de acordo com as políticas de suporte. O guest clustering só é suportado com iSCSI.
Não existe impedimento em utilizar um cluster com nós físicos e virtuais, contanto que os nós executem o mesmo sistema operacional, sejam validados corretamente e estejam utilizando iSCSI. O número máximo de nós no cluster (16) não altera quando se usa nós físicos ou virtuais.
Em um cenário onde se tem um cluster dos servidores físicos, e as máquinas virtuais utilizam outro cluster entre elas, combinando duas soluções a tolerância a falhas, recomenda-se utilizar a propriedade de cluster group chamada AntiAffinityClassName. Desta forma quando um host físico falhar é possível evitar que os nós de máquinas virtuais específicas fiquem no mesmo servidor físico. Maiores detalhes no artigo http://support.microsoft.com/kb/296799. A combinação do cluster no host e também do guest traz benefícios quando o serviço precisa realizar paradas constantes para atualização de um nó enquanto o outro fica ativo, pois nesse caso o cluster dos hosts não evita a parada.
Muita atenção para o Exchange 2010, pois não é suportado qualquer tipo de tolerância à falha. Abaixo o trecho do artigo Exchange 2010 System Requirements, na parte de Hardware virtualization.
“Microsoft doesn't support combining Exchange high availability solutions (database availability groups (DAGs)) with hypervisor-based clustering, high availability, or migration solutions that will move or automatically failover mailbox servers that are members of a DAG between clustered root servers. DAGs are supported in hardware virtualization environments provided that the virtualization environment doesn't employ clustered root servers, or the clustered root servers have been configured to never failover or automatically move mailbox servers that are members of a DAG to another root server”
Outra recomendação é em relação ao Heartbeat Thresholds. Pode ser necessário aumentar o valor de delay, pelas propriedades SameSubnetThreshold e SameSubnetDelay, para quando houver uma movimentação de máquinas virtuais, como por live-migration. Assim o cluster não vai entendere a operação como uma falha do recurso de forma incorreta. Maiores detalhes no artigo http://technet.microsoft.com/en-us/library/dd197562(WS.10).aspx
Guest Clustering em VMWare
O documento da VMWare chamado - Microsoft Cluster Service (MSCS) support on ESX, apresenta várias considerações, dentre elas destaco as seguintes:
NLB em Hyper-V (2008 RTM) (não o R2)
Para criar um NLB com máquinas virtuais em hosts com 2008 RTM, é preciso instalar um fix (caso não tenha o SP2), conforme o artigo http://support.microsoft.com/kb/953828.
Esse mesmo artigo apresenta o procedimento para a correta configuração do NLB nas máquinas virtuais, que requer um reboot após a sua criação.
NLB em Hyper-V (2008 R2)
O primeiro passo é habilitar a opção Enable MAC spoofing para cada interface de rede das máquinas virtuais que vão ser configuradas com NLB. Caso o guest seja um Windows 2008 RTM é necessário instalar o fix do artigo http://support.microsoft.com/kb/953828. Quando um Windows Server 2008 for atualizado com o SP2, não se esqueça de atualizar também o Integration Services da máquina virtual, por meio do Integration Services Setup Disk.
Para os servidores com Windows Server 2008 SP2 e Windows Server 2008 R2 não é necessário instalar o fix e atualizar o Integration Services.
NLB em VMWare
No site da VMWare se encontra o artigo Microsoft NLB not working properly in Unicast Mode. Neste artigo eles recomendam que se utilize multicast ao invés de unicast na configuração do NLB nas máquinas. Se você não sabe a diferença entre os dois modos de uma lida no meu post Load Balance Deep Dive. Algumas considerações que o artigo coloca para o funcionamento correto do NLB em unicast são:
Por fim, e como curiosidade, a coexistência de NLB e MSCS no mesmo servidor não é recomendada e suportada. Maiores detalhes em: http://support.microsoft.com/kb/235305.