Condividi tramite


Creare un'istanza del cluster di failover (FCI) con Storage Spaces Direct (SQL Server su macchine virtuali di Azure)

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.

Questo articolo illustra come creare un'istanza di cluster di failover (FCI) utilizzando Storage Spaces Direct con SQL Server sulle macchine virtuali (VM) di Azure. Storage Spaces Direct funziona come una rete di archiviazione virtuale basata su software (VSAN) che sincronizza le risorse di archiviazione (dischi dati) tra i nodi (macchine virtuali di Azure) in un cluster Windows.

Per ulteriori informazioni, vedere una panoramica dell’istanza di Failover Clustering con SQL Server su macchine virtuali Azure e le migliori pratiche per i cluster.

Nota

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

Panoramica

Spazi di archiviazione diretta(S2D) supporta due tipi di architettura: con convergenza e con iperconvergenza. Un'infrastruttura iperconvergente posiziona la memoria sugli stessi server che ospitano l'applicazione in cluster, quindi ogni nodo dell'istanza FCI di SQL Server ha una propria disposizione di memoria.

Il diagramma seguente illustra la soluzione completa, che usa Spazi di archiviazione diretta iperconvergenti con SQL Server in macchine virtuali di Azure:

Diagramma della soluzione completa, usando Spazi di archiviazione diretta iperconvergenti.

Il diagramma precedente mostra le risorse seguenti nello stesso gruppo di risorse:

  • Due macchine virtuali in Windows Server Failover Cluster. Una macchina virtuale in un cluster di failover è detta anche nodo del cluster o nodo.
  • Ogni macchina virtuale ha due o più dischi dati.
  • Spazi di archiviazione diretta sincronizza i dati nei dischi dati e presenta le risorse di archiviazione sincronizzate sotto forma di pool di archiviazione.
  • Il pool di archiviazione presenta un Volume Condiviso del Cluster (CSV) al cluster di failover.
  • Il ruolo del cluster FCI di SQL Server utilizza il CSV (Volume Condiviso Cluster) per le unità disco dati.
  • Un servizio di bilanciamento del carico di Azure contiene l'indirizzo IP per una SQL Server FCI in uno scenario a subnet singola.
  • Un set di disponibilità di Azure contiene tutte le risorse.

Nota

È possibile creare questa intera soluzione in Azure da un modello. Un esempio di modello è disponibile nella pagina modelli di avvio rapido di Azure in GitHub. Questo esempio non è progettato né testato per carichi di lavoro specifici. È possibile eseguire il modello per creare un'istanza del cluster di failover di SQL Server con le risorse di archiviazione di *Storage Spaces Direct* connesse al dominio. È possibile valutare il modello e modificarlo in base alle proprie esigenze.

Prerequisiti

Prima di completare le istruzioni in questo articolo, assicurarsi di disporre di:

Creare un Cluster di Failover di Windows

I passaggi per creare il cluster di failover di Windows Server differiscono tra ambienti con una sola subnet e ambienti con più subnet. Per creare il cluster, seguire i passaggi descritti nell'esercitazione per uno scenario su più subnet o per uno scenario con una singola subnet. Anche se queste esercitazioni creano un gruppo di disponibilità, i passaggi per creare il cluster sono gli stessi per un'istanza di cluster di failover.

Configurare il quorum

Anche se il testimone del disco è l'opzione quorum più resiliente, non è supportata per le istanze del cluster di failover configurate con Storage Spaces Direct. Di conseguenza, il testimone cloud è la soluzione quorum consigliata per questo tipo di configurazione cluster per SQL Server in macchine virtuali Azure.

Se si dispone di un numero pari di votazioni nel cluster, configurare la soluzione quorum più adatta alle proprie esigenze aziendali. Per altre informazioni, vedere Quorum con VM di SQL Server.

Convalidare il cluster

Validare il cluster nell'interfaccia utente di Gestione cluster di failover o usando PowerShell.

