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 máquina virtual 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:
- Decidido que Azure Load Balancer es la opción de conectividad adecuada para su grupo de disponibilidad.
- Instalada la versión más reciente de PowerShell.
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:
En Azure Portal, vaya al grupo de recursos que contiene las máquinas virtuales.
Seleccione Agregar. Busque Equilibrador de carga en Azure Marketplace. Seleccione Equilibrador de carga.
Seleccione Crear.
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.
Seleccione Siguiente: Configuración de la dirección IP de frontend.
Seleccione Agregar una configuración de IP de front-end.
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.
Seleccione Agregar para crear la dirección IP de front-end.
Seleccione Revisar y crear para crear el equilibrador de carga.
Configuración de un grupo de back-end
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.
Seleccione Grupos de back-end y, posteriormente, seleccione +Agregar.
En Nombre, escriba un nombre para el grupo de back-end.
En Configuración del grupo de back-end, seleccione NIC.
Seleccione Agregar para asociar el grupo de back-end con el conjunto de disponibilidad que contiene las máquinas virtuales.
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.
Seleccione Agregar para agregar las máquinas virtuales al grupo de back-end.
Seleccione Guardar para crear el grupo de back-end.
Configuración de un sondeo de estado
En el panel del equilibrador de carga, seleccione Sondeos de estado.
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.
Seleccione Agregar.
Establecimiento de reglas de equilibrio de carga
En el panel del equilibrador de carga, seleccione Reglas de equilibrio de carga.
Seleccione Agregar.
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.
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
entrue
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ónHostRecordTTL
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:
- Abra SQL Server Management Studio y conéctese al cliente de escucha del grupo de disponibilidad.
- En el Explorador de objetos, expanda Grupo de disponibilidad Always On.
- Haga clic con el botón derecho en el grupo de disponibilidad y seleccione Conmutación por error.
- 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:
- Clúster de conmutación por error de Windows Server con SQL Server en máquinas virtuales de Azure
- Grupos de disponibilidad Always On para SQL Server en Azure Virtual Machines
- Información general de los Grupos de disponibilidad AlwaysOn
- Configuración de alta disponibilidad y recuperación ante desastres para SQL Server en máquinas virtuales de Azure