Distribuire un cluster Pacemaker per SQL Server in Linux

Si applica a:SQL Server - Linux

Questa esercitazione illustra le attività necessarie per distribuire un cluster Pacemaker in Linux per un gruppo di disponibilità Always On o un'istanza del cluster di failover di SQL Server. Diversamente da quanto avviene per lo stack Windows Server/ SQL Server strettamente associato, la creazione di un cluster Pacemaker e la configurazione di un gruppo di disponibilità in Linux possono essere eseguite prima o dopo l'installazione di SQL Server. L'integrazione e la configurazione delle risorse per la parte Pacemaker di una distribuzione di un gruppo di disponibilità o di un'istanza del cluster di failover vengono eseguite dopo la configurazione del cluster.

Importante

Un gruppo di disponibilità con un cluster di tipo None non richiede un cluster Pacemaker né può essere gestito da Pacemaker.

  • Installare il componente aggiuntivo per la disponibilità elevata e installare Pacemaker.
  • Preparare i nodi per Pacemaker (solo RHEL e Ubuntu).
  • Creare il cluster Pacemaker.
  • Installare i pacchetti per la disponibilità elevata di SQL Server e SQL Server Agent.

Prerequisito

Installare SQL Server 2017.

Installare il componente aggiuntivo per la disponibilità elevata

Usare la sintassi seguente per installare i pacchetti che costituiscono il componente aggiuntivo per la disponibilità elevata per ogni distribuzione di Linux.

  1. Registrare il server usando la sintassi seguente. Viene richiesto di specificare un nome utente e una password validi.

    sudo subscription-manager register
    
  2. Elencare i pool disponibili per la registrazione.

    sudo subscription-manager list --available
    
  3. Eseguire il comando seguente per associare la disponibilità elevata di RHEL alla sottoscrizione

    sudo subscription-manager attach --pool=<PoolID>
    

    dove PoolId è l'ID del pool per la sottoscrizione della disponibilità elevata del passaggio precedente.

  4. Abilitare il repository per poter usare il componente aggiuntivo per la disponibilità elevata.

    sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpms
    
  5. Installare Pacemaker.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    

Preparare i nodi per Pacemaker (solo RHEL e Ubuntu)

Pacemaker stesso usa un utente creato durante la distribuzione, denominato hacluster. L'utente viene creato quando il componente aggiuntivo per la disponibilità elevata è installato in RHEL e Ubuntu.

  1. In ogni server che fungerà da nodo del cluster Pacemaker creare la password per un utente che verrà usato dal cluster. Il nome usato negli esempi è hacluster, ma è possibile usare qualsiasi nome. Il nome e la password devono essere gli stessi in tutti i nodi che fanno parte del cluster Pacemaker.

    sudo passwd hacluster
    
  2. In ogni nodo che farà parte del cluster Pacemaker abilitare e avviare il servizio pcsd con i comandi seguenti (RHEL e Ubuntu):

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    

    Eseguire quindi il comando seguente per assicurarsi che venga avviato pcsd.

    sudo systemctl status pcsd
    
  3. Abilitare il servizio Pacemaker in ogni nodo possibile del cluster Pacemaker.

    sudo systemctl start pacemaker
    

    In Ubuntu viene visualizzato un errore:

    pacemaker Default-Start contains no runlevels, aborting.
    

    Questo è un errore noto. Nonostante l'errore, l'abilitazione del servizio Pacemaker ha esito positivo e questo bug verrà risolto in futuro.

  4. Successivamente, creare e avviare il cluster Pacemaker. In questa fase esiste una differenza tra RHEL e Ubuntu. Anche se in entrambe le distribuzioni l'installazione di pcs configura un file di configurazione predefinito per il cluster Pacemaker, in RHEL l'esecuzione di questo comando elimina definitivamente qualsiasi configurazione esistente e crea un nuovo cluster.

Creare il cluster Pacemaker

Questa sezione illustra come creare e configurare il cluster per ogni distribuzione di Linux.

  1. Autorizzare i nodi

    sudo pcs cluster auth <Node1 Node2 ... NodeN> -u hacluster
    

    dove NodeX è il nome del nodo.

  2. Creare il cluster

    sudo pcs cluster setup --name <PMClusterName Nodelist> --start --all --enable
    

    dove PMClusterName è il nome assegnato al cluster Pacemaker e Nodelist è l'elenco di nomi dei nodi separati da uno spazio.

Installare i pacchetti per la disponibilità elevata di SQL Server e SQL Server Agent

Usare i comandi seguenti per installare il pacchetto per la disponibilità elevata di SQL Server e SQL Server Agent, se non sono già installati. L'installazione del pacchetto per la disponibilità elevata dopo l'installazione di SQL Server richiede un riavvio di SQL Server in modo che sia possibile usarlo. Queste istruzioni presuppongono che i repository per i pacchetti Microsoft siano già stati configurati, perché SQL Server deve essere installato ora.

  • Se non si usa SQL Server Agent per il log shipping o per altro, non è necessario installarlo, quindi il pacchetto mssql-server-agent può essere ignorato.
  • Gli altri pacchetti facoltativi per SQL Server in Linux, Ricerca full-text di SQL Server (mssql-server-fts) e SQL Server Integration Services (mssql-server-is), non sono obbligatori per la disponibilità elevata, sia per un'istanza del cluster di failover che per un gruppo di disponibilità.
sudo yum install mssql-server-ha mssql-server-agent
sudo systemctl restart mssql-server

Passaggi successivi

Questa esercitazione ha illustrato come distribuire un cluster Pacemaker per SQL Server in Linux. Contenuto del modulo:

  • Installare il componente aggiuntivo per la disponibilità elevata e installare Pacemaker.
  • Preparare i nodi per Pacemaker (solo RHEL e Ubuntu).
  • Creare il cluster Pacemaker.
  • Installare i pacchetti per la disponibilità elevata di SQL Server e SQL Server Agent.

Per creare e configurare un gruppo di disponibilità per SQL Server in Linux, vedere: