Delen via


RHEL-failoverclusterexemplaar (FCI) gebruiken voor SQL Server

van toepassing op:SQL Server- - Linux

In dit document wordt beschreven hoe u de volgende taken voor SQL Server uitvoert op een failovercluster voor gedeelde schijven met Red Hat Enterprise Linux.

  • Handmatig een failover uitvoeren voor het cluster
  • Een SQL Server-service voor failoverclusters bewaken
  • Een clusterknooppunt toevoegen
  • Een clusterknooppunt verwijderen
  • De bewakingsfrequentie van SQL Server-resources wijzigen

Beschrijving van architectuur

De clusteringlaag is gebaseerd op Red Hat Enterprise Linux (RHEL) HA-invoegtoepassing, die is gebouwd op Pacemaker-. Corosync en Pacemaker coördineren clustercommunicatie en resourcebeheer. Het SQL Server-exemplaar is actief op het ene knooppunt of het andere.

In het volgende diagram ziet u de onderdelen in een Linux-cluster met SQL Server.

diagram van Red Hat Enterprise Linux 7 Shared Disk SQL-cluster.

Ga naar RHEL-referentiedocumentatievoor meer informatie over clusterconfiguratie, opties voor resourceagents en beheer.

Handmatig een failover van het cluster uitvoeren

Met de opdracht resource move wordt een beperking gemaakt waardoor de resource op het doelknooppunt moet worden gestart. Nadat u de opdracht move hebt uitgevoerd, wordt de beperking verwijderd door resource-clear uit te voeren, zodat het mogelijk is om de resource opnieuw te verplaatsen of de resource automatisch een failover uit te voeren.

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

In het volgende voorbeeld wordt de resource mssqlha verplaatst naar een knooppunt met de naam sqlfcivm2en wordt de beperking verwijderd, zodat de resource later naar een ander knooppunt kan worden verplaatst.

sudo pcs resource move mssqlha sqlfcivm2
sudo pcs resource clear mssqlha

Een SQL Server-service voor failoverclusters bewaken

De huidige clusterstatus weergeven:

sudo pcs status

Livestatus van cluster en resources weergeven:

sudo crm_mon

Bekijk de resourceagentlogboeken op /var/log/cluster/corosync.log

Een knooppunt toevoegen aan een cluster

  1. Controleer het IP-adres voor elk knooppunt. In het volgende script ziet u het IP-adres van uw huidige knooppunt.

    ip addr show
    
  2. Het nieuwe knooppunt heeft een unieke naam van 15 tekens of minder nodig. Standaard is de computernaam in Red Hat Linux localhost.localdomain. Deze standaardnaam is mogelijk niet uniek en is te lang. Stel de computernaam van het nieuwe knooppunt in. Stel de computernaam in door deze toe te voegen aan /etc/hosts. Met het volgende script kunt u /etc/hosts bewerken met vi.

    sudo vi /etc/hosts
    

    In het volgende voorbeeld ziet u /etc/hosts met toevoegingen voor drie knooppunten met de naam sqlfcivm1, sqlfcivm2ensqlfcivm3.

    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
    

    Het bestand moet op elk knooppunt hetzelfde zijn.

  3. Stop de SQL Server-service op het nieuwe knooppunt.

  4. Volg de instructies voor het koppelen van de map met databasebestanden aan de gedeelde locatie:

    Installeer nfs-utils vanaf de NFS-server

    sudo yum -y install nfs-utils
    

    Open de firewall op clients en 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
    

    Bewerk het /etc/fstab bestand om de koppelingsopdracht op te nemen:

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

    Voer mount -a uit om de wijzigingen van kracht te laten worden.

  5. Maak op het nieuwe knooppunt een bestand voor het opslaan van de gebruikersnaam en het wachtwoord van SQL Server voor de pacemaker-aanmelding. Met de volgende opdracht wordt dit bestand gemaakt en ingevuld:

    sudo touch /var/opt/mssql/passwd
    sudo echo "<loginName>" >> /var/opt/mssql/secrets/passwd
    sudo echo "<password>" >> /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/passwd
    sudo chmod 600 /var/opt/mssql/passwd
    

    Voorzichtigheid

    Uw wachtwoord moet voldoen aan het standaard wachtwoordbeleid van SQL Server . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.

  6. Open op het nieuwe knooppunt de pacemaker-firewallpoorten. Voer de volgende opdracht uit om deze poorten te openen met firewalld:

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

    Als u een andere firewall gebruikt die geen ingebouwde configuratie voor hoge beschikbaarheid heeft, moeten de volgende poorten worden geopend om Pacemaker te kunnen communiceren met andere knooppunten in het cluster:

    • TCP: poorten 2224, 3121, 21064
    • UDP: poort 5405
  7. Installeer Pacemaker-pakketten op het nieuwe knooppunt.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    
  8. Stel het wachtwoord in voor de standaardgebruiker die wordt gemaakt bij het installeren van Pacemaker- en Corosync-pakketten. Gebruik hetzelfde wachtwoord als de bestaande knooppunten.

    sudo passwd hacluster
    
  9. Schakel pcsd service en Pacemaker in en start deze. Hierdoor kan het nieuwe knooppunt na het opnieuw opstarten opnieuw deelnemen aan het cluster. Voer de volgende opdracht uit op het nieuwe knooppunt.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  10. Installeer de FCI-resourceagent voor SQL Server. Voer de volgende opdrachten uit op het nieuwe knooppunt.

    sudo yum install mssql-server-ha
    
  11. Verifieer op een bestaand knooppunt van het cluster het nieuwe knooppunt en voeg het toe aan het cluster:

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

    In het volgende voorbeeld wordt een knooppunt met de naam vm3 toegevoegd aan het cluster.

    sudo pcs cluster auth
    sudo pcs cluster start
    

Knooppunten verwijderen uit een cluster

Voer de volgende opdracht uit om een knooppunt uit een cluster te verwijderen:

sudo pcs cluster node remove <nodeName>

De frequentie van het bewakingsinterval voor sqlservr-resources wijzigen

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

In het volgende voorbeeld wordt het bewakingsinterval ingesteld op 2 seconden voor de mssql-resource:

sudo pcs resource op monitor interval=2s mssqlha

Problemen oplossen met een Gedeeld Linux-schijfcluster voor Red Hat Enterprise voor SQL Server

Wanneer u problemen met het cluster oplost, is het handig om te begrijpen hoe de drie daemons samenwerken om clusterresources te beheren.

Daemon Beschrijving
Corosync Biedt quorumlidmaatschap en berichten tussen clusterknooppunten.
Hartstimulator Bevindt zich boven op Corosync en biedt statusmachines voor resources.
PCSD Beheert zowel Pacemaker als Corosync via de pcs-hulpprogramma's.

PCSD moet draaien om pcs-hulpprogramma's te kunnen gebruiken.

Huidige clusterstatus

sudo pcs status retourneert basisinformatie over het cluster, quorum, knooppunten, resources en daemonstatus voor elk knooppunt.

Een voorbeeld van een gezonde pacemaker-quorum output zou zijn:

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

In het voorbeeld betekent partition with quorum dat een meerderheidsquorum van knooppunten online is. Als het cluster een meerderheidsquorum van knooppunten verliest, retourneert pcs statuspartition WITHOUT quorum en worden alle resources gestopt.

online: [sqlvmnode1 sqlvmnode2 sqlvmnode3] retourneert de naam van alle knooppunten die momenteel deelnemen aan het cluster. Als er geen knooppunten deelnemen, retourneert pcs statusOFFLINE: [<nodename>].

PCSD Status toont de clusterstatus voor elk knooppunt.

Redenen waarom een knooppunt mogelijk offline is

Controleer de volgende items wanneer een knooppunt offline is.

  • Firewall

    De volgende poorten moeten op alle knooppunten zijn geopend zodat Pacemaker kan communiceren.

    • **TCP: 2224, 3121, 21064
  • Pacemaker- of Corosync-services draaien

  • knooppuntcommunicatie

  • Naamtoewijzingen voor knooppunten