Configurar um balanceador de carga do Azure para um ouvinte de VNN de AG – 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 mantém o endereço IP do ouvinte de VNN (nome de rede virtual) do AG (grupo de disponibilidade) Always On quando as VMs do SQL Server estão em uma sub-rede única.
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 o ouvinte do grupo de disponibilidade com o SQL Server em VMs do Azure para HADR (alta disponibilidade e recuperação de desastre).
Um ouvinte de DNN (nome de rede distribuída) é uma opção de conectividade alternativa para os clientes que utilizam o SQL Server 2019 CU8 e posteriores. Um ouvinte de DNN oferece configuração simplificada e failover aprimorado.
Pré-requisitos
Para realizar as etapas deste artigo, você já deve ter:
- Decidido que o Azure Load Balancer é a opção de conectividade para seu grupo de disponibilidade apropriada.
- 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 mesmo endereço IP do ouvinte do grupo de disponibilidade para 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 o mesmo endereço IP do ouvinte do grupo de disponibilidade, pois ele não pode ser um endereço IP público.
Para usar um balanceador de carga externo, aloque logicamente um endereço IP na mesma sub-rede do grupo de disponibilidade 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.
Importante
Em 30 de setembro de 2025, o SKU Básico do Azure Load Balancer será desativado. Para saber mais, confira o anúncio oficial. Se você estiver usando o Load Balancer Básico, atualize-o para o Standard antes da data de desativação. Para conferir as diretrizes, veja Atualizar o Load Balancer.
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. Inclua todas as máquinas virtuais que hospedarão o grupo de disponibilidade.
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. 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 = "<AG Listener 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 de recurso para o endereço IP do ouvinte do AG. Em Gerenciador de Cluster de Failover>Funções, na função grupo de disponibilidade, 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. Este é o mesmo endereço IP que do ouvinte do grupo de disponibilidade. É 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 |
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 . |
As alterações feitas não entram em vigor até que o recurso de endereço IP seja colocado offline e colocado online novamente. Execute um failover do grupo de disponibilidade para que essa alteração entre em vigor. 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 yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0
Get-ClusterResource yourListenerName|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
MultiSubnetFailover parameter
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:
- Abra o SQL Server Management Studio e conecte-se ao ouvinte do grupo de disponibilidade.
- No Pesquisador de Objetos, expanda Grupos de Disponibilidade Always On.
- Clique com o botão direito do mouse no Grupo de Disponibilidade e selecione Failover.
- Siga o assistente para solicitar o failover do grupo de disponibilidade para uma réplica secundária.
O failover é executado com sucesso quando as réplicas alternam funções e são sincronizadas.
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 ouvinte do grupo de disponibilidade.
Observação
Se necessário, baixe o SQL Server Management Studio.
Próximas etapas
Depois que o VNN for criado, considere otimizar as configurações de cluster para as VMs do SQL Server.
Para obter mais informações, consulte: