Configuración de un equilibrador de carga de Azure para un cliente de escucha de VNN de AG: SQL Server en máquinas virtuales de Azure

Se aplica a:SQL Server en VM de Azure

Sugerencia

Hay muchos métodos para implementar un grupo de disponibilidad. Simplifique la implementación y elimine la necesidad de un nombre de red distribuida (DNN) o un equilibrador de carga de Azure para el grupo de disponibilidad Always On mediante la creación de las máquinas virtuales (VM) de SQL Server en varias subredes dentro de la misma red virtual de Azure. Si ya ha creado el grupo de disponibilidad en una sola subred, puede migrarlo a un entorno de varias subredes.

En máquinas virtuales de Azure, los clústeres usan un equilibrador de carga para mantener una dirección IP que es preciso que esté en los nodos de clúster de uno en uno. En esta solución, el equilibrador de carga contiene la dirección IP del cliente de escucha del nombre de red virtual (VNN) para el grupo de disponibilidad Always On cuando las máquinas virtuales con SQL Server se encuentran en una única subred.

En este artículo aprende a configurar un equilibrador de carga mediante el servicio Azure Load Balancer. El equilibrador de carga enrutará el tráfico al cliente de escucha del grupo de disponibilidad con VM con SQL Server en Azure para lograr una alta disponibilidad y recuperación ante desastres (HADR).

Para obtener una opción de conectividad alternativa para los clientes que se encuentran en SQL Server 2019 CU8 y versiones posteriores, considere en su lugar un cliente de escucha de nombre de red distribuida (DNN). Un cliente de escucha de DNN ofrece una configuración simplificada y una conmutación por error mejorada.

Requisitos previos

Antes de completar los pasos de este artículo, ya debe tener:

Creación de un equilibrador de carga

Puede crear cualquiera de estos tipos de equilibradores de carga:

  • Interno: solo se puede acceder a un equilibrador de carga interno desde recursos privados que sean internos de la red. Cuando configure un equilibrador de carga interno y sus reglas, use la misma dirección IP que el cliente de escucha del grupo de disponibilidad para la dirección IP del front-end.

  • Externo: un equilibrador de carga externo puede enrutar el tráfico de los recursos públicos a los internos. Al configurar un equilibrador de carga externo, no puede usar la misma dirección IP que el cliente de escucha del grupo de disponibilidad, ya que la dirección IP del cliente de escucha no puede ser una dirección IP pública.

    Para usar un equilibrador de carga externo, asigne lógicamente una dirección IP en la misma subred que el grupo de disponibilidad que no entre en conflicto con ninguna otra dirección IP. Use esta dirección como dirección IP de front-end para las reglas de equilibrio de carga.

Importante

El 30 de septiembre de 2025, se retirará la SKU básica de Azure Load Balancer. Para obtener más información, consulte el anuncio oficial. Si actualmente usa Basic Load Balancer, actualice a Standard Load Balancer antes de la fecha de retirada. Para obtener instrucciones, revise Actualizar Load Balancer.

Para crear el equilibrador de carga:

  1. En Azure Portal, vaya al grupo de recursos que contiene las máquinas virtuales.

  2. Seleccione Agregar. Busque Equilibrador de carga en Azure Marketplace. Seleccione Equilibrador de carga.

  3. Seleccione Crear.

  4. En Crear equilibrador de carga, en la pestaña Aspectos básicos, configure el equilibrador de carga mediante los valores siguientes:

    • Suscripción: Su suscripción de Azure.
    • Grupo de recursos: El grupo de recursos que contiene las máquinas virtuales.
    • Name: un nombre que identifica el equilibrador de carga.
    • Región: La ubicación de Azure que contiene las máquinas virtuales.
    • SKU: Estándar.
    • Tipo: Pública o interna. A los equilibradores de carga internos se puede acceder desde la red virtual. La mayoría de las aplicaciones de Azure pueden usar un equilibrador de carga interno. Si la aplicación necesita acceder a SQL Server directamente a través de Internet, utilice un equilibrador de carga público.
    • Nivel: Regional.

    Screenshot of the Azure portal that shows the page for basic information about a load balancer.

  5. Seleccione Siguiente: Configuración de la dirección IP de frontend.

  6. Seleccione Agregar una configuración de IP de front-end.

    Screenshot of the Azure portal that shows the button for adding a frontend IP configuration.

  7. Configure la dirección IP de front-end con los valores siguientes:

    • Nombre: un nombre que identifica la configuración de la dirección IP de front-end.
    • Red virtual: la misma red que la de las máquinas virtuales.
    • Subred: la misma subred que la de las máquinas virtuales.
    • Asignación: estática.
    • Dirección IP: la dirección IP que asignó al recurso de red en clúster.
    • Zona de disponibilidad: una zona de disponibilidad opcional en la que se implementará la dirección IP.

    Screenshot of the Azure portal that shows the page for configuring a frontend IP address.

  8. Seleccione Agregar para crear la dirección IP de front-end.

  9. Seleccione Revisar y crear para crear el equilibrador de carga.