Per convalidare il cluster usando l'interfaccia utente, completare i passaggi seguenti in una delle macchine virtuali:

  1. In Server Manager, selezionare Strumenti e quindi selezionare Gestione cluster di failover.

  2. Fare clic con il pulsante destro del mouse sul cluster in Gestione cluster di failover, selezionare Convalida cluster per aprire la procedura guidata Convalida configurazione.

  3. Nella procedura guidata Convalida configurazione, selezionare Avanti.

  4. Nella pagina Seleziona server o cluster, immettere i nomi di entrambe le macchine virtuali.

  5. Nella pagina Opzioni di testing selezionare Esegui solo test selezionati.

  6. Selezionare Avanti.

  7. In Selezione dei test, selezionare tutti i test tranneArchiviazione:

    Screenshot dei test di convalida del cluster selezionati.

  8. Selezionare Avanti.

  9. Nella pagina Conferma selezionare Avanti. La procedura guidata di Convalida configurazione eseguirà i test di convalida.

Per convalidare il cluster usando PowerShell, eseguire lo script seguente da una sessione di PowerShell in modalità amministratore in una delle macchine virtuali:

Test-Cluster –Node ("<node1>","<node2>") –Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"

Aggiungere le risorse di archiviazione

I dischi per Spazi di archiviazione diretta devono essere vuoti. Non possono contenere partizioni o altri dati. Per pulire i dischi, seguire le istruzioni in Distribuire Spazi di archiviazione diretta.

  1. Abilitare Spazi di archiviazione diretta.

    Lo script di PowerShell seguente abilita Spazi di archiviazione diretta:

    Enable-ClusterS2D
    

    In Gestione cluster di failover verrà ora visualizzato il pool di archiviazione.

  2. Creare un volume.

    Storage Spaces Direct crea automaticamente un pool di archiviazione quando lo si abilita. Ora sei pronto per creare un volume. Il cmdlet di PowerShell New-Volume automatizza il processo di creazione dei volumi. Questo processo include la formattazione, l'aggiunta del volume al cluster e la creazione di un Volume Condiviso Cluster. Questo esempio crea un file CSV da 800 gigabyte (GB):

    New-Volume -StoragePoolFriendlyName S2D* -FriendlyName VDisk01 -FileSystem CSVFS_REFS -Size 800GB
    

    Dopo aver eseguito il comando precedente, un volume da 800 GB viene montato come risorsa cluster. Il volume è impostato su C:\ClusterStorage\Volume1\.

    Questo screenshot mostra un file CSV con Spazi di archiviazione diretta.

    Screenshot di un Volume Condiviso Cluster con Spazi di Archiviazione Diretta.

testare il failover del cluster

Verificare il failover del cluster. In Gestione cluster di failover, fare clic con il pulsante destro del mouse sul cluster e selezionare Altre azioni>Sposta risorse principali del cluster>Seleziona nodo, quindi selezionare l'altro nodo del cluster. Spostare le risorse principali del cluster in ogni nodo del cluster, quindi spostarle di nuovo nel nodo primario. Se lo spostamento del cluster in ogni nodo avviene in modo corretto, è possibile installare SQL Server.

Screenshot che mostra come testare il failover del cluster spostando le risorse principali negli altri nodi.

Creare FCI di SQL Server

Dopo aver configurato il cluster di failover e tutti i componenti del cluster, inclusa l'archiviazione, è possibile creare l'istanza del cluster di failover di SQL Server.

Creare il primo nodo nella SQL FCI

Per creare il primo nodo nell'istanza del cluster di failover di SQL Server, seguire questa procedura:

  1. Connettersi alla prima macchina virtuale usando Bastion.

  2. In Gestione del Cluster di Failover, verificare che tutte le risorse principali del cluster si trovino nella prima macchina virtuale. Se necessario, spostare tutte le risorse in tale macchina virtuale.

  3. Se la versione del sistema operativo è Windows Server 2019 e il cluster Windows è stato creato usando il Distributed Network Name (DNN) predefinito, l'installazione dell'istanza del cluster di failover per SQL Server 2017 e le versioni precedenti ha esito negativo con l'errore The given key was not present in the dictionary.

    Durante l'installazione, la configurazione di SQL Server esegue una query per il nome della rete virtuale esistente (VNN) e non riconosce il DNN del cluster Windows. Il problema è stato risolto in SQL Server 2019 e versioni successive. Per SQL Server 2017 e versioni precedenti, seguire questa procedura per evitare l'errore di installazione:

    • Nella Gestione cluster di failover, connettersi al cluster, fare clic con il pulsante destro del mouse su Ruoli e selezionare Crea ruolo vuoto.
    • Fare clic con il pulsante destro del mouse sul ruolo vuoto appena creato, selezionare Aggiungere risorsa e selezionare Punto di accesso client.
    • Immettere qualsiasi nome e completare la procedura guidata per creare il punto di accesso client.
    • Al termine dell'installazione dell'istanza FCI di SQL Server, è possibile eliminare il ruolo che contiene il punto di accesso client temporaneo.
  4. Individuare i supporti di installazione. Se la macchina virtuale usa una delle immagini di Azure Marketplace, i supporti si trovano in C:\SQLServer_<version number>_Full. Selezionare Impostazione.

  5. In Centro installazione SQL Server selezionare Installazione.

  6. Selezionare Installazione di un nuovo cluster di failover di SQL Server. Seguire le istruzioni della procedura guidata per installare l'istanza FCI di SQL Server.

  7. Nella pagina Configurazione della rete cluster l'indirizzo IP specificato varia a seconda che le VM di SQL Server siano state distribuite in una singola subnet o su più subnet.

    1. Per un singolo ambiente subnet, specificare l'indirizzo IP che si prevede di aggiungere ad Azure Load Balancer.
    2. Per un ambiente con più subnet, specificare l'indirizzo IP secondario nella subnet della prima VM di SQL Server designata in precedenza come indirizzo IP del nome di rete dell'istanza del cluster di failover:

    Screenshot che fornisce l'indirizzo IP secondario nella subnet della prima VM di SQL Server.

  8. In Configurazione del motore di database, le directory dei dati FCI devono trovarsi nell'archiviazione in cluster. Con Spazi di archiviazione diretta non si tratterà di un disco condiviso, ma di un punto di montaggio per un volume in ogni server. Spazi di Archiviazione Diretta sincronizza il volume tra entrambi i nodi. Il volume viene presentato al cluster come CSV. Usare il punto di montaggio CSV per le directory di dati.

    Screenshot delle directory dati.

  9. Dopo aver completato le istruzioni della procedura guidata, Setup installerà un'istanza del cluster di failover (FCI) di SQL Server nel primo nodo.

Aggiungere nodi aggiuntivi all'istanza del cluster di failover di SQL

Per aggiungere un nodo all'istanza del cluster di failover di SQL Server, seguire la seguente procedura:

  1. Dopo aver completato l'installazione dell'istanza del cluster di failover nel primo nodo, connettersi al secondo nodo usando Bastion.

  2. Aprire il Centro installazione SQL Server. Selezionare Installazione.

  3. Selezionare Aggiungi nodo a un cluster di failover di SQL Server. Seguire le istruzioni della procedura guidata per installare SQL Server e aggiungere il nodo alla FCI.

  4. Per uno scenario con più subnet, nella Configurazione rete cluster, immettere l'indirizzo IP secondario nella subnet della seconda VM di SQL Server, precedentemente designata come indirizzo IP del nome di rete dell'istanza del cluster di failover.

    Screenshot dell’immissione dell'indirizzo IP secondario nella subnet della seconda VM di SQL Server.

    Dopo aver selezionato Avanti in Configurazione della rete cluster, il programma di configurazione mostra una finestra di dialogo che indica che il programma di installazione di SQL Server ha rilevato più subnet come nell'immagine di esempio. Seleziona per confermare.

    Screenshot che mostra la conferma di più subnet.

  5. Dopo aver completato le istruzioni della procedura guidata, il programma di configurazione aggiungerà il secondo nodo dell'istanza del cluster di failover di SQL Server.

  6. Ripetere questi passaggi in tutti gli altri nodi da aggiungere all'istanza del cluster di failover di SQL Server.

Nota

Le immagini della galleria di Azure Marketplace sono fornite con SQL Server Management Studio preinstallato. Se non è stata usata un'immagine del Marketplace, installare la versione più recente di SQL Server Management Studio (SSMS).

Eseguire la registrazione con l'estensione SQL IaaS Agent

Per gestire la VM di SQL Server dal portale, registrarla con l'estensione SQL IaaS Agent. Le macchine virtuali di SQL Server con istanze del cluster di failover hanno solo funzionalità limitate.

Nota

Attualmente, 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à disponibili tramite la registrazione di base. Non supportano funzionalità che richiedono l'agente, ad esempio backup automatizzato, applicazione di patch, autenticazione di Microsoft Entra e gestione avanzata del portale. Per altre informazioni, vedere la tabella dei vantaggi.

Registrare una macchina virtuale di SQL Server usando PowerShell. Il -LicenseType parametro può essere PAYG o AHUB:

# Get the existing compute VM
$vm = Get-AzVM -Name <vm_name> -ResourceGroupName <resource_group_name>

# Register SQL VM with SQL IaaS Agent extension
New-AzSqlVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Location $vm.Location `
   -LicenseType <license_type>

Configurare la connettività

Se le VM di SQL Server sono state distribuite in più subnet, ignorare questo passaggio. Se le tue macchine virtuali di SQL Server sono state distribuite in una singola subnet, configurare un componente aggiuntivo per instradare il traffico all'istanza del cluster di failover. È possibile configurare un nome di rete virtuale (VNN) con azure Load Balancer o un nome di rete distribuito per un'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 e Azure Load Balancer per l'istanza del cluster di failover.

Limiti

  • È possibile usare Spazi di archiviazione diretta solo se si deseleziona l'opzione di idoneità del disco quando si aggiunge al cluster spazio di archiviazione per i dischi che si collegano come dischi in formato NTFS.

  • Le istanze del cluster di failover di SQL Server registrate con l'estensione SQL IaaS Agent non supportano funzionalità che richiedono l'agente, ad esempio il backup automatizzato, l'applicazione di patch, l'autenticazione di Microsoft Entra e la gestione avanzata del portale. Per altre informazioni, vedere la tabella dei vantaggi.

  • Le istanze del cluster di failover che utilizzano Storage Spaces Direct come risorsa di archiviazione condivisa non supportano l'uso di un disco di controllo per il quorum del cluster. Usare invece un testimone cloud.

  • Microsoft Distributed Transaction Coordinator (MSDTC) non è supportato da SQL Server nelle istanze del cluster di failover di macchine virtuali di Azure distribuite in Spazi di archiviazione diretta. Per altre informazioni, vedere Limitazioni FCI.

  • Le macchine virtuali di Azure supportano Microsoft Distributed Transaction Coordinator (MSDTC) a partire da Windows Server 2019 e versioni successive, quando vengono distribuite su Clustered Shared Volumes (CSVs) e utilizzano un bilanciamento del carico standard. MSDTC non è supportato in Windows Server 2016 e versioni precedenti.

Supporto limitato delle estensioni

Al momento, le istanze del cluster di failover di SQL Server in macchine virtuali di Azure registrate con l'estensione SQL IaaS Agent supportano solo un numero limitato di funzionalità disponibili tramite la registrazione di base e non quelle che richiedono l'agente, ad esempio il backup automatizzato, l'applicazione di patch, l'autenticazione di Microsoft Entra e la gestione avanzata del portale. Per altre informazioni, vedere la tabella dei vantaggi.

Se la VM di SQL Server è già stata registrata con l'estensione SQL IaaS Agent ed è stata abilitata qualsiasi funzionalità che richiede l'agente, è necessario eliminare l'estensione dalla VM di SQL Server eliminando la risorsa macchina virtuale SQL per le VM 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.

Passaggi successivi

Se Storage Spaces Direct non è la soluzione di archiviazione FCI appropriata per te, considera di creare la tua FCI utilizzando i Azure shared disks o i Premium File Shares invece.

Per ulteriori informazioni, vedere: