Configuración de un equilibrador de carga de Azure para un VNN de FCI: 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 nombre de red virtual (VNN) que utiliza el recurso en clúster en Azure.
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 a la instancia de clúster de conmutación por error con SQL Server en máquinas virtuales de Azure para lograr una alta disponibilidad y recuperación ante desastres (HADR).
Para obtener una opción de conectividad alternativa para SQL Server 2019 CU2 y versiones posteriores, considere la posibilidad de usar un nombre de red distribuida en su lugar. Un 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 instancia de clúster de conmutación por error.
- Ha configurado su FCI.
- 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 son internos de la red. Al configurar un equilibrador de carga interno y sus reglas, use la dirección IP de FCI como dirección IP de 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 se puede usar una dirección IP pública como la dirección IP de FCI.
Para usar un equilibrador de carga externo, asigne lógicamente una dirección IP en la misma subred que la FCI 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.
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.
Elija 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 FCI.
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 al preparar la máquina virtual. 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 = "<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}
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 |
El nombre de recurso para la dirección IP de la FCI de SQL Server. En Administrador de clústeres de conmutación por error>Roles, en el rol FCI de SQL Server, 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. También es la dirección IP del FCI de SQL Server. 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 . |
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 yourFCIname | Set-ClusterParameter RegisterAllProvidersIP 0
Get-ClusterResource yourFCIname | 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 el parámetro
MultiSubnetFailover
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:
- Conéctese a uno de los nodos de clúster de SQL Server mediante el Protocolo de escritorio remoto (RDP).
- Abra el Administrador de clústeres de conmutación por error. Seleccione Roles. Observe qué nodo posee el rol de FCI de SQL Server.
- Haga clic con el botón derecho en el rol de FCI de SQL Server.
- Seleccione Mover y, después, seleccione Mejor nodo posible.
El Administrador de clústeres de conmutación por error muestra el rol y sus recursos pierden su conexión. Después, los recursos se mueven y vuelven a conectarse en el otro nodo.
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 nombre de la FCI de SQL Server.
Nota:
Si es necesario, puede descargar SQL Server Management Studio.
Pasos siguientes
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
- Instancias de clúster de conmutación por error con SQL Server en Azure Virtual Machines
- Información general de las instancias de clúster de conmutación por error
- Configuración de alta disponibilidad y recuperación ante desastres para SQL Server en máquinas virtuales de Azure