As Instâncias de Cluster de Failover Always On (FCI) do Microsoft SQL Server permitem executar uma única instância do SQL Server em vários nós do Cluster de Failover do Windows Server (WSFC). A qualquer momento, um dos nós do cluster hospeda ativamente a instância SQL. No caso de falha, o WSFC transfere automaticamente a propriedade dos recursos da instância para outro nó.
O SQL Server FCI exige que os dados estejam localizados no armazenamento compartilhado para que possam ser acessados em todos os nós do WSFC. Este guia descreve como você pode implantar uma instância de cluster de failover do SQL Server 2019 que usa Espaços de Armazenamento Diretos (S2D) para armazenamento compartilhado. O S2D fornece uma SAN virtual baseada em software que pode usar discos de dados de VM do Compute Engine para armazenar o banco de dados SQL.
O diagrama a seguir ilustra a implantação:
Implementando uma arquitetura hiperconvergente, as instâncias de VM node-1
e node-2
servem como nós WSFC e também hospedam o armazenamento compartilhado. Uma terceira instância de VM, witness
, é usada para atingir um quorum em um cenário de failover. As três instâncias de VM são distribuídas em três zonas e compartilham uma sub-rede comum.
Os clientes se comunicam com a instância do SQL Server por meio de um balanceador de carga TCP interno . Esse balanceador de carga usa uma verificação de integridade personalizada para determinar qual nó WSFC está hospedando atualmente a instância SQL e roteia o tráfego para essa instância.
O artigo pressupõe que você já tenha implantado o Active Directory no Google Cloud e tenha conhecimento básico de SQL Server, Active Directory e Compute Engine.
Objetivos
- Implante um WSFC que inclua duas instâncias de VM do SQL Server e uma terceira instância de VM que atue como testemunha de compartilhamento de arquivos.
- Implante uma FCI do SQL Server no WSFC.
- Verifique se o cluster está funcionando simulando um failover.
Custos
Este tutorial usa componentes faturáveis de Google Cloud, incluindo:
Use a calculadora de preços para gerar uma estimativa de custo com base no uso projetado.
Antes de começar
Para concluir este guia, você precisa do seguinte:
- Um domínio do Active Directory com pelo menos um controlador de domínio. Você pode criar um domínio do Active Directory usando o Managed Microsoft AD . Como alternativa, você pode implantar um ambiente personalizado do Active Directory no Compute Engine e configurar uma zona de encaminhamento de DNS privada que encaminhe consultas de DNS para seus controladores de domínio.
- Um usuário do Active Directory que tem permissão para ingressar computadores no domínio e pode fazer login usando RDP. Se estiver usando o Microsoft AD gerenciado, você poderá usar o usuário
setupadmin
. - Um projeto do Google Cloud e uma VPC com conectividade aos controladores de domínio do Active Directory.
- Uma sub-rede a ser usada para as instâncias de VM do WSFC.
Para completar o guia, você também precisa de um Google Cloud projeto:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Ao concluir este tutorial, você poderá evitar a cobrança contínua excluindo os recursos criados. Para obter mais informações, consulte Limpeza .
Preparando o projeto e a rede
Para preparar seu projeto e VPC do Google Cloud para a implantação do SQL Server FCI, faça o seguinte:
No console do Google Cloud, abra o Cloud Shell clicando em Ativar Cloud Shell
botão.
Inicialize as seguintes variáveis:
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
Onde:
-
VPC_NAME
: nome da sua VPC -
SUBNET_NAME
: nome da sua sub-rede
-
Defina seu ID de projeto padrão:
gcloud config set project
PROJECT_ID
Substitua
PROJECT_ID
pelo ID do seu projeto do Google Cloud.Defina sua região padrão:
gcloud config set compute/region
REGION
Substitua
REGION
pelo ID da região na qual você deseja implantar.
Crie regras de firewall
Para permitir que os clientes se conectem ao SQL Server, permitir a comunicação entre os nós WSFC e permitir que o balanceador de carga execute verificações de integridade , você precisa criar várias regras de firewall. Para simplificar a criação dessas regras de firewall, você usa tags de rede :
- Os dois nós WSFC são anotados com a tag
wsfc-node
. - Todos os servidores (incluindo a testemunha) são anotados com a tag
wsfc
.
Crie regras de firewall que usem estas tags de rede:
- Retorne à sessão existente do Cloud Shell.
Crie regras de firewall para os nós 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
Crie uma regra de firewall que permita verificações de integridade dos intervalos de IP dos sondadores do 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
Criar instâncias de VM
Agora você implanta duas instâncias de VM para o cluster de failover. Em qualquer momento, apenas uma dessas VMs atua como nó FCI ativo, enquanto o outro nó atua como nó de failover. As duas instâncias de VM devem atender aos seguintes requisitos:
- Eles estão localizados na mesma região para que possam ser acessados por um balanceador de carga TCP interno.
- Seu agente convidado está configurado para usar o modo WSFC . Neste modo, o agente convidado ignora os endereços IP dos balanceadores de carga internos ao configurar a interface de rede local. Esse comportamento é necessário para evitar conflitos de endereço IP durante eventos de failover do WSFC.
Você usa uma imagem premium do SQL Server que tem o SQL Server 2019 pré-instalado.
Para fornecer um voto de desempate e atingir um quorum para o cenário de failover, você implanta uma terceira VM que serve como testemunha de compartilhamento de arquivos .
- Retorne à sessão existente do Cloud Shell.
Crie um script especializado para os nós WSFC. O script instala o recurso necessário do Windows e cria regras de firewall para WSFC e SQL Server:
cat << "EOF" > specialize-node.ps1 $ErrorActionPreference = "stop" # Install required Windows features Install-WindowsFeature Failover-Clustering -IncludeManagementTools Install-WindowsFeature RSAT-AD-PowerShell # Open firewall for WSFC netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59997 # Open firewall for SQL Server netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433 EOF
Crie as instâncias de VM. Nas duas VMs que servem como nós S2D e WSFC, anexe discos de dados adicionais e ative o modo WSFC definindo a chave de metadados
enable-wsfc
comotrue
:REGION=$(gcloud config get-value compute/region) PD_SIZE=50 MACHINE_TYPE=n2-standard-8 gcloud compute instances create node-1 \ --zone $REGION-a \ --machine-type $MACHINE_TYPE \ --subnet $SUBNET_NAME \ --image-family sql-ent-2019-win-2022 \ --image-project windows-sql-cloud \ --tags wsfc,wsfc-node \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --boot-disk-device-name "node-1" \ --create-disk=name=node-1-datadisk-1,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-1-datadisk-2,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-1-datadisk-3,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-1-datadisk-4,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create node-2 \ --zone $REGION-b \ --machine-type $MACHINE_TYPE \ --subnet $SUBNET_NAME \ --image-family sql-ent-2019-win-2022 \ --image-project windows-sql-cloud \ --tags wsfc,wsfc-node \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --boot-disk-device-name "node-2" \ --create-disk=name=node-2-datadisk-1,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-2-datadisk-2,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-2-datadisk-3,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --create-disk=name=node-2-datadisk-4,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create "witness" \ --zone $REGION-c \ --machine-type n2-standard-2 \ --subnet $SUBNET_NAME \ --image-family=windows-2022 \ --image-project=windows-cloud \ --tags wsfc \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"
Para associar as três instâncias de VM ao Active Directory, faça o seguinte para cada uma das três instâncias de VM:
Monitore o processo de inicialização da VM visualizando a saída da porta serial:
gcloud compute instances tail-serial-port-output
NAME
Substitua
NAME
pelo nome da instância de VM.Aguarde alguns minutos até ver a saída
Instance setup finished
e pressione Ctrl+C. Neste ponto, a instância da VM está pronta para ser usada.Crie um nome de usuário e uma senha para a instância de VM
Conecte-se à VM usando a Área de Trabalho Remota e faça login usando o nome de usuário e a senha criados na etapa anterior.
Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e clique em Windows PowerShell (Admin) .
Confirme o prompt de elevação clicando em Sim .
Junte o computador 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 aproximadamente 1 minuto para que a reinicialização seja concluída.
Reservar endereços IP de cluster
Agora você reserva dois endereços IP estáticos na sua rede VPC. Os dois endereços têm finalidades diferentes:
- IP do balanceador de carga : este endereço IP é usado pelos clientes para se conectar ao SQL Server.
- IP do cluster : este endereço IP é usado apenas internamente pelo WSFC.
Para reservar os endereços IP estáticos, faça o seguinte:
Reserve um IP estático para o balanceador de carga interno e capture o endereço em uma nova variável de ambiente chamada
LOADBALANCER_ADDRESS
:gcloud compute addresses create wsfc \ --subnet $SUBNET_NAME \ --region $(gcloud config get-value compute/region) LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \ --region $(gcloud config get-value compute/region) \ --format=value\(address\)) && \ echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
Anote o endereço IP, você precisará dele mais tarde.
Reserve outro endereço IP estático que você usa como IP do cluster:
gcloud compute addresses create wsfc-cluster \ --subnet $SUBNET_NAME \ --region $(gcloud config get-value compute/region) && \ CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \ --region $(gcloud config get-value compute/region) \ --format=value\(address\)) && \ echo "Cluster IP: $CLUSTER_ADDRESS"
Anote o endereço IP, você precisará dele mais tarde.
Seu projeto e VPC agora estão prontos para a implantação do WSFC e do SQL Server.
Criar um compartilhamento de arquivo testemunha
Para preparar witness
para servir como testemunha de compartilhamento de arquivos, crie um compartilhamento de arquivos e conceda a si mesmo e aos dois nós do WSFC acesso ao compartilhamento de arquivos:
- Conecte-se à
witness
usando a Área de Trabalho Remota . Faça login com sua conta de usuário de domínio. - Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e clique em Windows PowerShell (Admin) .
- Confirme o prompt de elevação clicando em Sim .
Crie a pasta testemunha e compartilhe a pasta:
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$
Implantando o cluster de failover
Agora você usa as instâncias de VM para implantar um WSFC e um SQL Server.
Implantar WSFC
Agora você está pronto para criar o cluster de failover:
- Conecte-se ao
node-1
usando a Área de Trabalho Remota . Faça login com sua conta de usuário de domínio. - Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e clique em Windows PowerShell (Admin) .
- Confirme o prompt de elevação clicando em Sim .
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 criado anteriormente.O comando cria uma conta de computador
windows-fci
em seu domínio do Active Directory.Retorne à sessão do PowerShell na
witness
e conceda à conta do computador permissãowindows-fci
para acessar o compartilhamento de arquivos:icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)' Grant-SmbShareAccess ` -Name QWitness ` -AccountName 'windows-fci$' ` -AccessRight Full ` -Force
Retorne à sessão do PowerShell no
node-1
e configure o cluster para usar o compartilhamento de arquivos nawitness
como um quorum de cluster:Set-ClusterQuorum -FileShareWitness \\witness\QWitness
Verifique se o cluster foi criado com sucesso:
Test-Cluster
Você poderá 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).
Você também pode iniciar o snap-in MMC do Gerenciador de Cluster de Failover para revisar a integridade do cluster executando
cluadmin.msc
.Se você estiver usando o Managed AD, adicione a conta de computador usada pelo WSFC ao grupo Cloud Service Domain Join Accounts para que ele possa ingressar computadores no domínio:
Install-WindowsFeature RSAT-ADDS Add-ADGroupMember ` -Identity "Cloud Service Domain Join Accounts" ` -Members windows-fci$
Habilitando espaços de armazenamento direto
Agora você habilita o S2D e cria um volume compartilhado de cluster que combina os três discos permanentes criados anteriormente:
- Retorne à sessão do PowerShell em
node-1
. Habilite S2D:
Enable-ClusterStorageSpacesDirect
Opcionalmente, se desejar melhor desempenho do disco, você poderá adicionar SSDs locais SCSI aos nós S2D, além dos discos permanentes SSD padrão. Os SSDs locais podem servir como camada de cache S2D. Faça com que o número de unidades de capacidade (discos SSD persistentes no nosso caso) seja um múltiplo do número de SSDs locais. Execute o seguinte comando para ativar o S2D com cache:
Enable-ClusterStorageSpacesDirect -CacheDeviceModel "EphemeralDisk"
Aceite o padrão quando solicitado a confirmar. Você poderá ver alguns avisos que podem ser ignorados com segurança:
WARNING: 2021/04/08-13:12:26.159 Node node-1: No disks found to be used for cache WARNING: 2021/04/08-13:12:26.159 Node node-2: No disks found to be used for cache
Opcionalmente, defina o cache na memória do Cluster Shared Volume (CSV) como 2.048 MB para obter melhor rendimento de leitura:
(Get-Cluster).BlockCacheSize = 2048
Crie um novo volume que use as versões de volume compartilhado do cluster do ReFS e um tamanho de cluster de 64 KB:
New-Volume ` -StoragePoolFriendlyName S2D* ` -FriendlyName FciVolume ` -FileSystem CSVFS_ReFS ` -UseMaximumSize ` -AllocationUnitSize 65536
Testando failover do pool de armazenamento
Opcionalmente, agora você pode testar se o failover do pool de armazenamento funciona corretamente:
- Conecte-se ao
node-2
usando a Área de Trabalho Remota . Faça login com sua conta de usuário de domínio. - Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e selecione Executar
- Digite
cluadmin.msc
e selecione OK . No painel esquerdo da janela, navegue até Failover Cluster Manager > windows-fci > Storage > Pools .
Você deverá ver um pool chamado Cluster Pool 1 com o nó Owner definido como
node-1
.Retorne ao Cloud Shell e redefina a VM
node-1
para simular um failover:gcloud compute instances reset node-1 --zone $REGION-a
Retorne ao Failover Cluster Manager em
node-2
.Observe o status do pool de armazenamento pressionando repetidamente F5 para atualizar a visualização.
Após cerca de 30 segundos, o nó proprietário deve mudar automaticamente para
node-2
.
Remova a instalação padrão do SQL Server
Agora você remove a instalação padrão do SQL Server dos dois nós e a substitui por uma nova configuração de FCI.
Para cada um dos dois nós WSFC, node-1
e node-2
, execute as seguintes etapas:
- Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e clique em Windows PowerShell (Admin) .
- Confirme o prompt de elevação clicando em Sim .
Remova a instância padrão do SQL Server:
C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
Remova o driver OLE da Microsoft:
Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
Remova o driver ODBC da Microsoft:
Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
Reinicie o computador:
Restart-Computer
Aguarde aproximadamente 1 minuto para que a reinicialização seja concluída.
Instale o SQL Server FCI
Antes de instalar a nova configuração de FCI, verifique se node-1
é o nó ativo no cluster:
- Reconecte-se ao
node-1
usando a Área de Trabalho Remota e faça login usando seu usuário de domínio. - Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e selecione Executar
- Digite
cluadmin.msc
e selecione OK . No painel esquerdo da janela, navegue até Failover Cluster Manager > windows-fci .
Verifique se o servidor host atual está configurado como
node-1
.Se o servidor host atual estiver configurado como
node-2
, clique com o botão direito em windows-fci no painel esquerdo da janela e selecione More actions > Move core cluster resources > Select node… > node-1 e clique em OK .No painel esquerdo da janela, navegue até Failover Cluster Manager > windows-fci > Storage > Pools .
Verifique se o nó proprietário do Cluster Pool 1 está definido como
node-1
.Se o nó proprietário estiver definido como
node-2
, clique com o botão direito no pool, selecione Mover > Selecionar nó > node-1 e clique em OK .
Agora você cria uma nova instalação de cluster de failover do SQL Server em node-1
:
- Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e clique em Windows PowerShell (Admin) .
- Confirme o prompt de elevação clicando em Sim .
Crie uma conta de usuário de domínio para o SQL Server e o agente SQL e atribua uma senha:
Diretório Ativo
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Agent and SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true
Microsoft AD gerenciado
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Agent and SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true ` -Path "OU=Cloud,DOMAIN"
Substitua
DOMAIN
pelo nome distinto do seu domínio, por exemploDC=example,DC=org
.Inicie a configuração do SQL Server:
& c:\sql_server_install\setup.exe
No menu à esquerda, selecione Instalação .
Selecione a instalação do novo cluster de failover do SQL Server
Na página do Microsoft Update , selecione Próximo para iniciar a instalação.
Na página Instalar regras de cluster de failover , você verá um aviso Avisos de verificação de cluster MSCS e firewall do Windows . Você pode ignorar esses avisos e selecionar Próximo .
Na página Chave do produto , mantenha os padrões e selecione Próximo .
Na página Termos de Licença , revise os termos e, se aceitar, selecione Próximo .
Na página Seleção de Recursos , selecione Serviços de Mecanismo de Banco de Dados e selecione Próximo .
Na página Configuração da Instância , insira
sql
para o nome da rede e a instância nomeada e selecione Próximo .Na página Grupo de Recursos de Cluster , mantenha os padrões e selecione Próximo .
Na página Seleção de Disco de Cluster , habilite Disco Virtual de Cluster (FciVolume) e desabilite todos os outros discos. Selecione Próximo .
Na página Configuração de rede do cluster , defina as seguintes configurações e selecione Próximo :
- DHCP : claro
- Endereço IP: insira o endereço IP do balanceador de carga interno.
Na página Configuração do servidor , defina as seguintes configurações para SQL Server Agent e SQL Server Database Engine :
- Nome da conta :
DOMAIN \sql_server
ondeDOMAIN
é o nome NetBIOS do seu domínio do Active Directory - Senha : Digite a senha que você criou anteriormente
- Nome da conta :
Selecione a guia Agrupamento e selecione o agrupamento que deseja usar. Em seguida, clique em Avançar .
Na página Configuração do Mecanismo de Banco de Dados , selecione Adicionar usuário atual para designar o usuário atual como administrador do SQL Server. Em seguida, selecione Próximo .
Na página Pronto para instalar , revise as configurações e selecione Instalar .
Após a conclusão da instalação, selecione Fechar .
Seu domínio do Active Directory agora contém uma conta de computador sql
que representa a instância do SQL Server e uma entrada DNS correspondente que aponta para o endereço IP do balanceador de carga interno.
Agora adicione node-2
ao cluster de failover do SQL Server:
- Conecte-se ao
node-2
usando a Área de Trabalho Remota e faça login usando seu usuário de domínio. - Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e clique em Windows PowerShell (Admin) .
- Confirme o prompt de elevação clicando em Sim .
Inicie a configuração do SQL Server:
& c:\sql_server_install\setup.exe
No menu à esquerda, selecione Instalação .
Selecione Adicionar nó a um cluster de failover do SQL Server .
Siga as instruções do assistente de instalação e aceite as configurações padrão até chegar à página Contas de serviço .
Na página Contas de Serviço , insira a senha que você criou anteriormente para o SQL Server Agent e o SQL Server Database Engine . Em seguida, selecione Próximo .
Na página Pronto para instalar , revise as configurações e selecione Instalar .
Após a conclusão da instalação, selecione Fechar .
Configurar verificações de integridade
Como etapa final, configure o cluster para expor um endpoint de verificação de integridade que pode ser usado por um balanceador de carga interno:
- Retorne à sessão do PowerShell no
node-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çowsfc
que você reservou anteriormente.Configure o Cluster de Failover para responder ao serviço de verificação de integridade:
$SqlGroup = Get-ClusterGroup | Where-Object {$_.Name.StartsWith("SQL Server")} $SqlIpAddress = Get-ClusterResource | Where-Object {$_.Name.StartsWith("SQL IP Address")} $SqlIpAddress | Set-ClusterParameter -Multiple @{ 'Address'=$LoadBalancerIP; 'ProbePort'= 59997; 'SubnetMask'='255.255.255.255'; 'Network'= (Get-ClusterNetwork).Name; 'EnableDhcp'=0; }
Reinicie o recurso de cluster:
$SqlIpAddress | Stop-ClusterResource $SqlIpAddress | Start-ClusterResource
Reinicie o grupo de clusters:
$SqlGroup | Stop-ClusterGroup $SqlGroup | Start-ClusterGroup
Crie um balanceador de carga interno
Para fornecer um único ponto de extremidade para clientes SQL Server, agora você implanta um balanceador de carga interno . O balanceador de carga usa uma verificação de integridade que garante que o tráfego seja direcionado para o nó ativo do WSFC.
- Retorne à sessão existente do Cloud Shell.
Crie dois grupos de instâncias não gerenciadas , um por zona, e adicione os dois nós aos grupos:
gcloud compute instance-groups unmanaged create wsfc-group-1 --zone $REGION-a gcloud compute instance-groups unmanaged add-instances wsfc-group-1 --zone $REGION-a \ --instances node-1 gcloud compute instance-groups unmanaged create wsfc-group-2 --zone $REGION-b gcloud compute instance-groups unmanaged add-instances wsfc-group-2 --zone $REGION-b \ --instances node-2
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 verificação de integridade investiga a porta
59997
, que é a porta que você configurou anteriormente comoProbePort
para o recurso de endereço IP do SQL Server.Crie um serviço de back-end e adicione os dois grupos de instâncias:
gcloud compute backend-services create wsfc-backend \ --load-balancing-scheme internal \ --region $(gcloud config get-value compute/region) \ --health-checks wsfc-healthcheck \ --protocol tcp gcloud compute backend-services add-backend wsfc-backend \ --instance-group wsfc-group-1 \ --instance-group-zone $REGION-a \ --region $REGION gcloud compute backend-services add-backend wsfc-backend \ --instance-group wsfc-group-2 \ --instance-group-zone $REGION-b \ --region $REGION
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
Testando o cluster de failover
Você concluiu a instalação do cluster de failover, mas ainda precisa testar se o cluster funciona corretamente.
Prepare um cliente
Crie uma nova instância de VM que você possa usar para se conectar ao cluster de failover:
- Retorne à sessão existente do Cloud Shell.
Crie uma nova instância de VM:
gcloud compute instances create sqlclient \ --zone $REGION-a \ --machine-type n2-standard-2 \ --subnet $SUBNET_NAME \ --image-family sql-ent-2019-win-2022 \ --image-project windows-sql-cloud \ --boot-disk-size 50 \ --boot-disk-type pd-ssd
Monitore o processo de inicialização da VM visualizando a saída da porta serial:
gcloud compute instances tail-serial-port-output sqlclient
Aguarde alguns minutos até ver a saída
Instance setup finished
e pressione Ctrl+C. Neste ponto, a instância da VM está pronta para ser usada.Crie um nome de usuário e uma senha para a instância de VM
Conecte-se à VM usando a Área de Trabalho Remota e faça login usando o nome de usuário e a senha criados na etapa anterior.
Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e clique em Windows PowerShell (Admin) .
Confirme o prompt de elevação clicando em Sim .
Junte o computador ao seu domínio do Active Directory:
Add-Computer -Domain
DOMAIN
Substitua
DOMAIN
pelo nome DNS do seu domínio do Active Directory.Reinicie o computador:
Restart-Computer
Aguarde aproximadamente 1 minuto para que a reinicialização seja concluída.
Execute o teste
Use a VM sqlclient
para testar se você pode se conectar ao cluster de failover e para verificar se o failover funciona corretamente:
- Conecte-se ao
sqlclient
usando a Área de Trabalho Remota e faça login usando seu usuário de domínio. - Clique com o botão direito no botão Iniciar (ou pressione Win+X ) e clique em Windows PowerShell .
Conecte-se ao cluster do SQL Server usando TCP/IP e o nome DNS
sql
e consulte a tabeladm_os_cluster_nodes
:& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S tcp:sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
A saída deve ficar assim:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 0 up 1 NODE-2 0 up 0 (2 rows affected)
Observe que
node-1
é o proprietário atual do recurso de cluster de failover do SQL Server.Retorne ao Cloud Shell e desative a VM do nó 1 para testar o cenário de failover.
gcloud compute instances stop node-1 --zone $REGION-a
Repita a consulta:
& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S tcp:sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
A saída agora deve ficar assim:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 1 down 0 NODE-2 0 up 1 (2 rows affected)
Observe que, apesar da perda de
node-1
, a consulta foi bem-sucedida e mostra quenode-2
agora é o proprietário atual do cluster de failover.
Limitações
- S2D só é compatível com Windows Server 2016 e superior.
- Com S2D, cada disco contém apenas uma visão parcial dos dados gerais. Portanto, tirar um instantâneo de um disco permanente não será suficiente para fazer backup dos seus dados. Use backup SQL nativo .
Limpar
Depois de concluir o tutorial, você poderá limpar os recursos criados para que eles parem de usar a cota e de incorrer em cobranças. As seções a seguir descrevem como excluir ou desativar esses recursos.
Excluindo o projeto
A maneira mais fácil de eliminar o faturamento é excluir o projeto que você criou para o tutorial.
Para excluir o projeto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.