Configurare un gruppo di disponibilità AlwaysOn in macchine virtuali di Azure in aree diverse

Questo articolo descrive come configurare la replica di un gruppo di disponibilità SQL Server AlwaysOn in macchine virtuali di Azure in una località di Azure remota. Usare questa configurazione per supportare il ripristino di emergenza.

Questo articolo si applica a Macchine virtuali di Azure in modalità Resource Manager.

L'immagine seguente illustra una distribuzione comune di un gruppo di disponibilità nelle macchine virtuali di Azure:

Gruppo di disponibilità

In questa distribuzione tutte le macchine virtuali sono in un'unica area di Azure. Le repliche del gruppo di disponibilità possono avere il commit sincrono con failover automatico in SQL-1 e SQL-2. Per creare questa architettura, vedere Availability Group template or tutorial (Modello o esercitazione per i gruppi di disponibilità).

Questa architettura è soggetta a tempi di inattività se l'area di Azure diventa inaccessibile. Per ovviare a questa vulnerabilità, aggiungere una replica in un'area di Azure diversa. Il diagramma seguente illustra l'aspetto della nuova architettura:

Ripristino di emergenza del gruppo di disponibilità

Il diagramma precedente illustra una nuova macchina virtuale denominata SQL-3. SQL-3 è in un'area di Azure diversa. SQL-3 viene aggiunta al cluster di failover di Windows Server. SQL-3 può ospitare una replica del gruppo di disponibilità. Si noti infine che l'area di Azure per SQL-3 ha un nuovo servizio di bilanciamento del carico di Azure.

Nota

Un set di disponibilità di Azure è necessario quando più macchine virtuali sono nella stessa area. Se una sola macchina virtuale è nell'area, il set di disponibilità non è necessario. È possibile inserire una macchina virtuale in un set di disponibilità solo al momento della creazione. Se la macchina virtuale è già in un set di disponibilità, è possibile aggiungere una macchina virtuale per un'altra replica in seguito.

In questa architettura la replica nell'area remota viene in genere configurata con la modalità di disponibilità commit asincrono e la modalità di failover manuale.

Quando le repliche del gruppo di disponibilità sono nelle macchine virtuali di Azure in aree di Azure diverse, ogni area richiede:

  • Un gateway di rete virtuale
  • Una connessione gateway di rete virtuale

Il diagramma seguente illustra come le reti comunicano tra data center.

Gruppo di disponibilità

Importante

Questa architettura è soggetta a costi per i dati in uscita replicati tra le aree di Azure. Vedere Prezzi per la larghezza di banda.

Creare una replica remota

Per creare una replica in un data center remoto, seguire questa procedura:

  1. Creare una rete virtuale nella nuova area.

  2. Configurare una connessione da rete virtuale a rete virtuale con il portale di Azure.

    Nota

    In alcuni casi, potrebbe essere necessario usare PowerShell per creare la connessione da rete virtuale a rete virtuale. Se, ad esempio, si usano account Azure diversi, non è possibile configurare la connessione nel portale. In questi casi, vedere Configurare una connessione da rete virtuale a rete virtuale con il portale di Azure.

  3. Creare un controller di dominio nella nuova area.

    Questo controller di dominio fornisce l'autenticazione se il controller di dominio nel sito primario non è disponibile.

  4. Creare una macchina virtuale SQL Server nella nuova area.

  5. Creare un servizio di bilanciamento del carico di Azure in rete nella nuova area.

    Questo servizio di bilanciamento del carico deve:

    • Essere nella stessa rete e subnet della nuova macchina virtuale.
    • Avere un indirizzo IP statico per il listener del gruppo di disponibilità.
    • Includere un pool back-end costituito solo dalle macchine virtuali nella stessa area del servizio di bilanciamento del carico.
    • Usare il probe di una porta TCP specifico dell'indirizzo IP.
    • Avere una regola di bilanciamento del carico specifica dell'istanza di SQL Server nella stessa area.
  6. Aggiungere la funzionalità di clustering di failover alla nuova istanza di SQL Server.

  7. Aggiungere la nuova istanza di SQL Server al dominio.

  8. Impostare il nuovo account del servizio SQL Server per l'uso di un account di dominio.

  9. Aggiungere la nuova istanza di SQL Server al cluster di failover di Windows Server.

  10. Creare una risorsa indirizzo IP nel cluster.

    È possibile creare la risorsa indirizzo IP in Gestione cluster di failover. Fare clic con il pulsante destro del mouse sul ruolo del gruppo di disponibilità, scegliere Aggiungi risorsa, Altre risorse e fare clic su Indirizzo IP.

    Creare un indirizzo IP

    Configurare l'indirizzo IP come segue:

    • Usare la rete dal data center remoto.
    • Assegnare l'indirizzo IP dal nuovo servizio di bilanciamento del carico di Azure.
  11. Nella nuova istanza di SQL Server in Gestione configurazione SQL Server abilitare i gruppi di disponibilità AlwaysOn.

  12. Aprire le porte del firewall nella nuova istanza di SQL Server.

    I numeri di porta che è necessario aprire dipendono dall'ambiente. Aprire le porte per l'endpoint del mirroring e il probe di integrità di bilanciamento del carico di Azure.

  13. Aggiungere una replica al gruppo di disponibilità nella nuova istanza di SQL Server.

    Per una replica in un'area di Azure remota, impostarla per la replica asincrona con il failover manuale.

  14. Aggiungere la risorsa indirizzo IP come dipendenza per il cluster del punto di accesso client listener (nome della rete).

    Lo screenshot seguente illustra una risorsa cluster di tipo indirizzo IP configurata correttamente:

    Gruppo di disponibilità

    Importante

    Il gruppo di risorse cluster include entrambi gli indirizzi IP. Entrambi gli indirizzi IP sono dipendenze per il punto di accesso client listener. Usare l'operatore OR nella configurazione delle dipendenze del cluster.

  15. Impostare i parametri del cluster in PowerShell.

