Configura SQL Server su Google Cloud Platform utilizzando Cloud Volumes Service


Questo tutorial fornisce una panoramica su come configurare un ambiente Google Cloud altamente resiliente ambiente per SQL Server installato nello spazio di archiviazione fileshare di Server Message Block (SMB) utilizzando NetApp Cloud Volumes Service (CVS) per Google Cloud.

Gruppi di disponibilità sempre attivi di Microsoft SQL Server (AG) consente di replicare i database su più istanze SQL Server Enterprise. Le istanze sempre attive tradizionali di SQL Server richiedono in genere che ciascun nodo mantenga una copia dei dati, il che può diventare rapidamente costoso man mano che i database crescono. Ad esempio, in un deployment sempre attivo di SQL Server tradizionale, se i database hanno una dimensione di 10 TB, ogni replica deve avere almeno 10 TB di spazio di archiviazione di cui è stato eseguito il provisioning. Uno dei vantaggi di avere un cluster di failover di Windows Server (WSFC) implementato per SQL Server è che ti serve solo una copia dei dati, condivisa tra i nodi del cluster. Di conseguenza, l'esecuzione di SQL Server Always On in un'istanza di cluster di failover (FCI) in una WSFC può farti risparmiare immediatamente 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 di 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 per SMB consente la manutenzione su Cloud Volumes Service senza interrompere la connettività alle applicazioni server e l'accesso ai dati sui volumi PMI. Per supportare il failover trasparente per PMI, Cloud Volumes Service supporta l'opzione di condivisione della disponibilità continua (CA) per PMI per l'utilizzo con i carichi di lavoro SQL Server. Ciò offre miglioramenti delle prestazioni, scalabilità e vantaggi economici per istanze singole, istanze con cluster di failover sempre attivo (AOFC) e deployment con gruppi di disponibilità sempre attivi.

Questa pagina è destinata ai database SQL Server e NetApp Cloud Volumes Service responsabili del deployment di Microsoft SQL Server su Google Cloud. it presuppone quanto segue:

  • Conosci i vari componenti della soluzione
  • Hai già eseguito il deployment di Active Directory su Google Cloud

Obiettivi

Questo tutorial mira a raggiungere i seguenti obiettivi:

  • crea un volume Cloud Volumes Service per SQL Server
  • Esegui il deployment di un cluster di failover sempre attivo su SMB su Cloud Volumes Service

Costi

Questo tutorial utilizza 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 è necessario un progetto Google Cloud. Puoi creare un o seleziona un progetto già creato:

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

    Go to project selector

  2. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  3. Un dominio Active Directory con almeno un controller di dominio. Puoi creare un dominio Active Directory utilizzando Microsoft Active Directory gestito. In alternativa, puoi eseguire il deployment di un ambiente Active Directory personalizzato su Compute Engine e configura una zona di forwarding DNS privata che inoltra le query DNS ai controller di dominio.
  4. Un utente di Active Directory che dispone dell'autorizzazione per aggiungere computer al dominio e possono accedere tramite RDP. Se utilizzi Microsoft Active Directory gestito, puoi utilizzare l'utente setupadmin.
  5. Un progetto Google Cloud e un VPC con connettività ai controller di dominio Active Directory.
  6. Assicurati che l'API NetApp Cloud Volumes sia abilitata per il tuo progetto Google Cloud.
  7. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

Prepara il progetto e la rete

prepara il tuo progetto Google Cloud e il Virtual Private Cloud (VPC) per il deployment di SQL Server Per i gruppi di disponibilità sempre attivi:

  1. Nella console Google Cloud, apri Cloud Shell facendo clic Attiva Cloud Shell Attiva Cloud Shell. .

    Vai alla console Google Cloud

  2. Inizializza le seguenti variabili:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

    Sostituisci quanto segue:

    • VPC_NAME: nome del tuo VPC
    • SUBNET_NAME: nome della subnet
  3. Imposta l'ID progetto predefinito:

    gcloud config set project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

  4. Imposta la tua regione predefinita:

    gcloud config set compute/region REGION
    

    Sostituisci REGION con l'ID della regione in cui vuoi eseguire il deployment.

  5. 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 Cloud Volumes Service, devi creare un criterio di Active Directory, accesso privato ai servizi, pool di archiviazione e volume di archiviazione.

  1. Per creare un nuovo accesso privato ai servizi, segui questi passaggi:

    1. Nella console Google Cloud, vai alla pagina Rete VPC.

      Vai alla rete VPC

    2. Fai clic sul nome della rete VPC che utilizzerai.

    3. Fai clic sulla scheda Accesso privato ai servizi, quindi fai clic su Alloca intervallo IP.

      1. Inserisci un nome per l'intervallo IP interno.
      2. Seleziona Automatico e inserisci il valore 24 in Lunghezza prefisso.
      3. Fai clic sul pulsante Assegna.
    4. Fai clic sulla scheda Connessioni private ai servizi ed esegui le seguenti operazioni:

      1. Fai clic sul pulsante Crea connessione.
      2. Seleziona l'intervallo IP allocato in precedenza per l'elenco a discesa Allocazione assegnata.
      3. Fai clic sul pulsante Connetti.
  2. Per creare un nuovo criterio di Active Directory:

    1. Nella console Google Cloud, vai alla pagina NetApp Volumes.

      Vai a NetApp Volumes

    2. Nel riquadro di navigazione, fai clic su Criteri di Active Directory nella sezione Criteri.

    3. Fai clic sul pulsante Crea.

    4. Specifica un nome per il criterio di Active Directory.

    5. In Regione, seleziona la regione disponibile più vicina a dove verranno ospitate le istanze SQL Server.

    6. Nella sezione Dettagli connessione ad Active Directory, fornisci le seguenti informazioni:

      1. Nome del dominio
      2. Indirizzi dei server DNS di Active Directory
      3. Nome sito Active Directory
      4. Nome dell'unità organizzativa
      5. Prefisso nome NetBIOS
    7. Nella sezione Credenziali di Active Directory, fornisci le credenziali di un utente autorizzato ad aggiungere computer al dominio specificato.

    8. Nella sezione Impostazioni SMB, indica gli operatori di backup e gli utenti con privilegi di sicurezza, se applicabili.

    9. Fai clic su Crea per completare il processo di creazione di un nuovo criterio di Active Directory.

  3. Per creare un nuovo pool di archiviazione, segui questi passaggi:

    1. Nel riquadro di navigazione, fai clic su Pool di archiviazione nella sezione Spazio di archiviazione.
    2. Fai clic sul pulsante Crea.
    3. Inserisci un nome per il pool di archiviazione.
    4. In Località, seleziona la regione disponibile più vicina a dove verranno ospitate le istanze SQL Server.
    5. Seleziona un livello di servizio che soddisfi le prestazioni di archiviazione previste.
    6. Inserisci il valore Capacità per il pool di archiviazione. La capacità del pool di archiviazione definisce la capacità totale di archiviazione che può essere allocata per tutti i volumi all'interno del pool.
    7. Nell'elenco Rete, seleziona il VPC in cui verranno ospitate le istanze SQL Server, come segue:
      1. Fai clic sul pulsante Configura connessione.
      2. Seleziona l'intervallo di indirizzi IP prenotato nei passaggi precedenti e fai clic su Continua.
      3. Fai clic sul pulsante Crea connessione.
    8. Nella sezione Criterio di Active Directory, seleziona Assegna un criterio Active Directory al pool di archiviazione e seleziona il criterio di Active Directory creato nel passaggio precedente.
    9. Fai clic sul pulsante Crea per completare il processo di creazione di un nuovo pool di archiviazione.
  4. Per creare un nuovo volume di archiviazione:

    1. Nel riquadro di navigazione, fai clic su Volumi nella sezione Archiviazione.
    2. Fai clic sul pulsante Crea.
    3. Specifica un nome per il volume di archiviazione.
    4. In Dettagli del pool di archiviazione, fai clic su Seleziona pool di archiviazione per selezionare il pool di archiviazione creato nel passaggio precedente.
    5. Nella sezione Dettagli volume, fornisci le seguenti informazioni:
      1. Condividi nome
      2. Capacità volume
    6. Nella sezione Configurazione ad alta capacità, seleziona Protocollo SMB.
    7. Nella sezione Configurazione per i protocolli selezionati, seleziona Attiva il supporto della condivisione CA per SQL Server, FSLogix.
    8. 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, consenti la comunicazione tra il cluster di failover di Windows Server (WSFC) nodi e per abilitare il bilanciatore del carico eseguire controlli di integrità, devi creare varie regole firewall. Per semplificare la creazione di questi regole firewall, puoi utilizzare i tag di rete:

  • Le WSFC che utilizzi sono annotate con il tag wsfc-node.
  • Tutti i server, incluso quello witness, sono annotati con il tag wsfc.

Per creare regole firewall che utilizzino questi tag di rete, segui questi passaggi:

  1. Torna alla sessione di Cloud Shell esistente.
  2. Crea le 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
    
  3. Crea una regola firewall che consenta i controlli di integrità dal 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
    
di Gemini Advanced.

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:

  • trovarsi nella stessa regione, in modo che siano accessibili bilanciatore del carico di rete passthrough interno
  • Aver installato WSFC e SQL Server 2022 utilizzando l'immagine premium di SQL Server

  • Avere il supporto WSFC di Compute Engine abilitato

Per offrire un voto alla pari 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.

  1. Torna alla sessione di Cloud Shell esistente.
  2. Crea uno script per i nodi WSFC. Lo script installa la funzionalità di Windows necessaria e crea 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
    
  3. Creare le istanze VM. Sulle due VM che fungono da nodi WSFC, collega un disco dati aggiuntivo e abilita il clustering di failover di Windows Server impostando la chiave dei metadati enable-wsfc su 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. Per unire le 3 istanze VM ad Active Directory, segui questi passaggi per ciascuna le tre istanze VM:

    1. 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 viene visualizzato l'output Instance setup finished. quindi premi Ctrl+C. A questo punto, l'istanza VM è pronta per essere utilizzata.

    2. Creare un nome utente e una password per l'istanza VM

    3. Connettersi alla VM tramite Desktop remoto e accedi utilizzando il nome utente e la password creati nel passaggio precedente.

    4. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic su Windows PowerShell (amministratore).

    5. Conferma la richiesta di elevazione facendo clic su .

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

Assegna autorizzazioni per lo spazio di archiviazione

Per assegnare le autorizzazioni allo spazio di archiviazione del volume sul cloud, completa i seguenti passaggi:

  1. Dalla console Google Cloud, seleziona Cloud Volumes e il volume appena creato.

    Volume cloud

  2. Connettiti a node-1 utilizzando Remote Desktop. Accedi con l'account utente del tuo dominio.

  3. Apri Esplora risorse e fai clic con il tasto destro del mouse su Questo PC.

  4. Seleziona Mappa unità di rete.

  5. Incolla nella cartella il percorso SMB copiato.

    Volume cloud

  6. Al momento dell'accesso, disattiva l'opzione Riconnetti.

  7. Fai clic su Fine.

  8. Fai clic con il pulsante destro del mouse sull'unità di rete mappata e seleziona Proprietà.

    Volume cloud

  9. Nella scheda Sicurezza, fai clic su Modifica.

  10. Rimuovi tutti e aggiungi gli account del programma di installazione di SQL Server e di SQL Server con autorizzazioni di controllo completo.

    Volume cloud

  11. Conferma la richiesta di elevazione facendo clic su .

Prenota indirizzi IP del cluster

Prenota due indirizzi IP statici nel tuo VPC, uno per l'indirizzo IP del cluster WSFC e un altro per il bilanciatore del carico interno.

  1. Prenota un IP statico per il bilanciatore del carico interno e acquisisci l'indirizzo 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, che ti servirà in un secondo momento.

  2. Prenota un altro indirizzo IP statico che utilizzi 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, che ti servirà in un secondo momento.

Il progetto e il VPC sono ora pronti per il deployment di WSFC e SQL Server.

Crea una condivisione file di test

Per preparare witness a fungere da testimone della condivisione file, crea una condivisione file e concedi tu e i due nodi WSFC accedete alla condivisione file:

  1. Connettiti a witness utilizzando Remote Desktop. Accedi con l'account utente del tuo dominio.
  2. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic su Windows PowerShell (amministratore).
  3. Conferma la richiesta di elevazione facendo clic su .
  4. Crea la cartella di testimoni 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$
    

Deployment del cluster di failover

Ora utilizzerai le istanze VM per eseguire il deployment di una WSFC e SQL Server.

Esegui il deployment di WSFC

Ora è tutto pronto per creare il cluster di failover:

  1. Connettiti a node-1 utilizzando Remote Desktop. Accedi con l'account utente del tuo dominio.
  2. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic su Windows PowerShell (amministratore).
  3. Conferma la richiesta di elevazione facendo clic su .
  4. 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.

  5. Torna alla sessione PowerShell il giorno witness e concedi la oggetto informatico dell'autorizzazione del cluster per accedere alla condivisione file:

    icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)'
    Grant-SmbShareAccess `
      -Name QWitness `
      -AccountName 'windows-fci$' `
      -AccessRight Full `
      -Force
    
  6. Torna alla sessione PowerShell su node-1 e configura il cluster per utilizzare la condivisione file su witness come quorum di cluster:

    Set-ClusterQuorum -FileShareWitness \\witness\QWitness
    
  7. Verifica che il cluster sia stato creato correttamente:

    Test-Cluster
    

    Potresti visualizzare alcuni avvisi che puoi tranquillamente ignorare:

    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 snapshot MMC del gestore cluster di failover per esaminare l'integrità del cluster eseguendo cluadmin.msc.

  8. Se utilizzi Managed AD, aggiungi l'account computer utilizzato da WSFC alla Account di join agli account del dominio di 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 rimuoverai l'installazione predefinita di SQL Server dai due nodi e sostituirai con una nuova configurazione FCI.

Per ciascuno dei due nodi WSFC, node-1 e node-2, segui questi passaggi:

  1. Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e fai clic Windows PowerShell (amministratore).
  2. Conferma la richiesta di elevazione facendo clic su .
  3. Rimuovi l'istanza SQL Server predefinita:

    C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
    
  4. Rimuovi il driver Microsoft OLE:

    Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
    
  5. Rimuovi driver ODBC Microsoft:

    Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
    
  6. Riavvia il computer:

    Restart-Computer
    
  7. Attendi il riavvio dell'istanza VM.

Installa SQL Server FCI

Prima di installare la nuova configurazione FCI, verifica che node-1 sia nodo attivo nel cluster:

  1. Riconnettiti a node-1 utilizzando Remote Desktop e accedi con il tuo utente di dominio.
  2. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e seleziona Esegui.
  3. Inserisci cluadmin.msc e seleziona OK.
  4. Nel riquadro a sinistra, vai a Gestione cluster di failover > windows-fci e procedi nel seguente modo:

    1. Verifica che il server host attuale sia impostato su node-1.

    2. Se il server host attuale è impostato su node-2, fai clic con il tasto destro del mouse su windows-fci nel riquadro a sinistra della finestra e seleziona Altre azioni > Sposta le risorse principali del cluster > Seleziona nodo... > node-1 e fai clic su OK.

Creerai una nuova installazione del cluster di failover SQL Server il giorno node-1:

  1. Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e fai clic Windows PowerShell (amministratore).
  2. Conferma la richiesta di elevazione facendo clic su .

  3. Avvia la configurazione di SQL Server:

    & c:\sql_server_install\setup.exe
    
  4. Nel menu a sinistra, seleziona Installazione.

  5. Seleziona Installazione di nuovo cluster di failover SQL Server.

  6. Nella pagina Edizione, inserisci il codice Product Key, seleziona il tipo di licenza software e fai clic su Avanti.

  7. Nella pagina Termini di licenza, leggi i termini e, se li accetti, fai clic su Avanti.

  8. Nella pagina Microsoft Update, fai clic su Avanti per avviare l'installazione.

  9. Nella pagina Installa regole 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.

  10. Nella pagina Feature Selection (Selezione caratteristiche), seleziona Database Engine Services (Servizi del motore del database) e fai clic su Next (Avanti).

  11. Nella pagina Configurazione istanza, inserisci sql come nome della rete e fai clic su Avanti.

  12. Nella pagina Gruppo di risorse del cluster puoi ignorare gli avvisi di idoneità e fare clic su Avanti.

  13. Nella pagina Selezione disco cluster, fai clic su Avanti.

  14. Nella pagina Configurazione della rete dei cluster, configura le impostazioni seguenti: quindi fai clic su Avanti:

    • DHCP: cancella
    • Indirizzo IP: inserisci l'indirizzo IP del bilanciatore del carico interno
  15. Nella pagina Configurazione server, configura le seguenti impostazioni per sia Agent SQL Server che Motore di database SQL Server:

    • Nome account: DOMAIN\sql_server dove DOMAIN è il nome NetBIOS del tuo Dominio Active Directory
    • Password: inserisci la password dell'utente sql_server
  16. Seleziona la scheda Collazioni e scegli le regole di confronto che vuoi utilizzare. Quindi, fai clic su Avanti.

  17. Nella pagina Configurazione del motore del database, seleziona Aggiungi utente corrente per designare l'utente corrente come amministratore di SQL Server. Nella scheda Elenchi di dati, inserisci il percorso SMB nel campo Directory radice dei dati e seleziona Avanti. Viene visualizzata una finestra di messaggio che ti informa che l'account di servizio SQL Server dispone dell'autorizzazione di condivisione del controllo completo. Seleziona per continuare.

    Volume cloud

  18. Nella pagina Pronto per l'installazione, rivedi le impostazioni e seleziona Installa.

  19. Al termine dell'installazione, seleziona Chiudi.

Ora aggiungi node-2 al cluster di failover SQL Server:

  1. Connettiti a node-2 utilizzando Remote Desktop e accedi con il tuo utente di dominio.
  2. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic su Windows PowerShell (amministratore).
  3. Conferma la richiesta di elevazione facendo clic su .
  4. Avvia la configurazione di SQL Server:

    & c:\sql_server_install\setup.exe
    
  5. Nel menu a sinistra, seleziona Installazione.

  6. Seleziona Aggiungi nodo a un cluster di failover SQL Server.

  7. Segui le istruzioni dell'installazione guidata e accetta le impostazioni predefinite fino a raggiungere la pagina Account di servizio.

  8. Nella pagina Account di servizio, inserisci la password creata in precedenza sia per SQL Server Agent sia per il Motore di database SQL Server. Quindi, seleziona Avanti.

  9. Nella pagina Pronto per l'installazione, rivedi le impostazioni e seleziona Installa.

  10. Al termine dell'installazione, seleziona Chiudi.

Configura i controlli di integrità

Come ultimo passaggio, configura il cluster per esporre un endpoint del controllo di integrità può essere utilizzato da un bilanciatore del carico interno:

  1. Torna alla sessione PowerShell il giorno node-2
  2. Inizializza una variabile con l'indirizzo IP del bilanciatore del carico.

    $LoadBalancerIP = 'IP_ADDRESS'
    

    Sostituisci IP_ADDRESS con l'indirizzo IP di wsfc che hai prenotato in precedenza.

  3. 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; }
    
  4. Riavvia la risorsa del cluster:

    $SqlIpAddress | Stop-ClusterResource
    $SqlIpAddress | Start-ClusterResource
    
  5. Riavvia 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à per garantire che il traffico venga indirizzato il nodo attivo della WSFC.

  1. Torna alla sessione di Cloud Shell esistente.
  2. Crea un gruppo di istanze non gestite, 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
    
  3. Crea un controllo di integrità utilizzabile dal bilanciatore del carico per determinare quale il nodo attivo.

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

    Il controllo di integrità verifica la porta 59997, ovvero quella che hai usato in precedenza configurato come ProbePort per l'indirizzo IP del cluster WSFC.

  4. 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
    
  5. 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 per assicurarti che il cluster funzioni correttamente.

Prepara un cliente

Crea una nuova istanza VM che puoi utilizzare per connetterti al cluster di failover:

  1. Torna alla sessione di Cloud Shell esistente.
  2. 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
    
  3. 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 viene visualizzata la configurazione dell'istanza di output completata, quindi premi Ctrl+C. A questo punto, l'istanza VM è pronta per essere utilizzata.

  4. Creare un nome utente e una password per l'istanza VM

  5. Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando il nome utente e la password creati nel passaggio precedente.

  6. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic su Windows PowerShell (amministratore).

  7. Conferma la richiesta di elevazione facendo clic su .

  8. Unisci l'istanza VM al tuo dominio Active Directory:

    Add-Computer -Domain DOMAIN
    

    Sostituisci DOMAIN con il nome DNS del tuo dominio Active Directory.

  9. Riavvia l'istanza VM:

    Restart-Computer
    

    Attendi il riavvio dell'istanza VM.

Esegui il test

Utilizza la VM sqlclient per verificare la possibilità di connetterti al cluster di failover per verificare che il failover funzioni correttamente:

  1. Connettiti a sqlclient utilizzando Remote Desktop e accedi con il tuo utente di dominio.
  2. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic su Windows PowerShell.
  3. Connettiti al cluster SQL Server utilizzando il nome di rete sql ed esegui una query Tabella 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"
    

    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 è l'attuale proprietario della risorsa del cluster di failover SQL Server.

  4. Torna a Cloud Shell e disattiva la VM del nodo 1 per testare lo scenario di failover:

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

    Nota che, nonostante la perdita di node-1, la query riesce e mostra che node-2 è ora l'attuale proprietario del cluster di failover.

Esegui la pulizia

Al termine del tutorial, puoi eseguire la pulizia delle risorse che hai creato in modo che smettono di usare la quota e comportano addebiti. Le seguenti sezioni descrivono come eliminare o disattivare queste risorse.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione creato per il tutorial.

Per eliminare il progetto:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.