Istanze del cluster di failover con SQL Server in macchine virtuali di Azure

Si applica a:SQL Server su VM di Azure

Questo articolo presenta le differenze di funzionalità quando si lavora con le istanze del cluster di failover per SQL Server in macchine virtuali (VM) di Azure.

Per iniziare, preparare la macchina virtuale.

Panoramica

SQL Server in macchine virtuali di Azure usa funzionalità Clustering di failover di Windows Server (WSFC) per fornire disponibilità elevata locale tramite ridondanza a livello di istanza del server, ovvero un'istanza del cluster di failover. Un'istanza del cluster di failover è una singola istanza di SQL Server installata in nodi di WSFC (o semplicemente nel cluster) e, possibilmente, in più subnet. Nella rete un'istanza del cluster di failover viene riconosciuta come istanza di SQL Server in esecuzione in un singolo computer. Tuttavia, l'istanza del cluster di failover fornisce failover da un nodo di WSFC a un altro se quello corrente diventa indisponibile.

Il resto dell'articolo è incentrato sulle differenze per le istanze del cluster di failover quando vengono usate con SQL Server in macchine virtuali di Azure. Per altre informazioni sulla tecnologia del clustering di failover, vedere:

Nota

È ora possibile trasferire in modalità lift-and-shift la soluzione dell'istanza del cluster di failover a SQL Server in VM di Azure usando Azure Migrate. Per ulteriori informazioni, vedere Eseguire la migrazione dell'istanza del cluster di failover.

Quorum

Le istanze del cluster di failover con SQL Server in macchine virtuali di Azure supportano l'uso di un disco di controllo, un cloud di controllo o una condivisione file di controllo per il quorum del cluster.

Per altre informazioni, vedere Procedure consigliate per il quorum con machine virtuali di SQL Server in Azure.

Storage

Nei tradizionali ambienti cluster locali, un cluster di failover Windows usa una rete di archiviazione SAN accessibile a entrambi i nodi come risorsa di archiviazione condivisa. I file di SQL Server sono ospitati nella risorsa di archiviazione condivisa e sono accessibili a un solo nodo attivo alla volta.

SQL Server in macchine virtuali di Azure offre varie opzioni come soluzione di archiviazione condivisa per una distribuzione di istanze del cluster di failover di SQL Server:

Dischi condivisi di Azure Condivisioni file Premium Spazi di archiviazione diretta (S2D)
Versione minima del sistema operativo Tutte le date Windows Server 2012 Windows Server 2016
Versione minima di SQL Server Tutte le date SQL Server 2012 SQL Server 2016
Disponibilità di VM supportate Unità SSD Premium per archiviazione con ridondanza locale: Set di disponibilità con o senza gruppi di posizionamento di prossimità
Unità SSD Premium per archiviazione con ridondanza della zona: zone di disponibilità
Dischi Ultra: stessa zona di disponibilità
Set di disponibilità e zone di disponibilità Set di disponibilità
Supporto di FileStream No
Cache di BLOB di Azure No No

Il resto di questa sezione illustra i vantaggi e le limitazioni di ogni opzione di archiviazione disponibile per SQL Server in macchine virtuali di Azure.

Dischi condivisi di Azure

I dischi condivisi di Azure sono una funzionalità di Azure Managed Disks. WSFC (Windows Server Failover Clustering) supporta l'uso di dischi condivisi di Azure con un'istanza del cluster di failover.

Sistema operativo supportato: tutti
Versione di SQL supportata: tutte

Vantaggi:

  • Utili per applicazioni di cui eseguire la migrazione ad Azure mantenendone inalterata l'architettura di disponibilità elevata e ripristino di emergenza.
  • Consentono di eseguire la migrazione di applicazioni in cluster ad Azure così come sono, grazie al supporto della funzionalità SCSI PR (SCSI Persistent Reservations).
  • Supportano l'archiviazione condivisa su unità SSD Premium di Azure dischi Ultra di Azure.
  • Consentono di usare un singolo disco condiviso o più dischi in striping per creare un pool di archiviazione condiviso.
  • Supporta FileStream.
  • Le unità SSD Premium supportano i set di disponibilità.
  • L'archiviazione con ridondanza della zona (ZRS) delle unità SSD Premium supporta zone di disponibilità. Le macchine virtuali che fanno parte dell'istanza del cluster di failover possono essere posizionate in zone di disponibilità diverse.

Nota

Anche se i dischi condivisi di Azure supportano anche le dimensioni SSD Standard, non è consigliabile usare unità SSD Standard per i carichi di lavoro di SQL Server a causa delle limitazioni delle prestazioni.

Limitazioni:

  • La memorizzazione nella cache di dischi SSD Premium non è supportata.
  • I Dischi Ultra non supportano i set di disponibilità o l'archiviazione con ridondanza della zona (ZRS).
  • Le zone di disponibilità sono supportate per i Dischi Ultra, ma le VM devono trovarsi nella stessa zona di disponibilità, il che riduce la disponibilità della macchina virtuale al 99,9%.

Per iniziare, vedere Istanza del cluster di failover di SQL Server con dischi condivisi di Azure.

Spazi di archiviazione diretta

Spazi di archiviazione diretta è una funzionalità di Windows Server supportata con il clustering di failover in macchine virtuali di Azure. Fornisce una rete di archiviazione SAN virtuale basata su software.

Sistema operativo supportato: Windows Server 2016 e versioni successive
Versione SQL supportata: SQL Server 2016 e versioni successive

Vantaggi:

  • La larghezza di banda sufficiente assicura una soluzione di archiviazione condivisa stabile e a levate prestazioni.
  • Supporta la cache di BLOB di Azure, per cui le operazioni di lettura possono essere eseguite in locale dalla cache. Gli aggiornamenti vengono replicati contemporaneamente in entrambi i nodi.
  • Supporta FileStream.

Limitazioni:

  • Disponibile solo per Windows Server 2016 e versioni successive.
  • Le zone di disponibilità non sono supportate.
  • Richiede la stessa capacità per i dischi collegati a entrambe le macchine virtuali.
  • Per ottenere prestazioni elevate è necessaria un'ampia larghezza di banda a causa della replica continua dei dischi.
  • Richiede VM di dimensioni maggiori e un doppio pagamento per l'archiviazione, perché le risorse di archiviazione sono collegate a ogni VM.

Per iniziare, vedere Istanza del cluster di failover di SQL Server con Spazi di archiviazione diretta.

Condivisione file Premium

Le condivisioni file Premium sono una funzionalità di File di Azure. Sono supportate da SSD e offrono una latenza costantemente bassa. Sono pienamente supportate per l'uso con istanze del cluster di failover per SQL Server 2012 o versione successiva in Windows Server 2012 o versione successiva. Le condivisioni file Premium offrono una maggiore flessibilità, perché è possibile ridimensionarle senza tempi di inattività.

Sistema operativo supportato: Windows Server 2012 e versioni successive
Versione SQL supportata: SQL Server 2012 e versioni successive

Vantaggi:

  • Soluzione di archiviazione condivisa per le macchine virtuali distribuite in più zone di disponibilità.
  • File system completamente gestito con latenze a singola cifra e prestazioni di I/O con possibilità di burst.
  • Non tutte le funzionalità di SQL Server sono supportate come, ad esempio, snapshot del database, filestream e CHECKDB senza TABLOCK. Per informazioni dettagliate, rivedere Limitazioni.

Limitazioni:

  • Disponibili solo per Windows Server 2012 e versioni successive.
  • FileStream non è supportato.

Per iniziare, vedere Istanza del cluster di failover di SQL Server con condivisione file Premium.

Partner

Sono disponibili soluzioni di clustering dei partner con archiviazione supportata.

Sistema operativo supportato: tutti
Versione di SQL supportata: tutte

Un unico esempio usa SIOS DataKeeper come risorsa di archiviazione. Per altre informazioni, vedere il post di blog su clustering di failover e SIOS DataKeeper.

