Creare un'istanza del cluster di failover con Spazi di archiviazione diretta (SQL Server in macchine virtuali di Azure)

Si applica a:SQL Server su VM 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 del cluster di failover (FCI) usando Spazi di archiviazione diretta con SQL Server nelle macchine virtuali (VM) di Azure. Spazi di archiviazione diretta funge da rete di archiviazione virtuale basata su software per la sincronizzazione delle risorse di archiviazione (dischi dati) tra i nodi (macchine virtuali di Azure) in un cluster Windows.

Per ulteriori informazioni, vedere le informazioni generali dell'istanza del cluster di failover con SQL Server in VM di Azure e procedure consigliate per il cluster.

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.

Panoramica

Spazi di archiviazione diretta(S2D) supporta due tipi di architettura: con convergenza e con iperconvergenza. In un'infrastruttura iperconvergente, l'archiviazione risiede negli stessi server che ospitano l'applicazione in cluster, in modo che l'archiviazione sia in ogni nodo del server SQL per istanza del cluster di failover.

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

Diagram of the complete solution, using hyperconverged Storage Spaces Direct

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 cluster per il cluster di failover.
  • Il ruolo del cluster dell'istanza del cluster di failover di SQL Server usa il volume condiviso cluster per le unità dati.
  • Un servizio di bilanciamento del carico di Azure contiene l'indirizzo IP per l'istanza del cluster di failover di SQL Server.
  • 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 risorse di archiviazione di Spazi di archiviazione diretta connesse al dominio. È possibile valutare il modello e modificarlo in base alle proprie esigenze.

Prerequisiti

Prima di completare la procedura di istruzioni descritta in questo articolo, sono necessari:

Creare un cluster di failover Windows

I passaggi per creare il cluster di failover di Windows Server variano a seconda che le VM di SQL Server siano state distribuite in una singola subnet o in 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 riguardano la creazione di un gruppo di disponibilità, i passaggi per creare il cluster sono gli stessi.

Configurare il quorum

Anche se il server di controllo del disco è l'opzione quorum più resiliente, non è supportata per le istanze del cluster di failover configurate con Spazi di archiviazione diretta. Di conseguenza, il cloud di controllo è la soluzione quorum consigliata per questo tipo di configurazione del cluster per SQL Server in macchine virtuali di 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

Convalidare il cluster nell'interfaccia utente di Gestione cluster di failovero usando PowerShell.

Per convalidare il cluster usando l'interfaccia utente, seguire questa procedura in una delle macchine virtuali:

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

  2. In Gestione cluster di failover selezionare Azione e quindi selezionare Convalida configurazione.

  3. Selezionare Avanti.

  4. In Selezione di server o di un cluster immettere i nomi di entrambe le macchine virtuali.

  5. In Opzioni di testing selezionare Esegui solo test selezionati.

  6. Selezionare Avanti.

  7. In Selezione dei test selezionare tutti i test tranne Archiviazione, come illustrato di seguito:

    Select cluster validation tests

  8. Selezionare Avanti.

  9. In 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.

    Spazi di archiviazione diretta crea automaticamente un pool di archiviazione al momento dell'abilitazione. È ora possibile creare un volume. Il cmdlet di PowerShell New-Volume automatizza il processo di creazione del volume. Questo processo include la formattazione, l'aggiunta del volume al cluster e la creazione di un volume condiviso cluster. Questo esempio crea un volume condiviso cluster da 800 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 si trova in C:\ClusterStorage\Volume1\.

    Questo screenshot contiene un volume condiviso cluster con Spazi di archiviazione diretta:

    Screenshot of a Cluster Shared Volume with Storage Spaces Direct

testare il failover del cluster

Testare 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.

Test cluster failover by moving the core resource to the other nodes

Creare l'istanza del cluster di failover di SQL Server

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

  1. Connettersi alla prima macchina virtuale con RDP.

  2. In Gestione cluster di failover, verificare che tutte le risorse cluster principali 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 nome di rete distribuito predefinito (DNN), l'installazione dell'istanza del cluster di failover per SQL Server 2017 e versioni precedenti avrà esito negativo con errore The given key was not present in the dictionary.

    Durante l'installazione, la configurazione di SQL Server esegue una query per il nome del Rete virtuale esistente (VNN) e non riconosce il DNN del cluster Windows. Il problema è stato risolto nella configurazione di SQL Server 2019. Per SQL Server 2017 e versioni precedenti, seguire questi passaggi per evitare errori di installazione:

    • In Gestione cluster di failover, connettersi al cluster, fare clic con il pulsante destro del mouse su Ruoli e quindi selezionare Creazione 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 del cluster di failover di SQL Server, è possibile eliminare il ruolo contenente 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 del cluster di failover 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:

    provide the secondary IP address in the subnet of the first SQL Server VM that you previously designated as the IP address of the failover cluster instance network name

  8. Sotto Configurazione motore di database, le directory di dati dell'istanza del cluster di failover devono trovarsi nelle risorse di archiviazione del 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 i due nodi. Il volume viene presentato al cluster come volume condiviso cluster. Usare il punto di montaggio del volume condiviso cluster per le directory di dati.

    Data directories

  9. Dopo aver completato le istruzioni della procedura guidata, il programma di configurazione installerà un'istanza del cluster di failover di SQL Server nel primo nodo.

  10. Al termine dell'installazione dell'istanza del cluster di failover nel primo nodo, connettersi al secondo nodo usando RDP.

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

  12. Selezionare Aggiungi nodo a cluster di failover di SQL Server. Seguire le istruzioni della procedura guidata per installare SQL Server e aggiungere il nodo all'istanza del cluster di failover.

  13. Per uno scenario su più subnet, in Configurazione della rete cluster, immettere l'indirizzo IP secondario nella subnet della seconda macchina virtuale di SQL Server designata in precedenza come indirizzo IP del nome di rete dell'istanza del cluster di failover

    enter the secondary IP address in the subnet of the second SQL Server VM subnet that you previously designated as the IP address of the failover cluster instance network name

    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.

    Multi Subnet Confirmation

  14. 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.

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

Nota

Le immagini della raccolta di Azure Marketplace sono installate con SQL Server Management Studio. Se non è stata usata un'immagine del marketplace eseguire il download 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. Si noti che solo le funzionalità limitate saranno disponibili nelle VM di SQL con istanze del cluster di failover di SQL Server (FCI).

Se la VM di SQL Server è già stata registrata con l'estensione SQL IaaS Agent ed è stata abilitata qualsiasi funzionalità che richiede l'agente, sarà necessario annullare la registrazione della VM di SQL Server dall'estensione e registrarla nuovamente dopo l'installazione dell'istanza del cluster di failover.

Registrare una VM di SQL Server con PowerShell (-LicenseType 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 VM di SQL Server sono state distribuite in una singola subnet, sarà necessario 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

  • Le macchine virtuali di Azure supportano Microsoft Distributed Transaction Coordinator (MSDTC) in Windows Server 2019 con archiviazione in volumi condivisi cluster e un Load Balancer Standard. MSDTC non è supportato in Windows Server 2016 e versioni precedenti.
  • I dischi collegati come dischi in formato NTFS possono essere usati con Spazi di archiviazione diretta solo se l'opzione di idoneità del disco è deselezionata o deselezionata quando l'archiviazione viene aggiunta al cluster.
  • 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.
  • Le istanze del cluster di failover che usano Spazi di archiviazione diretta perché l'archiviazione condivisa non supporta l'uso di un disco di controllo per il quorum del cluster. Usare invece un cloud di controllo.

Passaggi successivi

Se gli spazi di archiviazione diretta di Azure non sono la soluzione di archiviazione dell'istanza del cluster di failover appropriata, è consigliabile creare l'istanza del cluster di failover usando dischi condivisi di Azure o condivisioni file Premium.

Per altre informazioni, vedere: