Network Load Balance (NLB) e Cluster (MSCS) em máquinas virtuais (guests)

Dealing with tension III (series)

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
é 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 https://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 https://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:

  • Windows Server 2008 guest clustering
    requires vSphere 4.0 or higher
  • Windows Server 2008 R2 guest
    clustering requires vSphere 4.0 Update 1 or higher
  • Guest Clustering with VMware HA
    requires vSphere 4.1
  • It is not supported to deploy guest
    clustering with iSCSI, FCoE, and NFS disks
  • It is not supported to deploy guest
    clustering in conjunction with VMware Fault Tolerance
  • It is not supported to vMotion a VM
    that is part of a guest cluster - Please review the "vSphere MSCS Setup
    Limitations" section in the documentation linked in the VMware KB above
    for VMware’s complete and authoritative list of configuration restrictions

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 https://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 https://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:

  • All members of the NLB cluster must
    be running on the same ESX host.
  • All members of the NLB cluster must
    be connected to the single portgroup on the virtual switch
  • VMotion for unicast NLB virtual
    machines is not supported (unless you want to migrate ALL NLB members to a
    different ESX host)
  • The Security Policy Forged Transmit
    on the Portgroup is set to Accept
  • The transmission of RARP Packet is
    prevented on the Portgroup/Virtual Switch as explained in the later part of the
    article.

 

Por fim, e como curiosidade, a coexistência de NLB e MSCS no
mesmo servidor não é recomendada e suportada. Maiores detalhes em: https://support.microsoft.com/kb/235305.