Configura SQL Server en Google Cloud Platform con Cloud Volumes Service


En este instructivo, se proporciona una descripción general de cómo configurar un entorno de Google Cloud de alta resiliencia para SQL Server instalado en el almacenamiento de archivos compartidos del bloque de mensajes del servidor (SMB) mediante NetApp Cloud Volumes Service (CVS) para Google Cloud.

Los grupos de disponibilidad Always On (AG) de Microsoft SQL Server te permiten replicar bases de datos en varias instancias de SQL Server Enterprise. Las instancias tradicionales de SQL Server Always On de SQL Server suelen requerir 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 necesitas 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ústeres de conmutación por error (FCI) en un WSFC puede obtener ahorros de costos de inmediato mediante la reducción de la cantidad de almacenamiento necesario.

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 Compute Engine. La base de datos de SQL Server a través de SMB en Cloud Volumes Service proporciona un nivel muy alto de resiliencia entre las instancias de Google Cloud y el servicio de almacenamiento. La conmutación por error transparente de SMB permite operaciones de mantenimiento en Cloud Volumes Service sin interrumpir la conectividad a las aplicaciones de servidor que almacenan y acceden a los datos en los 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) SMB para usar con cargas de trabajo de SQL Server. Esto proporciona mejoras de rendimiento, escalabilidad y beneficios de costo para instancias individuales, instancias de clústeres de conmutación por error siempre activados (AOFC) e implementaciones de grupos de disponibilidad Always On.

Esta página está dirigida a los administradores de bases de datos de NetApp Cloud Volumes Service y de SQL Server responsables de implementar Microsoft SQL Server en Google Cloud. Se da por sentado que:

  • Que estés familiarizado con los diversos componentes de la solución
  • Ya implementaste Active Directory en Google Cloud

Objetivos

En este instructivo, se alcanzan los siguientes objetivos:

  • Crea un volumen de Cloud Volumes Service para SQL Server
  • Implementa un clúster de conmutación por error siempre activado a través de SMB en Cloud Volumes Service

Costos

En este instructivo, se usan los siguientes componentes facturables de Google Cloud:

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto.

Antes de comenzar

Para este instructivo, necesitas un proyecto de 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. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  3. Un dominio de Active Directory con al menos un controlador de dominio. Puedes crear un dominio de Active Directory a través de Microsoft AD administrado. También puedes implementar un entorno personalizado de Active Directory en Compute Engine y configurar una zona de reenvío de DNS privado que reenvíe las consultas de DNS a los controladores de tu dominio.
  4. Un usuario de Active Directory que tenga permiso para unir computadoras al dominio y pueda acceder a través de RDP. Si usas Microsoft AD administrado, puedes usar el usuario setupadmin.
  5. Un proyecto de Google Cloud y una VPC con conectividad a los controladores de dominio de Active Directory.
  6. Asegúrate de que la API de NetApp Cloud Volumes esté habilitada para tu proyecto de Google Cloud.
  7. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

Prepara el proyecto y la red

Haz lo siguiente para preparar tu proyecto de Google Cloud y la nube privada virtual (VPC) para la implementación de grupos de disponibilidad Always On de SQL Server:

  1. En la consola de Google Cloud, haz clic en el botón Activar Cloud ShellActivar Cloud Shell. para abrir Cloud Shell.

    Ve a la consola de Google Cloud.

  2. Inicializa las siguientes variables:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

    Reemplaza lo siguiente:

    • VPC_NAME: Es el nombre de tu VPC.
    • SUBNET_NAME: Es el nombre de tu subred.
  3. Establece tu ID del proyecto predeterminado:

    gcloud config set project PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

  4. Configura la región predeterminada:

    gcloud config set compute/region REGION
    

    Reemplaza REGION por el ID de la región en la que deseas realizar la implementación.

  5. Establece la zona predeterminada:

    gcloud config set compute/zone ZONE
    

    Reemplaza ZONE por el ID de la zona en la que deseas realizar la implementación.

Crea SMB en Cloud Volumes Service para SQL Server

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

  1. Para crear un nuevo acceso privado a servicios, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página Redes de VPC.

      Ir a Red de VPC

    2. Haz clic en el nombre de la red de VPC que usarás.

    3. Haz clic en la pestaña Acceso privado a servicios y, luego, en Asignar rango de IP.

      1. Ingresa un nombre para el rango de IP internas.
      2. Selecciona Automático y, luego, ingresa el valor 24 para la Longitud del prefijo.
      3. Haz clic en el botón Asignar.
    4. Haz clic en la pestaña Conexiones privadas a los servicios y haz lo siguiente:

      1. Haz clic en el botón Crear conexión.
      2. Selecciona el rango de IP asignado anteriormente para el menú desplegable Asignación designada.
      3. Haz clic en el botón Conectar.
  2. Para crear una nueva política de Active Directory, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página NetApp Volumes.

      Ir a NetApp Volumes

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

    3. Haz clic en el botón Crear

    4. Especifica un nombre para la política de Active Directory.

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

    6. En la sección Detalles de conexión de Active Directory, proporciona 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 del nombre de NetBIOS
    7. En la sección Credenciales de Active Directory, proporciona las credenciales para un usuario que pueda unir computadoras al dominio especificado.

    8. En la sección Configuración de SMB, proporciona los Operadores de copia de seguridad y Usuarios del privilegio de seguridad, si corresponde.

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

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

    1. En el panel de navegación, haz clic en Grupos de almacenamiento en la sección Almacenamiento.
    2. Haz clic en el botón Crear
    3. Ingresa un nombre para el grupo de nodos.
    4. En Ubicación, selecciona la región disponible más cercana a donde se alojarán las instancias de SQL Server.
    5. Selecciona un Nivel de servicio que satisfaga el rendimiento de almacenamiento esperado.
    6. Ingresa 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, selecciona la VPC en la que se alojarán las instancias de SQL Server, de la siguiente manera:
      1. Haz clic en el botón Configurar conexión.
      2. Selecciona el rango de direcciones IP reservado en los pasos anteriores y haz clic en Continuar.
      3. Haz clic en el botón Crear conexión.
    8. En la sección Política de Active Directory, selecciona Asignar una política de Active Directory al grupo de almacenamiento y elige la política de Active Directory creada en el paso anterior.
    9. Haz clic en el botón Crear para completar el proceso de creación de un grupo de almacenamiento nuevo.
  4. Para crear un volumen de almacenamiento nuevo, haz lo siguiente:

    1. En el panel de navegación, haz clic en Volúmenes en la sección Almacenamiento.
    2. Haz clic en el botón Crear
    3. Especifica un nombre para el volumen de almacenamiento.
    4. En Detalles del grupo de almacenamiento, haz 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, proporciona la siguiente información:
      1. Compartir nombre
      2. Capacidad del volumen
    6. En la sección Configuración de gran capacidad, selecciona Protocolo SMB.
    7. En la sección Configuración de los protocolos seleccionados, selecciona Habilitar la compatibilidad con el uso compartido de CA para SQL Server, FSLogix.
    8. Haz clic en el botón Crear para completar el proceso de creación de un volumen de almacenamiento nuevo.

Crea 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 habilitar que el balanceador de cargas realice verificaciones de estado, debes crear varias reglas de firewall. Para simplificar la creación de estas, puedes usar etiquetas de red:

  • El WSFC que usas tiene la anotación wsfc-node.
  • Todos los servidores incluido el testigo están anotados con la etiqueta wsfc.

Para crear reglas de firewall que usen estas etiquetas de red, sigue estos pasos:

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea reglas de firewall para los nodos del 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. Crea una regla de firewall que permita las verificaciones de estado de los rangos de IP de los sistemas de sondeo 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
    

Crea instancias de VM

Ahora implementarás tres instancias de VM para el clúster de conmutación por error.

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

  • deben encontrarse en la misma región para que un balanceador de cargas de red de transferencia interno pueda acceder a ellas.
  • deben tener instalados WSFC y SQL Server 2022 con imagen premium de SQL Server

  • deben tener habilitada la compatibilidad con WSFC de Compute Engine

para proporcionar un voto de desempate y lograr un quórum para la situación de conmutación por error, implementa una tercera VM node-3 que sirva como testigo de archivos compartidos.

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea una secuencia de comandos de specialize para los nodos de WSFC. La secuencia de comandos instala la función 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. Crea las instancias de VM. En las dos VMs que funcionan como nodos WSFC, conecta un disco de datos adicional y habilita el agrupamiento en clústeres de conmutación por error de Windows Server mediante la configuración de 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, haz lo siguiente para cada una de las 3 instancias de VM:

    1. Supervisa el proceso de inicialización de la VM cuando ves su salida de puerto en serie:

      gcloud compute instances tail-serial-port-output NAME
      

      Reemplaza NAME con el nombre de la instancia de VM.

      Espera unos minutos hasta que veas el resultado Instance setup finished y presiona Ctrl+C. En este punto, la instancia de VM está lista para usarse.

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

    3. Conéctate a la VM mediante el escritorio remoto y accede con el nombre de usuario y la contraseña que creaste en el paso anterior.

    4. Haz clic derecho en el botón Iniciar (o presiona Windows+X) y, luego, haz clic en Windows PowerShell (Admin).

    5. Para confirmar el símbolo de elevación, haz clic en .

    6. Une la instancia de VM a tu dominio de Active Directory y reinicia:

      Add-Computer -Domain DOMAIN -Restart
      

      Reemplaza DOMAIN por el nombre de DNS de tu dominio de Active Directory.

      Espera a que la instancia de VM se reinicie.

Asigna permisos de almacenamiento

Para asignar permisos al almacenamiento de volumen de nube, completa los siguientes pasos:

  1. En la consola de Google Cloud, selecciona Cloud Volumes y el volumen que acabas de crear.

    Cloud Volume

  2. Conéctate a node-1 mediante el escritorio remoto. Accede con tu cuenta de usuario de dominio.

  3. Abre Windows Explorer y haz clic con el botón derecho en Esta PC.

  4. Selecciona Asingar la unidad de red.

  5. Pega la ruta de acceso de SMB copiada en la carpeta.

    Cloud Volume

  6. Durante el acceso, inhabilita la opción Reconectar.

  7. Haz clic en Finalizar.

  8. Haz clic con el botón derecho en la unidad de red asignada y selecciona Propiedades.

    Cloud Volume

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

  10. Quita a todos y agrega el instalador de SQL Server y las cuentas de servicio de SQL Server con permisos de control total.

    Cloud Volume

  11. Para confirmar el símbolo de elevación, haz clic en .

Reserva direcciones IP del clúster

Reserva dos direcciones IP estáticas en tu VPC, una para la dirección IP del clúster de WSFC y otra para el balanceador de cargas interno.

  1. Reserva una IP estática para el balanceador de cargas interno y captura la dirección en una variable de entorno nueva llamada 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, ya que la necesitarás más adelante.

  2. Reserva otra dirección IP estática que uses 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, ya que la necesitarás más adelante.

Tu proyecto y VPC están listos para la implementación del WSFC y SQL Server.

Crea un archivo compartido de testigo

Para preparar witness para que funcione como testigo de archivos compartidos, crea un recurso compartido de archivos y otorga a los dos nodos del WSFC acceso a los archivos compartidos:

  1. Conéctate a witness mediante el escritorio remoto. Accede con tu cuenta de usuario de dominio.
  2. Haz clic derecho en el botón Iniciar (o presiona Windows+X) y, luego, haz clic en Windows PowerShell (Admin).
  3. Para confirmar el símbolo de elevación, haz clic en .
  4. Crea la carpeta de testigo y compártela:

    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$
    

Implementa el clúster de conmutación por error

Ahora usa las instancias de VM para implementar un WSFC y SQL Server.

Implementa WSFC

Ya estás listo para crear el clúster de conmutación por error.

  1. Conéctate a node-1 mediante el escritorio remoto. Accede con tu cuenta de usuario de dominio.
  2. Haz clic derecho en el botón Iniciar (o presiona Windows+X) y, luego, haz clic en Windows PowerShell (Admin).
  3. Para confirmar el símbolo de elevación, haz clic en .
  4. Crea un clúster nuevo:

    New-Cluster `
      -Name windows-fci `
      -Node node-1,node-2 `
      -NoStorage `
      -StaticAddress CLUSTER_ADDRESS
    

    Reemplaza CLUSTER_ADDRESS por la dirección IP del clúster que creaste antes.

  5. Regresa a la sesión de PowerShell en witness y otorga permiso al objeto de computadora virtual del clúster para acceder al archivo compartido:

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

    Set-ClusterQuorum -FileShareWitness \\witness\QWitness
    
  7. Verifica que el clúster se haya creado de forma correcta:

    Test-Cluster
    

    Es posible que veas algunas advertencias que pueden ignorarse 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 puedes iniciar el complemento de MMC del administrador de clústeres de conmutación por error para revisar el estado del clúster si ejecutas cluadmin.msc.

  8. Si usas AD administrado, agrega la cuenta de computadora que usa WSFC al grupo de cuentas de unión de dominio del servicio en la nube para que pueda unir las instancias de VM al dominio:

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

Quita la instalación predeterminada de SQL Server

Ahora quitarás la instalación predeterminada de SQL Server de los dos nodos y la reemplazas por una nueva configuración de FCI.

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

  1. Haz clic derecho en el botón Iniciar (o presiona Windows+X) y, luego, haz clic en Windows PowerShell (Admin).
  2. Para confirmar el símbolo de elevación, haz clic en .
  3. Quita la instancia predeterminada de SQL Server:

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

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

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

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

Instala FCI de SQL Server

Antes de instalar la configuración nueva de las FCI, verifica que node-1 sea el nodo activo del clúster:

  1. Vuelve a conectarte a node-1 a través del escritorio remoto y accede con el usuario del dominio.
  2. Haz clic con el botón derecho en Inicio (o presiona Win + X) y selecciona Ejecutar
  3. Ingresa cluadmin.msc y selecciona Aceptar.
  4. En el panel de la ventana izquierda, navega a Administrador de clústeres de conmutación por error > windows-fci y haz lo siguiente:

    1. Verifica que el servidor host actual esté configurado como node-1.

    2. Si el servidor host actual está configurado como node-2, haz clic con el botón derecho en windows-fci en el panel de la ventana izquierda y selecciona Más acciones > Mover principales recursos de clúster > Seleccionar nodo… > node-1 y haz clic en Aceptar.

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

  1. Haz clic derecho en el botón Iniciar (o presiona Windows+X) y, luego, haz clic en Windows PowerShell (Admin).
  2. Para confirmar el símbolo de elevación, haz clic en .

  3. Inicia la configuración de SQL Server:

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

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

  6. En la página Edición, ingresa la clave del producto, selecciona el tipo de licencia de software y haz clic en Siguiente.

  7. En la página Términos de licencia, revisa los términos y, si los aceptas, haz clic en Siguiente.

  8. En la página Microsoft Update, haz clic en Siguiente para comenzar la instalación.

  9. En la página Install Failover Cluster Rules, verás una advertencia de verificación de clúster de MSCS y un firewall de Windows. Puedes ignorar estas advertencias y hacer clic enSiguiente.

  10. En la página Selección de características, selecciona Database Engine Services y, luego, haz clic en Siguiente.

  11. En la página Configuración de instancias, ingresa sql como nombre de la red y haz clic en Siguiente.

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

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

  14. En la página Configuración de red de clústeres, establece la siguiente configuración y, luego, haz clic en Siguiente:

    • DHCP: borrar
    • Dirección IP: ingresa la dirección IP del balanceador de cargas interno.
  15. En la página Configuración del servidor, establece la siguiente configuración para Agente SQL Server y Motor de base de datos de SQL Server:

    • Nombre de la cuenta: DOMAIN\sql_server, en el que DOMAIN es el nombre de NetBIOS de tu dominio de Active Directory
    • Contraseña: Ingresa la contraseña del usuario de sql_server
  16. Selecciona la pestaña Intercalación y la intercalación que deseas usar. Luego, haga clic en Next.

  17. En la página Database Engine Configuration, selecciona Agregar usuario actual para designar al usuario actual como administrador de SQL Server. En la pestaña Directorios de datos, ingresa la ruta de SMB en el campo Directorio raíz de datos y selecciona Siguiente. Aparecerá una ventana de mensaje en la que se te informará que verifiques que la cuenta de servicio de SQL Server tenga permiso total de control compartido. Selecciona para continuar.

    Cloud Volume

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

  19. Una vez finalizada la instalación, selecciona Cerrar.

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

  1. Conéctate a node-2 a través del escritorio remoto y accede con el usuario de tu dominio.
  2. Haz clic derecho en el botón Iniciar (o presiona Windows+X) y, luego, haz clic en Windows PowerShell (Admin).
  3. Para confirmar el símbolo de elevación, haz clic en .
  4. Inicia la configuración de SQL Server:

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

  6. Selecciona 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, ingresa la contraseña que creaste antes para el agente SQL Server y el Motor de base de datos de SQL Server. Luego, selecciona Siguiente.

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

  10. Una vez finalizada la instalación, selecciona Cerrar.

Configura las verificaciones de estado

Como paso final, configura el clúster para exponer un extremo de verificación de estado que pueda usar un balanceador de cargas interno:

  1. Regresa a la sesión de PowerShell en node-2.
  2. Inicializa una variable con la dirección IP del balanceador de cargas.

    $LoadBalancerIP = 'IP_ADDRESS'
    

    Reemplaza IP_ADDRESS por la dirección IP de la dirección wsfc que reservaste antes.

  3. Configura 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. Ejecuta el siguiente comando para reiniciar el recurso del clúster:

    $SqlIpAddress | Stop-ClusterResource
    $SqlIpAddress | Start-ClusterResource
    
  5. Reinicia el grupo de clústeres:

    $SqlGroup | Stop-ClusterGroup
    $SqlGroup | Start-ClusterGroup
    

Crea un balanceador de cargas interno

Para proporcionar un único extremo para los clientes de SQL Server, ahora debes implementar un balanceador de cargas interno. El balanceador de cargas usa una verificación de estado que garantiza que el tráfico se dirija al nodo activo del WSFC.

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea un grupo de instancias no administrado y agrégale los dos nodos:

    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. Crea una verificación de estado que el balanceador de cargas 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 configuraste antes como ProbePort para la dirección IP del clúster del WSFC.

  4. Crea un servicio de backend y agrega el siguiente 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. Crea el balanceador de cargas 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 el clúster de conmutación por error

Completaste la instalación del clúster de conmutación por error, pero aún debes probar si el clúster funciona de forma correcta.

Prepara un cliente

Crea una instancia de VM nueva que puedas usar para conectarte al clúster de conmutación por error:

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea una instancia de VM nueva:

    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. Supervisa el proceso de inicialización de la VM cuando ves su salida de puerto en serie:

    gcloud compute instances tail-serial-port-output sqlclient
    

    Espera unos minutos hasta que veas que la configuración de la instancia de salida finalizó y, luego, presiona Ctrl+C. En este punto, la instancia de VM está lista para usarse.

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

  5. Conéctate a la VM mediante el escritorio remoto y accede con el nombre de usuario y la contraseña que creaste en el paso anterior.

  6. Haz clic derecho en el botón Iniciar (o presiona Windows+X) y, luego, haz clic en Windows PowerShell (Admin).

  7. Para confirmar el símbolo de elevación, haz clic en .

  8. Une la instancia de VM a tu dominio de Active Directory:

    Add-Computer -Domain DOMAIN
    

    Reemplaza DOMAIN por el nombre de DNS de tu dominio de Active Directory.

  9. Reinicia la instancia de VM:

    Restart-Computer
    

    Espera a que la instancia de VM se reinicie.

Ejecuta la prueba

Usa la VM de sqlclient para probar que puedes conectarte al clúster de conmutación por error y verificar que la conmutación por error funcione de forma correcta:

  1. Conéctate a sqlclient a través del escritorio remoto y accede con el usuario de tu dominio.
  2. Haz clic derecho en el botón Iniciar (o presiona Windows+X) y, luego, en Windows PowerShell.
  3. Conéctate al clúster de SQL Server a través de su nombre de red sql y consulta 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"
    

    El resultado debería verse así:

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   0 up                                1
    NODE-2                                   0 up                                0
    
    (2 rows affected)
    

    Ten en cuenta que node-1 es el propietario actual del recurso del clúster de conmutación por error de SQL Server.

  4. Regresa a Cloud Shell y desactiva la VM del nodo-1 para probar la situación de conmutación por error:

    gcloud compute instances stop node-1
    
  5. Repite 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"
    

    Ahora, el resultado debería verse de la siguiente manera:

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   1 down                              0
    NODE-2                                   0 up                                1
    
    (2 rows affected)
    

    Ten en cuenta que a pesar de la pérdida de node-1, la consulta tiene éxito y muestra que node-2 es el propietario actual del clúster de conmutación por error.

Limpia

Una vez que completes el instructivo, puedes limpiar los recursos que creaste para que dejen de usar la cuota y generar cargos. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.