iSCSI e ExpressRoute

È anche possibile esporre una risorsa di archiviazione a blocchi condivisa con destinazione iSCSI tramite Azure ExpressRoute.

Sistema operativo supportato: tutti
Versione di SQL supportata: tutte

Ad esempio, NetApp Private Storage (NPS) espone una destinazione iSCSI tramite ExpressRoute con Equinix a macchine virtuali di Azure.

Per le soluzioni di replica dei dati e archiviazione condivisa dei partner Microsoft, contattare il fornitore in caso di problemi di accesso ai dati durante il failover.

Connettività

Per replicare l'esperienza locale di connessione all'istanza del cluster di failover, distribuire le macchine virtuali di SQL Server in più subnet all'interno della stessa rete virtuale. La presenza di più subnet annulla la necessità di una dipendenza aggiuntiva su Azure Load Balancer o da un nome di rete distribuita (DNN) per instradare il traffico all'istanza del cluster di failover.

Se si distribuiscono le macchine virtuali di SQL Server in una singola subnet, è possibile configurare un nome di rete virtuale (VNN) e un'istanza di Azure Load Balancer o un nome di rete distribuita (DNN) per instradare il traffico all'istanza del cluster di failover. Revisionare le differenze tra i due e quindi distribuire un nome di rete distribuita o un nome di rete virtuale per l'istanza del cluster di failover.

Il nome di rete distribuito è consigliato, se possibile, poiché il failover è più veloce e il costo e il sovraccarico della gestione del servizio di bilanciamento del carico viene eliminato.

Quando si usa la DNN, la maggior parte delle funzionalità di SQL Server funziona in modo trasparente con l'istanza del cluster di failover, ma esistono alcune funzionalità che possono richiedere particolari considerazioni. Per altre informazioni, vedere Interoperabilità tra istanza del cluster di failover e nome di rete distribuita.

Limiti

Per le istanze del cluster di failover con SQL Server in macchine virtuali di Azure, considerare le limitazioni seguenti.

Supporto limitato delle estensioni

Al momento le istanze del cluster di failover di SQL Server nelle macchine virtuali di Azure registrate con l'estensione SQL IaaS Agent supportano solo un numero limitato di funzionalità. Vedere la tabella dei vantaggi.

Se la macchina virtuale di SQL Server è già stata registrata con l'estensione SQL IaaS Agent ed è stata abilitata qualsiasi funzionalità che richiede l'agente, è necessario annullare la registrazione dall'estensione eliminando la risorsa macchina virtuale SQL per le macchine virtuali corrispondenti e quindi registrarla nuovamente con l'estensione SQL IaaS Agent. Per eliminare la risorsa Macchina virtuale SQL tramite il portale di Azure, deselezionare la casella di controllo accanto alla macchina virtuale corretta per evitare di eliminare quest'ultima.

Le istanze del cluster di failover di SQL Server registrate con l'estensione non supportano funzionalità che richiedono l'agente, ad esempio il backup automatizzato, l'applicazione di patch e la gestione avanzata del portale. Vedere la tabella dei vantaggi.

MSDTC

Le macchine virtuali di Azure supportano Microsoft Distributed Transaction Coordinator (MSDTC) in Windows Server 2019, con archiviazione in volumi condivisi del cluster e Azure Load Balancer Standard, oppure nelle VM di SQL Server che usano dischi condivisi di Azure.

Nelle macchine virtuali di Azure, MSDTC non è supportato in Windows Server 2016 o versione precedente con volumi condivisi del cluster per i motivi seguenti:

  • La risorsa MSDTC in cluster non può essere configurata per usare la risorsa di archiviazione condivisa. In Windows Server 2016, se si crea una risorsa MSDTC, non verrà visualizzata alcuna risorsa di archiviazione condivisa disponibile per l'uso, anche se lo spazio di archiviazione è disponibile. Questo problema è stato risolto per Windows Server 2019.
  • Il servizio di bilanciamento del carico di base non gestisce le porte RPC.