Clustering su più subnet di SQL Server (SQL Server)SQL Server Multi-Subnet Clustering (SQL Server)

Un cluster di failover su più subnet di SQL ServerSQL Server è una configurazione in cui ogni nodo del cluster di failover è connesso a una subnet diversa o a un set differente di subnet.A SQL ServerSQL Server multi-subnet failover cluster is a configuration where each failover cluster node is connected to a different subnet or different set of subnets. Queste subnet possono trovarsi nella stessa posizione o in siti dislocati in località geografiche diverse.These subnets can be in the same location or in geographically dispersed sites. Il clustering tra siti dislocati in diverse località geografiche viene talvolta definito come cluster esteso.Clustering across geographically dispersed sites is sometimes referred to as stretch clusters. Poiché non esiste alcuna archiviazione condivisa a cui possono accedere tutti i nodi, i dati devono essere replicati tra le archiviazioni dati nelle diverse subnet.As there is no shared storage that all the nodes can access, data should be replicated between the data storage on the multiple subnets. Grazie alla replica dei dati risultano disponibili più copie dei dati.With data replication, there is more than one copy of the data available. Pertanto, oltre a una disponibilità elevata, un cluster di failover su più subnet offre una soluzione di ripristino di emergenza.Therefore, a multi-subnet failover cluster provides a disaster recovery solution in addition to high availability.

Clustering di failover su più subnet di SQL Server (due nodi, due subnet) SQL Server Multi-Subnet Failover Cluster (Two-Nodes, Two-Subnets)

Nella figura seguente è illustrata un'istanza di cluster di failover (FCI) con due nodi e due subnet in SQL Server 2017SQL Server 2017.The following illustration represents a two node, two subnet failover cluster instance (FCI) in SQL Server 2017SQL Server 2017.

Architettura con più subnet con MultiSubnetFailoverMulti-Subnet Architecture with MultiSubnetFailover

Configurazioni di istanze di cluster di failover su più subnet Multi-Subnet Failover Cluster Instance Configurations

Di seguito sono riportati alcuni esempi di FCI di SQL ServerSQL Server in cui vengono utilizzate più subnet:The following are some examples of SQL ServerSQL Server FCIs that use multiple subnets:

  • SQL ServerSQL Server SQLCLUST1 sono inclusi i nodi Node1 e Node2. FCI SQLCLUST1 includes Node1 and Node2. Node1 è connesso a Subnet1.Node1 is connected to Subnet1. Node2 è connesso a Subnet1.Node2 is connected to Subnet2. SQL ServerSQL Server L'installazione riconosce tale configurazione come cluster con più subnet e imposta la dipendenza delle risorse di indirizzo IP su OR. Setup sees this configuration as a multi-subnet cluster and sets the IP address resource dependency to OR.

  • SQL ServerSQL Server SQLCLUST1 sono inclusi i nodi Node1, Node2 e Node3. FCI SQLCLUST1 includes Node1, Node2, and Node3. Node1 e Node2 sono connessi a Subnet1.Node1 and Node2 are connected to Subnet1. Node3 è connesso a Subnet2.Node 3 is connected to Subnet2. SQL ServerSQL Server L'installazione riconosce tale configurazione come cluster con più subnet e imposta la dipendenza delle risorse di indirizzo IP su OR. Setup sees this configuration as a multi-subnet cluster and sets the IP address resource dependency to OR. Poiché Node1 e Node2 si trovano nella stessa subnet, questa configurazione garantisce un'elevata disponibilità locale aggiuntiva.Because Node1 and Node2 are on the same subnet, this configuration provides additional local high availability.

  • SQL ServerSQL Server SQLCLUST1 sono inclusi i nodi Node1 e Node2. FCI SQLCLUST1 includes Node1 and Node2. Node1 si trova in Subnet1.Node1 is on Subnet1. Node2 è su Subnet1 e Subnet2.Node2 is on Subnet1 and Subnet2. SQL ServerSQL Server L'installazione riconosce tale configurazione come cluster con più subnet e imposta la dipendenza delle risorse di indirizzo IP su OR. Setup sees this configuration as a multi-subnet cluster and sets the IP address resource dependency to OR.

  • SQL ServerSQL Server SQLCLUST1 sono inclusi i nodi Node1 e Node2. FCI SQLCLUST1 includes Node1 and Node2. Node1 è connesso a Subnet1 e a Subnet2.Node1 is connected to Subnet1 and Subnet2. Anche Node2 è connesso a Subnet1 e a Subnet2.Node2 is also connected to Subnet1 and Subnet2. La dipendenza delle risorse di indirizzo IP viene impostata su AND dall'installazione di SQL ServerSQL Server .The IP address resource dependency is set to AND by SQL ServerSQL Server Setup.

    NOTA: questa configurazione non è considerata come una configurazione di cluster di failover su più subnet perché i nodi di tipo cluster si trovano nello stesso set di subnet.NOTE: This configuration is not considered as a multi-subnet failover cluster configuration because the clustered nodes are on the same set of subnets.

Considerazioni relative alle risorse di indirizzo IP IP Address Resource Considerations

In una configurazione del cluster di failover su più subnet, gli indirizzi IP non sono di proprietà di tutti i nodi del cluster di failover e potrebbero non essere tutti online durante l'avvio di SQL ServerSQL Server .In a multi-subnet failover cluster configuration, the IP addresses are not owned by all the nodes in the failover cluster, and may not be all online during SQL ServerSQL Server startup. A partire da SQL Server 2012SQL Server 2012, è possibile impostare la dipendenza delle risorse di indirizzo IP su OR.Beginning in SQL Server 2012SQL Server 2012, you can set the IP address resource dependency to OR. Questa operazione consente a SQL ServerSQL Server di essere online quando è presente almeno un indirizzo IP valido a cui possa associarsi.This enables SQL ServerSQL Server to be online when there is at least one valid IP address that it can bind to.

NOTA: Nelle configurazioni di cluster multisito delle versioni di SQL ServerSQL Server precedenti a SQL Server 2012SQL Server 2012veniva usata una tecnologia V-LAN estesa per esporre un singolo indirizzo IP per il failover nei siti.NOTE: In the SQL ServerSQL Server versions earlier than SQL Server 2012SQL Server 2012, a stretch V-LAN technology was used in multi-site cluster configurations to expose a single IP address for failover across sites. Grazie alla nuova funzionalità di SQL ServerSQL Server che consente di eseguire il clustering di nodi in subnet diverse, è ora possibile configurare cluster di failover di SQL ServerSQL Server in più siti senza implementare la tecnologia V-LAN estesa.With the new capability of SQL ServerSQL Server to cluster nodes across different subnets, you can now configure SQL ServerSQL Server failover clusters across multiple sites without implementing the stretch V-LAN technology.

Considerazioni sulla dipendenza OR delle risorse di indirizzo IPIP Address Resource OR Dependency Considerations

Se la dipendenza delle risorse di indirizzo IP viene impostata su OR, è opportuno considerare il seguente comportamento di failover:You may want to consider the following failover behavior if you set the IP address resource dependency is set to OR:

  • Quando si verifica un errore in uno degli indirizzi IP del nodo che attualmente possiede il gruppo di risorse del cluster di SQL ServerSQL Server , il failover non viene attivato automaticamente finché tutti gli indirizzi IP validi in quel nodo non avranno esito negativo.When there is a failure of one of the IP addresses on the node that currently owns the SQL ServerSQL Server cluster resource group, a failover is not triggered automatically until all the IP addresses valid on that node fail.

  • Quando si verifica un failover, SQL ServerSQL Server viene portato online se può essere associato ad almeno un indirizzo IP valido nel nodo corrente.When a failover occurs, SQL ServerSQL Server will come online if it can bind to at least one IP address that is valid on the current node. Gli indirizzi IP che non sono stati associati a SQL ServerSQL Server all'avvio saranno elencati nel log degli errori.The IP addresses that did not bind to SQL ServerSQL Server at startup will be listed in the error log.

Quando si esegue un'installazione side-by-side di una FCI di SQL ServerSQL Server con un'istanza autonoma del Motore di database di SQL ServerSQL Server Database Engine, prestare attenzione per evitare conflitti del numero di porta TCP negli indirizzi IP.When a SQL ServerSQL Server FCI is installed side-by-side with a standalone instance of the Motore di database di SQL ServerSQL Server Database Engine, take care to avoid TCP port number conflicts on the IP addresses. Di solito i conflitti si verificano quando due istanze del Motore di databaseDatabase Engine sono entrambe configurate per utilizzare la porta TCP predefinita (1433).Conflicts usually occur when two instances of the Motore di databaseDatabase Engine are both configured to use the default TCP port (1433). Per evitare conflitti, configurare un'istanza in modo che venga utilizzata una porta fissa non predefinita.To avoid conflicts, configure one instance to use a non-default fixed port. La configurazione di una porta fissa è di solito più facile nell'istanza autonoma.Configuring a fixed port is usually easiest on the standalone instance. Configurare il Motore di databaseDatabase Engine in modo che vengano utilizzate porte diverse per evitare un conflitto di indirizzo IP/porta TCP non previsto che blocca l'avvio di un'istanza quando si verifica un errore di una FCI di SQL ServerSQL Server nel nodo di standby.Configuring the Motore di databaseDatabase Engine to use different ports will prevent an unexpected IP Address/TCP port conflict that blocks an instance startup when a SQL ServerSQL Server FCI fails to the standby node.

Latenza di recupero del client durante i failover Client Recovery Latency During Failover

Una FCI su più subnet abilita per impostazione predefinita la risorsa cluster RegisterAllProvidersIP per il nome di rete.A multi-subnet FCI by default enables the RegisterAllProvidersIP cluster resource for its network name. In una configurazione con più subnet, sia gli indirizzi IP online che offline del nome di rete verranno registrati sul server DNS.In a multi-subnet configuration, both the online and offline IP addresses of the network name will be registered at the DNS server. L'applicazione client recupera quindi tutti gli indirizzi IP registrati dal server DNS e tenta di connettersi agli indirizzi in sequenza o in parallelo.The client application then retrieves all registered IP addresses from the DNS server and attempts to connect to the addresses either in order or in parallel. Ciò significa che il tempo di recupero del client nei failover con più subnet non dipende più dalle latenze di aggiornamento DNS.This means that client recovery time in multi-subnet failovers no longer depend on DNS update latencies. Per impostazione predefinita, il client prova gli indirizzi IP in sequenza.By default, the client tries the IP addresses in order. Quando il client utilizza il nuovo parametro MultiSubnetFailover=True facoltativo nella stringa di connessione, prova invece gli indirizzi IP simultaneamente e si connette al primo server che risponde.When the client uses the new optional MultiSubnetFailover=True parameter in its connection string, it will instead try the IP addresses simultaneously and connects to the first server that responds. In questo modo è possibile ridurre la latenza di recupero del client quando si verificano i failover.This can help minimize the client recovery latency when failovers occur. Per altre informazioni, vedere Connettività client Always On (SQL Server) e Creare o configurare un listener del gruppo di disponibilità (SQL Server).For more information, see Always On Client Connectivity (SQL Server) and Create or Configure an Availability Group Listener (SQL Server).

Con librerie client legacy o provider di dati di terze parti non è possibile utilizzare il parametro MultiSubnetFailover nella stringa di connessione.With legacy client libraries or third party data providers, you cannot use the MultiSubnetFailover parameter in your connection string. Per assicurarsi che l'applicazione client funzioni in maniera ottimale con FCI su più subnet in SQL Server 2017SQL Server 2017, provare a regolare il timeout di connessione nella stringa di connessione client di 21 secondi per ogni indirizzo IP aggiuntivo.To help ensure that your client application works optimally with multi-subnet FCI in SQL Server 2017SQL Server 2017, try to adjust the connection timeout in the client connection string by 21 seconds for each additional IP address. In questo modo non si verifica il timeout del tentativo di riconnessione del client prima che siano stati scorsi tutti gli indirizzi IP nella FCI su più subnet.This ensures that the client’s reconnection attempt does not timeout before it is able to cycle through all IP addresses in your multi-subnet FCI.

Il periodo di timeout predefinito della connessione client per SQL ServerSQL Server Management Studio e sqlcmd è di 15 secondi.The default client connection time-out period for SQL ServerSQL Server Management Studio and sqlcmd is 15 seconds.

Descrizione del contenutoContent Description ArgomentoTopic
Installazione di un cluster di failover di SQL ServerInstalling a SQL Server Failover Cluster Creare un nuovo cluster di failover di SQL Server (programma di installazione)Create a New SQL Server Failover Cluster (Setup)
Aggiornamento sul posto del cluster di failover di SQL Server esistenteIn-place upgrade of your existing SQL Server Failover Cluster Eseguire l'aggiornamento di un'istanza del cluster di failover di SQL Server (installazione)Upgrade a SQL Server Failover Cluster Instance (Setup)
Gestione del cluster di failover di SQL Server esistenteMaintaining your existing SQL Server Failover Cluster Aggiungere o rimuovere nodi in un cluster di failover di SQL Server (programma di installazione)Add or Remove Nodes in a SQL Server Failover Cluster (Setup)
Utilizzare lo snap-in Gestione cluster di failover per visualizzare gli eventi e i log WSFCUse the Failover Cluster Management snap-in to view WSFC events and logs Visualizzare eventi e log per un cluster di failoverView Events and Logs for a Failover Cluster
Utilizzare Windows PowerShell per creare un file di log per tutti i nodi (o un nodo specifico) in un cluster di failover WSFCUse Windows PowerShell to create a log file for all nodes (or a specific a node) in a WSFC failover cluster Pagina relativa al cluster di failover Get-ClusterLogGet-ClusterLog Failover Cluster Cmdlet