Configuración de un grupo de back-end

  1. Vuelva al grupo de recursos de Azure que contiene las máquinas virtuales y busque el equilibrador de carga nuevo. Es posible que tenga que actualizar la vista en el grupo de recursos. Seleccione el equilibrador de carga.

  2. Seleccione Grupos de back-end y, posteriormente, seleccione +Agregar.

  3. En Nombre, escriba un nombre para el grupo de back-end.

  4. En Configuración del grupo de back-end, seleccione NIC.

  5. Seleccione Agregar para asociar el grupo de back-end con el conjunto de disponibilidad que contiene las máquinas virtuales.

  6. En Máquina virtual, elija las máquinas virtuales que participarán como nodos de clúster. No olvide incluir todas las máquinas virtuales que hospedarán el grupo de disponibilidad.

    Agregue solo la dirección IP principal de cada máquina virtual. No agregue ninguna dirección IP secundaria.

  7. Seleccione Agregar para agregar las máquinas virtuales al grupo de back-end.

  8. Seleccione Guardar para crear el grupo de back-end.

Configuración de un sondeo de estado

  1. En el panel del equilibrador de carga, seleccione Sondeos de estado.

  2. En el panel Agregar sondeo de estado, establezca los parámetros siguientes:

    • Name: nombre del sondeo de estado.
    • Protocolo: TCP.
    • Puerto: el puerto que creó en el firewall para el sondeo de estado. En este artículo, el ejemplo usa el puerto TCP 59999.
    • Intervalo: 5 segundos.
  3. Seleccione Agregar.

Establecimiento de reglas de equilibrio de carga

  1. En el panel del equilibrador de carga, seleccione Reglas de equilibrio de carga.

  2. Seleccione Agregar.

  3. Establezca estos parámetros:

    • Nombre: nombre de la regla de equilibrio de carga.
    • Dirección IP de front-end: la dirección IP que estableció al configurar el front-end.
    • Backend pool: el grupo de back-end que contiene las máquinas virtuales destinadas al equilibrador de carga.
    • Puertos HA: habilita el equilibrio de carga para los protocolos TCP y UDP en todos los puertos.
    • Protocolo: TCP.
    • Puerto: el puerto TCP de SQL Server. El valor predeterminado es 1433.
    • Puerto back-end: el mismo puerto que el valor Puerto cuando se habilita IP flotante (Direct Server Return) .
    • Sondeo de mantenimiento: el sondeo de estado que configuró anteriormente.
    • Persistencia de la sesión: Ninguna.
    • Tiempo de espera de inactividad (minutos): 4.
    • IP flotante (Direct Server Return) : Habilitado.
  4. Seleccione Guardar.

Configuración de un sondeo de clúster

Establezca el parámetro del puerto de sondeo de clúster en PowerShell.

Actualice las variables del siguiente script con los valores del entorno. Quite los corchetes angulares (< y >) del 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}

En la tabla siguiente se describen los valores que debe actualizar:

