Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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.
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
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.
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.
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.
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-serverCsatlakozzon az SQL Server
masteradatbázishoz asafió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 STATEaz állapot lekérdezéséhez asp_server_diagnostics,setupadminésALTER ANY LINKED SERVERelemekkel, valamint az FCI-példány nevének az erőforrásnévvel való frissítéséhez asp_dropserveréssp_addserverfuttatásával.Az elsődleges csomóponton állítsa le és tiltsa le az SQL Servert.
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/hostsszerkesztését a(z)visegítségével.sudo vi /etc/hostsAz alábbi példa bemutatja a két csomópontot, nevezetesen a
/etc/hostséssqlfcivm1, asqlfcivm2kiegé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:
nfs-utilstelepítése:sudo yum -y install nfs-utilsEngedélyezés és indítás
rpcbind:sudo systemctl enable rpcbind && sudo systemctl start rpcbindEngedélyezés és indítás
nfs-server:sudo systemctl enable nfs-server && sudo systemctl start nfs-serverA
/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)A megosztások exportálása:
sudo exportfs -ravEllenőrizze, hogy az elérési utak meg vannak-e osztva/exportálva, és futtassa az NFS-kiszolgálóról:
sudo showmount -eKivétel hozzáadása a SELinuxban:
sudo setsebool -P nfs_export_all_rw 1Nyissa 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.
nfs-utilstelepítése:sudo yum -y install nfs-utilsNyissa 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 --reloadEllenőrizze, hogy láthatóak-e az NFS-megosztások az ügyfélgépeken:
sudo showmount -e <IP OF NFS SERVER>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:
- NFS-kiszolgálók és tűzfallal | Stack Exchange
- NFS-kötet csatlakoztatása | Linux hálózati rendszergazdák útmutatója
- NFS-kiszolgáló konfigurációja | Red Hat ügyfélportál
Az adatbázisfájlok könyvtárának csatlakoztatása, hogy a megosztott tárolóra mutasson.
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/* exitAz összes fürtcsomóponton szerkessze a
/etc/fstabfájlt, hogy tartalmazza a mount parancsot.<IP OF NFS SERVER>:<shared_storage_path> <database_files_directory_path> nfs timeo=14,intrAz 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.
Futtassa a
mount -aparancsot, hogy frissítse a rendszer a csatlakoztatott útvonalakat.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 amssqlhelyi 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/* exitEllenő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
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/passwdVigyá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.
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 --reloadHa 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
Telepítse a Pacemaker-csomagokat minden csomópontra.
sudo yum install pacemaker pcs fence-agents-all resource-agentsAdja 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 haclusterEngedélyezze és indítsa el
pcsdszolgá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 pacemakerTelepí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
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 --allKonfigurá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 cfgA 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ímmel10.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 cfgA konfiguráció leküldése után az SQL Server egy csomóponton indul el.
Ellenőrizze, hogy az SQL Server elindult-e.
sudo pcs statusAz 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