Eseguire lo script PowerShell con il nome di rete cluster, l'indirizzo IP e la porta probe configurati nel servizio di bilanciamento del carico nella nuova area.

$ClusterNetworkName = "<MyClusterNetworkName>" # The cluster name for the network in the new region (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name).
$IPResourceName = "<IPResourceName>" # The cluster name for the new IP Address resource.
$ILBIP = “<n.n.n.n>” # The IP Address of the Internal Load Balancer (ILB) in the new region. This is the static IP address for the load balancer you configured in the Azure portal.
[int]$ProbePort = <nnnnn> # The probe port you set on the ILB.

Import-Module FailoverClusters

Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}

Impostare la connessione per più subnet

La replica nel data center remoto fa parte del gruppo di disponibilità, ma si trova in un'altra subnet. Se questa replica diventa quella primaria, possono verificarsi timeout della connessione dell'applicazione. Questo comportamento è lo stesso di un gruppo di disponibilità locale in una distribuzione su più subnet. Per consentire le connessioni dalle applicazioni client, aggiornare la connessione client o configurare la memorizzazione nella cache della risoluzione dei nomi nella risorsa nome di rete del cluster.

È preferibile aggiornare le stringhe di connessione client per impostare MultiSubnetFailover=Yes. Vedere Connessione con MultiSubnetFailover.

Se non è possibile modificare le stringhe di connessione, è possibile configurare la memorizzazione nella cache della risoluzione dei nomi. Vedere Connection Timeouts in Multi-subnet Availability Group (Timeout connessione in un gruppo di disponibilità su più subnet).

Effettuare il failover in un'area remota

Per testare la connettività del listener all'area remota, è possibile effettuare il failover della replica nell'area remota. Mentre la replica è asincrona, il failover è soggetto a perdita potenziale di dati. Per effettuare il failover senza perdita di dati, impostare la modalità di disponibilità come sincrona e la modalità di failover come automatica. Seguire questa procedura:

  1. In Esplora oggetti connettersi all'istanza di SQL Server che ospita la replica primaria.
  2. In Gruppi di disponibilità AlwaysOn, Gruppi di disponibilità fare clic con il pulsante destro del mouse sul gruppo di disponibilità e scegliere Proprietà.
  3. Nella pagina Generale in Repliche di disponibilità impostare la replica secondaria nel sito di ripristino di emergenza per l'uso della modalità di disponibilità Commit sincrono e della modalità di failover Automatico.
  4. Se è presente una replica secondaria nello stesso sito della replica primaria per la disponibilità elevata, impostare questa replica su Commit asincrono e Manuale.
  5. Fare clic su OK.
  6. In Esplora oggetti fare clic con il pulsante destro del mouse sul gruppo di disponibilità e scegliere Mostra dashboard.
  7. Nel dashboard verificare che la replica nel sito di ripristino di emergenza sia sincronizzata.
  8. In Esplora oggetti fare clic con il pulsante destro del mouse sul gruppo di disponibilità e scegliere Failover. SQL Server Management Studio apre una procedura guidata per il failover di SQL Server.
  9. Fare clic su Avanti e selezionare l'istanza di SQL Server nel sito del ripristino di emergenza. Fare di nuovo clic su Avanti .
  10. Connettersi all'istanza di SQL Server nel sito di ripristino di emergenza e fare clic su Avanti.
  11. Nella pagina Riepilogo verificare le impostazioni e fare clic su Fine.

Dopo avere testato la connettività, spostare di nuovo la replica primaria nel data center primario e configurare di nuovo la modalità di disponibilità sulle normali impostazioni operative. La tabella seguente indica le normali impostazioni operative per l'architettura descritta in questo documento:

Percorso Istanza del server Ruolo Modalità di disponibilità Modalità di failover
Data center primario SQL-1 Primario Sincrono Automatico
Data center primario SQL-2 Secondario Sincrono Automatico
Data center secondario o remoto SQL-3 Secondario Asincrono Manuale

Altre informazioni sul failover manuale forzato e pianificato

Per ulteriori informazioni, vedere gli argomenti seguenti: