Funzioni di Red Hat Enterprise Linux cluster dei dischi condivisi per SQL ServerOperate Red Hat Enterprise Linux shared disk cluster for SQL Server

QUESTO ARGOMENTO SI APPLICA A: noSQL Server su WindowssìSQL Server su LinuxnoDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

Questo documento viene descritto come eseguire le attività seguenti per SQL Server in un cluster di failover del disco condiviso con Red Hat Enterprise Linux.This document describes how to do the following tasks for SQL Server on a shared disk failover cluster with Red Hat Enterprise Linux.

  • Eseguire il failover manuale del clusterManually failover the cluster
  • Monitorare un servizio SQL Server del cluster di failoverMonitor a failover cluster SQL Server service
  • Aggiungere un nodo del clusterAdd a cluster node
  • Rimuovere un nodo del clusterRemove a cluster node
  • Modificare la frequenza di monitoraggio delle risorse SQL ServerChange the SQL Server resource monitoring frequency

Descrizione dell'architetturaArchitecture description

Il livello di clustering si basa su Red Hat Enterprise Linux (RHEL) componente aggiuntivo a disponibilità elevata compilato in cima Pacemaker.The clustering layer is based on Red Hat Enterprise Linux (RHEL) HA add-on built on top of Pacemaker. Corosync e Pacemaker coordinare le comunicazioni del cluster e la gestione delle risorse.Corosync and Pacemaker coordinate cluster communications and resource management. L'istanza di SQL Server è attivo in un nodo o l'altro.The SQL Server instance is active on either one node or the other.

Il diagramma seguente illustra i componenti in un cluster Linux con SQL Server.The following diagram illustrates the components in a Linux cluster with SQL Server.

Red Hat Enterprise Linux 7 condiviso del Cluster SQL disco

Per ulteriori informazioni su configurazione cluster, le opzioni di agenti di risorsa e la gestione, visitare la documentazione di riferimento RHEL.For more details on cluster configuration, resource agents options, and management, visit RHEL reference documentation.

Cluster di failover manualeFailover cluster manually

Il resource move comando crea un vincolo forzando la risorsa da avviare nel nodo di destinazione.The resource move command creates a constraint forcing the resource to start on the target node. Dopo l'esecuzione di move comando, l'esecuzione di risorse clear rimuoverà il vincolo, pertanto è possibile spostare di nuovo la risorsa o la risorsa automaticamente il failover.After executing the move command, executing resource clear will remove the constraint so it is possible to move the resource again or have the resource automatically fail over.

sudo pcs resource move <sqlResourceName> <targetNodeName>  
sudo pcs resource clear <sqlResourceName> 

L'esempio seguente sposta la mssqlha risorsa a un nodo denominato sqlfcivm2e quindi rimuove il vincolo in modo che la risorsa è possibile spostare in un nodo diverso in un secondo momento.The following example moves the mssqlha resource to a node named sqlfcivm2, and then removes the constraint so that the resource can move to a different node later.

sudo pcs resource move mssqlha sqlfcivm2 
sudo pcs resource clear mssqlha 

Monitorare un servizio SQL Server del cluster di failoverMonitor a failover cluster SQL Server service

Visualizzare lo stato corrente del cluster:View the current cluster status:

sudo pcs status  

Consente di visualizzare lo stato attivo del cluster e risorse:View live status of cluster and resources:

sudo crm_mon 

Visualizzare i registri dell'agente di risorsa in/var/log/cluster/corosync.logView the resource agent logs at /var/log/cluster/corosync.log

Aggiungere un nodo a un clusterAdd a node to a cluster

  1. Controllare l'indirizzo IP per ogni nodo.Check the IP address for each node. Lo script seguente viene illustrato l'indirizzo IP del nodo corrente.The following script shows the IP address of your current node.

    ip addr show
    
  2. Il nuovo nodo è necessario un nome univoco che è di 15 caratteri o meno.The new node needs a unique name that is 15 characters or less. Per impostazione predefinita in Red Hat Linux è il nome del computer localhost.localdomain.By default in Red Hat Linux the computer name is localhost.localdomain. Questo nome potrebbe non essere univoco e predefiniti è troppo lungo.This default name may not be unique and is too long. Impostare il nome del computer del nuovo nodo.Set the computer name the new node. Impostare il nome del computer, aggiungerlo al /etc/hosts.Set the computer name by adding it to /etc/hosts. Lo script seguente consente di modificare /etc/hosts con vi.The following script lets you edit /etc/hosts with vi.

    sudo vi /etc/hosts
    

    Nell'esempio seguente /etc/hosts aggiunte tre nodi denominati sqlfcivm1, sqlfcivm2, esqlfcivm3.The following example shows /etc/hosts with additions for three nodes named sqlfcivm1, sqlfcivm2, andsqlfcivm3.

    127.0.0.1   localhost localhost4 localhost4.localdomain4
    ::1         localhost localhost6 localhost6.localdomain6
    10.128.18.128 fcivm1
    10.128.16.77 fcivm2
    10.128.14.26 fcivm3
    

    Il file deve essere identica in ogni nodo.The file should be the same on every node.

  3. Arrestare il servizio SQL Server sul nuovo nodo.Stop the SQL Server service on the new node.

  4. Seguire le istruzioni per montare la directory di file di database per la posizione condivisa:Follow the instructions to mount the database file directory to the shared location:

    Dal server NFS, installarenfs-utilsFrom the NFS server, install nfs-utils

    sudo yum -y install nfs-utils 
    

    Aprire il firewall nel client e server NFSOpen up the firewall on clients and NFS server

    sudo firewall-cmd --permanent --add-service=nfs
    sudo firewall-cmd --permanent --add-service=mountd
    sudo firewall-cmd --permanent --add-service=rpc-bind
    sudo firewall-cmd --reload
    

    Modificare il file /etc/fstab. per includere il comando di montaggio:Edit /etc/fstab file to include the mount command:

    <IP OF NFS SERVER>:<shared_storage_path> <database_files_directory_path> nfs timeo=14,intr
    

    Eseguire mount -a rendere effettive le modifiche.Run mount -a for the changes to take effect.

  5. Sul nuovo nodo, creare un file per archiviare il nome utente di SQL Server e la password per l'account di accesso Pacemaker.On the new node, create a file to store the SQL Server username and password for the Pacemaker login. Il comando seguente crea e popola questo file:The following command creates and populates this file:

    sudo touch /var/opt/mssql/passwd
    sudo echo "<loginName>" >> /var/opt/mssql/secrets/passwd
    sudo echo "<loginPassword>" >> /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/passwd
    sudo chmod 600 /var/opt/mssql/passwd
    
  6. Nel nuovo nodo, aprire le porte del firewall Pacemaker.On the new node, open the Pacemaker firewall ports. Per aprire queste porte con firewalld, eseguire il comando seguente:To open these ports with firewalld, run the following command:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --reload
    

    Nota

    Se si sta usando un altro firewall che non ha una configurazione a disponibilità elevata predefinita, è necessario aprire le porte seguenti per consentire a Pacemaker di comunicare con altri nodi del clusterIf you’re using another firewall that doesn’t have a built-in high-availability configuration, the following ports need to be opened for Pacemaker to be able to communicate with other nodes in the cluster

    • TCP: porte 2224, 3121, 21064TCP: Ports 2224, 3121, 21064
    • UDP: porta 5405UDP: Port 5405
  7. Installare i pacchetti Pacemaker sul nuovo nodo.Install Pacemaker packages on the new node.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    
  8. Impostare la password per l'utente predefinito creato durante l'installazione dei pacchetti Corosync e Pacemaker.Set the password for for the default user that is created when installing Pacemaker and Corosync packages. Usare la stessa password per i nodi esistenti.Use the same password as the existing nodes.

    sudo passwd hacluster
    
  9. Abilitare e avviare il servizio pcsd e Pacemaker.Enable and start pcsd service and Pacemaker. In questo modo il nuovo nodo a partecipare di nuovo il cluster dopo il riavvio.This will allow the new node to rejoin the cluster after the reboot. Eseguire il comando seguente sul nuovo nodo.Run the following command on the new node.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  10. Installare l'agente delle risorse FCI per SQL Server.Install the FCI resource agent for SQL Server. Eseguire i comandi seguenti nel nuovo nodo.Run the following commands on the new node.

    sudo yum install mssql-server-ha
    
  11. Su un nodo esistente dal cluster, l'autenticazione del nuovo nodo e aggiungerla al cluster:On an existing node from the cluster, authenticate the new node and add it to the cluster:

    sudo pcs    cluster auth <nodeName3> -u hacluster 
    sudo pcs    cluster node add <nodeName3> 
    

    Gli annunci di esempio seguente un nodo denominato vm3 al cluster.The following example ads a node named vm3 to the cluster.

    sudo pcs    cluster auth  
    sudo pcs    cluster start 
    

Rimuovere i nodi da un clusterRemove nodes from a cluster

Per rimuovere un nodo da un cluster di cui eseguire il comando seguente:To remove a node from a cluster run the following command:

sudo pcs    cluster node remove <nodeName>  

Modificare la frequenza dell'intervallo di monitoraggio delle risorse sqlservrChange the frequency of sqlservr resource monitoring interval

sudo pcs    resource op monitor interval=<interval>s <sqlResourceName> 

Nell'esempio seguente imposta l'intervallo di monitoraggio su 2 secondi per la risorsa mssql:The following example sets the monitoring interval to 2 seconds for the mssql resource:

sudo pcs    resource op monitor interval=2s mssqlha 

Risoluzione dei problemi di Red Hat Enterprise Linux cluster dei dischi condivisi per SQL ServerTroubleshoot Red Hat Enterprise Linux shared disk cluster for SQL Server

Risoluzione dei problemi del cluster può essere utile per comprendere come i tre daemon interagiscono per la gestione delle risorse del cluster.In troubleshooting the cluster it may help to understand how the three daemons work together to manage cluster resources.

DaemonDaemon DescriptionDescription
CorosyncCorosync Fornisce l'appartenenza di quorum e la messaggistica tra i nodi del cluster.Provides quorum membership and messaging between cluster nodes.
PacemakerPacemaker Si trova nella parte superiore Corosync e fornisce il computer di stato per le risorse.Resides on top of Corosync and provides state machines for resources.
PCSDPCSD Gestisce Pacemaker sia Corosync tramite il pcs strumentiManages both Pacemaker and Corosync through the pcs tools

PCSD deve essere in esecuzione per poter utilizzare pcs strumenti.PCSD must be running in order to use pcs tools.

Stato corrente del clusterCurrent cluster status

sudo pcs statusRestituisce le informazioni di base sullo stato per ogni nodo del cluster, quorum, i nodi, risorse e daemon.sudo pcs status returns basic information about the cluster, quorum, nodes, resources, and daemon status for each node.

Un esempio di un output di quorum pacemaker integro sarà:An example of a healthy pacemaker quorum output would be:

Cluster name: MyAppSQL 
Last updated: Wed Oct 31 12:00:00 2016  Last change: Wed Oct 31 11:00:00 2016 by root via crm_resource on sqlvmnode1 
Stack: corosync 
Current DC: sqlvmnode1  (version 1.1.13-10.el7_2.4-44eb2dd) - partition with quorum 
3 nodes and 1 resource configured 

Online: [ sqlvmnode1 sqlvmnode2 sqlvmnode3] 

Full list of resources: 

mssqlha (ocf::sql:fci): Started sqlvmnode1 

PCSD Status: 
sqlvmnode1: Online 
sqlvmnode2: Online 
sqlvmnode3: Online 

Daemon Status: 
corosync: active/disabled 
pacemaker: active/enabled 

Nell'esempio partition with quorum significa che un quorum maggioranza dei nodi è online.In the example, partition with quorum means that a majority quorum of nodes is online. Se il cluster perde il quorum maggioranza dei nodi, pcs status restituirà partition WITHOUT quorum e tutte le risorse verranno arrestate.If the cluster loses a majority quorum of nodes , pcs status will return partition WITHOUT quorum and all resources will be stopped.

online: [sqlvmnode1 sqlvmnode2 sqlvmnode3]Restituisce il nome di tutti i nodi attualmente partecipano al cluster.online: [sqlvmnode1 sqlvmnode2 sqlvmnode3] returns the name of all nodes currently participating in the cluster. Se non fanno parte di tutti i nodi, pcs status restituisce OFFLINE: [<nodename>].If any nodes are not participating, pcs status returns OFFLINE: [<nodename>].

PCSD StatusMostra lo stato del cluster per ogni nodo.PCSD Status shows the cluster status for each node.

Motivi per cui un nodo può essere offlineReasons why a node may be offline

Quando un nodo è offline, verificare quanto segue.Check the following items when a node is offline.

  • FirewallFirewall

    Le seguenti porte devono essere aperte in tutti i nodi per Pacemaker essere in grado di comunicare.The following ports need to be open on all nodes for Pacemaker to be able to communicate.

    • * * TCP: 2224, 3121, 21064**TCP: 2224, 3121, 21064
  • Pacemaker o Corosync servizi in esecuzionePacemaker or Corosync services running

  • Comunicazione nodiNode communication

  • Mapping di nomi di nodoNode name mappings

Risorse aggiuntiveAdditional resources

Passaggi successiviNext steps

Configurare il cluster di dischi condivisi Red Hat Enterprise Linux per SQL ServerConfigure Red Hat Enterprise Linux shared disk cluster for SQL Server