Configuración de un DNN para la instancia de clúster de conmutación por error
Se aplica a: SQL Server en VM de Azure
En Azure Virtual Machines, el nombre de red distribuida (DNN) enruta el tráfico al recurso en clústeres adecuado. Proporciona una manera más fácil de conectarse a la instancia del clúster de conmutación por error de SQL Server que el nombre de red virtual (VNN), sin necesidad de una instancia de Azure Load Balancer.
En este artículo aprenderá a configurar un recurso de DNN para enrutar el tráfico a su instancia de clúster de conmutación por error con VM con SQL Server en Azure para lograr una alta disponibilidad y recuperación ante desastres (HADR).
En el caso de una opción de conectividad alternativa, considere la posibilidad de usar un nombre de red virtual y Azure Load Balancer en su lugar.
Información general
El nombre de red distribuida (DNN) reemplaza el nombre de red virtual (VNN) como punto de conexión cuando se usa con una instancia de clúster de conmutación por error Always On en VM con SQL Server. Esto evita la necesidad de que una instancia de Azure Load Balancer enrute el tráfico al VNN, lo que simplifica la implementación y el mantenimiento, y mejora la conmutación por error.
Con una implementación de FCI, el VNN sigue existiendo, pero el cliente se conecta al nombre DNS del DNN en lugar de al nombre del VNN.
Sugerencia
Simplifique la implementación y elimine la necesidad de una instancia de Azure Load Balancer o un nombre de red distribuida (DNN) para la instancia de clúster de conmutación por error mediante la creación de las máquinas virtuales (VM) de SQL Server en varias subredes dentro de la misma red virtual de Azure.
Requisitos previos
Antes de completar los pasos de este artículo, ya debe tener:
- SQL Server con SQL Server 2019 CU8 y posterior, SQL Server 2017 CU25 y posterior, o SQL Server 2016 SP3 y posterior en Windows Server 2016 y posterior.
- Decidió que el nombre de red distribuida es la opción de conectividad adecuada para su solución HADR.
- Configuró las instancias de clúster de conmutación por error.
- Instaló la versión más reciente de Azure PowerShell.
Nota:
Si tiene varios grupos de disponibilidad o FCI en el mismo clúster y utiliza una escucha de DNN o VNN, cada grupo de disponibilidad o FCI necesita su propio punto de conexión independiente.
Creación de un recurso DNN
El recurso DNN se crea en el mismo grupo de clúster que la FCI de SQL Server. Use PowerShell para crear el recurso DNN en el grupo de clúster de la FCI.
El siguiente comando de PowerShell agrega un recurso DNN al grupo de clústeres de la instancia de clúster de conmutación por error (FCI) de SQL Server con el nombre de recurso <dnnResourceName>
. El nombre del recurso se utiliza para identificarlo de forma única. Use uno que le resulte útil y que sea único en todo el clúster. El tipo de recurso debe ser Distributed Network Name
.
El valor -Group
debe ser el nombre del grupo de clústeres que corresponda a la FCI de SQL Server en el que desee agregar el nombre de red distribuida. En el caso de una instancia predeterminada, el formato típico es SQL Server (MSSQLSERVER)
.
Add-ClusterResource -Name <dnnResourceName> `
-ResourceType "Distributed Network Name" -Group "<WSFC role of SQL Server instance>"
Por ejemplo, para crear el recurso DNN dnn-demo
para una FCI de SQL Server predeterminado, use el siguiente comando de PowerShell:
Add-ClusterResource -Name dnn-demo `
-ResourceType "Distributed Network Name" -Group "SQL Server (MSSQLSERVER)"
Establecimiento del nombre DNS del nombre de red distribuida del clúster
Establezca el nombre DNS del recurso DNN en el clúster. Después, el clúster usa este valor para enrutar el tráfico al nodo que hospeda actualmente la FCI de SQL Server.
Los clientes utilizan el nombre DNS para conectarse a la FCI de SQL Server. Puede elegir un valor único. O bien, si ya tiene una FCI existente y no desea actualizar las cadenas de conexión de cliente, puede configurar el nombre de red distribuida para que use el nombre de la red virtual actual que los clientes ya usan. Para ello, debe cambiar el nombre de red virtual antes de establecer el nombre de red distribuida en DNS.
Use este comando para establecer el nombre DNS para el nombre de red distribuida:
Get-ClusterResource -Name <dnnResourceName> | `
Set-ClusterParameter -Name DnsName -Value <DNSName>
El valor DNSName
es lo que los clientes usan para conectarse a la FCI de SQL Server. Por ejemplo, para que los clientes se conecten a FCIDNN
, use el siguiente comando de PowerShell:
Get-ClusterResource -Name dnn-demo | `
Set-ClusterParameter -Name DnsName -Value FCIDNN
Los clientes ahora escribirán FCIDNN
en su cadena de conexión al conectarse a la FCI de SQL Server.
Advertencia
No elimine el nombre de red virtual (VNN) actual, ya que es un componente necesario de la infraestructura de FCI.
Cambio del nombre de red virtual
Si tiene un nombre de red virtual y desea que los clientes sigan usando este valor para conectarse a la FCI de SQL Server, debe cambiar el nombre de red virtual actual por un valor de marcador de posición. Después de cambiar el nombre de red virtual actual, puede establecer ese nombre como nombre DNS para el nombre de red distribuida.
Al cambiar el nombre de red virtual, se aplican algunas restricciones. Para más información, consulte Cambio del nombre de una FCI.
Si en su empresa no es necesario usar el nombre de red virtual actual, omita esta sección. Después de cambiar el nombre de red virtual, establezca el nombre DNS del nombre de red distribuida del clúster.
Establecimiento del recurso DNN en línea
Una vez que el recurso DNN tenga el nombre apropiado y haya establecido el valor de nombre DNS en el clúster, use PowerShell para establecer el recurso DNN en línea en el clúster:
Start-ClusterResource -Name <dnnResourceName>
Por ejemplo, para iniciar el recurso DNN dnn-demo
, use el siguiente comando de PowerShell:
Start-ClusterResource -Name dnn-demo
Configuración de propietarios posibles
De forma predeterminada, el clúster enlaza el nombre DNS del nombre de red distribuida con todos los nodos del clúster. Sin embargo, los nodos del clúster que no forman parte de la FCI de SQL Server se deben excluir de la lista de propietarios posibles de DNN.
Para actualizar los propietarios posibles, siga estos pasos:
Vaya al recurso DNN en el Administrador de clústeres de conmutación por error.
Haga clic con el botón derecho en el recurso DNN y seleccione Propiedades.
Desactive la casilla de los nodos que no participen en la instancia del clúster de conmutación por error. La lista de propietarios posibles del recurso DNN debe coincidir con la del recurso de la instancia de SQL Server. Por ejemplo, suponiendo que Data3 no participe en la FCI, la imagen siguiente es un ejemplo de cómo quitar Data3 de la lista de propietarios posibles del recurso DNN:
Seleccione Aceptar para guardar la configuración.
Reinicio de la instancia de SQL Server
Use el Administrador de clústeres de conmutación por error para reiniciar la instancia de SQL Server. Siga estos pasos:
- Vaya a su recurso de SQL Server en el Administrador de clústeres de conmutación por error.
- Haga clic con el botón derecho en el recurso de SQL Server y desconéctelo.
- Una vez que todos los recursos asociados estén desconectados, haga clic con el botón derecho en el recurso de SQL Server y vuelva a ponerlo en línea.
Actualización de la cadena de conexión
Actualice la cadena de conexión de cualquier aplicación que se conecte a un DNN de la FCI de SQL Server e incluya MultiSubnetFailover=True
en la cadena de conexión. Si el cliente no admite el parámetro MultiSubnetFailover, no es compatible con un DNN.
A continuación, se muestra una cadena de conexión de ejemplo para un DNN de la FCI de SQL con el nombre DNS de FCIDNN:
Data Source=FCIDNN, MultiSubnetFailover=True
Además, si el nombre de red distribuida no usa el nombre de red virtual original, los clientes SQL que se conecten a la FCI de SQL Server deberán actualizar su cadena de conexión con el nombre DNS del nombre de red distribuida. Para evitar este requisito, puede actualizar el valor del nombre DNS para que sea el nombre de red virtual. Sin embargo, primero tendrá que reemplazar el nombre de red virtual existente con un marcador de posición.
Conmutación por error de prueba
Pruebe la conmutación por error del recurso en clúster para validar la funcionalidad del clúster.
Para probar la conmutación por error, siga estos pasos:
- Conéctese a uno de los nodos de clúster de SQL Server con RDP o Bastion.
- 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 con el nombre DNS de DNN.
Si es necesario, puede descargar SQL Server Management Studio.
Evitar conflictos de IP
Este es un paso opcional para evitar que se asigne a otro recurso de Azure un duplicado de la dirección IP virtual (VIP) que usa el recurso FCI.
Aunque los clientes ahora usan la DNN para conectarse a la FCI de SQL Server, el nombre de red virtual (VNN) y la dirección IP virtual no se pueden eliminar ya que son componentes necesarios de la infraestructura de FCI. Sin embargo, dado que ya no hay un equilibrador de carga que reserva la dirección IP virtual en Azure, existe el riesgo de que otro recurso de la red virtual tenga asignada la misma dirección IP que la que usa la FCI. Como consecuencia, podría producirse un problema de conflicto de IP duplicada.
Para reservar la dirección IP, configure una dirección APIPA o un adaptador de red dedicado.
Dirección APIPA
Para evitar el uso de direcciones IP duplicadas, configure una dirección APIPA (también conocida como dirección local de vínculo). Para ello, ejecute el siguiente comando:
Get-ClusterResource "virtual IP address" | Set-ClusterParameter
–Multiple @{"Address"="169.254.1.1";"SubnetMask"="255.255.0.0";"OverrideAddressMatch"=1;"EnableDhcp"=0}
En este comando, "dirección IP virtual" es el nombre del recurso de dirección VIP en clúster y "169.254.1.1" es la dirección APIPA elegida para la dirección VIP. Elija la dirección que mejor se adapte a su negocio. Establezca OverrideAddressMatch=1
para permitir que la dirección IP esté en cualquier red, incluido el espacio de direcciones APIPA.
Adaptador de red dedicado
También puede configurar un adaptador de red en Azure para reservar la dirección IP usada por el recurso de dirección IP virtual. Sin embargo, esta solución consume la dirección del espacio de direcciones de la subred y existe la sobrecarga adicional de garantizar que el adaptador de red no se use para ningún otro propósito.
Limitaciones
- El cliente que se conecta al agente de escucha de DNN debe admitir el parámetro
MultiSubnetFailover=True
en la cadena de conexión. - Puede haber más consideraciones al trabajar con otras características de SQL Server y una FCI con un nombre de red distribuida. Para más información, consulte Interoperabilidad de FCI con DNN.
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