Megosztás:


RHEL feladatátvevő fürtpéldány (FCI) üzemeltetése a SQL Serverhez

A következőkre vonatkozik:SQL Server Linux rendszeren

Ez a dokumentum a következő feladatokat ismerteti az SQL Serverhez egy megosztott lemezes feladatátvevő fürtön a Red Hat Enterprise Linux használatával.

  • A fürt kézi átváltása
  • Feladatátvevő fürt SQL Server-szolgáltatásának figyelése
  • Fürtcsomópont hozzáadása
  • Fürtcsomópont eltávolítása
  • Az SQL Server erőforrásmonitorozási gyakoriságának módosítása

Architektúra leírása

A fürtözési réteg alapja a Red Hat Enterprise Linux (RHEL) HA bővítmény, amely a Pacemakertetejére épül. A Corosync és a Pacemaker koordinálja a fürtkommunikációt és az erőforrás-kezelést. Az SQL Server-példány aktív az egyik csomóponton vagy a másikon.

A következő ábra bemutatja a Linux-klaszter SQL Server összetevőit.

A Red Hat Enterprise Linux 7 megosztott lemezes SQL-fürt diagramja.

További információért a fürtkonfigurációval, az erőforrás-ügynökök beállításaival és felügyeletével kapcsolatban, látogasson el a RHEL referenciadokumentációhoz.

Fürt manuális átállása

A resource move parancs kényszert hoz létre, amely arra kényszeríti az erőforrást, hogy a célcsomóponton kezdjen. A move parancs végrehajtása után az erőforrás-clear végrehajtása eltávolítja a kényszert, hogy újra áthelyezhető legyen az erőforrás, vagy az erőforrás automatikusan feladatátvételt hajtson végre.

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

Az alábbi példa áthelyezi az mssqlha erőforrást egy sqlfcivm2nevű csomópontra, majd eltávolítja a kényszert, hogy az erőforrás később másik csomópontra váltson.

sudo pcs resource move mssqlha sqlfcivm2
sudo pcs resource clear mssqlha

Feladatátvevő fürt SQL Server-szolgáltatásának figyelése

Tekintse meg a fürt aktuális állapotát:

sudo pcs status

A fürt és az erőforrások élő állapotának megtekintése:

sudo crm_mon

A /var/log/cluster/corosync.log pontnál tekintheti meg az erőforrás-ügynök naplóit.

Csomópont hozzáadása fürthöz

  1. Ellenőrizze az egyes csomópontok IP-címét. Az alábbi szkript az aktuális csomópont IP-címét mutatja.

    ip addr show
    
  2. Az új csomópontnak 15 karakternél rövidebb egyedi névre van szüksége. A Red Hat Linuxban alapértelmezés szerint a számítógép neve localhost.localdomain. Előfordulhat, hogy ez az alapértelmezett név nem egyedi, és túl hosszú. Állítsa be a számítógép nevét az új csomópontra. Állítsa be a számítógép nevét a /etc/hostshozzáadásával. Az alábbi szkript lehetővé teszi /etc/hosts szerkesztését vi.

    sudo vi /etc/hosts
    

    Az alábbi példa bemutatja a /etc/hosts, amely tartalmaz három csomópontot név szerint: sqlfcivm1, sqlfcivm2, és sqlfcivm3.

    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
    

    A fájlnak minden csomóponton azonosnak kell lennie.

  3. Állítsa le az SQL Server szolgáltatást az új csomóponton.

  4. Kövesse az utasításokat az adatbázis fájlkönyvtárának a megosztott helyre való csatlakoztatásához:

    Az NFS-kiszolgálóról telepítse a következőt nfs-utils:

    sudo yum -y install nfs-utils
    

    Nyissa meg a tűzfalat az ügyfeleken és az NFS-kiszolgálón:

    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
    

    Szerkessze a /etc/fstab fájlt a csatlakoztatási parancs belefoglalásához:

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

    Futtassa mount -a a módosítások érvénybe lépéséhez.

  5. Az új csomóponton hozzon létre egy fájlt, amely tárolja az SQL Server-felhasználónevet és -jelszót a Pacemaker-bejelentkezéshez. A következő parancs létrehozza és feltölti ezt a fájlt:

    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
    

    Figyelem

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

  6. Az új csomóponton nyissa meg a Pacemaker tűzfalportokat. Ha szeretné megnyitni ezeket a portokat a firewalldhasználatával, futtassa a következő parancsot:

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

    Ha egy másik tűzfalat használ, amely nem rendelkezik beépített magas rendelkezésre állási konfigurációval, a Pacemaker számára a következő portokat kell megnyitnia, hogy a fürt többi csomópontjával kommunikálhasson:

    • TCP: Portok 2224, 3121, 21064
    • UDP: 5405-ös port
  7. Telepítse a Pacemaker-csomagokat az új csomópontra.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    
  8. Adja meg a Pacemaker- és Corosync-csomagok telepítésekor létrehozott alapértelmezett felhasználó jelszavát. Használja ugyanazt a jelszót, mint a meglévő csomópontok.

    sudo passwd hacluster
    
  9. Engedélyezze és indítsa el pcsd szolgáltatást és a Pacemakert. Ez lehetővé teszi, hogy az új csomópont újra csatlakozzon a fürthöz az újraindítás után. Futtassa a következő parancsot az új csomóponton.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  10. Telepítse az SQL Server FCI-erőforrásügynökét. Futtassa az alábbi parancsokat az új csomóponton.

    sudo yum install mssql-server-ha
    
  11. A fürt egy meglévő csomópontján hitelesítse az új csomópontot, és adja hozzá a fürthöz:

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

    Az alábbi példa egy vm3 nevű csomópontot ad hozzá a fürthöz.

    sudo pcs cluster auth
    sudo pcs cluster start
    

Csomópontok eltávolítása fürtből

Csomópont fürtből való eltávolításához futtassa a következő parancsot:

sudo pcs cluster node remove <nodeName>

Az sqlservr-erőforrás monitorozási időközének módosítása

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

Az alábbi példa 2 másodpercre állítja az mssql-erőforrás monitorozási időközét:

sudo pcs resource op monitor interval=2s mssqlha

Red Hat Enterprise Linux megosztott lemezfürt hibaelhárítása SQL Serverhez

A fürt hibaelhárítása során hasznos lehet annak megértése, hogyan működik együtt a három démon a fürterőforrások kezelésére.

Daemon Leírás
Corosync Kvórum tagság biztosítása és üzenetküldés biztosítása a fürtcsomópontok között.
Szívritmus-szabályozó A Corosync rendszeren fut és állapotgépeket biztosít az erőforrások számára.
PCSD A Pacemaker és a Corosync pcs eszközökkel is kezelhető.

A PCSD-nek futnia kell a pcs eszközök használatához.

A fürt aktuális állapota

sudo pcs status az egyes csomópontok fürt-, kvórum-, csomópont-, erőforrás- és démonállapotának alapvető adatait adja vissza.

Példa egy egészséges pacemaker kvórum kimenetére:

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

A példában partition with quorum azt jelenti, hogy a csomópontok többségi kvóruma online állapotban van. Ha a fürt elveszíti a csomópontok többségének kvórumát, pcs statuspartition WITHOUT quorum ad vissza, és minden erőforrás leáll.

online: [sqlvmnode1 sqlvmnode2 sqlvmnode3] a fürtben jelenleg részt vevő összes csomópont nevét adja vissza. Ha valamelyik csomópont nem vesz részt a programban, pcs statusOFFLINE: [<nodename>]ad vissza.

PCSD Status az egyes csomópontok fürtállapotát jeleníti meg.

A csomópont kapcsolat nélküli állapotának okai

Ellenőrizze a következő elemeket, ha egy csomópont offline állapotban van.

  • tűzfal

    Az alábbi portoknak nyitva kell lenniük az összes csomóponton ahhoz, hogy a Pacemaker kommunikálni tudjon.

    • **TCP: 2224, 3121, 21064
  • Pacemaker- vagy Corosync-szolgáltatások

  • Csomópont kommunikáció

  • csomópontnévleképezések