Variable Valor
ClusterNetworkName Nombre del clúster de conmutación por error de Windows Server para la red. En Administrador de clústeres de conmutación por error>Redes, haga clic con el botón derecho en la red y después seleccione Propiedades. El valor correcto está debajo del campo Nombre en la pestaña General.
IPResourceName Nombre del recurso para la dirección IP del cliente de escucha del grupo de disponibilidad. En Administrador de clústeres de conmutación por error>Roles, en el rol de grupo de disponibilidad, en Nombre del servidor, haga clic con el botón derecho en el recurso de la dirección IP y después seleccione Propiedades. El valor correcto está debajo del campo Nombre en la pestaña General.
ILBIP Dirección IP del equilibrador de carga interno. Esta dirección se configura en Azure Portal como la dirección front-end del equilibrador de carga interno. Es la misma dirección IP que la del cliente de escucha del grupo de disponibilidad. Puede encontrarla en Administrador de clústeres de conmutación por error en la misma página de propiedades donde encontró el valor de IPResourceName.
ProbePort El puerto de sondeo configurado en el sondeo de estado del equilibrador de carga. Cualquier puerto TCP no utilizado es válido.
SubnetMask Máscara de subred para el parámetro de clúster. Debe ser la dirección de difusión TCP IP: 255.255.255.255.

Los cambios realizados no surtirán efecto hasta que el recurso de dirección IP se desconecte y vuelva a conectarse. Realice una conmutación por error del grupo de disponibilidad para que este cambio surta efecto. Después de establecer el sondeo de clúster puede ver todos los parámetros del clúster en PowerShell. Ejecute este script:

Get-ClusterResource $IPResourceName | Get-ClusterParameter

Modificación de la cadena de conexión

Para los clientes que lo admitan, agregue MultiSubnetFailover=True a la cadena de conexión. Aunque la opción de conexión MultiSubnetFailover no es necesaria, proporciona la ventaja de una conmutación por error más rápida de la subred. Esto se debe a que el controlador de cliente intenta abrir un socket de TCP para cada dirección IP en paralelo. El controlador de cliente espera a que la primera dirección IP responda correctamente. Después de la respuesta correcta, el controlador de cliente usa esa dirección IP para la conexión.

Si su cliente no admite el parámetro MultiSubnetFailover, puede modificar la configuración de RegisterAllProvidersIP y HostRecordTTL para evitar retrasos en la conectividad tras la conmutación por error.

Use PowerShell para modificar la configuración RegisterAllProvidersIp y HostRecordTTL:

Get-ClusterResource yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0  
Get-ClusterResource yourListenerName|Set-ClusterParameter HostRecordTTL 300 

Para obtener más información, consulte la documentación sobre el tiempo de espera de la conexión de escucha en SQL Server.

Sugerencia

  • Establezca MultiSubnetFailover parameter en true en la cadena de conexión, incluso para las soluciones HADR que abarcan una sola subred. Esta configuración admite la expansión futura de subredes sin necesidad de actualizar las cadenas de conexión.
  • De forma predeterminada, los clientes almacenan en memoria caché los registros DNS de clúster durante 20 minutos. Al reducir HostRecordTTL, se reduce el tiempo de vida (TTL) del registro almacenado en caché. Los clientes heredados pueden volver a conectarse más rápidamente. Como tal, reducir la configuración HostRecordTTL podría aumentar el tráfico a los servidores DNS.

Conmutación por error de prueba

Pruebe la conmutación por error del recurso de clúster para validar la funcionalidad del clúster:

  1. Abra SQL Server Management Studio y conéctese al cliente de escucha del grupo de disponibilidad.
  2. En el Explorador de objetos, expanda Grupo de disponibilidad Always On.
  3. Haga clic con el botón derecho en el grupo de disponibilidad y seleccione Conmutación por error.
  4. Siga las indicaciones del asistente para conmutar por error el grupo de disponibilidad a una réplica secundaria.

La conmutación por error se realiza correctamente cuando las réplicas cambian de roles y se sincronizan.

Comprobación de la conectividad

Para probar la conectividad, inicie sesión en otra máquina virtual de la misma red virtual. Abra SQL Server Management Studio y conéctese al cliente de escucha del grupo de disponibilidad.

Nota:

Si es necesario, puede descargar SQL Server Management Studio.

Pasos siguientes

Una vez creado el nombre de red virtual, puede optimizar la configuración del clúster para las VM con SQL Server.

Para obtener más información, consulte: