Las instancias de clúster de conmutación por error (FCI) Always On de Microsoft SQL Server le permiten ejecutar una única instancia de SQL Server en varios nodos del clúster de conmutación por error de Windows Server (WSFC). En cualquier momento, uno de los nodos del clúster aloja activamente la instancia de SQL. En caso de falla, WSFC transfiere automáticamente la propiedad de los recursos de la instancia a otro nodo.
SQL Server FCI requiere que los datos estén ubicados en un almacenamiento compartido para que se pueda acceder a ellos desde todos los nodos de WSFC. Esta guía describe cómo implementar una instancia de clúster de conmutación por error de SQL Server 2019 que utiliza Storage Spaces Direct (S2D) para almacenamiento compartido. S2D proporciona una SAN virtual basada en software que puede utilizar discos de datos de Compute Engine VM para almacenar la base de datos SQL.
El siguiente diagrama ilustra la implementación:
Al implementar una arquitectura hiperconvergente, las instancias de VM node-1
y node-2
sirven como nodos WSFC y también albergan el almacenamiento compartido. Se utiliza una tercera instancia de VM, witness
, para lograr un quórum en un escenario de conmutación por error. Las tres instancias de VM están distribuidas en tres zonas y comparten una subred común.
Los clientes se comunican con la instancia de SQL Server a través de un equilibrador de carga TCP interno . Este equilibrador de carga utiliza una verificación de estado personalizada para determinar qué nodo WSFC aloja actualmente la instancia de SQL y enruta el tráfico a esa instancia.
El artículo supone que ya implementó Active Directory en Google Cloud y que tiene conocimientos básicos de SQL Server, Active Directory y Compute Engine.
Objetivos
- Implemente un WSFC que comprenda dos instancias de VM de SQL Server y una tercera instancia de VM que actúe como testigo del recurso compartido de archivos.
- Implemente una FCI de SQL Server en el WSFC.
- Verifique que el clúster esté funcionando simulando una conmutación por error.
Costos
Este tutorial utiliza componentes facturables de Google Cloud, incluido:
Utilice la calculadora de precios para generar una estimación de costos basada en su uso proyectado.
Antes de comenzar
Para completar esta guía, necesita lo siguiente:
- Un dominio de Active Directory con al menos un controlador de dominio. Puede crear un dominio de Active Directory utilizando Microsoft AD administrado . Alternativamente, puedes implementar un entorno de Active Directory personalizado en Compute Engine y configurar una zona de reenvío de DNS privada que reenvíe consultas de DNS a tus controladores de dominio.
- Un usuario de Active Directory que tiene permiso para unir computadoras al dominio y puede iniciar sesión mediante RDP. Si está utilizando Microsoft AD administrado, puede usar el usuario
setupadmin
. - Un proyecto de Google Cloud y VPC con conectividad a sus controladores de dominio de Active Directory.
- Una subred que se utilizará para las instancias de VM de WSFC.
Para completar la guía, también necesitas un Google Cloud proyecto:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Cuando termine este tutorial, podrá evitar la facturación continua eliminando los recursos que creó. Para obtener más información, consulte Limpieza .
Preparando el proyecto y la red.
Para preparar su proyecto de Google Cloud y VPC para la implementación de SQL Server FCI, haga lo siguiente:
En la consola de Google Cloud, abra Cloud Shell haciendo clic en Activar Cloud Shell
botón.
Inicialice las siguientes variables:
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
Dónde:
-
VPC_NAME
: nombre de su VPC -
SUBNET_NAME
: nombre de tu subred
-
Establece tu ID de proyecto predeterminado:
gcloud config set project
PROJECT_ID
Reemplace
PROJECT_ID
con el ID de su proyecto de Google Cloud.Establece tu región predeterminada:
gcloud config set compute/region
REGION
Reemplace
REGION
con el ID de la región en la que desea implementar.
Crear reglas de firewall
Para permitir que los clientes se conecten a SQL Server, permitir la comunicación entre los nodos WSFC y permitir que el equilibrador de carga realice comprobaciones de estado , debe crear varias reglas de firewall. Para simplificar la creación de estas reglas de firewall, utiliza etiquetas de red :
- Los 2 nodos WSFC están anotados con la etiqueta
wsfc-node
. - Todos los servidores (incluido el testigo) están anotados con la etiqueta
wsfc
.
Cree reglas de firewall que utilicen estas etiquetas de red:
- Regrese a su sesión actual de Cloud Shell.
Cree reglas de firewall para los nodos WSFC:
SUBNET_CIDR=$(gcloud compute networks subnets describe $SUBNET_NAME --format=value\('ipCidrRange'\)) gcloud compute firewall-rules create allow-all-between-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp,udp,icmp \ --enable-logging \ --source-tags=wsfc \ --target-tags=wsfc \ --network=$VPC_NAME \ --priority 10000 gcloud compute firewall-rules create allow-sql-to-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp:1433 \ --enable-logging \ --source-ranges=$SUBNET_CIDR \ --target-tags=wsfc-node \ --network=$VPC_NAME \ --priority 10000
Cree una regla de firewall que permita realizar comprobaciones de estado de los rangos de IP de los sondadores de Google Cloud :
gcloud compute firewall-rules create allow-health-check-to-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=wsfc-node \ --network=$VPC_NAME \ --priority 10000
Crear instancias de VM
Ahora implementará dos instancias de VM para el clúster de conmutación por error. En cualquier momento, solo una de estas máquinas virtuales actúa como nodo FCI activo, mientras que el otro nodo actúa como nodo de conmutación por error. Las dos instancias de VM deben cumplir los siguientes requisitos:
- Están ubicados en la misma región para que un equilibrador de carga TCP interno pueda acceder a ellos.
- Su agente invitado está configurado para usar el modo WSFC . En este modo, el agente invitado ignora las direcciones IP de los balanceadores de carga internos al configurar la interfaz de red local. Este comportamiento es necesario para evitar conflictos de direcciones IP durante eventos de conmutación por error de WSFC.
Utiliza una imagen premium de SQL Server que tiene SQL Server 2019 preinstalado.
Para proporcionar una votación de desempate y lograr un quórum para el escenario de conmutación por error, implemente una tercera máquina virtual que sirva como testigo del recurso compartido de archivos .
- Regrese a su sesión actual de Cloud Shell.
Cree un script especializado para los nodos WSFC. El script instala la característica necesaria de Windows y crea reglas de firewall para WSFC y SQL Server:
cat << "EOF" > specialize-node.ps1 $ErrorActionPreference = "stop" # Install required Windows features Install-WindowsFeature Failover-Clustering -IncludeManagementTools Install-WindowsFeature RSAT-AD-PowerShell # Open firewall for WSFC netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59997 # Open firewall for SQL Server netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433 EOF
Cree las instancias de VM. En las dos máquinas virtuales que sirven como nodos S2D y WSFC, conecte discos de datos adicionales y habilite el modo WSFC configurando la clave de metadatos
enable-wsfc
entrue
:REGION=$(gcloud config get-value compute/region) PD_SIZE=50 MACHINE_TYPE=n2-standard-8 gcloud compute instances create node-1 \ --zone $REGION-a \ --machine-type $MACHINE_TYPE \ --subnet $SUBNET_NAME \ --image-family sql-ent-2019-win-2022 \ --image-project windows-sql-cloud \ --tags wsfc,wsfc-node \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --boot-disk-device-name "node-1" \ --create-disk=name=node-1-datadisk-1,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-1-datadisk-2,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-1-datadisk-3,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-1-datadisk-4,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create node-2 \ --zone $REGION-b \ --machine-type $MACHINE_TYPE \ --subnet $SUBNET_NAME \ --image-family sql-ent-2019-win-2022 \ --image-project windows-sql-cloud \ --tags wsfc,wsfc-node \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --boot-disk-device-name "node-2" \ --create-disk=name=node-2-datadisk-1,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-2-datadisk-2,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-2-datadisk-3,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-2-datadisk-4,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create "witness" \ --zone $REGION-c \ --machine-type n2-standard-2 \ --subnet $SUBNET_NAME \ --image-family=windows-2022 \ --image-project=windows-cloud \ --tags wsfc \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"
Para unir las 3 instancias de VM a Active Directory, haga lo siguiente para cada una de las 3 instancias de VM:
Supervise el proceso de inicialización de la VM viendo la salida del puerto serie:
gcloud compute instances tail-serial-port-output
NAME
Reemplace
NAME
con el nombre de la instancia de VM.Espere unos minutos hasta que vea que la
Instance setup finished
y luego presione Ctrl+C. En este punto, la instancia de VM está lista para usarse.Cree un nombre de usuario y contraseña para la instancia de VM
Conéctese a la máquina virtual mediante Escritorio remoto e inicie sesión con el nombre de usuario y la contraseña creados en el paso anterior.
Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
Confirme el mensaje de elevación haciendo clic en Sí .
Una la computadora a su dominio de Active Directory y reinicie:
Add-Computer -Domain
DOMAIN -Restart
Reemplace
DOMAIN
con el nombre DNS de su dominio de Active Directory.Espere aproximadamente 1 minuto para que se complete el reinicio.
Reservar direcciones IP del clúster
Ahora reserva dos direcciones IP estáticas en su red VPC. Las dos direcciones tienen diferentes propósitos:
- IP del equilibrador de carga : los clientes utilizan esta dirección IP para conectarse a SQL Server.
- IP del clúster : esta dirección IP solo la utiliza internamente WSFC.
Para reservar las direcciones IP estáticas, haga lo siguiente:
Reserve una IP estática para el equilibrador de carga interno y capture la dirección en una nueva variable de entorno denominada
LOADBALANCER_ADDRESS
:gcloud compute addresses create wsfc \ --subnet $SUBNET_NAME \ --region $(gcloud config get-value compute/region) LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \ --region $(gcloud config get-value compute/region) \ --format=value\(address\)) && \ echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
Anote la dirección IP, la necesitará más tarde.
Reserve otra dirección IP estática que utilice como IP del clúster:
gcloud compute addresses create wsfc-cluster \ --subnet $SUBNET_NAME \ --region $(gcloud config get-value compute/region) && \ CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \ --region $(gcloud config get-value compute/region) \ --format=value\(address\)) && \ echo "Cluster IP: $CLUSTER_ADDRESS"
Anote la dirección IP, la necesitará más tarde.
Su proyecto y VPC ahora están listos para la implementación de WSFC y SQL Server.
Crear un recurso compartido de archivos testigo
Para preparar witness
para que actúe como testigo del recurso compartido de archivos, cree un recurso compartido de archivos y otorgue a usted y a los dos nodos WSFC acceso al recurso compartido de archivos:
- Conéctese para
witness
mediante Escritorio remoto . Inicie sesión con su cuenta de usuario de dominio. - Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
- Confirme el mensaje de elevación haciendo clic en Sí .
Cree la carpeta de testigos y comparta la carpeta:
New-Item "C:\QWitness" -Type directory icacls C:\QWitness\ /grant 'node-1$:(OI)(CI)(M)' icacls C:\QWitness\ /grant 'node-2$:(OI)(CI)(M)' New-SmbShare ` -Name QWitness ` -Path "C:\QWitness" ` -Description "SQL File Share Witness" ` -FullAccess $env:username,node-1$,node-2$
Implementación del clúster de conmutación por error
Ahora utilizará las instancias de VM para implementar WSFC y SQL Server.
Implementar WSFC
Ahora está listo para crear el clúster de conmutación por error:
- Conéctese al
node-1
mediante Escritorio remoto . Inicie sesión con su cuenta de usuario de dominio. - Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
- Confirme el mensaje de elevación haciendo clic en Sí .
Cree un nuevo clúster:
New-Cluster ` -Name windows-fci ` -Node node-1,node-2 ` -NoStorage ` -StaticAddress
CLUSTER_ADDRESS
Reemplace
CLUSTER_ADDRESS
con la dirección IP del clúster que creó anteriormente.El comando crea una cuenta de computadora
windows-fci
en su dominio de Active Directory.Regrese a la sesión de PowerShell en
witness
y otorgue permiso a la cuenta de computadorawindows-fci
para acceder al archivo compartido:icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)' Grant-SmbShareAccess ` -Name QWitness ` -AccountName 'windows-fci$' ` -AccessRight Full ` -Force
Regrese a la sesión de PowerShell en
node-1
y configure el clúster para usar el recurso compartido de archivos enwitness
como quórum del clúster:Set-ClusterQuorum -FileShareWitness \\witness\QWitness
Verifique que el clúster se haya creado correctamente:
Test-Cluster
Es posible que vea algunas advertencias que se pueden ignorar de forma segura:
WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings.. WARNING: Network - Validate Network Communication: The test reported some warnings.. WARNING: Test Result: HadUnselectedTests, ClusterConditionallyApproved Testing has completed for the tests you selected. You should review the warnings in the Report. A cluster solution is supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
También puede iniciar el complemento MMC del Administrador de clústeres de conmutación por error para revisar el estado del clúster ejecutando
cluadmin.msc
.Si está utilizando AD administrado, agregue la cuenta de computadora utilizada por WSFC al grupo Cuentas de unión al dominio del servicio en la nube para que pueda unir computadoras al dominio:
Install-WindowsFeature RSAT-ADDS Add-ADGroupMember ` -Identity "Cloud Service Domain Join Accounts" ` -Members windows-fci$
Habilitación de espacios de almacenamiento directo
Ahora habilita S2D y crea un volumen compartido de clúster que combina los tres discos persistentes que creó anteriormente:
- Regrese a la sesión de PowerShell en
node-1
. Habilitar S2D:
Enable-ClusterStorageSpacesDirect
Opcionalmente, si desea un mejor rendimiento del disco, puede agregar SSD locales SCSI a sus nodos S2D además de los discos persistentes SSD estándar. Los SSD locales pueden servir como capa de almacenamiento en caché S2D. Haga que la cantidad de unidades de capacidad (discos persistentes SSD en nuestro caso) sea un múltiplo de la cantidad de SSD locales. En su lugar, ejecute el siguiente comando para habilitar S2D con almacenamiento en caché:
Enable-ClusterStorageSpacesDirect -CacheDeviceModel "EphemeralDisk"
Acepte el valor predeterminado cuando se le solicite confirmar. Es posible que vea algunas advertencias que se pueden ignorar de forma segura:
WARNING: 2021/04/08-13:12:26.159 Node node-1: No disks found to be used for cache WARNING: 2021/04/08-13:12:26.159 Node node-2: No disks found to be used for cache
Opcionalmente, configure la caché en memoria del volumen compartido del clúster (CSV) en 2048 MB para obtener un mejor rendimiento de lectura:
(Get-Cluster).BlockCacheSize = 2048
Cree un nuevo volumen que utilice las versiones de volumen compartido del clúster de ReFS y un tamaño de clúster de 64 KB:
New-Volume ` -StoragePoolFriendlyName S2D* ` -FriendlyName FciVolume ` -FileSystem CSVFS_ReFS ` -UseMaximumSize ` -AllocationUnitSize 65536
Prueba de conmutación por error del grupo de almacenamiento
Opcionalmente, ahora puede probar si la conmutación por error del grupo de almacenamiento funciona correctamente:
- Conéctese al
node-2
mediante Escritorio remoto . Inicie sesión con su cuenta de usuario de dominio. - Haga clic derecho en el botón Inicio (o presione Win+X ) y seleccione Ejecutar
- Ingrese
cluadmin.msc
y seleccione Aceptar . En el panel izquierdo de la ventana, navegue hasta Administrador de clústeres de conmutación por error > windows-fci > Almacenamiento > Grupos .
Debería ver un grupo llamado Grupo de clúster 1 con el nodo Propietario establecido en
node-1
.Regrese a Cloud Shell y restablezca la máquina virtual
node-1
para simular una conmutación por error:gcloud compute instances reset node-1 --zone $REGION-a
Regrese al Administrador de clústeres de conmutación por error en
node-2
.Observe el estado del grupo de almacenamiento presionando repetidamente F5 para actualizar la vista.
Después de unos 30 segundos, el nodo propietario debería cambiar automáticamente al
node-2
.
Eliminar la instalación predeterminada de SQL Server
Ahora elimina la instalación predeterminada de SQL Server de los dos nodos y la reemplaza con una nueva configuración de FCI.
Para cada uno de los dos nodos WSFC, node-1
y node-2
, realice los siguientes pasos:
- Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
- Confirme el mensaje de elevación haciendo clic en Sí .
Elimine la instancia predeterminada de SQL Server:
C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
Eliminar el controlador OLE de Microsoft:
Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
Eliminar el controlador ODBC de Microsoft:
Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
Reinicie la computadora:
Restart-Computer
Espere aproximadamente 1 minuto para que se complete el reinicio.
Instalar SQL Server FCI
Antes de instalar la nueva configuración de FCI, verifique que el node-1
sea el nodo activo en el clúster:
- Vuelva a conectarse al
node-1
mediante Escritorio remoto e inicie sesión con el usuario de su dominio. - Haga clic derecho en el botón Inicio (o presione Win+X ) y seleccione Ejecutar
- Ingrese
cluadmin.msc
y seleccione Aceptar . En el panel izquierdo de la ventana, navegue hasta Administrador de clústeres de conmutación por error > windows-fci .
Verifique que el servidor host actual esté configurado en
node-1
.Si el servidor host actual está configurado en
node-2
, haga clic con el botón derecho en windows-fci en el panel izquierdo de la ventana y seleccione Más acciones > Mover recursos centrales del clúster > Seleccionar nodo… > nodo-1 y haga clic en Aceptar .En el panel izquierdo de la ventana, navegue hasta Administrador de clústeres de conmutación por error > windows-fci > Almacenamiento > Grupos .
Verifique que el nodo propietario del grupo de clústeres 1 esté configurado en
node-1
.Si el nodo propietario está configurado en
node-2
, haga clic derecho en el grupo, seleccione Mover > Seleccionar nodo > nodo-1 y haga clic en Aceptar .
Ahora creará una nueva instalación de clúster de conmutación por error de SQL Server en node-1
:
- Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
- Confirme el mensaje de elevación haciendo clic en Sí .
Cree una cuenta de usuario de dominio para el servidor SQL y el agente SQL y asigne una contraseña:
Directorio activo
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Agent and SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true
Microsoft AD administrado
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Agent and SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true ` -Path "OU=Cloud,DOMAIN"
Reemplace
DOMAIN
con el nombre completo de su dominio, por ejemploDC=example,DC=org
.Inicie la configuración de SQL Server:
& c:\sql_server_install\setup.exe
En el menú de la izquierda, seleccione Instalación .
Seleccione Nueva instalación de clúster de conmutación por error de SQL Server
En la página de Microsoft Update , seleccione Siguiente para iniciar la instalación.
En la página Instalar reglas de clúster de conmutación por error , verá una Advertencia , advertencias de verificación del clúster MSCS y firewall de Windows . Puede ignorar estas advertencias y seleccionar Siguiente .
En la página Clave de producto , mantenga los valores predeterminados y seleccione Siguiente .
En la página Términos de licencia , revise los términos y, si los acepta, seleccione Siguiente .
En la página Selección de funciones , seleccione Servicios del motor de base de datos y seleccione Siguiente .
En la página Configuración de instancia , ingrese
sql
para el nombre de la red y la instancia nombrada, y seleccione Siguiente .En la página Grupo de recursos del clúster , mantenga los valores predeterminados y seleccione Siguiente .
En la página Selección de disco de clúster , habilite el Disco virtual de clúster (FciVolume) y desactive todos los demás discos. Seleccione Siguiente .
En la página Configuración de red del clúster , configure los siguientes ajustes y luego seleccione Siguiente :
- DHCP : claro
- Dirección IP: ingrese la dirección IP del balanceador de carga interno.
En la página de configuración del servidor , configure las siguientes opciones tanto para el Agente SQL Server como para el Motor de base de datos de SQL Server :
- Nombre de cuenta :
DOMAIN \sql_server
dondeDOMAIN
es el nombre NetBIOS de su dominio de Active Directory - Contraseña : Ingrese la contraseña que creó anteriormente
- Nombre de cuenta :
Seleccione la pestaña Intercalación y seleccione la intercalación que desea utilizar. Luego haga clic en Siguiente .
En la página Configuración del motor de base de datos , seleccione Agregar usuario actual para designar al usuario actual como administrador de SQL Server. Luego seleccione Siguiente .
En la página Listo para instalar , revise la configuración y luego seleccione Instalar .
Una vez completada la instalación, seleccione Cerrar .
Su dominio de Active Directory ahora contiene una cuenta de computadora sql
que representa la instancia de SQL Server y una entrada DNS correspondiente que apunta a la dirección IP del equilibrador de carga interno.
Ahora agregue node-2
al clúster de conmutación por error de SQL Server:
- Conéctese al
node-2
mediante Escritorio remoto e inicie sesión con el usuario de su dominio. - Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
- Confirme el mensaje de elevación haciendo clic en Sí .
Inicie la configuración de SQL Server:
& c:\sql_server_install\setup.exe
En el menú de la izquierda, seleccione Instalación .
Seleccione Agregar nodo a un clúster de conmutación por error de SQL Server .
Sigue las instrucciones del asistente de instalación y acepta la configuración predeterminada hasta llegar a la página Cuentas de servicio .
En la página Cuentas de servicio , ingrese la contraseña que creó anteriormente para el Agente SQL Server y el Motor de base de datos SQL Server . Luego seleccione Siguiente .
En la página Listo para instalar , revise la configuración y luego seleccione Instalar .
Una vez completada la instalación, seleccione Cerrar .
Configurar controles de salud
Como paso final, configure el clúster para exponer un punto final de verificación de estado que pueda ser utilizado por un balanceador de carga interno:
- Regrese a la sesión de PowerShell en
node-2
Inicialice una variable con la dirección IP del equilibrador de carga.
$LoadBalancerIP = '
IP_ADDRESS
'Reemplace
IP_ADDRESS
con la dirección IP de la direcciónwsfc
que reservó anteriormente.Configure el clúster de conmutación por error para responder al servicio de verificación de estado:
$SqlGroup = Get-ClusterGroup | Where-Object {$_.Name.StartsWith("SQL Server")} $SqlIpAddress = Get-ClusterResource | Where-Object {$_.Name.StartsWith("SQL IP Address")} $SqlIpAddress | Set-ClusterParameter -Multiple @{ 'Address'=$LoadBalancerIP; 'ProbePort'= 59997; 'SubnetMask'='255.255.255.255'; 'Network'= (Get-ClusterNetwork).Name; 'EnableDhcp'=0; }
Reinicie el recurso del clúster:
$SqlIpAddress | Stop-ClusterResource $SqlIpAddress | Start-ClusterResource
Reinicie el grupo de clústeres:
$SqlGroup | Stop-ClusterGroup $SqlGroup | Start-ClusterGroup
Crear un equilibrador de carga interno
Para proporcionar un único punto final para los clientes de SQL Server, ahora debe implementar un equilibrador de carga interno . El equilibrador de carga utiliza una verificación de estado que garantiza que el tráfico se dirija al nodo activo del WSFC.
- Regrese a su sesión actual de Cloud Shell.
Crea dos grupos de instancias no administrados , uno por zona, y agrega los dos nodos a los grupos:
gcloud compute instance-groups unmanaged create wsfc-group-1 --zone $REGION-a gcloud compute instance-groups unmanaged add-instances wsfc-group-1 --zone $REGION-a \ --instances node-1 gcloud compute instance-groups unmanaged create wsfc-group-2 --zone $REGION-b gcloud compute instance-groups unmanaged add-instances wsfc-group-2 --zone $REGION-b \ --instances node-2
Cree una verificación de estado que el equilibrador de carga pueda usar para determinar cuál es el nodo activo.
gcloud compute health-checks create tcp wsfc-healthcheck \ --check-interval="2s" \ --healthy-threshold=1 \ --unhealthy-threshold=2 \ --port=59997 \ --timeout="1s"
La verificación de estado sondea el puerto
59997
, que es el puerto que configuró previamente comoProbePort
para el recurso de dirección IP de SQL Server.Cree un servicio backend y agregue los dos grupos de instancias:
gcloud compute backend-services create wsfc-backend \ --load-balancing-scheme internal \ --region $(gcloud config get-value compute/region) \ --health-checks wsfc-healthcheck \ --protocol tcp gcloud compute backend-services add-backend wsfc-backend \ --instance-group wsfc-group-1 \ --instance-group-zone $REGION-a \ --region $REGION gcloud compute backend-services add-backend wsfc-backend \ --instance-group wsfc-group-2 \ --instance-group-zone $REGION-b \ --region $REGION
Cree el equilibrador de carga interno:
gcloud compute forwarding-rules create wsfc-sql \ --load-balancing-scheme internal \ --address $LOADBALANCER_ADDRESS \ --ports 1433 \ --network $VPC_NAME \ --subnet $SUBNET_NAME \ --region $REGION \ --backend-service wsfc-backend
Prueba del clúster de conmutación por error
Ha completado la instalación del clúster de conmutación por error, pero aún debe probar si el clúster funciona correctamente.
preparar un cliente
Cree una nueva instancia de VM que pueda usar para conectarse al clúster de conmutación por error:
- Regrese a su sesión actual de Cloud Shell.
Cree una nueva instancia de VM:
gcloud compute instances create sqlclient \ --zone $REGION-a \ --machine-type n2-standard-2 \ --subnet $SUBNET_NAME \ --image-family sql-ent-2019-win-2022 \ --image-project windows-sql-cloud \ --boot-disk-size 50 \ --boot-disk-type pd-ssd
Supervise el proceso de inicialización de la VM viendo la salida del puerto serie:
gcloud compute instances tail-serial-port-output sqlclient
Espere unos minutos hasta que vea que la
Instance setup finished
y luego presione Ctrl+C. En este punto, la instancia de VM está lista para usarse.Cree un nombre de usuario y contraseña para la instancia de VM
Conéctese a la máquina virtual mediante Escritorio remoto e inicie sesión con el nombre de usuario y la contraseña creados en el paso anterior.
Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
Confirme el mensaje de elevación haciendo clic en Sí .
Une la computadora a tu dominio de Active Directory:
Add-Computer -Domain
DOMAIN
Reemplace
DOMAIN
con el nombre DNS de su dominio de Active Directory.Reinicie la computadora:
Restart-Computer
Espere aproximadamente 1 minuto para que se complete el reinicio.
ejecutar la prueba
Utilice la máquina virtual sqlclient
para probar que puede conectarse al clúster de conmutación por error y verificar que la conmutación por error funciona correctamente:
- Conéctese a
sqlclient
mediante Escritorio remoto e inicie sesión con el usuario de su dominio. - Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell .
Conéctese al clúster de SQL Server utilizando TCP/IP y el nombre DNS
sql
y consulte la tabladm_os_cluster_nodes
:& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S tcp:sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
La salida debería verse así:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 0 up 1 NODE-2 0 up 0 (2 rows affected)
Observe que
node-1
es el propietario actual del recurso del clúster de conmutación por error de SQL Server.Regrese a Cloud Shell y cierre la máquina virtual del nodo 1 para probar el escenario de conmutación por error.
gcloud compute instances stop node-1 --zone $REGION-a
Repetir la consulta:
& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S tcp:sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
La salida ahora debería verse así:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 1 down 0 NODE-2 0 up 1 (2 rows affected)
Observe que a pesar de la pérdida del
node-1
, la consulta se realiza correctamente y muestra quenode-2
ahora es el propietario actual del clúster de conmutación por error.
Limitaciones
- S2D solo es compatible con Windows Server 2016 y versiones posteriores.
- Con S2D, cada disco solo contiene una vista parcial de los datos generales. Por lo tanto, tomar una instantánea de un disco persistente no será suficiente para hacer una copia de seguridad de sus datos. Utilice una copia de seguridad SQL nativa en su lugar.
Limpiar
Una vez que termine el tutorial, puede limpiar los recursos que creó para que dejen de usar cuota y de incurrir en cargos. Las siguientes secciones describen cómo eliminar o desactivar estos recursos.
Eliminando el proyecto
La forma más sencilla de eliminar la facturación es eliminar el proyecto que creaste para el tutorial.
Para eliminar el proyecto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.