Configurare un DNN per l'istanza del cluster di failover

Si applica a:SQL Server su VM di Azure

Suggerimento

Esistono molti metodi per distribuire un gruppo di disponibilità. Semplificare la distribuzione ed eliminare la necessità di un servizio di Azure Load Balancer o di un nome di rete distribuito (DNN) per il gruppo di disponibilità AlwaysOn creando le macchine virtuali (VM) di SQL Server in più subnet all'interno della stessa rete virtuale di Azure. Se il gruppo di disponibilità è già stato creato in una singola subnet, è possibile eseguirne la migrazione a un ambiente con più subnet.

Sulle macchine virtuali di Azure, il nome di rete distribuita (DNN) instrada il traffico alla risorsa cluster appropriata. Offre un modo più semplice per connettersi all'istanza del cluster di failover di SQL Server (FCI) rispetto al nome di rete virtuale (VNN), senza la necessità di un Azure Load Balancer.

Questo articolo illustra come configurare una risorsa DNN per instradare il traffico all'istanza del cluster di failover con SQL Server in VM di Azure per la disponibilità elevata e il ripristino di emergenza (HADR).

Per un'opzione di connettività alternativa, prendere invece in considerazione un nome di rete virtuale e Azure Load Balancer.

Panoramica

Il nome di rete distribuita (DNN) sostituisce il nome di rete virtuale (VNN) come punto di connessione quando viene usato con una istanza del cluster di failover Always On nelle VM di SQL Server. Ciò nega la necessità di un'istanza di Azure Load Balancer per instradare il traffico al VNN, semplificando la distribuzione, la manutenzione e migliorando il failover.

Il VNN esiste ancora in una distribuzione dell’istanza del cluster di failover, ma il client si connette al nome DNS DNN anziché al nome VNN.

Prerequisiti

Per poter completare la procedura descritta in questo articolo, sono necessari:

Creare una risorsa DNN

La risorsa DNN viene creata nello stesso gruppo di cluster dell'istanza del cluster di failover di SQL Server. Usare PowerShell per creare la risorsa DNN all'interno del gruppo di cluster dell'istanza del cluster di failover.

Il seguente comando di PowerShell aggiunge una risorsa DNN al gruppo di cluster dell'istanza del cluster di failover di SQL Server con un nome di risorsa <dnnResourceName>. Il nome della risorsa viene usato per identificare in modo univoco una risorsa. Usarne uno che abbia senso per l'utente e sia univoco nel cluster. Il tipo di risorsa deve essere Distributed Network Name.

Il valore -Group deve essere il nome del gruppo di cluster che corrisponde all'istanza del cluster di failover di SQL Server a cui si vuole aggiungere il nome di rete distribuita. Per un'istanza predefinita, il formato tipico è SQL Server (MSSQLSERVER).

Add-ClusterResource -Name <dnnResourceName> `
-ResourceType "Distributed Network Name" -Group "<WSFC role of SQL Server instance>"

Ad esempio, per creare la risorsa DNN dnn-demo per un'istanza del cluster di failover di SQL Server predefinita, usare il seguente comando di PowerShell:

Add-ClusterResource -Name dnn-demo `
-ResourceType "Distributed Network Name" -Group "SQL Server (MSSQLSERVER)"

Impostare il nome DNS DNN del cluster

Impostare il nome DNS per la risorsa DNN nel cluster. Il cluster usa quindi questo valore per instradare il traffico al nodo che attualmente ospita l'istanza del cluster di failover di SQL Server.

I client usano il nome DNS per connettersi all'istanza del cluster di failover di SQL Server. È possibile scegliere un valore univoco. In alternativa, se si dispone già di un'istanza del cluster di failover esistente e non si desidera aggiornare le stringhe di connessione client, è possibile configurare il DNN per l'uso del VNN corrente già in uso dai client. A tale scopo, è necessario rinominare il VNN prima di impostare il DNN in DNS.

Usare questo comando per impostare il nome DNS per il DNN:

Get-ClusterResource -Name <dnnResourceName> | `
Set-ClusterParameter -Name DnsName -Value <DNSName>

Il valore DNSName è quello usato dai client per connettersi all'istanza del cluster di failover di SQL Server. Ad esempio, per connettere i client a FCIDNN, usare il seguente comando PowerShell:

Get-ClusterResource -Name dnn-demo | `
Set-ClusterParameter -Name DnsName -Value FCIDNN

I client inseriranno ora FCIDNN nella propria stringa di connessione durante la connessione all'istanza del cluster di failover di SQL Server.

Avviso

Non eliminare il nome di rete virtuale corrente (VNN) perché si tratta di un componente necessario dell'infrastruttura dell'istanza del cluster di failover.

Rinominare il VNN

Se si dispone di un nome di rete virtuale esistente e si vuole che i client continuino a usare questo valore per connettersi all'istanza del cluster di failover di SQL Server, è necessario rinominare il VNN corrente in un valore segnaposto. Dopo aver rinominato il VNN corrente, è possibile impostare il valore del nome DNS per il DNN su VNN.

Alcune restrizioni si applicano per la ridenominazione del VNN. Per altre informazioni, vedere Rinominare una istanza del cluster di failover.

Se l'uso del VNN corrente non è necessario per l'azienda, ignorare questa sezione. Dopo aver rinominato lil VNN, impostare il nome DNN DNS del cluster.

Impostare la risorsa DNN online

Dopo che la risorsa DNN è denominata in modo appropriato ed è stato impostato il valore del nome DNS nel cluster, usare PowerShell per impostare la risorsa DNN online nel cluster:

Start-ClusterResource -Name <dnnResourceName>

Ad esempio, per avviare la risorsa DNN dnn-demo usare il seguente comando di PowerShell:

Start-ClusterResource -Name dnn-demo

Configurare i possibili proprietari

Per impostazione predefinita, il cluster associa il nome DNS DNN a tutti i nodi del cluster. Tuttavia, i nodi nel cluster che non fanno parte dell'istanza del cluster di failover di SQL Server devono essere esclusi dall'elenco dei possibili proprietari del DNN.

Per aggiornare i possibili proprietari, attenersi alla seguente procedura:

  1. Passare alla risorsa DNN in Gestione cluster di failover.

  2. Fare clic con il pulsante destro del mouse sulla risorsa DNN e selezionare Proprietà.

    Shortcut menu for the DNN resource, with the Properties command highlighted.

  3. Deselezionare la casella di controllo per tutti i nodi che non partecipano all'istanza del cluster di failover. L'elenco dei possibili proprietari per la risorsa DNN deve corrispondere all'elenco dei possibili proprietari per la risorsa dell'istanza di SQL Server. Ad esempio, supponendo che Data3 non faccia parte dell'istanza del cluster di failover, l'immagine seguente è un esempio di rimozione di Data3 dall'elenco dei possibili proprietari per la risorsa DNN:

    Clear the check box next to the nodes that do not participate in the FCI for possible owners of the DNN resource

  4. Per salvare le impostazioni, fare clic su OK.

Riavviare l'istanza di SQL Server

Usare Gestione cluster di failover per riavviare l'istanza di SQL Server. Seguire questa procedura:

  1. Passare alla risorsa di SQL Server in Gestione cluster di failover.
  2. Fare clic con il pulsante destro del mouse sulla risorsa di SQL Server e portarla offline.
  3. Dopo che tutte le risorse associate sono offline, fare clic con il pulsante destro del mouse sulla risorsa di SQL Server e riportarla nuovamente online.

Aggiornare la stringa di connessione

Aggiornare il stringa di connessione di qualsiasi applicazione che si connette al DNN dell'istanza del cluster di failover di SQL Server e includere MultiSubnetFailover=True nella stringa di connessione. Se il client non supporta il parametro MultiSubnetFailover, non è compatibile con un DNN.

Di seguito è riportato un esempio di stringa di connessione per un DNN dell'istanza del cluster di failover di SQL con nome FCIDNN:

Data Source=FCIDNN, MultiSubnetFailover=True

Inoltre, se il DNN non usa il VNN originale, i client SQL che si connettono all'istanza del cluster di failover di SQL Server dovranno aggiornare la propria stringa di connessione al nome DNS DNN. Per evitare questo requisito, è possibile aggiornare il valore del nome DNS in modo che sia il nome del VNN. È tuttavia necessario sostituire prima il VNN esistente con un segnaposto.

Failover di test

Testare il failover della risorsa in cluster per convalidare le funzionalità del cluster.

Per testare il failover, effettuare le seguenti operazioni:

  1. Connettersi a uno dei nodi del cluster di SQL Server usando RDP.
  2. Aprire Gestione cluster di failover. Selezionare Ruoli. Rilevare quale nodo è proprietario del ruolo dell'istanza del cluster di failover di SQL Server.
  3. Fare clic con il pulsante destro del mouse sul ruolo dell'istanza del cluster di failover di SQL Server.
  4. Selezionare Sposta e quindi selezionare Miglior nodo possibile.

Gestione cluster di failover visualizza il ruolo e le relative risorse passano alla modalità offline. Le risorse vengono quindi spostate e portate di nuovo online nell'altro nodo.

Testare la connettività

Per testare la connettività, accedere a un'altra macchina virtuale nella stessa rete virtuale. Aprire SQL Server Management Studio e connettersi all'istanza del cluster di failover di SQL Server usando il nome DNS DNN.

Se necessario, è possibile scaricare SQL Server Management Studio.

Evitare conflitti di IP

Si tratta di un passaggio facoltativo per impedire che l'indirizzo IP virtuale (VIP) usato dalla risorsa dell'istanza del cluster di failover venga assegnato a un'altra risorsa in Azure come duplicato.

Anche se i clienti usano ora il DNN per connettersi all'istanza del cluster di failover di SQL Server, il nome della rete virtuale (VNN) e l'IP virtuale non possono essere eliminati perché sono componenti necessari dell'infrastruttura dell'istanza del cluster di failover. Tuttavia, poiché non esiste più un Load Balancer che riserva l'indirizzo IP virtuale in Azure, esiste il rischio che a un'altra risorsa nella rete virtuale venga assegnato lo stesso indirizzo IP dell'indirizzo IP virtuale usato dall'istanza del cluster di failover. Ciò può potenzialmente causare un problema di conflitto IP duplicato.

Configurare un indirizzo APIPA o una scheda di rete dedicata per riservare l'indirizzo IP.

Indirizzo APIPA

Per evitare di usare indirizzi IP duplicati, configurare un indirizzo APIPA (noto anche come indirizzo locale di collegamento). A tale scopo, eseguire il comando seguente:

Get-ClusterResource "virtual IP address" | Set-ClusterParameter 
    –Multiple @{"Address"="169.254.1.1";"SubnetMask"="255.255.0.0";"OverrideAddressMatch"=1;"EnableDhcp"=0}

In questo comando, "indirizzo IP virtuale" è il nome della risorsa indirizzo VIP cluster e "169.254.1.1" è l'indirizzo APIPA scelto per l'indirizzo VIP. Scegliere l'indirizzo più adatto alla propria azienda. Impostare OverrideAddressMatch=1 per consentire all'indirizzo IP di trovarsi in qualsiasi rete, incluso lo spazio indirizzi APIPA.

Scheda di rete dedicata

In alternativa, configurare una scheda di rete in Azure per riservare l'indirizzo IP usato dalla risorsa indirizzo IP virtuale. Tuttavia, questo utilizza l'indirizzo nello spazio degli indirizzi della subnet e si verifica un sovraccarico aggiuntivo per garantire che la scheda di rete non venga usata per altri scopi.

Limiti

  • Il client che si connette al listener DNN deve supportare il parametro MultiSubnetFailover=True nella stringa di connessione.
  • Potrebbero esserci altre considerazioni quando si usano altre funzionalità di SQL Server e un'istanza del cluster di failover con un DNN. Per altre informazioni, vedere Istanza del cluster di failover con interoperabilità DNN.

Passaggi successivi

Per altre informazioni, vedere: