Configurar um balanceador de carga do Azure para um VNN de FCI – SQL Server em VMs do Azure
Aplica-se a: SQL Server na VM do Azure
Dica
Há vários métodos de implantação de um grupo de disponibilidade. Simplifique sua implantação sem precisar usar o Azure Load Balancer ou DNN (nome de rede distribuída) para seu grupo de disponibilidade Always On criando suas VMs (máquinas virtuais) do SQL Server em várias sub-redes dentro da mesma rede virtual do Azure. Se você já tiver criado seu grupo de disponibilidade em uma única sub-rede, poderá migrá-lo para um ambiente de várias sub-redes.
Em máquinas virtuais do Azure, os clusters usam um balanceador de carga para manter um endereço IP que precisa estar em um nó de cluster de cada vez. Nesta solução, o balanceador de carga contém o endereço IP para o VNN (nome de rede virtual) usado pelo recurso clusterizado no Azure.
Este artigo ensina a configurar um balanceador de carga usando o serviço do Azure Load Balancer. O balanceador de carga roteará o tráfego para a instância de cluster de failover com o SQL Server em VMs do Azure para HADR (alta disponibilidade e recuperação de desastre).
Um DNN (nome de rede distribuída) é uma opção de conectividade alternativa para o SQL Server 2019 CU2 e posteriores. Um DNN oferece configuração simplificada e failover aprimorado.
Pré-requisitos
Para realizar as etapas deste artigo, você já deve ter:
- Determinado que o Azure Load Balancer é a opção de conectividade apropriada para seu FCI.
- Configurado a FCI.
- Instalada a versão mais recente do PowerShell.
Criar um balanceador de carga
É possível criar qualquer um dos seguintes tipos de balanceadores de carga:
Interno: um balanceador de carga interno só pode ser acessado por meio de recursos particulares que são internos da rede. Ao configurar um balanceador de carga interno e as respectivas regras, use o endereço IP da FCI como o endereço IP de front-end.
Externo: um balanceador de carga externo pode rotear o tráfego dos recursos públicos para os internos. Ao configurar um balanceador de carga externo, não é possível usar um endereço IP público como o endereço IP da FCI.
Para usar um balanceador de carga externo, aloque logicamente um endereço IP na mesma sub-rede da FCI que não entre em conflito com nenhum outro endereço IP. Use esse endereço como o endereço IP de front-end para as regras de balanceamento de carga.
Para criar o balanceador de carga:
No portal do Azure, acesse o grupo de recursos que contém as máquinas virtuais.
Selecione Adicionar. Pesquise o Load Balancer no Azure Marketplace. Selecione Load Balancer.
Selecione Criar.
Em Criar balanceador de carga, na guia Básico, configure o balanceador de carga usando os seguintes valores:
- Assinatura: Sua assinatura do Azure.
- Grupo de recursos: o grupo de recursos que contém as máquinas virtuais.
- Name: um nome que identifica o balanceador de carga.
- Região: a localização do Azure que contém as máquinas virtuais.
- SKU: Standard.
- Tipo: Público ou Interno. Um balanceador de carga interno pode ser acessado na rede virtual. A maioria dos aplicativos do Microsoft Azure pode usar um balanceador de carga interno. Se o aplicativo precisar de acesso ao SQL Server diretamente pela Internet, use um balanceador de carga público.
- Camada: Regional.
Selecione Próximo: Configuração do IP de front-end.
Selecione Adicionar uma configuração de IP de front-end.
Configure o endereço IP de front-end usando os seguintes valores:
- Nome: um nome que identifica a configuração de IP de front-end.
- Rede virtual: a mesma rede que a das máquinas virtuais.
- Sub-rede: a mesma sub-rede que as máquinas virtuais.
- Atribuição: Estático.
- Endereço IP: o endereço IP atribuído ao recurso de rede clusterizado.
- Zona de disponibilidade: uma zona de disponibilidade opcional para implantar o endereço IP.
Selecione Adicionar para criar o endereço IP de front-end.
Selecione Examinar + criar para criar o balanceador de carga.
Configurar um pool de back-end
Retorne ao grupo de recursos do Azure que contém as máquinas virtuais e localize o novo balanceador de carga. Talvez você precise atualizar a exibição no grupo de recursos. Escolha o balanceador de carga.
Selecione Pools de back-end e +Adicionar.
Em Nome, forneça um nome para o pool de back-end.
Em Configuração do Pool de Back-end, escolha NIC.
Selecione Adicionar para associar o pool de back-end ao conjunto de disponibilidade que contém as VMs.
Em Máquina virtual, escolha as máquinas virtuais que participarão como nós de cluster. Certifique-se de incluir todas as máquinas virtuais que hospedarão FCI.
Adicione apenas o endereço IP primário de cada VM. Não adicione nenhum endereço IP secundário.
Selecione Adicionar para adicionar as máquinas virtuais ao pool de back-end.
Selecione Salvar para criar o pool de back-end.
Configurar uma investigação de integridade
No painel do balanceador de carga, selecione Investigações de integridade.
No painel Adicionar investigação de integridade, defina os seguintes parâmetros:
- Name: um nome para a investigação de integridade.
- Protocolo: TCP.
- Porta: a porta que você criou no firewall para a investigação de integridade ao preparar a VM. Neste artigo, o exemplo usa a porta TCP 59999.
- Intervalo: cinco segundos.
Selecione Adicionar.
Definir regras de balanceamento de carga
No painel do balanceador de carga, selecione Regras de balanceamento de carga.
Selecione Adicionar.
Defina estes parâmetros:
- Nome: um nome para a regra de balanceamento de carga.
- Endereço IP de front-end: o endereço IP definido durante a configuração do front-end.
- Pool de back-end: o pool de back-end que contém as máquinas virtuais destinadas ao balanceador de carga.
- Portas de alta disponibilidade: habilita o balanceamento de carga em todas as portas para protocolos TCP e UDP.
- Protocolo: TCP.
- Porta: a porta TCP da FCI do SQL Server. O padrão é 1433.
- Porta de back-end: a mesma porta que o valor da Porta quando você habilita IP Flutuante (retorno de servidor direto) .
- Investigação de integridade: a investigação de integridade configurada anteriormente.
- Persistência de sessão: Nenhum.
- Tempo limite de ociosidade (minutos): 4.
- IP flutuante (retorno de servidor direto) : habilitado.
Selecione Salvar.
Configurar uma investigação de cluster
Defina o parâmetro de porta da investigação de cluster no PowerShell.
Atualize as variáveis no script a seguir com valores do seu ambiente. Remova os colchetes angulares (<
e >
) do script.
$ClusterNetworkName = "<Cluster Network Name>"
$IPResourceName = "<SQL Server FCI IP Address Resource Name>"
$ILBIP = "<n.n.n.n>"
[int]$ProbePort = <nnnnn>
Import-Module FailoverClusters
Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
A tabela a seguir descreve os valores que você precisará atualizar:
Variável | Valor |
---|---|
ClusterNetworkName |
O nome do cluster de failover do Windows Server para a rede. Em Gerenciador de Cluster de Failover>Redes, clique com o botão direito do mouse na rede e selecione Propriedades. O valor correto está em Nome, na guia Geral. |
IPResourceName |
O nome do recurso do endereço IP da FCI do SQL Server. Em Gerenciador de Cluster de Failover>Funções, na função FCI do SQL Server, em Nome do Servidor, clique com o botão direito do mouse no recurso de endereço IP e selecione Propriedades. O valor correto está em Nome, na guia Geral. |
ILBIP |
O endereço IP do balanceador de carga interno. Esse endereço é configurado no portal do Azure como o endereço de front-end do balanceador de carga interno. Ele também é o endereço IP da FCI do SQL Server. É possível localizá-lo no Gerenciador de clusters de failover, na mesma página de propriedades em que você encontrou o valor de IPResourceName . |
ProbePort |
A porta de investigação configurada na investigação de integridade do balanceador de carga. Qualquer porta TCP não usada é válida. |
SubnetMask |
A máscara de sub-rede para o parâmetro de cluster. Deve ser o endereço TCP/IP difundido: 255.255.255.255 . |
Depois de configurar a investigação de cluster, você poderá ver todos os parâmetros do cluster no PowerShell. Execute este script:
Get-ClusterResource $IPResourceName | Get-ClusterParameter
Modificar a cadeia de conexão
No caso dos clientes que têm o suporte necessário, adicione MultiSubnetFailover=True
à cadeia de conexão. Embora a opção de conexão MultiSubnetFailover
não seja necessária, ela fornece o benefício de um failover de sub-rede mais rápido. Isso ocorre porque o driver do cliente tenta abrir um soquete TCP para cada endereço de IP em paralelo. O driver do cliente aguarda a resposta bem-sucedida do primeiro endereço IP. Após essa resposta, o driver do cliente usa o endereço IP para a conexão.
Se o cliente não der suporte ao parâmetro MultiSubnetFailover
, modifique as configurações RegisterAllProvidersIP
e HostRecordTTL
para evitar atrasos de conectividade após o failover.
Use o PowerShell para modificar as configurações RegisterAllProvidersIp
e HostRecordTTL
:
Get-ClusterResource yourFCIname | Set-ClusterParameter RegisterAllProvidersIP 0
Get-ClusterResource yourFCIname | Set-ClusterParameter HostRecordTTL 300
Para saber mais, confira a documentação sobre o tempo limite de conexão do ouvinte no SQL Server.
Dica
- Defina o parâmetro
MultiSubnetFailover
comotrue
na cadeia de conexão, mesmo para soluções de HADR que abrangem uma única sub-rede. Essa configuração dá suporte à expansão futura de sub-redes sem a necessidade de atualizar cadeias de conexão. - Por padrão, os clientes armazenam em cache registros DNS do cluster por 20 minutos. Ao reduzir
HostRecordTTL
, você reduz o TTL (tempo de vida útil) do registro armazenado em cache. Os clientes herdados podem se reconectar mais rapidamente. Devido a isso, reduzir a configuraçãoHostRecordTTL
pode aumentar o tráfego para os servidores DNS.
Failover de Teste
Teste o failover do recurso clusterizado para validar a funcionalidade do cluster:
- Conecte-se a um dos nós de cluster do SQL Server usando o protocolo RDP.
- Abra o Gerenciador de Cluster de Failover. Selecione funções. Observe qual nó possui a função FCI do SQL Server.
- Clique com o botão direito do mouse na função FCI do SQL Server.
- Selecione Mover e O Melhor Nó Possível.
O Gerenciador de Cluster de Failover mostra a função e seus recursos ficam offline. Os recursos então são movidos e ficam online novamente no outro nó.
Testar a conectividade
Para testar a conectividade, entre em outra máquina virtual na mesma rede virtual. Abra o SQL Server Management Studio e conecte-se ao nome de FCI do SQL Server.
Observação
Se necessário, baixe o SQL Server Management Studio.
Próximas etapas
Para obter mais informações, consulte: