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:

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:

  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.

    Captura de pantalla de Azure Portal en la que se muestra información básica sobre un equilibrador de carga.

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

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

    Captura de pantalla de Azure Portal en la que se muestra el botón para agregar una configuración de IP de front-end.

  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.

    Captura de pantalla de Azure Portal que muestra la página para configurar una dirección IP de front-end.

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

  9. Elija 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 FCI.

    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 al preparar la máquina virtual. 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 = "<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 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. Conéctese a uno de los nodos de clúster de SQL Server mediante el Protocolo de escritorio remoto (RDP).
  2. Abra el Administrador de clústeres de conmutación por error. Seleccione Roles. Observe qué nodo posee el rol de FCI de SQL Server.
  3. Haga clic con el botón derecho en el rol de FCI de SQL Server.
  4. 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: