Configure SQL Server en la plataforma Google Cloud mediante el servicio Cloud Volumes


Este tutorial proporciona una descripción general de cómo configurar un sistema altamente resistente. Google Cloudentorno para SQL Server instalado en el almacenamiento compartido de archivos Server Message Block (SMB) utilizando NetApp Cloud Volumes Service (CVS) para Google Cloud.

Los grupos de disponibilidad (AG) Always On de Microsoft SQL Server le permiten replicar bases de datos en varias instancias de SQL Server Enterprise. Las instancias tradicionales de SQL Server Always On normalmente requieren que cada nodo mantenga una copia de los datos, lo que puede volverse costoso rápidamente a medida que crecen las bases de datos. Por ejemplo, en una implementación tradicional de SQL Server Always On, si las bases de datos tienen un tamaño de 10 TB, cada réplica debe tener al menos 10 TB de almacenamiento aprovisionado. Uno de los beneficios de tener un clúster de conmutación por error de Windows Server (WSFC) implementado para SQL Server es que solo necesita tener una copia de los datos, que se comparte entre los nodos del clúster. Por lo tanto, ejecutar SQL Server Always On en una instancia de clúster de conmutación por error (FCI) en un WSFC puede generar ahorros de costos de inmediato al reducir la cantidad de almacenamiento requerido.

NetApp Cloud Volumes Service es una solución de almacenamiento en la nube para ejecutar cargas de trabajo de SQL Server de alto rendimiento en combinación con instancias de motores informáticos. La base de datos de SQL Server sobre SMB en Cloud Volumes Service proporciona un nivel muy alto de resiliencia entre Google Cloud instancias y el servicio de almacenamiento. SMB Transparent Failover permite operaciones de mantenimiento en Cloud Volumes Service sin interrumpir la conectividad a las aplicaciones del servidor que almacenan y acceden a datos en volúmenes SMB. Para admitir la conmutación por error transparente de SMB, Cloud Volumes Service admite la opción de recursos compartidos de disponibilidad continua (CA) de SMB para usar con cargas de trabajo de SQL Server. Esto proporciona mejoras de rendimiento, escalabilidad y beneficios de costos para instancias únicas, instancias de clúster de conmutación por error Always On (AOFC) e implementaciones de grupos de disponibilidad Always On.

Esta página está destinada a los administradores de bases de datos de NetApp Cloud Volumes Service y SQL Server responsables de implementar Microsoft SQL Server en Google Cloud. Se supone lo siguiente:

  • Está familiarizado con los distintos componentes de la solución.
  • Ya implementaste Active Directory en Google Cloud

Objetivos

Este tutorial pretende conseguir los siguientes objetivos:

  • Crear un volumen de Cloud Volumes Service para SQL Server
  • Implementar un clúster de conmutación por error Always On en SMB en Cloud Volumes Service

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 este tutorial, necesita un proyecto de Google Cloud. Puedes crear uno nuevo o seleccionar un proyecto que ya hayas creado:

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. 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.
  4. 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 .
  5. Un proyecto de Google Cloud y VPC con conectividad a sus controladores de dominio de Active Directory.
  6. Asegúrese de que la API de NetApp Cloud Volumes esté habilitada para su proyecto de Google Cloud .
  7. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

Prepara tu proyecto y red

Para preparar su proyecto de Google Cloud y Virtual Private Cloud (VPC) para la implementación de grupos de disponibilidad Always On de SQL Server, haga lo siguiente:

  1. En la consola de Google Cloud, abra Cloud Shell haciendo clic en Activar Cloud ShellActive Cloud Shell. botón.

    Ve a la consola de Google Cloud

  2. Inicialice las siguientes variables:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

    Reemplace lo siguiente:

    • VPC_NAME : nombre de su VPC
    • SUBNET_NAME : nombre de tu subred
  3. Establece tu ID de proyecto predeterminado:

    gcloud config set project PROJECT_ID
    

    Reemplace PROJECT_ID con el ID de su proyecto de Google Cloud.

  4. 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.

  5. Establece tu zona predeterminada:

    gcloud config set compute/zone ZONE
    

    Reemplace ZONE con el ID de la zona en la que desea implementar.

Crear SMB en el servicio Cloud Volumes para SQL Server

Para crear un volumen de Cloud Volumes Service, debe crear una política de Active Directory, acceso a servicios privados, un grupo de almacenamiento y un volumen de almacenamiento.

  1. Para crear un nuevo Acceso a Servicio Privado , haga lo siguiente:

    1. En la consola de Google Cloud, vaya a la página de la red VPC .

      Ir a la red VPC

    2. Haga clic en el nombre de la red VPC que utilizará.

    3. Haga clic en la pestaña Acceso a servicios privados y luego haga clic en Asignar rango de IP .

      1. Ingrese un nombre para el rango de IP interno.
      2. Seleccione Automático e ingrese el valor 24 para Longitud del prefijo .
      3. Haga clic en el botón Asignar .
    4. Haga clic en la pestaña Conexiones privadas a servicios y haga lo siguiente:

      1. Haga clic en el botón Crear conexión .
      2. Seleccione el rango de IP previamente asignado para el menú desplegable Asignación asignada.
      3. Haga clic en el botón Conectar .
  2. Para crear una nueva política de Active Directory , haga lo siguiente:

    1. En la consola de Google Cloud, vaya a la página Volúmenes de NetApp .

      Ir a volúmenes de NetApp

    2. En el panel de navegación, haga clic en Políticas de Active Directory en la sección Políticas .

    3. Haga clic en el botón Crear .

    4. Especifique un nombre para la política del directorio activo.

    5. En Región , seleccione la región disponible más cercana a donde se alojarán las instancias de SQL Server.

    6. En la sección de detalles de conexión de Active Directory , proporcione la siguiente información:

      1. Nombre del dominio
      2. Direcciones del servidor DNS de Active Directory
      3. Nombre del sitio de Active Directory
      4. Nombre de la unidad organizativa
      5. Prefijo de nombre NetBIOS
    7. En la sección Credenciales de Active Directory , proporcione las credenciales de un usuario que pueda unir computadoras al dominio especificado.

    8. En la sección de configuración de SMB , proporcione los operadores de respaldo y los usuarios con privilegios de seguridad , si corresponde.

    9. Haga clic en Crear para completar el proceso de creación de una nueva política de Active Directory.

  3. Para crear un nuevo grupo de almacenamiento, haga lo siguiente:

    1. En el panel de navegación, haga clic en Grupos de almacenamiento en la sección Almacenamiento .
    2. Haga clic en el botón Crear .
    3. Introduzca un nombre para el grupo de almacenamiento.
    4. En Ubicación , seleccione la región disponible más cercana a donde se alojarán las instancias de SQL Server.
    5. Seleccione un nivel de servicio que satisfaga el rendimiento de almacenamiento esperado.
    6. Ingrese la Capacidad para el grupo de almacenamiento. La capacidad del grupo de almacenamiento define la capacidad de almacenamiento total que se puede asignar para todos los volúmenes dentro del grupo.
    7. En la lista Red , seleccione la VPC en la que se alojarán las instancias de SQL Server, de la siguiente manera:
      1. Haga clic en el botón Configurar conexión .
      2. Seleccione el rango de direcciones IP reservado en los pasos anteriores y haga clic en Continuar .
      3. Haga clic en el botón Crear conexión .
    8. En la sección Política de Active Directory , seleccione Asignar una política de Active Directory al grupo de almacenamiento y seleccione la política de Active Directory creada en el paso anterior.
    9. Haga clic en el botón Crear para completar el proceso de creación de un nuevo grupo de almacenamiento.
  4. Para crear un nuevo volumen de almacenamiento , haga lo siguiente:

    1. En el panel de navegación, haga clic en Volúmenes en la sección Almacenamiento .
    2. Haga clic en el botón Crear .
    3. Especifique un nombre para el volumen de almacenamiento.
    4. En Detalles del grupo de almacenamiento , haga clic en Seleccionar grupo de almacenamiento para seleccionar el grupo de almacenamiento creado en el paso anterior.
    5. En la sección Detalles del volumen , proporcione la siguiente información:
      1. Compartir nombre
      2. Capacidad de volumen
    6. En la sección Configuración de gran capacidad , seleccione Protocolo SMB.
    7. En la sección Configuración para protocolos seleccionados , seleccione Habilitar soporte compartido de CA para SQL Server, FSLogix .
    8. Haga clic en el botón Crear para completar el proceso de creación de un nuevo volumen de almacenamiento.

Crear reglas de firewall

Para permitir que los clientes se conecten a SQL Server, permitir la comunicación entre los nodos del clúster de conmutación por error de Windows Server (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, puede utilizar etiquetas de red :

  • Los WSFC que utiliza están anotados con la etiqueta wsfc-node .
  • Todos los servidores, incluido el testigo, están anotados con la etiqueta wsfc .

Para crear reglas de firewall que utilicen estas etiquetas de red, siga los siguientes pasos:

  1. Regrese a su sesión actual de Cloud Shell.
  2. 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
    
  3. Cree una regla de firewall que permita realizar comprobaciones de estado de los rangos de IP del Google Cloud sondadores :

    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á tres instancias de VM para el clúster de conmutación por error.

Node-1 albergará la réplica principal de la base de datos de SQL Server y node-2 albergará la réplica secundaria. Las dos instancias de VM deben:

  • Estar ubicados en la misma región para que se pueda acceder a ellos mediante un balanceador de carga de red de paso interno.
  • tener WSFC y SQL Server 2022 instalados usando la imagen premium de SQL Server

  • tener habilitada la compatibilidad con Compute Engine WSFC

Para proporcionar una votación de desempate y lograr un quórum para el escenario de conmutación por error, implemente un tercer node-3 de instancia de VM que sirva como testigo del recurso compartido de archivos .

  1. Regrese a su sesión actual de Cloud Shell.
  2. Cree un script 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
    
    # Open firewall for SQL Server replication
    netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022
    
    EOF
    
  3. Cree las instancias de VM. En las dos máquinas virtuales que sirven como nodos WSFC, conecte un disco de datos adicional y habilite el clúster de conmutación por error de Windows Server estableciendo la clave de metadatos enable-wsfc en true :

    REGION=$(gcloud config get-value compute/region)
    PD_SIZE=200
    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-2022-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" \
      --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-2022-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" \
      --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"
    
  4. Para unir las 3 instancias de VM a Active Directory, haga lo siguiente para cada una de las 3 instancias de VM:

    1. 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.

    2. Cree un nombre de usuario y contraseña para la instancia de VM

    3. 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.

    4. Haga clic con el botón derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .

    5. Confirme el mensaje de elevación haciendo clic en .

    6. Una la instancia de VM 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 a que se reinicie la instancia de VM.

Asignar permisos de almacenamiento

Para asignar permisos al almacenamiento de volúmenes en la nube, complete los siguientes pasos:

  1. Desde la consola de Google Cloud, seleccione Cloud Volumes y seleccione el volumen que acaba de crear.

    Volumen de la nube

  2. Conéctese al node-1 mediante Escritorio remoto . Inicie sesión con su cuenta de usuario de dominio.

  3. Abra el Explorador de Windows y haga clic derecho en Esta PC .

  4. Seleccione Mapear unidad de red .

  5. Pegue la ruta SMB copiada en la carpeta.

    Volumen de la nube

  6. Al iniciar sesión, deshabilite la opción Reconectar.

  7. Haga clic en Finalizar .

  8. Haga clic derecho en la unidad de red asignada y seleccione Propiedades .

    Volumen de la nube

  9. En la pestaña Seguridad , haga clic en Editar .

  10. Elimine a Todos y agregue el instalador de SQL Server y las cuentas de servicio de SQL Server con permisos de control total.

    Volumen de la nube

  11. Confirme el mensaje de elevación haciendo clic en .

Reservar direcciones IP del clúster

Reserve dos direcciones IP estáticas en su VPC, una para la dirección IP del clúster WSFC y otra para el equilibrador de carga interno.

  1. 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 \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --subnet $SUBNET_NAME
    
    LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\)) && \
    echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
    

    Anota la dirección IP, la necesitarás más tarde.

  2. 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/zone | rev | cut -c 3- | rev) && \
    CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\)) && \
    echo "Cluster IP: $CLUSTER_ADDRESS"
    

    Anota la dirección IP, la necesitarás 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:

  1. Conéctese para witness mediante Escritorio remoto . Inicie sesión con su cuenta de usuario de dominio.
  2. Haga clic con el botón derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
  3. Confirme el mensaje de elevación haciendo clic en .
  4. 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:

  1. Conéctese al node-1 mediante Escritorio remoto . Inicie sesión con su cuenta de usuario de dominio.
  2. Haga clic con el botón derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
  3. Confirme el mensaje de elevación haciendo clic en .
  4. 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.

  5. Regrese a la sesión de PowerShell como witness y otorgue permiso al objeto de computadora virtual del clúster para acceder al recurso compartido de archivos:

    icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)'
    Grant-SmbShareAccess `
      -Name QWitness `
      -AccountName 'windows-fci$' `
      -AccessRight Full `
      -Force
    
  6. Regrese a la sesión de PowerShell en node-1 y configure el clúster para usar el recurso compartido de archivos en witness como quórum del clúster:

    Set-ClusterQuorum -FileShareWitness \\witness\QWitness
    
  7. 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 .

  8. 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 instancias de VM al dominio:

    Add-ADGroupMember `
      -Identity "Cloud Service Domain Join Accounts" `
      -Members windows-fci$
    

Eliminar la instalación predeterminada de SQL Server

Ahora eliminará la instalación predeterminada de SQL Server de los dos nodos y la reemplazará con una nueva configuración de FCI.

Para cada uno de los dos nodos WSFC, node-1 y node-2 , realice los siguientes pasos:

  1. Haga clic con el botón derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
  2. Confirme el mensaje de elevación haciendo clic en .
  3. Elimine la instancia predeterminada de SQL Server:

    C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
    
  4. Eliminar el controlador OLE de Microsoft:

    Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
    
  5. Eliminar el controlador ODBC de Microsoft:

    Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
    
  6. Reinicie la computadora:

    Restart-Computer
    
  7. Espere a que se reinicie la instancia de VM.

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:

  1. Vuelva a conectarse al node-1 mediante Escritorio remoto e inicie sesión con el usuario de su dominio.
  2. Haga clic derecho en el botón Inicio (o presione Win+X ) y seleccione Ejecutar
  3. Ingrese cluadmin.msc y seleccione Aceptar .
  4. En el panel izquierdo de la ventana, navegue hasta Administrador de clústeres de conmutación por error > windows-fci y haga lo siguiente:

    1. Verifique que el servidor host actual esté configurado en node-1 .

    2. 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 .

Creará una nueva instalación de clúster de conmutación por error de SQL Server en node-1 :

  1. Haga clic con el botón derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
  2. Confirme el mensaje de elevación haciendo clic en .

  3. Inicie la configuración de SQL Server:

    & c:\sql_server_install\setup.exe
    
  4. En el menú de la izquierda, seleccione Instalación .

  5. Seleccione Nueva instalación del clúster de conmutación por error de SQL Server .

  6. En la página Edición , ingrese la clave del producto, seleccione el tipo de licencia de software y haga clic en Siguiente .

  7. En la página Términos de licencia , revise los términos y, si los acepta, haga clic en Siguiente .

  8. En la página de Microsoft Update , haga clic en Siguiente para iniciar la instalación.

  9. 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 hacer clic en Siguiente .

  10. En la página Selección de funciones , seleccione Servicios del motor de base de datos y haga clic en Siguiente .

  11. En la página Configuración de instancia , ingrese sql como nombre de red y haga clic en Siguiente .

  12. En la página Grupo de recursos del clúster , puede ignorar las advertencias de calificación y hacer clic en Siguiente .

  13. En la página Selección de disco del clúster , haga clic en Siguiente .

  14. En la página Configuración de la red del clúster , configure los siguientes ajustes y luego haga clic en Siguiente :

    • DHCP : claro
    • Dirección IP: ingrese la dirección IP del balanceador de carga interno
  15. 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 donde DOMAIN es el nombre NetBIOS de su dominio de Active Directory
    • Contraseña : ingrese la contraseña del usuario sql_server
  16. Seleccione la pestaña Intercalación y seleccione la intercalación que desea utilizar. Luego haga clic en Siguiente .

  17. 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. En la pestaña Directorios de datos , ingrese la ruta SMB en el campo Directorio raíz de datos y seleccione Siguiente . Aparecerá una ventana de mensaje informándole que verifique que la cuenta de servicio de SQL Server tenga permiso compartido de control total. Seleccione para continuar.

    Volumen de la nube

  18. En la página Listo para instalar , revise la configuración y luego seleccione Instalar .

  19. Una vez completada la instalación, seleccione Cerrar .

Ahora agregue node-2 al clúster de conmutación por error de SQL Server:

  1. Conéctese al node-2 mediante Escritorio remoto e inicie sesión con el usuario de su dominio.
  2. Haga clic con el botón derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .
  3. Confirme el mensaje de elevación haciendo clic en .
  4. Inicie la configuración de SQL Server:

    & c:\sql_server_install\setup.exe
    
  5. En el menú de la izquierda, seleccione Instalación .

  6. Seleccione Agregar nodo a un clúster de conmutación por error de SQL Server .

  7. Sigue las instrucciones del asistente de instalación y acepta la configuración predeterminada hasta llegar a la página Cuentas de servicio .

  8. 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 .

  9. En la página Listo para instalar , revise la configuración y luego seleccione Instalar .

  10. 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:

  1. Regrese a la sesión de PowerShell en node-2
  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ón wsfc que reservó anteriormente.

  3. 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; }
    
  4. Reinicie el recurso del clúster:

    $SqlIpAddress | Stop-ClusterResource
    $SqlIpAddress | Start-ClusterResource
    
  5. 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 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.

  1. Regrese a su sesión actual de Cloud Shell.
  2. Crea un grupo de instancias no administrado y agrega los dos nodos al grupo:

    REGION=$(gcloud config get-value compute/region)
    
    gcloud compute instance-groups unmanaged create wsfc-group-a \
      --zone $REGION-a
    gcloud compute instance-groups unmanaged add-instances wsfc-group-a \ 
      --zone $REGION-a --instances node-1
    
    gcloud compute instance-groups unmanaged create wsfc-group-b \
      --zone $REGION-b
    gcloud compute instance-groups unmanaged add-instances wsfc-group-b \ 
    --zone $REGION-b --instances node-2
    
  3. 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 como ProbePort para la dirección IP del clúster WSFC.

  4. Crea un servicio backend y agrega el grupo de instancias:

    gcloud compute backend-services create wsfc-backend \
      --load-balancing-scheme internal \
      --region $REGION \
      --health-checks wsfc-healthcheck \
      --protocol tcp
    
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-a \
      --instance-group-zone $REGION-a \
      --region $REGION
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-b \
      --instance-group-zone $REGION-b \
      --region $REGION
    
  5. 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:

  1. Regrese a su sesión actual de Cloud Shell.
  2. Cree una nueva instancia de VM:

    gcloud compute instances create sqlclient \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd
    
  3. 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 finaliza la configuración de la instancia de salida, luego presione Ctrl+C. En este punto, la instancia de VM está lista para usarse.

  4. Cree un nombre de usuario y contraseña para la instancia de VM

  5. 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.

  6. Haga clic con el botón derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell (Administrador) .

  7. Confirme el mensaje de elevación haciendo clic en .

  8. Una la instancia de VM a su dominio de Active Directory:

    Add-Computer -Domain DOMAIN
    

    Reemplace DOMAIN con el nombre DNS de su dominio de Active Directory.

  9. Reinicie la instancia de VM:

    Restart-Computer
    

    Espere a que se reinicie la instancia de VM.

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:

  1. Conéctese a sqlclient mediante Escritorio remoto e inicie sesión con el usuario de su dominio.
  2. Haga clic derecho en el botón Inicio (o presione Win+X ) y haga clic en Windows PowerShell .
  3. Conéctese al clúster de SQL Server utilizando su nombre de red sql y consulte la tabla dm_os_cluster_nodes :

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S 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.

  4. 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
    
  5. Repetir la consulta:

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S 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 que node-2 ahora es el propietario actual del clúster de conmutación por error.

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:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.