Megosztás:


RHEL feladatátvételi fürtpéldány (FCI) fürt konfigurálása SQL Serverhez

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

Ez az útmutató útmutatást ad egy kétcsomópontos megosztott lemezű vész-helyreállítási klaszter létrehozásához az SQL Server számára a Red Hat Enterprise Linux rendszeren. A fürtözési réteg alapja a Red Hat Enterprise Linux (RHEL) HA bővítmény, amely a Pacemaker -re épül. Az SQL Server-példány aktív az egyik csomóponton vagy a másikon.

Jegyzet

A Red Hat HA bővítményhez és a dokumentációhoz való hozzáféréshez előfizetés szükséges.

Az alábbi ábrán látható, hogy a tárterület két kiszolgáló számára jelenik meg. A klaszter komponensek – Corosync és Pacemaker – koordinálják a kommunikációt és az erőforrás-kezelést. Az egyik kiszolgáló aktív kapcsolattal rendelkezik a tárolási erőforrásokhoz és az SQL Serverhez. Ha a Pacemaker hibát észlel, a fürtöző összetevők felelősek az erőforrások másik csomópontra való áthelyezéséért.

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

A fürtkonfigurációról, az erőforrás-ügynökök beállításairól és felügyeletéről további információt RHEL referenciadokumentációjában.

Jelenleg az SQL Server és a Pacemaker integrációja nem olyan szorosan összekapcsolt, mint a Windows WSFC esetében. Az SQL Serveren belül nincs tudomás a fürt jelenlétéről, az összes irányítás kívülről történik és a szolgáltatást a Pacemaker úgy szabályozza, mintha önálló példány lenne. A fürt dmvs sys.dm_os_cluster_nodes és sys.dm_os_cluster_properties például nem lesznek rekordjaik.

Ha olyan kapcsolati sztringet szeretne használni, amely egy sztringkiszolgáló nevére mutat, és nem az IP-címet használja, regisztrálnia kell a DNS-kiszolgálón a virtuális IP-erőforrás létrehozásához használt IP-címet (a következő szakaszokban leírtak szerint) a kiválasztott kiszolgálónévvel.

A következő szakaszok végigvezetik a feladatátvevő fürtmegoldás beállításának lépésein.

Előfeltételek

A következő teljes körű forgatókönyv végrehajtásához két gépre van szükség a két csomópontfürt és egy másik kiszolgáló üzembe helyezéséhez az NFS-kiszolgáló konfigurálásához. Az alábbi lépések ismertetik a kiszolgálók konfigurálását.

Az operációs rendszer beállítása és konfigurálása az egyes fürtcsomópontokon

Az első lépés az operációs rendszer konfigurálása a fürtcsomópontokon. Ehhez használja az RHEL-t érvényes előfizetéssel a HA-bővítményhez.

Sql Server telepítése és konfigurálása minden fürtcsomóponton

  1. Telepítse és állítsa be az SQL Servert mindkét csomóponton. Részletes útmutatásért tekintse meg LinuxSQL Server telepítési útmutatóját.

  2. Konfigurálás céljából jelöljön ki egy csomópontot elsődlegesként, a másikat pedig másodlagosként. Használja ezeket a kifejezéseket az útmutató követéséhez.

  3. A másodlagos csomóponton állítsa le és tiltsa le az SQL Servert.

    Az alábbi példa leállítja és letiltja az SQL Servert:

    sudo systemctl stop mssql-server
    sudo systemctl disable mssql-server
    

Jegyzet

A beállításkor a rendszer létrehoz egy kiszolgálói főkulcsot az SQL Server-példányhoz, és elhelyezi a /var/opt/mssql/secrets/machine-key-nál. Linux rendszeren az SQL Server mindig helyi fiókként fut, mssql. Mivel ez egy helyi fiók, az identitása nem oszlik meg a csomópontok között. Ezért át kell másolnia a titkosítási kulcsot az elsődleges csomópontról minden másodlagos csomópontra, hogy minden helyi mssql-fiók hozzáférhessen a kiszolgáló főkulcsának visszafejtéséhez.

  1. Az elsődleges csomóponton hozzon létre egy SQL Server-bejelentkezést a Pacemakerhez, és adja meg a bejelentkezési engedélyt a sp_server_diagnosticsfuttatásához. A Pacemaker ezzel a fiókkal ellenőrzi, hogy melyik csomópont futtatja az SQL Servert.

    sudo systemctl start mssql-server
    

    Csatlakozzon az SQL Server master adatbázishoz a sa fiókkal, és futtassa a következőket:

    USE [master];
    GO
    
    CREATE LOGIN [<loginName>]
        WITH PASSWORD = N'<password>';
    
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [<loginName>];
    

    Vigyázat

    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.

    Azt is megteheti, hogy részletesebben állítja be az engedélyeket. Pacemaker-bejelentkezéshez a következőkre van szükség: VIEW SERVER STATE az állapot lekérdezéséhez a sp_server_diagnostics, setupadmin és ALTER ANY LINKED SERVER elemekkel, valamint az FCI-példány nevének az erőforrásnévvel való frissítéséhez a sp_dropserver és sp_addserverfuttatásával.

  2. Az elsődleges csomóponton állítsa le és tiltsa le az SQL Servert.

  3. Konfigurálja az egyes fürtcsomópontok gazdagépfájljait. A hosts fájlnak tartalmaznia kell az összes fürtcsomópont IP-címét és nevét.

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

    sudo ip addr show
    

    Állítsa be a számítógép nevét az egyes csomópontokon. Adjon minden csomópontnak egy 15 karakteres vagy annál kisebb egyedi nevet. A számítógép nevének beállításához adja hozzá /etc/hosts. Az alábbi szkript lehetővé teszi a(z) /etc/hosts szerkesztését a(z) visegítségével.

    sudo vi /etc/hosts
    

    Az alábbi példa bemutatja a két csomópontot, nevezetesen a /etc/hosts és sqlfcivm1, a sqlfcivm2 kiegészítéseivel.

    127.0.0.1   localhost localhost4 localhost4.localdomain4
    ::1       localhost localhost6 localhost6.localdomain6
    10.128.18.128 sqlfcivm1
    10.128.16.77 sqlfcivm2
    

A következő szakaszban konfigurálja a megosztott tárterületet, és áthelyezi az adatbázisfájlokat az adott tárolóba.

Megosztott tárterület konfigurálása és adatbázisfájlok áthelyezése

A megosztott tárterület biztosítására többféle megoldás is létezik. Ez az útmutató bemutatja a megosztott tárterület NFS-szel való konfigurálását. Javasoljuk, hogy kövesse az ajánlott eljárásokat, és használja a Kerberost az NFS biztonságossá tételéhez. Példa: RHEL7: Az NFS hálózati megosztásokhoz való hozzáférés szabályozása a Kerberos használatával.

Figyelmeztetés

Ha nem védi az NFS-t, akkor bárki, aki hozzáfér a hálózathoz, és eltulajdoníthatja egy SQL-csomópont IP-címét, hozzáférhet az adatfájlokhoz. Ahogy mindig, modellezze a fenyegetéseket a rendszeren, mielőtt éles környezetben használja. Egy másik tárolási lehetőség az SMB fájlmegosztás használata.

Megosztott tárterület konfigurálása NFS-szel

Fontos

Ebben a kiadásban nem támogatott az adatbázisfájlok <4-es verziójú NFS-kiszolgálón való üzemeltetése. Ez magában foglalja az NFS használatát a megosztott lemez feladatátvételi fürtözéséhez, valamint a nem fürtözött példányokon lévő adatbázisokhoz. Dolgozunk a további NFS-kiszolgálóverziók engedélyezésén a következő kiadásokban.

Az NFS-kiszolgálón hajtsa végre a következő lépéseket:

  1. nfs-utils telepítése:

    sudo yum -y install nfs-utils
    
  2. Engedélyezés és indítás rpcbind:

    sudo systemctl enable rpcbind && sudo systemctl start rpcbind
    
  3. Engedélyezés és indítás nfs-server:

    sudo systemctl enable nfs-server && sudo systemctl start nfs-server
    
  4. A /etc/exports-t szerkessze, hogy exportálja a megosztani kívánt könyvtárat. Minden kívánt megosztáshoz egy sorra van szüksége. Például:

    /mnt/nfs  10.8.8.0/24(rw,sync,no_subtree_check,no_root_squash)
    
  5. A megosztások exportálása:

    sudo exportfs -rav
    
  6. Ellenőrizze, hogy az elérési utak meg vannak-e osztva/exportálva, és futtassa az NFS-kiszolgálóról:

    sudo showmount -e
    
  7. Kivétel hozzáadása a SELinuxban:

    sudo setsebool -P nfs_export_all_rw 1
    
  8. Nyissa meg a kiszolgáló tűzfalát.

    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
    

Az összes fürtcsomópont konfigurálása az NFS megosztott tárolóhoz való csatlakozáshoz

Hajtsa végre az alábbi lépéseket az összes fürtcsomóponton.

  1. nfs-utils telepítése:

    sudo yum -y install nfs-utils
    
  2. 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
    
  3. Ellenőrizze, hogy láthatóak-e az NFS-megosztások az ügyfélgépeken:

    sudo showmount -e <IP OF NFS SERVER>
    
  4. Ismételje meg ezeket a lépéseket az összes fürtcsomóponton.

Az NFS használatával kapcsolatos további információkért tekintse meg a következő erőforrásokat:

Az adatbázisfájlok könyvtárának csatlakoztatása, hogy a megosztott tárolóra mutasson.

  1. Csak az elsődleges csomópontonmentse az adatbázisfájlokat egy ideiglenes helyre. A következő szkript létrehoz egy új ideiglenes könyvtárat, átmásolja az adatbázisfájlokat az új könyvtárba, és eltávolítja a régi adatbázisfájlokat. Mivel az SQL Server helyi felhasználóként mssqlfut, meg kell győződnie arról, hogy a csatlakoztatott megosztásra való adatátvitel után a helyi felhasználó olvasási-írási hozzáféréssel rendelkezik a megosztáshoz.

    sudo su mssql
    mkdir /var/opt/mssql/tmp
    cp /var/opt/mssql/data/* /var/opt/mssql/tmp
    rm /var/opt/mssql/data/*
    exit
    
  2. Az összes fürtcsomóponton szerkessze a /etc/fstab fájlt, hogy tartalmazza a mount parancsot.

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

    Az alábbi szkript egy példát mutat be a szerkesztésre.

    10.8.8.0:/mnt/nfs /var/opt/mssql/data nfs timeo=14,intr
    

Jegyzet

Ha az itt leírtaknak megfelelően fájlrendszerbeli (FS) erőforrást használ, nem kell megőriznie a csatlakoztatási parancsot az /etc/fstab fájlban. A Pacemaker gondoskodik a mappa csatlakoztatásáról az FS-fürtözött erőforrás indításakor. A kerítés segítségével biztosítja, hogy az FS soha ne legyen kétszer csatlakoztatva.

  1. Futtassa a mount -a parancsot, hogy frissítse a rendszer a csatlakoztatott útvonalakat.

  2. Másolja a /var/opt/mssql/tmp-ra mentett adatbázist és a naplófájlokat az újonnan csatlakoztatott megosztásra /var/opt/mssql/data. Ezt a lépést csak az elsődleges csomóponton kell elvégezni. Győződjön meg arról, hogy olvasási írási engedélyeket ad a mssql helyi felhasználónak.

    sudo chown mssql /var/opt/mssql/data
    sudo chgrp mssql /var/opt/mssql/data
    sudo su mssql
    cp /var/opt/mssql/tmp/* /var/opt/mssql/data/
    rm /var/opt/mssql/tmp/*
    exit
    
  3. Ellenőrizze, hogy az SQL Server sikeresen elindul-e az új fájl elérési útjával. Ezt minden csomóponton végezze el. Jelenleg egyszerre csak egy csomópont futtassa az SQL Servert. Nem futtathatók egyszerre, mert mindketten egyidejűleg próbálnak hozzáférni az adatfájlokhoz. Azért, hogy elkerüljük az SQL Server véletlen indítását mindkét csomóponton, használjon fájlrendszeri fürt erőforrást annak érdekében, hogy a megosztás ne legyen kétszer csatlakoztatva a különböző csomópontokhoz. Az alábbi parancsok elindítják az SQL Servert, ellenőrzik az állapotot, majd leállítja az SQL Servert.

    sudo systemctl start mssql-server
    sudo systemctl status mssql-server
    sudo systemctl stop mssql-server
    

Ezen a ponton az SQL Server mindkét példánya úgy van konfigurálva, hogy a megosztott tárolóban lévő adatbázisfájlokkal fusson. A következő lépés az SQL Server pacemakerhez való konfigurálása.

A Pacemaker telepítése és konfigurálása minden fürtcsomóponton

  1. Mindkét fürtcsomóponton hozzon létre egy fájlt az SQL Server-felhasználónév és -jelszó tárolásához a Pacemaker-bejelentkezéshez. A következő parancs létrehozza és feltölti ezt a fájlt:

    sudo touch /var/opt/mssql/secrets/passwd
    echo '<loginName>' | sudo tee -a /var/opt/mssql/secrets/passwd
    echo '<password>' | sudo tee -a /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/secrets/passwd
    sudo chmod 600 /var/opt/mssql/secrets/passwd
    

    Vigyázat

    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.

  2. Mindkét fürtcsomóponton nyissa meg a Pacemaker tűzfalportjait. Ha firewalldszeretné megnyitni ezeket a portokat, 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ású konfigurációval, a Pacemaker számára a következő portokat kell megnyitnia, hogy képes legyen kommunikálni a klaszter más csomópontjaival:

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

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    
  4. Adja meg a Pacemaker- és Corosync-csomagok telepítésekor létrehozott alapértelmezett felhasználó jelszavát. Használja ugyanazt a jelszót mindkét csomóponton.

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

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  6. Telepítse az SQL Server FCI-erőforrásügynökét. Futtassa a következő parancsokat mindkét csomóponton.

    sudo yum install mssql-server-ha
    

Kerítésügynök konfigurálása

A STONITH-eszköz egy kerítésügynököt biztosít. A Pacemaker beállítása a Red Hat Enterprise Linuxon az Azure-ban például bemutatja, hogyan hozhat létre STONITH-eszközt ehhez a fürthöz az Azure-ban. Módosítsa a környezet utasításait.

Hozza létre a fürtöt

  1. Az egyik csomóponton hozza létre a fürtöt.

    sudo pcs cluster auth <nodeName1 nodeName2 ...> -u hacluster
    sudo pcs cluster setup --name <clusterName> <nodeName1 nodeName2 ...>
    sudo pcs cluster start --all
    
  2. Konfigurálja az SQL Server, a fájlrendszer és a virtuális IP-erőforrások fürterőforrásait, és juttassa el a konfigurációt a fürtbe. A következő információkra van szüksége:

    • SQL Server-erőforrásnév: A fürtözött SQL Server-erőforrás neve.
    • lebegő IP-erőforrás neve: A virtuális IP-cím erőforrásának neve.
    • IP-cím: Az az IP-cím, amelyet az ügyfelek az SQL Server fürtözött példányához való csatlakozáshoz használnak.
    • fájlrendszerbeli erőforrás neve: A fájlrendszer-erőforrás neve.
    • eszköz: Az NFS megosztási útvonala
    • eszköz: A megosztáshoz csatlakoztatott helyi elérési út
    • fstype: Fájlmegosztás típusa (azaz nfs)

    Frissítse a környezetéhez tartozó alábbi szkript értékeit. Futtassa egy csomóponton a fürtözött szolgáltatás konfigurálásához és elindításához.

    sudo pcs cluster cib cfg
    sudo pcs -f cfg resource create <sqlServerResourceName> ocf:mssql:fci
    sudo pcs -f cfg resource create <floatingIPResourceName> ocf:heartbeat:IPaddr2 ip=<ip Address>
    sudo pcs -f cfg resource create <fileShareResourceName> Filesystem device=<networkPath> directory=<localPath> fstype=<fileShareType>
    sudo pcs -f cfg constraint colocation add <virtualIPResourceName> <sqlResourceName>
    sudo pcs -f cfg constraint colocation add <fileShareResourceName> <sqlResourceName>
    sudo pcs cluster cib-push cfg
    

    A következő szkript például létrehoz egy mssqlhanevű SQL Server-fürtözött erőforrást, és egy lebegő IP-erőforrást, amely ip-címmel 10.0.0.99. Emellett létrehoz egy fájlrendszer-erőforrást, és korlátozásokat ad hozzá, hogy az összes erőforrás ugyanazon a csomóponton legyen elhelyezve, mint az SQL-erőforrás.

    sudo pcs cluster cib cfg
    sudo pcs -f cfg resource create mssqlha ocf:mssql:fci
    sudo pcs -f cfg resource create virtualip ocf:heartbeat:IPaddr2 ip=10.0.0.99
    sudo pcs -f cfg resource create fs Filesystem device="10.8.8.0:/mnt/nfs" directory="/var/opt/mssql/data" fstype="nfs"
    sudo pcs -f cfg constraint colocation add virtualip mssqlha
    sudo pcs -f cfg constraint colocation add fs mssqlha
    sudo pcs cluster cib-push cfg
    

    A konfiguráció leküldése után az SQL Server egy csomóponton indul el.

  3. Ellenőrizze, hogy az SQL Server elindult-e.

    sudo pcs status
    

    Az alábbi példa azokat az eredményeket mutatja be, amikor a Pacemaker sikeresen elindította az SQL Server fürtözött példányát.

    fs     (ocf::heartbeat:Filesystem):    Started sqlfcivm1
    virtualip     (ocf::heartbeat:IPaddr2):      Started sqlfcivm1
    mssqlha  (ocf::mssql:fci): Started sqlfcivm1
    
    PCSD Status:
     sqlfcivm1: Online
     sqlfcivm2: Online
    
    Daemon Status:
     corosync: active/disabled
     pacemaker: active/enabled
     pcsd: active/enabled