Configure o SQL Server no Google Cloud através dos volumes NetApp do Google Cloud


Este tutorial oferece uma vista geral de como configurar um ambiente altamente resiliente Google Cloud para o SQL Server instalado no armazenamento de partilha de ficheiros (SMB) do bloco de mensagens do servidor através dos volumes NetApp do Google Cloud.

Os grupos de disponibilidade Always On (AG) do Microsoft SQL Server permitem-lhe replicar bases de dados em várias instâncias do SQL Server Enterprise. Normalmente, as instâncias Always On do SQL Server tradicionais requerem que cada nó mantenha uma cópia dos dados, o que pode tornar-se rapidamente dispendioso à medida que as bases de dados crescem. Por exemplo, numa implementação tradicional do SQL Server Always On, se as bases de dados tiverem um tamanho de 10 TB, cada réplica tem de ter, pelo menos, 10 TB de armazenamento aprovisionado. Uma das vantagens de ter um cluster de comutação por falha do Windows Server (WSFC) implementado para o SQL Server é que só precisa de ter uma cópia dos dados, que é partilhada entre os nós do cluster. Por conseguinte, a execução do SQL Server Always On numa instância de cluster de comutação por falha (FCI) num WSFC pode gerar imediatamente poupanças de custos reduzindo a quantidade de armazenamento necessária.

O NetApp Volumes é uma solução de armazenamento na nuvem para executar cargas de trabalho do SQL Server de elevado desempenho em combinação com instâncias do Compute Engine. A base de dados do SQL Server através de SMB em volumes NetApp oferece um nível de resiliência muito elevado entre as instâncias e o serviço de armazenamento. Google Cloud A comutação em caso de falha transparente do SMB permite operações de manutenção nos volumes NetApp sem interromper a conetividade com as aplicações de servidor que armazenam e acedem a dados em volumes SMB. Para suportar a comutação em alternativa transparente de SMB, os volumes NetApp suportam a opção de partilhas de disponibilidade contínua (CA) de SMB para utilização com cargas de trabalho do SQL Server. Isto oferece melhorias de desempenho, escalabilidade e vantagens de custo para instâncias únicas, instâncias de cluster de comutação por falha Always On (AOFC) e implementações de grupo de disponibilidade Always On.

Esta página destina-se aos administradores de volumes NetApp e de bases de dados do SQL Server responsáveis pela implementação do Microsoft SQL Server no Google Cloud. Assume o seguinte:

  • Conhece os vários componentes da solução
  • Já implementou o Active Directory no Google Cloud

Objetivos

Este tutorial tem como objetivo alcançar os seguintes objetivos:

  • Crie um volume da NetApp para o SQL Server
  • Implemente um cluster de failover sempre ativo através de SMB em volumes NetApp

Custos

Este tutorial usa componentes faturáveis do Google Cloud, incluindo:

Use a calculadora de preços para gerar uma estimativa de custos com base na sua utilização prevista.

Antes de começar

Para este tutorial, precisa de um Google Cloud projeto. Pode criar um novo ou selecionar um projeto que já criou:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Um domínio do Active Directory com, pelo menos, um controlador de domínio. Pode criar um domínio do Active Directory através do Microsoft AD gerido. Em alternativa, pode implementar um ambiente do Active Directory personalizado no Compute Engine e configurar uma zona de encaminhamento de DNS privado que encaminha as consultas de DNS para os controladores de domínio.
  4. Um utilizador do Active Directory que tem autorização para associar computadores ao domínio e pode iniciar sessão através do RDP. Se estiver a usar o Managed Microsoft AD, pode usar o utilizador setupadmin.
  5. Um projeto Google Cloud e uma VPC com conetividade aos controladores de domínio do Active Directory.
  6. Certifique-se de que a API NetApp Volumes está ativada para o seu projeto do Google Cloud.
  7. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    Prepare o seu projeto e rede

    Para preparar o seu Google Cloud projeto e nuvem privada virtual (VPC) para a implementação de grupos de disponibilidade Always On do SQL Server, faça o seguinte:

    1. Na Google Cloud consola, abra o Cloud Shell clicando no botão Ativar Cloud Shell Ative o Cloud Shell..

      Aceda à Google Cloud consola

    2. Inicialize as seguintes variáveis:

      VPC_NAME=VPC_NAME
      SUBNET_NAME=SUBNET_NAME
      

      Substitua o seguinte:

      • VPC_NAME: nome da sua VPC
      • SUBNET_NAME: nome da sua sub-rede
    3. Defina o seu ID do projeto predefinido:

      gcloud config set project PROJECT_ID
      

      Substitua PROJECT_ID pelo ID do seu Google Cloud projeto.

    4. Predefina a sua região:

      gcloud config set compute/region REGION
      

      Substitua REGION pelo ID da região na qual quer fazer a implementação.

    5. Predefina a sua zona:

      gcloud config set compute/zone ZONE
      

      Substitua ZONE pelo ID da zona na qual quer fazer a implementação.

    Crie SMB em volumes NetApp para o SQL Server

    Para criar um NetApp Volumes, tem de criar uma política do Active Directory, um acesso aos serviços privados, um conjunto de armazenamento e um volume de armazenamento.

    1. Crie um novo acesso a serviços privados para volumes NetApp através das instruções fornecidas em Configure o acesso a serviços privados.

    2. Para criar uma nova política do Active Directory, faça o seguinte:

      1. Na Google Cloud consola, aceda à página Volumes do NetApp.

        Aceda a NetApp Volumes

      2. No painel de navegação, clique em Políticas do Active Directory na secção Políticas.

      3. Clique no botão Criar.

      4. Especifique um nome para a política do Active Directory.

      5. Em Região, selecione a região disponível mais próxima de onde as instâncias do SQL Server vão ser alojadas.

      6. Na secção Detalhes da ligação do Active Directory, faculte as seguintes informações:

        1. Nome do domínio
        2. Endereços do servidor DNS do Active Directory
        3. Nome do site do Active Directory
        4. Nome da unidade organizacional
        5. Prefixo do nome NetBIOS
      7. Na secção Credenciais do Active Directory, indique as credenciais de um utilizador que tem autorização para associar computadores ao domínio especificado.

      8. Na secção Definições de SMB, indique os Operadores de cópia de segurança e os Utilizadores com privilégios de segurança, se aplicável.

      9. Clique em Criar para concluir o processo de criação de uma nova política do Active Directory.

    3. Para criar um novo conjunto de armazenamento, faça o seguinte:

      1. No painel de navegação, clique em Pools de armazenamento na secção Armazenamento.
      2. Clique no botão Criar.
      3. Introduza um nome para o conjunto de armazenamento.
      4. Em Localização, selecione a região disponível mais próxima de onde as instâncias do SQL Server vão ser alojadas.
      5. Selecione um nível de serviço que satisfaça o desempenho de armazenamento esperado.

      6. Introduza a capacidade do conjunto de armazenamento. A capacidade do conjunto de armazenamento define a capacidade de armazenamento total que pode ser atribuída a todos os volumes no conjunto.

      7. Na lista Rede, selecione a VPC na qual as instâncias do SQL Server vão ser alojadas.

      8. Na secção Política do Active Directory, selecione Atribuir uma política do Active Directory ao conjunto de armazenamento e selecione a política do Active Directory criada no passo anterior.

      9. Clique no botão Criar para concluir o processo de criação de um novo conjunto de armazenamento.

    4. Para testar a ligação entre o conjunto de armazenamento e o Active Directory, faça o seguinte:

      1. Na Google Cloud consola, aceda à página Política do Active Directory.

        Aceda às políticas do Active Directory

      2. Clique na política do Active Directory que atribuiu ao conjunto de armazenamento no passo anterior.

      3. Localize Pools de armazenamento associados e clique em Testar ligação do Active Directory.

    5. Para criar um novo volume de armazenamento, faça o seguinte:

      1. No painel de navegação, clique em Volumes na secção Armazenamento.
      2. Clique no botão Criar.
      3. Especifique um nome para o volume de armazenamento.
      4. Em Detalhes do conjunto de armazenamento, clique em Selecionar conjunto de armazenamento para selecionar o conjunto de armazenamento criado no passo anterior.
      5. Na secção Detalhes do volume, faculte as seguintes informações:
        1. Partilhar nome
        2. Capacidade de volume
      6. Na secção Configuração de protocolos, selecione o protocolo SMB e Ativar suporte de partilha da AC para o SQL Server e o FSLogix.
      7. Clique no botão Criar para concluir o processo de criação de um novo volume de armazenamento.

    Crie regras de firewall

    Para permitir que os clientes se liguem ao SQL Server, permita a comunicação entre os nós do cluster de failover do Windows Server (WSFC) e, para permitir que o equilibrador de carga realize verificações de estado, tem de criar várias regras de firewall. Para simplificar a criação destas regras de firewall, pode usar etiquetas de rede:

    • Os WSFCs que usa estão anotados com a etiqueta wsfc-node.
    • Todos os servidores, incluindo o servidor de testemunho, são anotados com a etiqueta wsfc.

    Para criar regras de firewall que usem estas etiquetas de rede, siga estes passos:

    1. Regresse à sua sessão do Cloud Shell existente.
    2. Crie regras de firewall para os nós do 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. Crie uma regra de firewall que permita verificações de funcionamento a partir dos intervalos de IP dos Google Cloud testadores:

      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
      

    Crie instâncias de VM

    Agora, vai implementar três instâncias de VM para o cluster de comutação por falha.

    Node-1 vai alojar a réplica principal da base de dados do SQL Server e node-2 vai alojar a réplica secundária. As duas instâncias de VM têm de:

    • Estar localizadas na mesma região para que possam ser acedidas por um Network Load Balancer de encaminhamento interno
    • Ter o WSFC e o SQL Server 2022 instalados através da imagem premium do SQL Server

    • Ter o suporte do WSFC do Compute Engine ativado

    Para fornecer um voto de desempate e alcançar um quórum para o cenário de comutação por falha, implementa uma terceira instância de VM node-3 que funciona como um teste de partilha de ficheiros.

    1. Regresse à sua sessão do Cloud Shell existente.
    2. Crie um script para os nós do WSFC. O script instala a funcionalidade do Windows necessária e cria regras de firewall para o WSFC e o 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. Crie as instâncias de VM. Nas duas VMs que funcionam como nós do WSFC, anexe um disco de dados adicional e ative o clustering de failover do Windows Server definindo a chave de metadados enable-wsfc como 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 associar as 3 instâncias de VM ao Active Directory, faça o seguinte para cada uma das 3 instâncias de VM:

      1. Monitorize o processo de inicialização da VM vendo a respetiva saída da porta de série:

        gcloud compute instances tail-serial-port-output NAME
        

        Substitua NAME pelo nome da instância de VM.

        Aguarde alguns minutos até ver o resultado Instance setup finished e, em seguida, prima Ctrl+C. Neste momento, a instância de VM está pronta a ser usada.

      2. Crie um nome de utilizador e uma palavra-passe para a instância de VM

      3. Estabeleça ligação à VM através do Ambiente de Trabalho Remoto e inicie sessão com o nome de utilizador e a palavra-passe criados no passo anterior.

      4. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).

      5. Clique em Sim para confirmar o pedido de elevação.

      6. Associe a instância de VM ao seu domínio do Active Directory e reinicie:

        Add-Computer -Domain DOMAIN -Restart
        

        Substitua DOMAIN pelo nome DNS do seu domínio do Active Directory.

        Aguarde que a instância de VM seja reiniciada.

    Atribua autorizações de armazenamento

    Para atribuir autorizações ao armazenamento de volume na nuvem, conclua os seguintes passos:

    1. Na Google Cloud consola, selecione Volumes na nuvem e selecione o volume que acabou de criar.

      Volume das nuvens

    2. Ligue-se a node-1 através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio.

    3. Abra o Explorador do Windows e clique com o botão direito do rato em Este PC.

    4. Selecione Mapear unidade de rede.

    5. Cole o caminho SMB copiado na pasta.

      Volume das nuvens

    6. No início de sessão, desative a opção Voltar a associar.

    7. Clique em Concluir.

    8. Clique com o botão direito do rato na unidade de rede mapeada e selecione Propriedades.

      Volume das nuvens

    9. No separador Segurança, clique em Editar.

    10. Remova todos e adicione o instalador do SQL Server e as contas de serviço do SQL Server com autorizações de controlo total.

      Volume das nuvens

    11. Clique em Sim para confirmar o pedido de elevação.

    Reserve endereços IP do cluster

    Reserve dois endereços IP estáticos na sua VPC, um para o endereço IP do cluster WSFC e outro para o equilibrador de carga interno.

    1. Reserve um IP estático para o equilibrador de carga interno e capture o endereço numa nova variável de ambiente 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"
      

      Tome nota do endereço IP, pois vai precisar dele mais tarde.

    2. Reserve outro endereço IP estático que usa como IP do cluster:

      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"
      

      Tome nota do endereço IP, pois vai precisar dele mais tarde.

    O projeto e a VPC estão agora prontos para a implementação do WSFC e do SQL Server.

    Crie uma partilha de ficheiros de testemunho

    Para preparar witness para funcionar como testemunha de partilha de ficheiros, crie uma partilha de ficheiros e conceda-se a si próprio e aos dois nós do WSFC acesso à partilha de ficheiros:

    1. Ligue-se a witness através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio.
    2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
    3. Clique em Sim para confirmar o pedido de elevação.
    4. Crie a pasta de testemunho e partilhe-a:

      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$
      

    Implementar o cluster de comutação por falha

    Agora, vai usar as instâncias de VM para implementar um WSFC e o SQL Server.

    Implemente o WSFC

    Já tem tudo pronto para criar o cluster de failover:

    1. Ligue-se a node-1 através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio.
    2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
    3. Clique em Sim para confirmar o pedido de elevação.
    4. Crie um novo cluster:

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

      Substitua CLUSTER_ADDRESS pelo endereço IP do cluster que criou anteriormente.

    5. Regresse à sessão do PowerShell em witness e conceda ao objeto de computador virtual do cluster autorização para aceder à partilha de ficheiros:

      icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)'
      Grant-SmbShareAccess `
        -Name QWitness `
        -AccountName 'windows-fci$' `
        -AccessRight Full `
        -Force
      
    6. Regresse à sessão do PowerShell em node-1 e configure o cluster para usar a partilha de ficheiros em witness como um quorum de cluster:

      Set-ClusterQuorum -FileShareWitness \\witness\QWitness
      
    7. Verifique se o cluster foi criado com êxito:

      Test-Cluster
      

      Pode ver alguns avisos que podem ser ignorados com segurança:

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

      Também pode iniciar o snap-in MMC do Gestor de clusters de failover para rever o estado do cluster executando cluadmin.msc.

    8. Se estiver a usar o AD gerido, adicione a conta do computador usada pelo WSFC ao grupo Cloud Service Domain Join Accounts para que possa associar instâncias de VMs ao domínio:

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

    Remova a instalação predefinida do SQL Server

    Agora, vai remover a instalação predefinida do SQL Server dos dois nós e substituí-la por uma nova configuração de FCI.

    Para cada um dos dois nós do WSFC, node-1 e node-2, siga estes passos:

    1. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
    2. Clique em Sim para confirmar o pedido de elevação.
    3. Remova a instância predefinida do SQL Server:

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

      Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
      
    5. Remova o controlador ODBC da Microsoft:

      Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
      
    6. Reinicie o computador:

      Restart-Computer
      
    7. Aguarde que a instância de VM seja reiniciada.

    Instale o FCI do SQL Server

    Antes de instalar a nova configuração de FCI, verifique se o node-1 é o nó ativo no cluster:

    1. Volte a ligar-se ao node-1 através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do domínio.
    2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e selecione Executar
    3. Introduza cluadmin.msc e selecione OK.
    4. No painel da janela do lado esquerdo, navegue para Gestor de clusters de failover > windows-fci e faça o seguinte:

      1. Verifique se o servidor anfitrião atual está definido como node-1.

      2. Se o servidor anfitrião atual estiver definido como node-2, clique com o botão direito do rato em windows-fci no painel da janela do lado esquerdo e selecione Mais ações > Mover recursos do cluster principal > Selecionar nó… > node-1 e clique em OK.

    Vai criar uma nova instalação de cluster de failover do SQL Server em node-1:

    1. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
    2. Clique em Sim para confirmar o pedido de elevação.

    3. Inicie a configuração do SQL Server:

      & c:\sql_server_install\setup.exe
      
    4. No menu do lado esquerdo, selecione Instalação.

    5. Selecione Nova instalação do cluster de comutação por falha do SQL Server.

    6. Na página Edição, introduza a chave do produto, selecione o tipo de licença do software e clique em Seguinte.

    7. Na página Termos de licença, reveja os termos e, se os aceitar, clique em Seguinte.

    8. Na página Microsoft Update, clique em Seguinte para iniciar a instalação.

    9. Na página Instalar regras de cluster de failover, é apresentado um aviso Avisos de validação de cluster do MSCS e Firewall do Windows. Pode ignorar estes avisos e clicar em Seguinte.

    10. Na página Feature Selection (Seleção de funcionalidades), selecione Database Engine Services (Serviços do motor de base de dados) e clique em Next (Seguinte).

    11. Na página Configuração da instância, introduza sql como nome da rede e clique em Seguinte.

    12. Na página Grupo de recursos do cluster, pode ignorar os avisos de qualificação e clicar em Seguinte.

    13. Na página Cluster Disk Selection (Seleção de disco do cluster), clique em Next (Seguinte).

    14. Na página Configuração da rede de clusters, configure as seguintes definições e, de seguida, clique em Seguinte:

      • DHCP: clear
      • Endereço IP: introduza o endereço IP do balanceador de carga interno
    15. Na página Configuração do servidor, configure as seguintes definições para o SQL Server Agent e o SQL Server Database Engine:

      • Nome da conta: DOMAIN\sql_server, onde DOMAIN é o nome NetBIOS do seu domínio do Active Directory
      • Palavra-passe: introduza a palavra-passe do utilizador sql_server
    16. Selecione o separador Ordenação e selecione a ordenação que quer usar. Em seguida, clique em Seguinte.

    17. Na página Configuração do motor de base de dados, selecione Adicionar utilizador atual para designar o utilizador atual como administrador do SQL Server. No separador Diretórios de dados, introduza o caminho SMB no campo Diretório raiz de dados e selecione Seguinte. É apresentada uma janela de mensagem a informar que deve verificar se a conta de serviço do SQL Server tem autorização de partilha de controlo total. Selecione Sim para continuar.

      Volume das nuvens

    18. Na página Pronto para instalar, reveja as definições e, de seguida, selecione Instalar.

    19. Após a conclusão da instalação, selecione Fechar.

    Agora, adicione node-2 ao cluster de comutação por falha do SQL Server:

    1. Estabeleça ligação a node-2 através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do seu domínio.
    2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
    3. Clique em Sim para confirmar o pedido de elevação.
    4. Inicie a configuração do SQL Server:

      & c:\sql_server_install\setup.exe
      
    5. No menu do lado esquerdo, selecione Instalação.

    6. Selecione Adicionar nó a um cluster de failover do SQL Server.

    7. Siga as instruções do assistente de instalação e aceite as definições predefinidas até aceder à página Contas de serviço.

    8. Na página Contas de serviço, introduza a palavra-passe que criou anteriormente para o SQL Server Agent e o SQL Server Database Engine. Em seguida, selecione Seguinte.

    9. Na página Pronto para instalar, reveja as definições e, de seguida, selecione Instalar.

    10. Após a conclusão da instalação, selecione Fechar.

    Configure verificações de funcionamento

    Como passo final, configure o cluster para expor um ponto final de verificação do estado que pode ser usado por um equilibrador de carga interno:

    1. Regresse à sessão do PowerShell em node-2
    2. Inicialize uma variável com o endereço IP do balanceador de carga.

      $LoadBalancerIP = 'IP_ADDRESS'
      

      Substitua IP_ADDRESS pelo endereço IP do endereço wsfc que reservou anteriormente.

    3. Configure o cluster de comutação por falha para responder ao serviço de verificação de funcionamento:

      $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 o recurso de cluster:

      $SqlIpAddress | Stop-ClusterResource
      $SqlIpAddress | Start-ClusterResource
      
    5. Reinicie o grupo de clusters:

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

    Crie um balanceador de carga interno

    Para fornecer um único ponto final para clientes do SQL Server, vai implementar um equilibrador de carga interno. O balanceador de carga usa uma verificação do estado que garante que o tráfego é direcionado para o nó ativo do WSFC.

    1. Regresse à sua sessão do Cloud Shell existente.
    2. Crie um grupo de instâncias não gerido e adicione os dois nós ao 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. Crie uma verificação de funcionamento que o balanceador de carga possa usar para determinar qual é o nó ativo.

      gcloud compute health-checks create tcp wsfc-healthcheck \
        --check-interval="2s" \
        --healthy-threshold=1 \
        --unhealthy-threshold=2 \
        --port=59997 \
        --timeout="1s"
      

      A porta de sondas de verificação do estado de funcionamento é a 59997, que é a porta que configurou anteriormente como ProbePort para o endereço IP do cluster WSFC.

    4. Crie um serviço de back-end e adicione o grupo de instâncias:

      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. Crie o balanceador 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
      

    Testar o cluster de comutação por falha

    Concluiu a instalação do cluster de ativação pós-falha, mas ainda tem de testar se o cluster funciona corretamente.

    Prepare um cliente

    Crie uma nova instância de VM que pode usar para se ligar ao cluster de failover:

    1. Regresse à sua sessão do Cloud Shell existente.
    2. Criar uma nova instância 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. Monitorize o processo de inicialização da VM vendo a respetiva saída da porta de série:

      gcloud compute instances tail-serial-port-output sqlclient
      

      Aguarde alguns minutos até ver a saída Instance setup finished e, de seguida, prima Ctrl+C. Neste momento, a instância de VM está pronta a ser usada.

    4. Crie um nome de utilizador e uma palavra-passe para a instância de VM

    5. Estabeleça ligação à VM através do Ambiente de Trabalho Remoto e inicie sessão com o nome de utilizador e a palavra-passe criados no passo anterior.

    6. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).

    7. Clique em Sim para confirmar o pedido de elevação.

    8. Associe a instância de VM ao seu domínio do Active Directory:

      Add-Computer -Domain DOMAIN
      

      Substitua DOMAIN pelo nome DNS do seu domínio do Active Directory.

    9. Reinicie a instância de VM:

      Restart-Computer
      

      Aguarde que a instância de VM seja reiniciada.

    Execute o teste

    Use a VM sqlclient para testar se consegue estabelecer ligação ao cluster de comutação por falha e para verificar se a comutação por falha funciona corretamente:

    1. Estabeleça ligação a sqlclient através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do seu domínio.
    2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell.
    3. Estabeleça ligação ao cluster do SQL Server através do respetivo nome de rede sql e consulte a tabela 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"
      

      O resultado deve ter o seguinte aspeto:

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

      Tenha em atenção que node-1 é o proprietário atual do recurso de cluster de comutação por falha do SQL Server.

    4. Regresse ao Cloud Shell e desative a VM node-1 para testar o cenário de comutação por falha:

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

      O resultado deve ter agora o seguinte aspeto:

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

      Repare que, apesar da perda de node-1, a consulta é bem-sucedida e mostra que node-2 é agora o proprietário atual do cluster de comutação por falha.

    Limpar

    Depois de concluir o tutorial, pode limpar os recursos que criou para que deixem de usar a quota e incorrer em custos. As secções seguintes descrevem como eliminar ou desativar estes recursos.

    Eliminar o projeto

    A forma mais fácil de eliminar a faturação é eliminar o projeto que criou para o tutorial.

    Para eliminar o projeto:

    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.