Questo tutorial fornisce una panoramica di come configurare un ambiente Google Cloud altamente resiliente per SQL Server installato su uno spazio di condivisione file SMB utilizzando il servizio NetApp Cloud Volumes (CVS) per Google Cloud.
I gruppi di disponibilità AlwaysOn di Microsoft SQL Server (AG) consentono di replicare i database in più istanze SQL Server Enterprise. In genere, le istanze SQL Server Always On tradizionali richiedono a ogni nodo di mantenere una copia dei dati, il che può diventare rapidamente costoso con la crescita dei database. Ad esempio, in un deployment tradizionale di SQL Server Always On, se i database hanno dimensioni pari a 10 TB, per ogni replica deve essere eseguito il provisioning di almeno 10 TB di spazio di archiviazione. Uno dei vantaggi di avere un cluster di failover di Windows Server (WSFC) di cui è stato eseguito il deployment per SQL Server è che devi avere una sola copia dei dati, condivisa tra i nodi del cluster. Pertanto, l'esecuzione di SQL Server Always On in un'istanza del cluster di failover (FCI) su un WSFC può consentire di risparmiare immediatamente sui costi riducendo la quantità di spazio di archiviazione richiesta.
NetApp Cloud Volumes Service è una soluzione di spazio di archiviazione sul cloud per l'esecuzione di carichi di lavoro SQL Server ad alte prestazioni in combinazione con istanze Compute Engine. Il database SQL Server su SMB su Cloud Volumes Service offre un livello molto elevato di resilienza tra le istanze Google Cloud e il servizio di archiviazione. Il failover trasparente SMB consente di eseguire operazioni di manutenzione sul servizio Cloud Volumes senza interrompere la connettività alle applicazioni di server che archiviano e accedono ai dati sui volumi SMB. Per supportare il failover trasparente SMB, Cloud Volumes Service supporta l'opzione delle condivisioni SMB sempre disponibili (CA) per l'utilizzo con i workload SQL Server. Ciò offre miglioramenti delle prestazioni, scalabilità e vantaggi in termini di costi per le singole istanze, le istanze di cluster di failover Always On (AOFC) e i deployment dei gruppi di disponibilità Always On.
Questa pagina è rivolta agli amministratori del database NetApp Cloud Volumes Service e SQL Server incaricati di eseguire il deployment di Microsoft SQL Server su Google Cloud. Assume quanto segue:
- Hai familiarità con i vari componenti della soluzione
- Hai già eseguito il deployment di Active Directory su Google Cloud
Obiettivi
Questo tutorial ha lo scopo di raggiungere i seguenti obiettivi:- Creare un volume Cloud Volumes Service per SQL Server
- Esegui il deployment di un cluster di failover Always On tramite SMB su Cloud Volumes Service
Costi
Questo tutorial utilizza i componenti fatturabili di Google Cloud, tra cui:
Utilizza il Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto.
Prima di iniziare
Per questo tutorial, hai bisogno di un progetto Google Cloud. Puoi crearne uno nuovo o selezionare un progetto che hai già creato:
-
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.
- Un dominio Active Directory con almeno un controller di dominio. Puoi creare un dominio Active Directory utilizzando Microsoft AD gestito. In alternativa, puoi eseguire il deployment di un ambiente Active Directory personalizzato su Compute Engine e configurare una zona di inoltro DNS privata che inoltra le query DNS ai tuoi controller di dominio.
- Un utente Active Directory che dispone dell'autorizzazione per aggiungere computer al dominio
e può accedere utilizzando RDP. Se utilizzi AD Microsoft gestito, puoi utilizzare
l'utente
setupadmin
. - Un progetto e un VPC Google Cloud con connettività ai controller di dominio Active Directory.
- Assicurati che l'API NetApp Cloud Volumes sia abilitata per il tuo progetto Google Cloud.
-
In the Google Cloud console, activate Cloud Shell.
Preparare il progetto e la rete
Per preparare il progetto Google Cloud e il Virtual Private Cloud (VPC) per il deployment dei gruppi di disponibilità SQL Server Always On, segui questi passaggi:
Nella console Google Cloud, apri Cloud Shell facendo clic sul pulsante Attiva Cloud Shell .
Inizializza le seguenti variabili:
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
Sostituisci quanto segue:
VPC_NAME
: il nome della tua VPCSUBNET_NAME
: il nome della subnet
Imposta l'ID progetto predefinito:
gcloud config set project
PROJECT_ID
Sostituisci
PROJECT_ID
con l'ID del tuo progetto Google Cloud.Imposta la regione predefinita:
gcloud config set compute/region
REGION
Sostituisci
REGION
con l'ID della regione in cui vuoi eseguire il deployment.Imposta la zona predefinita:
gcloud config set compute/zone
ZONE
Sostituisci
ZONE
con l'ID della zona in cui vuoi eseguire il deployment.
Crea SMB su Cloud Volumes Service per SQL Server
Per creare un volume del servizio Cloud Volumes, devi creare un criterio Active Directory, l'accesso ai servizi privati, il pool di archiviazione e il volume di archiviazione.
Per creare un nuovo accesso ai servizi privati:
Nella console Google Cloud, vai alla pagina Rete VPC.
Fai clic sul nome della rete VPC che utilizzerai.
Fai clic sulla scheda Accesso ai servizi privati e poi su Alloca intervallo IP.
- Inserisci un nome per l'intervallo IP interno.
- Seleziona Automatico e inserisci il valore 24 per Lunghezza prefisso.
- Fai clic sul pulsante Assegna.
Fai clic sulla scheda Connessioni private ai servizi e segui questi passaggi:
- Fai clic sul pulsante Crea connessione.
- Seleziona l'intervallo IP allocato in precedenza per il menu a discesa Allocazone assegnata.
- Fai clic sul pulsante Connetti.
Per creare un nuovo criterio Active Directory:
Nella console Google Cloud, vai alla pagina Volumi NetApp.
Nel riquadro di navigazione, fai clic su Criteri Active Directory nella sezione Criteri.
Fai clic sul pulsante Crea.
Specifica un nome per il criterio Active Directory.
In Regione, seleziona la regione disponibile più vicina a dove verranno ospitate le istanze SQL Server.
Nella sezione Dettagli della connessione Active Directory, fornisci le seguenti informazioni:
- Nome del dominio
- Indirizzi dei server DNS di Active Directory
- Nome del sito Active Directory
- Nome dell'unità organizzativa
- Prefisso del nome NetBIOS
Nella sezione Credenziali Active Directory, fornisci le credenziali di un utente autorizzato ad aggiungere computer al dominio specificato.
Nella sezione Impostazioni SMB, fornisci gli Operatori di backup e gli Utenti con privilegi di sicurezza, se applicabili.
Fai clic su Crea per completare la procedura di creazione di un nuovo criterio Active Directory.
Per creare un nuovo pool di archiviazione:
- Nel riquadro di navigazione, fai clic su Pool di archiviazione nella sezione Archiviazione.
- Fai clic sul pulsante Crea.
- Inserisci un nome per il pool di archiviazione.
- In Località, seleziona la regione disponibile più vicina a dove verranno ospitate le istanze SQL Server.
- Seleziona un livello di servizio che soddisfi le prestazioni di archiviazione previste.
- Inserisci la capacità per il pool di archiviazione. La capacità del pool di archiviazione definisce la capacità di archiviazione totale che può essere allocata per tutti i volumi all'interno del pool.
- Nell'elenco Rete, seleziona la VPC in cui verranno ospitate le istanze di SQL Server, come segue:
- Fai clic sul pulsante Configura connessione.
- Seleziona l'intervallo di indirizzi IP riservato nei passaggi precedenti e fai clic su Continua.
- Fai clic sul pulsante Crea connessione.
- Nella sezione Criterio Active Directory, seleziona Assegna un criterio Active Directory al pool di archiviazione e seleziona il criterio Active Directory creato nel passaggio precedente.
- Fai clic sul pulsante Crea per completare la procedura di creazione di un nuovo pool di archiviazione.
Per creare un nuovo volume di archiviazione:
- Nel riquadro di navigazione, fai clic su Volumi nella sezione Archiviazione.
- Fai clic sul pulsante Crea.
- Specifica un nome per il volume di archiviazione.
- In Dettagli pool di archiviazione, fai clic su Seleziona pool di archiviazione per selezionare il pool di archiviazione creato nel passaggio precedente.
- Nella sezione Dettagli del volume, fornisci le seguenti informazioni:
- Nome della condivisione
- Capacità volume
- Nella sezione Configurazione ad alta capacità, seleziona il protocollo SMB.
- Nella sezione Configurazione per i protocolli selezionati, seleziona Abilita il supporto per le condivisioni sempre disponibili per SQL Server e FSLogix.
- Fai clic sul pulsante Crea per completare la procedura di creazione di un nuovo volume di archiviazione.
Crea regole firewall
Per consentire ai client di connettersi a SQL Server, consentire la comunicazione tra i nodi del cluster WSFC (Windows Server Failover Cluster) e attivare il bilanciamento del carico per eseguire controlli di integrità, devi creare diverse regole firewall. Per semplificare la creazione di queste regole firewall, puoi utilizzare i tag di rete:
- I WSFC che utilizzi sono annotati con il tag
wsfc-node
. - Tutti i server, incluso quello di riferimento, sono annotati con il tag
wsfc
.
Per creare regole firewall che utilizzano questi tag di rete:
- Torna alla sessione Cloud Shell esistente.
Crea regole firewall per i nodi 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
Crea una regola firewall che consenta i controlli di integrità dagli intervalli IP dei probe di 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 istanze VM
Ora eseguirai il deployment di tre istanze VM per il cluster di failover.
Node-1
ospiterà la replica principale del database SQL Server
e node-2
ospiterà la replica secondaria. Le due istanze VM devono:
- devono trovarsi nella stessa regione per poter essere raggiunti da un bilanciatore del carico di rete passthrough interno
Avere installato WSFC e SQL Server 2022 utilizzando l'immagine premium di SQL Server
Avere abilitato il supporto di WSFC di Compute Engine
Per fornire un voto decisivo e raggiungere il quorum per lo scenario di failover,
esegui il deployment di una terza istanza VM node-3
che funge da
testimone della condivisione file.
- Torna alla sessione Cloud Shell esistente.
Crea uno script per i nodi WSFC. Lo script installa la funzionalità Windows necessaria e crea le regole firewall per 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 # 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
Crea le istanze VM. Sulle due VM che fungono da nodi WSFC, collega un disco di dati aggiuntivo e attiva Windows Server Failover Clustering impostando la chiave dei metadati
enable-wsfc
sutrue
: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"
Per unire le tre istanze VM ad Active Directory, procedi nel seguente modo per ciascuna delle tre istanze VM:
Monitora il processo di inizializzazione della VM visualizzando l'output della porta seriale:
gcloud compute instances tail-serial-port-output
NAME
Sostituisci
NAME
con il nome dell'istanza VM.Attendi qualche minuto finché non vedi l'output
Instance setup finished
, poi premi Ctrl+C. A questo punto, l'istanza VM è pronta per essere utilizzata.Crea un nome utente e una password per l'istanza VM
Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando il nome utente e la password creati nel passaggio precedente.
Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Windows PowerShell (Amministratore).
Conferma la richiesta di elevazione facendo clic su Sì.
Unisci l'istanza VM al tuo dominio Active Directory e riavvia:
Add-Computer -Domain
DOMAIN -Restart
Sostituisci
DOMAIN
con il nome DNS del tuo dominio Active Directory.Attendi il riavvio dell'istanza VM.
Assegnare le autorizzazioni di archiviazione
Per assegnare le autorizzazioni allo spazio di archiviazione dei volumi cloud:
Nella console Google Cloud, seleziona Cloud Volumes e il volume appena creato.
Connettiti a
node-1
utilizzando Remote Desktop. Accedi con il tuo account utente del dominio.Apri Esplora risorse e fai clic con il tasto destro del mouse su Questo PC.
Seleziona Mappa unità di rete.
Incolla il percorso SMB copiato nella cartella.
Al momento dell'accesso, disattiva l'opzione Riconnetti.
Fai clic su Fine.
Fai clic con il tasto destro del mouse sul drive di rete mappato e seleziona Proprietà.
Nella scheda Sicurezza, fai clic su Modifica.
Rimuovi Tutti e aggiungi gli account di servizio e di installazione di SQL Server con autorizzazioni di controllo completo.
Conferma la richiesta di elevazione facendo clic su Sì.
Prenotare gli indirizzi IP del cluster
Prenota due indirizzi IP statici nella VPC, uno per l'indirizzo IP del cluster WSFC e un altro per il bilanciatore del carico interno.
Prenota un IP statico per il bilanciatore del carico interno e acquisisci l'indirizzo in una nuova variabile di ambiente denominata
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"
Prendi nota dell'indirizzo IP, ti servirà in seguito.
Prenota un altro indirizzo IP statico da utilizzare come IP del 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"
Prendi nota dell'indirizzo IP, ti servirà in seguito.
Il progetto e la VPC sono ora pronti per il deployment di WSFC e SQL Server.
Crea una condivisione file di riferimento
Per preparare witness
a fungere da testimone della condivisione file, crea una condivisione file e concedi a te stesso e ai due nodi WSFC l'accesso alla condivisione file:
- Connettiti a
witness
utilizzando Remote Desktop. Accedi con il tuo account utente del dominio. - Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Windows PowerShell (Amministratore).
- Conferma la richiesta di elevazione facendo clic su Sì.
Crea la cartella del testimone e condividila:
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$
Eseguire il deployment del cluster di failover
Ora utilizzerai le istanze VM per eseguire il deployment di un cluster WSFC e di SQL Server.
Esegui il deployment di WSFC
Ora puoi creare il cluster di failover:
- Connettiti a
node-1
utilizzando Remote Desktop. Accedi con il tuo account utente del dominio. - Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Windows PowerShell (Amministratore).
- Conferma la richiesta di elevazione facendo clic su Sì.
Crea un nuovo cluster:
New-Cluster ` -Name windows-fci ` -Node node-1,node-2 ` -NoStorage ` -StaticAddress
CLUSTER_ADDRESS
Sostituisci
CLUSTER_ADDRESS
con l'indirizzo IP del cluster che hai creato in precedenza.Torna alla sessione PowerShell su
witness
e concedi all'oggetto computer virtuale del cluster l'autorizzazione per accedere alla condivisione file:icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)' Grant-SmbShareAccess ` -Name QWitness ` -AccountName 'windows-fci$' ` -AccessRight Full ` -Force
Torna alla sessione PowerShell su
node-1
e configura il cluster per utilizzare la condivisione file suwitness
come quorum del cluster:Set-ClusterQuorum -FileShareWitness \\witness\QWitness
Verifica che il cluster sia stato creato correttamente:
Test-Cluster
Potresti visualizzare alcuni avvisi che possono essere ignorati:
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).
Puoi anche avviare lo snap-in MMC Failover Cluster Manager per esaminare lo stato del cluster eseguendo
cluadmin.msc
.Se utilizzi AD gestito, aggiungi l'account computer utilizzato da WSFC al gruppo Account di unione al dominio del servizio cloud in modo che possa unire le istanze VM al dominio:
Add-ADGroupMember ` -Identity "Cloud Service Domain Join Accounts" ` -Members windows-fci$
Rimuovi l'installazione predefinita di SQL Server
Ora rimuovi l'installazione predefinita di SQL Server dai due nodi e sostituiscila con una nuova configurazione dell'FCI.
Per ciascuno dei due nodi WSFC, node-1
e node-2
, svolgi i seguenti passaggi:
- Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Windows PowerShell (Amministratore).
- Conferma la richiesta di elevazione facendo clic su Sì.
Rimuovi l'istanza SQL Server predefinita:
C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
Rimuovi il driver OLE di Microsoft:
Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
Rimuovi il driver ODBC di Microsoft:
Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
Riavvia il computer:
Restart-Computer
Attendi il riavvio dell'istanza VM.
Installa l'FCI di SQL Server
Prima di installare la nuova configurazione FCI, verifica che node-1
sia il
nodo attivo nel cluster:
- Riconnettiti a
node-1
utilizzando Remote Desktop e accedi con il tuo utente di dominio. - Fai clic con il tasto destro del mouse sul pulsante Avvia (o premi Win+X) e seleziona Esegui.
- Inserisci
cluadmin.msc
e seleziona Ok. Nel riquadro della finestra a sinistra, vai a Failover Cluster Manager > windows-fci e svolgi i seguenti passaggi:
Verifica che il server host attuale sia impostato su
node-1
.Se il server host corrente è impostato su
node-2
, fai clic con il tasto destro del mouse su windows-fci nel riquadro della finestra a sinistra e seleziona Altre azioni > Sposta risorse del cluster principale > Seleziona nodo… > node-1 e fai clic su OK.
Creerai una nuova installazione del cluster di failover SQL Server su node-1
:
- Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Windows PowerShell (Amministratore).
Conferma la richiesta di elevazione facendo clic su Sì.
Avvia la configurazione di SQL Server:
& c:\sql_server_install\setup.exe
Nel menu a sinistra, seleziona Installazione.
Seleziona Nuova installazione del cluster di failover SQL Server.
Nella pagina Versione, inserisci il codice prodotto, seleziona il tipo di licenza software e fai clic su Avanti.
Nella pagina Termini della licenza, esamina i termini e, se li accetti, fai clic su Avanti.
Nella pagina Microsoft Update, fai clic su Avanti per avviare l'installazione.
Nella pagina Installa regole del cluster di failover, viene visualizzato un avviso Avvisi di verifica del cluster MSCS e Firewall di Windows. Puoi ignorare questi avvisi e fare clic su Avanti.
Nella pagina Selezione funzionalità, seleziona Database Engine Services e fai clic su Avanti.
Nella pagina Configurazione istanza, inserisci
sql
come nome della rete e fai clic su Avanti.Nella pagina Gruppo di risorse del cluster, puoi ignorare gli avvisi di idoneità e fare clic su Avanti.
Nella pagina Selezione dei dischi del cluster, fai clic su Avanti.
Nella pagina Configurazione di rete del cluster, configura le seguenti impostazioni, quindi fai clic su Avanti:
- DHCP: vuoto
- Indirizzo IP: inserisci l'indirizzo IP del bilanciatore del carico interno
Nella pagina Configurazione del server, configura le seguenti impostazioni sia per Agente SQL Server sia per il motore del database SQL Server:
- Nome account:
DOMAIN\sql_server
, doveDOMAIN
è il nome NetBIOS del tuo dominio Active Directory - Password: inserisci la password dell'utente
sql_server
- Nome account:
Seleziona la scheda Collazione e la collazione che vuoi utilizzare. Fai quindi clic su Avanti.
Nella pagina Configurazione del motore del database, seleziona Aggiungi utente corrente per designare l'utente corrente come amministratore di SQL Server. Nella scheda Directory dei dati, inserisci il percorso SMB nel campo Directory principale dei dati e seleziona Avanti. Viene visualizzata una finestra di messaggio che ti chiede di verificare che l'account di servizio SQL Server disponga dell'autorizzazione di condivisione con controllo totale. Seleziona Sì per procedere.
Nella pagina Pronto per l'installazione, controlla le impostazioni e poi seleziona Installa.
Al termine dell'installazione, seleziona Chiudi.
Ora aggiungi node-2
al cluster di failover SQL Server:
- Connettiti a
node-2
utilizzando Remote Desktop e accedi con il tuo utente di dominio. - Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Windows PowerShell (Amministratore).
- Conferma la richiesta di elevazione facendo clic su Sì.
Avvia la configurazione di SQL Server:
& c:\sql_server_install\setup.exe
Nel menu a sinistra, seleziona Installazione.
Seleziona Aggiungi nodo a un cluster di failover SQL Server.
Segui le istruzioni della configurazione guidata e accetta le impostazioni predefinite fino a raggiungere la pagina Account di servizio.
Nella pagina Account di servizio, inserisci la password creata in precedenza sia per Agente SQL Server sia per Motore del database SQL Server. Poi seleziona Avanti.
Nella pagina Pronto per l'installazione, rivedi le impostazioni e seleziona Installa.
Al termine dell'installazione, seleziona Chiudi.
Configurare i controlli di integrità
Come passaggio finale, configura il cluster in modo da esporre un endpoint di controllo di integrità che possa essere utilizzato da un bilanciatore del carico interno:
- Torna alla sessione PowerShell su
node-2
Inizializza una variabile con l'indirizzo IP del bilanciatore del carico.
$LoadBalancerIP = '
IP_ADDRESS
'Sostituisci
IP_ADDRESS
con l'indirizzo IP dell'indirizzowsfc
che hai prenotato in precedenza.Configura il cluster di failover in modo che risponda al servizio di controllo di integrità:
$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; }
Riavvia la risorsa del cluster:
$SqlIpAddress | Stop-ClusterResource $SqlIpAddress | Start-ClusterResource
Riavviare il gruppo di cluster:
$SqlGroup | Stop-ClusterGroup $SqlGroup | Start-ClusterGroup
Crea un bilanciatore del carico interno
Per fornire un singolo endpoint per i client SQL Server, ora eseguirai il deployment di un bilanciatore del carico interno. Il bilanciatore del carico utilizza un controllo di integrità che garantisce che il traffico venga indirizzato al nodo attivo del WSFC.
- Torna alla sessione Cloud Shell esistente.
Crea un gruppo di istanze non gestito e aggiungi i due nodi al gruppo:
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
Crea un controllo di integrità che il bilanciatore del carico può utilizzare per determinare quale sia il nodo attivo.
gcloud compute health-checks create tcp wsfc-healthcheck \ --check-interval="2s" \ --healthy-threshold=1 \ --unhealthy-threshold=2 \ --port=59997 \ --timeout="1s"
La porta dei probe del controllo di integrità
59997
, ovvero la porta che hai configurato in precedenza comeProbePort
per l'indirizzo IP del cluster WSFC.Crea un servizio di backend e aggiungi il gruppo di istanze:
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
Crea il bilanciatore del carico 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
Test del cluster di failover
Hai completato l'installazione del cluster di failover, ma devi ancora verificare se il cluster funziona correttamente.
Preparare un client
Crea una nuova istanza VM che puoi utilizzare per connetterti al cluster di failover:
- Torna alla sessione Cloud Shell esistente.
Crea una nuova istanza 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
Monitora il processo di inizializzazione della VM visualizzando l'output della porta seriale:
gcloud compute instances tail-serial-port-output sqlclient
Attendi qualche minuto finché non vedi l'output di configurazione dell'istanza completata, quindi premi Ctrl+C. A questo punto, l'istanza VM è pronta per essere utilizzata.
Crea un nome utente e una password per l'istanza VM
Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando il nome utente e la password creati nel passaggio precedente.
Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Windows PowerShell (Amministratore).
Conferma la richiesta di elevazione facendo clic su Sì.
Unisci l'istanza VM al tuo dominio Active Directory:
Add-Computer -Domain
DOMAIN
Sostituisci
DOMAIN
con il nome DNS del tuo dominio Active Directory.Riavvia l'istanza VM:
Restart-Computer
Attendi il riavvio dell'istanza VM.
Esegui il test
Utilizza la VM sqlclient
per verificare di poterti connettere al cluster di failover e per verificare che il failover funzioni correttamente:
- Connettiti a
sqlclient
utilizzando Remote Desktop e accedi con il tuo utente di dominio. - Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Windows PowerShell.
Connettiti al cluster SQL Server utilizzando il nome di rete
sql
ed esegui una query sulla tabelladm_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"
L'output dovrebbe essere simile al seguente:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 0 up 1 NODE-2 0 up 0 (2 rows affected)
Tieni presente che
node-1
è il proprietario attuale della risorsa del cluster di failover SQL Server.Torna a Cloud Shell e arresta la VM node-1 per testare lo scenario di failover:
gcloud compute instances stop node-1
Ripeti la query:
& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
L'output dovrebbe avere ora il seguente aspetto:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 1 down 0 NODE-2 0 up 1 (2 rows affected)
Tieni presente che, nonostante la perdita di
node-1
, la query va a buon fine e mostra chenode-2
è ora il proprietario attuale del cluster di failover.
Esegui la pulizia
Al termine del tutorial, puoi eliminare le risorse che hai creato in modo che smettano di utilizzare la quota e di generare addebiti. Le sezioni seguenti descrivono come eliminare o disattivare queste risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.
Per eliminare il progetto:
- 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.