Ez a cikk azt ismerteti, hogyan hozhat létre háromcsomópontos fürtöt Linuxon a Pacemaker használatával, és hogyan adhat hozzá egy korábban létrehozott rendelkezésre állási csoportot erőforrásként a fürthöz. A magas rendelkezésre álláshoz a Linuxon elérhető rendelkezésre állási csoportnak három csomópontra van szüksége – lásd: Magas rendelkezésre állás és adatvédelem a rendelkezésre állási csoport konfigurációihoz.
Az SQL Server nincs olyan szorosan integrálva a Pacemakerrel Linuxon, mint a Windows Server feladatátvételi fürtszolgáltatásával (WSFC). Az SQL Server-példány nem ismeri a fürtöt, és az irányítás kívülről történik. A Pacemaker klaszter erőforrás-vezénylést biztosít. A virtuális hálózat neve a Windows Server feladatátvételi fürtszolgáltatásra is vonatkozik; A Pacemakerben nincs egyenértékű. A fürtinformációkat lekérdező rendelkezésre állási csoport dinamikus felügyeleti nézetei üres sorokat ad vissza a Pacemaker-fürtökön. Ha figyelőt szeretne létrehozni a feladatátvétel utáni transzparens újracsatlakozáshoz, manuálisan regisztrálja a figyelő nevét a DNS-ben a virtuális IP-erőforrás létrehozásához használt IP-címmel.
Az alábbi szakaszok bemutatják a Pacemaker-fürt beállításának lépéseit, hozzáadva egy rendelkezésre állási csoportot a fürthöz mint erőforrást a magas rendelkezésre állás érdekében, minden támogatott Linux-disztribúció esetén.
A fürtözési réteg alapja a Red Hat Enterprise Linux (RHEL) HA bővítményPacemaker.
Jegyzet
A Red Hat teljes dokumentációhoz való hozzáféréshez érvényes előfizetés szükséges.
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 a RHEL referenciadokumentációbantalálhat.
Ütemterv
A magas rendelkezésre állás érdekében Linux-kiszolgálókon létrehozott rendelkezésre állási csoport lépései eltérnek a Windows Server feladatátvevő fürt eljárásaitól. Az alábbi lista a magas szintű lépéseket ismerteti:
SQL Server konfigurálása a fürtcsomópontokon.
A rendelkezésre állási csoportlétrehozása.
Konfiguráljon egy fürterőforrás-kezelőt, például a Pacemakert. Ezek az utasítások ebben a cikkben találhatók.
A fürterőforrás-kezelő konfigurálásának módja az adott Linux-disztribúciótól függ.
Fontos
Az éles környezetekben szükség van egy ''fencing agent''-re a magas rendelkezésre állás érdekében. A dokumentációban szereplő bemutatók nem használnak kerítésügynököket. A bemutatók csak tesztelésre és ellenőrzésre használhatók.
Egy Linux-klaszter a "fencing" technikát használja, hogy a klasztert visszaállítsa egy ismert állapotba. A kerítés konfigurálásának módja az elosztástól és a környezettől függ. A kerítés jelenleg nem érhető el egyes felhőkörnyezetekben. További információkért lásd a RHEL magas rendelkezésre állású fürtök és virtualizációs platformok támogatási szabályzatait.
Adja hozzá a rendelkezésre állási csoportot a fürterőforrásaként.
Az RHEL magas rendelkezésre állásának konfigurálásához engedélyezze a magas rendelkezésre állású előfizetést, majd konfigurálja a Pacemakert.
Az RHEL magas rendelkezésre állású előfizetésének engedélyezése
A fürt minden csomópontjának rendelkeznie kell egy megfelelő előfizetéssel az RHEL-hez és a Magas rendelkezésre állás kiegészítőhöz. Tekintse át a követelményeket a(z) Magas rendelkezésre állású fürtcsomagok telepítési módját a Red Hat Enterprise Linux. Az előfizetés és az adattárak konfigurálásához kövesse az alábbi lépéseket:
Regisztrálja a rendszert.
sudo subscription-manager register
Adja meg a felhasználónevet és a jelszót.
Sorolja fel a regisztrációhoz elérhető csoportokat.
sudo subscription-manager list --available
Jegyzet
Az RHEL 10 esetében a listaparancs a következő:
sudo subscription-manager repos --list
Az elérhető készletek listájában jegyezze fel a magas rendelkezésre állású előfizetés készletazonosítóját.
Frissítse a következő szkriptet. Cserélje le a <pool id>-t a készlet ID-ra a magas rendelkezésre állás biztosítása érdekében az előző lépésben. Futtassa a szkriptet az előfizetés csatolásához.
sudo subscription-manager attach --pool=<pool id>
Engedélyezze az adattárat.
RHEL 7
sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpms
RHEL 8
sudo subscription-manager repos --enable=rhel-8-for-x86_64-highavailability-rpms
RHEL 9
sudo subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpms
RHEL 10
sudo subscription-manager repos --enable=rhel-10-for-x86_64-highavailability-rpms
További információ: Pacemaker – A nyílt forráskódú, magas rendelkezésre állású fürt.
Az előfizetés konfigurálása után hajtsa végre az alábbi lépéseket a Pacemaker konfigurálásához:
Az előfizetés regisztrálása után hajtsa végre az alábbi lépéseket a Pacemaker konfigurálásához:
Az összes fürtcsomóponton nyissa meg a Pacemaker tűzfalportjait. A firewalldparanccsal nyissa meg ezeket a portokat, futtassa a következő parancsot:
sudo firewall-cmd --permanent --add-service=high-availability
sudo firewall-cmd --reload
Ha a tűzfal nem rendelkezik beépített magas rendelkezésre állású konfigurációval, nyissa meg az alábbi portokat a Pacemaker számára.
- TCP: 2224-ös, 3121-s, 21064-s portok
- UDP: 5405-ös port
Telepítse a Pacemaker-csomagokat az összes csomópontra.
sudo yum install pacemaker pcs fence-agents-all resource-agents
Adja meg a Pacemaker- és Corosync-csomagok telepítésekor létrehozott alapértelmezett felhasználó jelszavát. Használja ugyanazt a jelszót az összes csomóponton.
sudo passwd hacluster
Ha azt szeretné, hogy a csomópontok az újraindítás után újra csatlakozhatnak a fürthöz, engedélyezze és indítsa el a pcsd szolgáltatást és a Pacemakert. Futtassa az alábbi parancsot az összes csomóponton.
sudo systemctl enable pcsd
sudo systemctl start pcsd
sudo systemctl enable pacemaker
Hozza létre a fürtöt. A fürt létrehozásához futtassa a következő parancsot egyetlen csomóponton:
RHEL 7
sudo pcs cluster auth <node1> <node2> <node3> -u hacluster -p <password for hacluster>
sudo pcs cluster setup --name <clusterName> <node1> <node2> <node3>
sudo pcs cluster start --all
sudo pcs cluster enable --all
RHEL 8 és újabb verziók
Az RHEL 8- és újabb verzióihoz külön kell hitelesítenie a csomópontokat. Amikor a rendszer kéri, adja meg manuálisan a hacluster felhasználónevét és jelszavát.
sudo pcs host auth <node1> <node2> <node3>
sudo pcs cluster setup <clusterName> <node1> <node2> <node3>
sudo pcs cluster start --all
sudo pcs cluster enable --all
Jegyzet
Ha korábban ugyanazon csomópontokon konfigurált egy fürtöt, a --force opciót kell használnia pcs cluster setupfuttatásakor. Ez a beállítás egyenértékű a pcs cluster destroyfuttatásával. A Pacemaker újbóli engedélyezéséhez futtassa a következő parancsot: sudo systemctl enable pacemaker.
Telepítse az SQL Server-erőforrásügynököt az SQL Serverhez. Futtassa az alábbi parancsokat az összes csomóponton.
sudo yum install mssql-server-ha
A Pacemaker konfigurálása után használja a(z) pcs-t a fürttel történő interakcióhoz. Hajtsa végre az összes parancsot egy csomóponton a fürtből.
Több hálózati adapter (NIC) megfontolandó szempontjai
A több hálózati adapterrel rendelkező kiszolgálók magas rendelkezésre állásának beállításakor kövesse az alábbi javaslatokat:
Győződjön meg arról, hogy a hosts fájl be van állítva, hogy a több hálózati adapter kiszolgálói IP-címe az egyes csomópontokon lévő Linux-kiszolgáló állomásneve legyen.
Amikor a fürtöt Pacemakerrel állítja be, a kiszolgálók gazdagépneveinek használata esetén a Corosyncnak konfigurálnia kellene az összes hálózati interfész beállításait. Csak egyetlen hálózati adapteren keresztül szeretnénk a Pacemaker/Corosync kommunikációt. A Pacemaker-fürt konfigurálása után módosítsa a konfigurációt a corosync.conf fájlban, és frissítse a Pacemaker/Corosync kommunikációhoz használni kívánt dedikált hálózati adapter IP-címét.
A <hostname> fájlban megadott corosync.conf-nak meg kell egyeznie a fordított keresés (ping -a <ip_address>) során kapott kimenettel, és a gazdagépen konfigurált rövid névnek kell lennie. Győződjön meg arról, hogy a hosts fájl a névfeloldáshoz megfelelő IP-címet is jelöli.
A corosync.conf fájl példájának módosításait az alábbiakban emeljük ki:
nodelist {
node {
ring0_addr: <ip_address_of_node1_NIC1>
name: <hostname_of_node1>
nodeid: 1
}
node {
ring0_addr: <ip_address_of_node2_NIC1>
name: <hostname_of_node2>
nodeid: 2
}
node {
ring0_addr: <ip_address_of_node3_NIC1>
name: <hostname_of_node3>
nodeid: 3
}
}
A Pacemaker-fürt szállítóknak kerítési eszközzel kell elkülöníteniük a meghiúsult csomópontokat, a támogatott fürtbeállításhoz konfigurálva. Ha a fürterőforrás-kezelő nem tudja meghatározni egy csomópont vagy erőforrás állapotát, a lekerítés újra ismert állapotba hozza a fürtöt.
A kerítéseszköz egy kerítésügynököt biztosít.
A Pacemaker beállítása a Red Hat Enterprise Linuxon, az Azure környezetében bemutatja, hogyan hozhat létre egy fencing eszközt ehhez a fürthöz az Azure-ban. Módosítsa a környezet utasításait.
Az erőforrásszintű védelmi mechanizmussal biztosítható, hogy egy erőforrás konfigurálásával ne merüljön fel adatsérülés kimaradás esetén. Például erőforrásszintű kerítéssel elavultként jelölheti meg a lemezt egy csomóponton, ha a kommunikációs kapcsolat megszakad.
A csomópontszintű kerítés biztosítja, hogy a csomópontok ne futtassanak erőforrásokat. Ez a csomópont alaphelyzetbe állításával történik. A Pacemaker számos különféle kerítéseszközt támogat. Ilyenek például a szünetmentes tápegységek vagy a kiszolgálók felügyeleti adapterei.
A sikertelen csomópontok kerítésével kapcsolatos információkért tekintse meg a következő cikkeket:
Jegyzet
Mivel a csomópontszintű kerítés konfigurációja nagymértékben függ a környezetétől, tiltsa le ebben az oktatóanyagban (később is konfigurálható). A következő szkript letiltja a csomópontszintű kerítést:
sudo pcs property set stonith-enabled=false
A kerítés letiltása csak tesztelési célokra szolgál. Ha éles környezetben szeretné használni a Pacemakert, a környezetétől függően tervezze meg a fencing megvalósítását, és tartsa azt engedélyezve.
A fürt tulajdonságának újraellenőrzési időköze beállítása
cluster-recheck-interval azt a lekérdezési időközt jelzi, amelyen a fürt ellenőrzi az erőforrásparaméterek, a korlátozások vagy más fürtbeállítások változásait. Ha egy replika leáll, a fürt megpróbálja újraindítani a replikát egy időközönként, amelyet a failure-timeout érték és a cluster-recheck-interval érték határol. Ha például failure-timeout 60 másodpercre van állítva, és cluster-recheck-interval 120 másodpercre van állítva, az újraindítást 60 másodpercnél hosszabb, de 120 másodpercnél rövidebb időközzel próbálja meg. Javasoljuk, hogy állítsa a hibaidőkorlátot 60 másodpercre, és cluster-recheck-interval 60 másodpercnél nagyobb értékre. Nem ajánlott cluster-recheck-interval kis értékre állítani.
Az 2 minutes érték beállításához futtasson egy parancsot:
sudo pcs property set cluster-recheck-interval=2min
Ha már rendelkezik egy Pacemaker-fürt által felügyelt rendelkezésre állási csoport erőforrásával, a Pacemaker 1.1.18-11.el7 csomagja viselkedésbeli változást vezetett be a start-failure-is-fatal fürtbeállításhoz, amikor az értéke false. Ez a módosítás hatással van a feladatátvételi munkafolyamatra. Ha egy elsődleges replika leállás történik, a fürtnek az egyik elérhető másodlagos replikára kell átváltania. Ehelyett a felhasználók észrevehetik, hogy a fürt továbbra is megpróbálja elindítani a sikertelen elsődleges replikát. Ha az elsődleges nem jön online állapotba (állandó leállás miatt), akkor a fürt sosem vált át egy másik elérhető másodlagos replikára. A módosítás miatt a start-failure-is-fatal beállításához korábban javasolt konfiguráció már nem érvényes, és a beállítást vissza kell állítani a truealapértelmezett értékére.
Emellett az AG erőforrást frissíteni kell, hogy a failure-timeout tulajdonságot is tartalmazza.
Az true érték beállításához futtasson egy parancsot:
sudo pcs property set start-failure-is-fatal=true
A ag_cluster erőforrástulajdonság failure-timeout60sfrissítéséhez futtassa a következőt:
pcs resource update ag_cluster meta failure-timeout=60s
A Pacemaker-fürtök tulajdonságairól lásd: Pacemaker-fürtök tulajdonságai.
SQL Server-bejelentkezés létrehozása a Pacemakerhez
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.
Minden SQL Server-példányon hozzon létre egy kiszolgálói bejelentkezést a Pacemakerszámára.
Az alábbi Transact-SQL létrehoz egy bejelentkezést. Cserélje le <password> saját összetett jelszavára.
USE [master];
GO
CREATE LOGIN [pacemakerLogin]
WITH PASSWORD = N'<password>';
ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin];
A rendelkezésre állási csoport létrehozásakor a Pacemaker-felhasználónak ALTER, CONTROLés VIEW DEFINITION engedélyre van szüksége a rendelkezésre állási csoporthoz a létrehozás után, de a csomópontok hozzáadása előtt.
Minden SQL Server-példányon mentse az SQL Server bejelentkezésihitelesítő adatait.
Cserélje le <password> saját összetett jelszavára.
echo 'pacemakerLogin' >> ~/pacemaker-passwd
echo '<password>' >> ~/pacemaker-passwd
sudo mv ~/pacemaker-passwd /var/opt/mssql/secrets/passwd
sudo chown root:root /var/opt/mssql/secrets/passwd
sudo chmod 400 /var/opt/mssql/secrets/passwd # Only readable by root
Rendelkezésre állási csoport erőforrásának létrehozása
A rendelkezésre állási csoport erőforrásának létrehozásához használja pcs resource create parancsot, és állítsa be az erőforrás tulajdonságait. A következő parancs létrehoz egy ocf:mssql:ag fő/alárendelt típusú erőforrást a rendelkezésre állási csoporthoz ag1névvel. Futtassa a következő parancsot egy csomóponton.
RHEL 7
Használja a következő create parancsot:
sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=60s master notify=true
RHEL 8 és újabb verziók
Használja a következő create parancsot:
sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=60s promotable notify=true
Jegyzet
Amikor létrehozza az erőforrást, és ezt követően rendszeres időközönként a Pacemaker erőforrás-ügynök automatikusan beállítja a rendelkezésre állási csoport REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT értékét a rendelkezésre állási csoport konfigurációja alapján. Ha például a rendelkezésre állási csoport három szinkron replikával rendelkezik, az ügynök REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT1értékre állítja. További részletekért és további konfigurációs lehetőségekért tekintse meg rendelkezésre állási csoport konfigurációinak magas rendelkezésre állását és adatvédelmet.
Virtuális IP-erőforrás létrehozása
A virtuális IP-cím erőforrásának létrehozásához futtassa a következő parancsot egy csomóponton. Használjon egy elérhető statikus IP-címet a hálózatról. Cserélje le az IP-címet a <10.128.16.240> között érvényes IP-címre.
sudo pcs resource create virtualip ocf:heartbeat:IPaddr2 ip=<10.128.16.240>
A Pacemakerben nincs egyenértékű virtuális kiszolgálónév. Ha ip-cím helyett karakterlánc-kiszolgálónévre mutató kapcsolati sztringet szeretne használni, regisztrálja a virtuális IP-erőforrás címét és a kívánt virtuális kiszolgálónevet a DNS-ben. Dr-konfigurációk esetén regisztrálja a kívánt virtuális kiszolgálónevet és IP-címet az elsődleges és a DR-hely DNS-kiszolgálóival.
Áthelyezési kényszer hozzáadása
A Pacemaker-fürt minden olyan döntése, mint például hogy hol fusson egy erőforrás, pontszámok összehasonlításával történik. A pontszámok kiszámítása erőforrásonként történik. A fürterőforrás-kezelő az adott erőforrás legmagasabb pontszámával rendelkező csomópontot választja ki. Ha egy csomópont negatív pontszámmal rendelkezik egy erőforráshoz, az erőforrás nem futtatható ezen a csomóponton.
Egy pacemaker-fürtön korlátozásokkal módosíthatja a fürt döntéseit. A korlátozások pontszámmal rendelkeznek. Ha egy korlátozás pontszáma alacsonyabb, mint INFINITY, a Pacemaker javaslatnak tekinti. A INFINITY pontszáma kötelező.
Annak biztosítása érdekében, hogy az elsődleges replika és a virtuális IP-erőforrások ugyanazon a gazdagépen fussanak, definiáljunk egy olyan elhelyezési kényszert, amelynek pontszáma INFINITY. A helymegkötés hozzáadásához futtassa a következő parancsot egy csomóponton.
RHEL 7
Amikor létrehozza a ag_cluster erőforrást az RHEL 7-ben, az ag_cluster-masterként hozza létre az erőforrást. Használja a következő parancsot az RHEL 7-hez:
sudo pcs constraint colocation add virtualip ag_cluster-master INFINITY with-rsc-role=Master
RHEL 8
Amikor létrehozza a ag_cluster erőforrást az RHEL 8-ban, az ag_cluster-cloneként hozza létre az erőforrást. Használja a következő parancsot:
sudo pcs constraint colocation add virtualip with master ag_cluster-clone INFINITY with-rsc-role=Master
RHEL 9 és újabb verziók
Amikor a ag_cluster erőforrást a RHEL 9 és újabb verzióiban hozza létre, az ag_cluster-clone-kén jön létre az erőforrás. Használja a következő parancsot:
sudo pcs constraint colocation add virtualip with promoted ag_cluster-clone INFINITY with-rsc-role=Promoted
Rendelési kényszer hozzáadása
A kolokációs kényszer implicit módon tartalmaz egy rendezési kényszert. A rendelkezésre állási csoport erőforrásának áthelyezése előtt áthelyezi a virtuális IP-erőforrást. Alapértelmezés szerint az események sorrendje a következő:
Felhasználói problémák pcs resource move a rendelkezésre állási csoport elsődleges csomópont1 és csomópont2 között.
A virtuális IP-erőforrás leáll az 1. csomóponton.
A virtuális IP-erőforrás a 2. csomóponton kezdődik.
Jegyzet
Ezen a ponton az IP-cím ideiglenesen a 2. csomópontra mutat, míg a 2. csomópont továbbra is feladatátvétel előtti másodlagos.
Az 1. csomópont elsődleges rendelkezésre állási csoportja másodlagosra lesz lefokozva.
A 2-es csomópont rendelkezésre állási csoport másodlagosa elsődleges szerepkörbe van előléptetve.
Ha meg szeretné akadályozni, hogy az IP-cím ideiglenesen a csomópontra mutasson a feladatátvétel előtti másodlagossal, adjon hozzá egy rendezési kényszert.
Rendelési kényszer hozzáadásához futtassa a következő parancsot egy csomóponton:
RHEL 7
sudo pcs constraint order promote ag_cluster-master then start virtualip
RHEL 8 és újabb verziók
sudo pcs constraint order promote ag_cluster-clone then start virtualip
Fontos
Miután konfigurálta a fürtöt, és hozzáadta a rendelkezésre állási csoportot fürt erőforrásként, nem használhatja a Transact-SQL-t a rendelkezésre állási csoport erőforrásainak átváltására. A Linuxon futó SQL Server-fürterőforrások nincsenek olyan szorosan összekapcsolva az operációs rendszerrel, mint a Windows Server feladatátvevő fürtön (WSFC). Az SQL Server szolgáltatás nincs tisztában a fürt jelenlétével. Az összes vezénylés a klaszterkezelő eszközökkel történik. RHEL vagy Ubuntu esetén használja a pcs és az SLES-ben crm eszközöket.
Manuálisan átállítja az elérhetőségi csoportot a pcs-ra. Ne kezdeményezz feladatátvételt a Transact-SQL használatával. Útmutatásért lásd feladatátvételi.
Kapcsolódó tartalom
A fürtözési réteg a SUSE High Availability Extension (HAE) alapul, amely a Pacemaker-re épül.
A fürtkonfigurációról, az erőforrás-ügynök beállításairól, a felügyeletről, az ajánlott eljárásokról és a javaslatokról további információt SUSE Linux Enterprise High Availability Extensioncímű témakörben talál.
Ütemterv
A magas rendelkezésre állású csoport létrehozásának eljárása különbözik a Linux-kiszolgálók és a Windows Server feladatátvevő fürt esetében. Az alábbi lista a magas szintű lépéseket ismerteti:
SQL Server konfigurálása a fürtcsomópontokon.
A rendelkezésre állási csoportlétrehozása.
Konfiguráljon egy fürterőforrás-kezelőt, például a Pacemakert. Ezek az utasítások ebben a cikkben találhatók.
A fürterőforrás-kezelő konfigurálásának módja az adott Linux-disztribúciótól függ.
Fontos
Az éles környezetekben szükség van egy ''fencing agent''-re a magas rendelkezésre állás érdekében. A cikkben szereplő példák nem használnak kerítésügynököket. Csak tesztelésre és ellenőrzésre használhatók.
Egy Linux-klaszter a "fencing" technikát használja, hogy a klasztert visszaállítsa egy ismert állapotba. A kerítés konfigurálásának módja az elosztástól és a környezettől függ. A kerítés jelenleg nem érhető el egyes felhőkörnyezetekben. További információ: SUSE Linux Enterprise High Availability Extension.
Adja hozzá a rendelkezésre állási csoportot erőforrásként a fürthöz
Előfeltételek
A következő teljes körű forgatókönyv végrehajtásához három gépre van szükség a három csomópontfürt üzembe helyezéséhez. Az alábbi lépések a kiszolgálók konfigurálását ismertetik.
Az első lépés az operációs rendszer konfigurálása a fürtcsomópontokon. Ehhez az útmutatóhoz használja az SLES 12 SP3-at a HA bővítmény érvényes előfizetésével.
Telepítse és állítsa be az SQL Server szolgáltatást az összes csomóponton. Részletes útmutatásért tekintse meg LinuxSQL Server telepítési útmutatóját.
Jelöljön ki egy csomópontot elsődlegesként, a többi csomópontot pedig másodfokúként. Használja ezeket a kifejezéseket az útmutatóban.
Győződjön meg arról, hogy a klaszterhez tartozó csomópontok képesek kommunikálni egymással.
Az alábbi példa bemutatja a /etc/hosts módosításait három csomópont számára, amelyek nevei SLES1, SLES2 és SLES3.
127.0.0.1 localhost
10.128.16.33 SLES1
10.128.16.77 SLES2
10.128.16.22 SLES3
Minden fürtcsomópontnak SSH-n keresztül kell tudnia hozzáférni egymáshoz. Az olyan eszközök, mint a hb_report vagy a crm_report (hibaelhárításhoz) és a Hawk's History Explorerhez jelszó nélküli SSH-hozzáférés szükséges a csomópontok között, ellenkező esetben csak az aktuális csomópontról gyűjthetnek adatokat. Ha nem szabványos SSH-portot használ, használja a -X lehetőséget (lásd man oldalt). Ha például az SSH-port 3479, hívjon meg egy crm_report a következővel:
sudo crm_report -X "-p 3479" [...]
További információ: SLES felügyeleti útmutató – Egyéb szakasz.
SQL Server-bejelentkezés létrehozása a Pacemakerhez
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.
Minden SQL Server-példányon hozzon létre egy kiszolgálói bejelentkezést a Pacemakerszámára.
Az alábbi Transact-SQL létrehoz egy bejelentkezést. Cserélje le <password> saját összetett jelszavára.
USE [master];
GO
CREATE LOGIN [pacemakerLogin]
WITH PASSWORD = N'<password>';
ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin];
A rendelkezésre állási csoport létrehozásakor a Pacemaker-felhasználónak ALTER, CONTROLés VIEW DEFINITION engedélyre van szüksége a rendelkezésre állási csoporthoz a létrehozás után, de a csomópontok hozzáadása előtt.
Minden SQL Server-példányon mentse az SQL Server bejelentkezésihitelesítő adatait.
Cserélje le <password> saját összetett jelszavára.
echo 'pacemakerLogin' >> ~/pacemaker-passwd
echo '<password>' >> ~/pacemaker-passwd
sudo mv ~/pacemaker-passwd /var/opt/mssql/secrets/passwd
sudo chown root:root /var/opt/mssql/secrets/passwd
sudo chmod 400 /var/opt/mssql/secrets/passwd # Only readable by root
Linux-kiszolgálókon konfigurálja a rendelkezésre állási csoportot, majd a fürt erőforrásainak konfigurálását végezze el. A rendelkezésre állási csoport konfigurálásához tekintse meg az SQL Server rendelkezésre állási csoport linuxos magas rendelkezésre állásának konfigurálását
A magas rendelkezésre állású bővítmény telepítése
Referenciaként lásd a A SUSE Linux Enterprise Server és a magas rendelkezésre állású bővítmény telepítése.
Telepítse az SQL Server erőforrás-ügynökcsomagját mindkét csomópontra.
sudo zypper install mssql-server-ha
Az első csomópont beállítása
Tekintse meg SLES telepítési útmutatóját.
Jelentkezzen be arra a fizikai vagy virtuális gépre mint root, amelyet fürtcsomópontként szeretne használni.
Indítsa el a bootstrap-szkriptet a következő végrehajtásával:
sudo ha-cluster-init
Ha az NTP nincs úgy konfigurálva, hogy indításkor induljon el, megjelenik egy üzenet.
Ha mégis folytatja, a szkript automatikusan létrehozza az SSH-hozzáférés és a Csync2 szinkronizálási eszköz kulcsait, és elindítja a mindkettőhöz szükséges szolgáltatásokat.
A fürtkommunikációs réteg (Corosync) konfigurálása:
Adjon meg egy hálózati címet, amelyhez csatlakozni szeretne. Alapértelmezés szerint a szkript az eth0 hálózati címét javasolja. Másik lehetőségként adjon meg egy másik hálózati címet, például a kötvény0 címét.
Adjon meg egy csoportos küldési címet. A szkript egy véletlenszerű címet javasol, amelyet alapértelmezés szerint használhat.
Adjon meg egy csoportos küldési portot. A szkript alapértelmezés szerint az 5405-öt javasolja.
A SBD ()konfigurálásához adjon meg egy állandó elérési utat az SBD-hez használni kívánt blokkeszköz partíciójához. Az elérési útnak egységesnek kell lennie a fürt összes csomópontjában.
Végül a szkript elindítja a Pacemaker szolgáltatást, hogy online állapotba hozza az egycsomópontos fürtöt, és engedélyezze a Hawk2 webes felügyeleti felületet. A Hawk2-hez használandó URL-cím megjelenik a képernyőn.
A beállítási folyamat részleteit a /var/log/sleha-bootstrap.logalatt találja. Most már van egy működő egycsomópontos klasztere. Ellenőrizze a fürt állapotát crm-állapottal:
sudo crm status
A klaszterkonfiguráció a crm configure show xml vagy crm configure showértékekkel is látható.
A rendszerindítási eljárás létrehoz egy hacluster nevű Linux-felhasználót a linuxjelszóval. A lehető leghamarabb cserélje le az alapértelmezett jelszót egy biztonságos jelszóra:
sudo passwd hacluster
Csomópontok hozzáadása a meglévő fürthöz
Ha egy vagy több csomóponttal rendelkező fürttel rendelkezik, adjon hozzá több fürtcsomópontot a ha-cluster-join bootstrap szkripttel. A szkriptnek csak egy meglévő fürtcsomóponthoz kell hozzáférnie, és automatikusan elvégzi az alapbeállítást az aktuális gépen. Kövesse az alábbi lépéseket:
Ha a meglévő fürtcsomópontokat a YaST fürtmodullal konfigurálta, győződjön meg arról, hogy a következő előfeltételek teljesülnek a ha-cluster-joinfuttatása előtt:
A meglévő csomópontok gyökérfelhasználója SSH-kulcsokkal rendelkezik a jelszó nélküli bejelentkezéshez.
Csync2 a meglévő csomópontokon van konfigurálva. További információért lásd: Csync2 konfigurálása a YaST-tal.
Jelentkezzen be root a fürthöz csatlakozni kívánt fizikai vagy virtuális gépre.
Indítsa el a bootstrap-szkriptet a következő végrehajtásával:
sudo ha-cluster-join
Ha az NTP nincs úgy konfigurálva, hogy indításkor induljon el, megjelenik egy üzenet.
Ha mégis folytatja a műveletet, a rendszer egy meglévő csomópont IP-címét kéri. Adja meg az IP-címet.
Ha még nem konfigurált jelszó nélküli SSH-hozzáférést mindkét gép között, a rendszer a meglévő csomópont fő jelszavát is kéri.
Miután bejelentkezett a megadott csomópontra, a szkript átmásolja a Corosync-konfigurációt, konfigurálja az SSH-t és a Csync2, és új fürtcsomópontként online állapotba hozza az aktuális gépet. Ettől eltekintve elindítja a Hawkhoz szükséges szolgáltatást. Ha megosztott tárterületet konfiguráltál OCFS2, akkor automatikusan létrehozza a csatolási pont könyvtárát a OCFS2 fájlrendszerhez.
Ismételje meg az előző lépéseket a fürthöz hozzáadni kívánt összes gép esetében.
A /var/log/ha-cluster-bootstrap.logalatt tekintse meg a folyamat részleteit.
Ellenőrizze a klaszter állapotát sudo crm status. Ha sikeresen hozzáadott egy második csomópontot, a kimenet a következőhöz hasonló:
sudo crm status
A következő példához hasonló kimenet jelenik meg.
3 nodes configured
1 resource configured
Online: [ SLES1 SLES2 SLES3]
Full list of resources:
admin_addr (ocf::heartbeat:IPaddr2): Started node1
Jegyzet
admin_addr a virtuális IP-fürt erőforrása, amelyet a kezdeti egycsomópontos fürtbeállítás során konfigurálnak.
Az összes csomópont hozzáadása után ellenőrizze, hogy módosítania kell-e a nem kvórum-szabályt a globális fürt opcióknál. Ez különösen fontos a kétcsomópontos fürtök esetében.
A fürt tulajdonságának újraellenőrzési időköze beállítása
cluster-recheck-interval azt a lekérdezési időközt jelzi, amelyen a fürt ellenőrzi az erőforrásparaméterek, a korlátozások vagy más fürtbeállítások változásait. Ha egy replika leáll, a fürt megpróbálja újraindítani a replikát egy időközönként, amelyet a failure-timeout érték és a cluster-recheck-interval érték határol. Ha például failure-timeout 60 másodpercre van állítva, és cluster-recheck-interval 120 másodpercre van állítva, az újraindítást 60 másodpercnél hosszabb, de 120 másodpercnél rövidebb időközzel próbálja meg. Javasoljuk, hogy állítsa a hibaidőkorlátot 60 másodpercre, és cluster-recheck-interval 60 másodpercnél nagyobb értékre. Nem ajánlott cluster-recheck-interval kis értékre állítani.
Az 2 minutes érték beállításához futtasson egy parancsot:
crm configure property cluster-recheck-interval=2min
Ha már rendelkezik egy Pacemaker-fürt által felügyelt rendelkezésre állási csoport erőforrásával, a Pacemaker 1.1.18-11.el7 csomagja viselkedésbeli változást vezetett be a start-failure-is-fatal fürtbeállításhoz, amikor az értéke false. Ez a módosítás hatással van a feladatátvételi munkafolyamatra. Ha egy elsődleges replika leállás történik, a fürtnek az egyik elérhető másodlagos replikára kell átváltania. Ehelyett a felhasználók észrevehetik, hogy a fürt továbbra is megpróbálja elindítani a sikertelen elsődleges replikát. Ha az elsődleges nem jön online állapotba (állandó leállás miatt), akkor a fürt sosem vált át egy másik elérhető másodlagos replikára. A módosítás miatt a start-failure-is-fatal beállításához korábban javasolt konfiguráció már nem érvényes, és a beállítást vissza kell állítani a truealapértelmezett értékére.
Emellett az AG erőforrást frissíteni kell, hogy a failure-timeout tulajdonságot is tartalmazza.
Az true érték beállításához futtasson egy parancsot:
crm configure property start-failure-is-fatal=true
Frissítse a meglévő AG erőforrás tulajdonságát failure-timeout-ról 60s-re a végrehajtáshoz (cserélje le a ag1-t a rendelkezésre állási csoport erőforrásának nevére):
crm configure edit ag1
A szövegszerkesztőben adja hozzá a meta failure-timeout=60s az paramután és az opelőtt.
További információk a Pacemaker klaszter tulajdonságairól: lásd Klaszter erőforrások konfigurálása.
Több hálózati adapter (NIC) megfontolandó szempontjai
A több hálózati adapterrel rendelkező kiszolgálók magas rendelkezésre állásának beállításakor kövesse az alábbi javaslatokat:
Győződjön meg arról, hogy a hosts fájl be van állítva, hogy a több hálózati adapter kiszolgálói IP-címe az egyes csomópontokon lévő Linux-kiszolgáló állomásneve legyen.
Amikor a fürtöt Pacemakerrel állítja be, a kiszolgálók gazdagépneveinek használata esetén a Corosyncnak konfigurálnia kellene az összes hálózati interfész beállításait. Csak egyetlen hálózati adapteren keresztül szeretnénk a Pacemaker/Corosync kommunikációt. A Pacemaker-fürt konfigurálása után módosítsa a konfigurációt a corosync.conf fájlban, és frissítse a Pacemaker/Corosync kommunikációhoz használni kívánt dedikált hálózati adapter IP-címét.
A <hostname> fájlban megadott corosync.conf-nak meg kell egyeznie a fordított keresés (ping -a <ip_address>) során kapott kimenettel, és a gazdagépen konfigurált rövid névnek kell lennie. Győződjön meg arról, hogy a hosts fájl a névfeloldáshoz megfelelő IP-címet is jelöli.
A corosync.conf fájl példájának módosításait az alábbiakban emeljük ki:
nodelist {
node {
ring0_addr: <ip_address_of_node1_NIC1>
name: <hostname_of_node1>
nodeid: 1
}
node {
ring0_addr: <ip_address_of_node2_NIC1>
name: <hostname_of_node2>
nodeid: 2
}
node {
ring0_addr: <ip_address_of_node3_NIC1>
name: <hostname_of_node3>
nodeid: 3
}
}
A Pacemaker-fürt szállítóknak kerítési eszközzel kell elkülöníteniük a meghiúsult csomópontokat, a támogatott fürtbeállításhoz konfigurálva. Ha a fürterőforrás-kezelő nem tudja meghatározni egy csomópont vagy erőforrás állapotát, a lekerítés újra ismert állapotba hozza a fürtöt.
Az erőforrásszintű kerítés főként azt biztosítja, hogy egy erőforrás konfigurálásával ne merüljön fel adatsérülés a kimaradás során. Erőforrásszintű kerítéssel például a DRBD -vel (elosztott replikált blokkeszköz) megjelölheti a csomóponton lévő lemezt elavultként, amikor a kommunikációs hivatkozás leáll.
A csomópontszintű kerítés biztosítja, hogy a csomópontok ne futtassanak erőforrásokat. Ez a csomópont alaphelyzetbe állításával történik, a Pacemaker implementációját STONITH-nak hívják. A Pacemaker számos különféle kerítéseszközt támogat, például szünetmentes tápegységet vagy felügyeleti adaptereket a kiszolgálókhoz.
További információ:
Fürt inicializálásakor a rendszer letiltja a kerítést, ha nem észlel konfigurációt. Később a következő parancs futtatásával engedélyezhető:
sudo crm configure property stonith-enabled=true
Fontos
A kerítés letiltása csak tesztelési célokra szolgál. Ha éles környezetben szeretné használni a Pacemakert, a környezetétől függően tervezze meg a fencing megvalósítását, és tartsa azt engedélyezve. A SUSE nem biztosít kerítésügynököket semmilyen felhőkörnyezethez (beleértve az Azure-t) vagy a Hyper-V-hez. Következésképpen a fürt szállítója nem nyújt támogatást a termelési fürtök ezekben a környezetekben való futtatásához. Dolgozunk egy olyan megoldáson, amely a jövőbeni kiadásokban is elérhető lesz.
Tekintse meg az SLES felügyeleti útmutatóját.
Pacemaker engedélyezése
Engedélyezze a Pacemakert, hogy automatikusan elindulhasson.
Futtassa a következő parancsot a fürt minden csomópontján.
systemctl enable pacemaker
Rendelkezésre állási csoport erőforrásának létrehozása
Az alábbi parancs létrehozza és konfigurálja a rendelkezésre állási csoport erőforrását a rendelkezésre állási csoport három replikájához [ag1]. A monitorozási műveleteket és az időtúllépéseket az SLES-ben expliciten kell meghatározni, mivel az időtúllépések nagymértékben a terheléstől függenek, ezért minden egyes telepítéshez gondosan kell igazítani őket.
Futtassa a parancsot a fürt egyik csomópontján:
Futtassa a crm configure parancsot a CRM-konzol megnyitásához.
sudo crm configure
A crm-parancssorban futtassa az alábbi parancsot az erőforrás tulajdonságainak konfigurálásához.
primitive ag_cluster \
ocf:mssql:ag \
params ag_name="ag1" \
meta failure-timeout=60s \
op start timeout=60s \
op stop timeout=60s \
op promote timeout=60s \
op demote timeout=10s \
op monitor timeout=60s interval=10s \
op monitor timeout=60s interval=11s role="Master" \
op monitor timeout=60s interval=12s role="Slave" \
op notify timeout=60s
ms ms-ag_cluster ag_cluster \
meta master-max="1" master-node-max="1" clone-max="3" \
clone-node-max="1" notify="true" \
commit
Jegyzet
Amikor létrehozza az erőforrást, és ezt követően rendszeres időközönként a Pacemaker erőforrás-ügynök automatikusan beállítja a rendelkezésre állási csoport REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT értékét a rendelkezésre állási csoport konfigurációja alapján. Ha például a rendelkezésre állási csoport három szinkron replikával rendelkezik, az ügynök REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT1értékre állítja. További részletekért és további konfigurációs lehetőségekért tekintse meg rendelkezésre állási csoport konfigurációinak magas rendelkezésre állását és adatvédelmet.
Virtuális IP-erőforrás létrehozása
Ha ha-cluster-initfuttatásakor nem hozta létre a virtuális IP-erőforrást, most már létrehozhatja ezt az erőforrást. Az alábbi parancs létrehoz egy virtuális IP-erőforrást. Cserélje le a <0.0.0.0> a hálózat egy elérhető címére, és <24> a CIDR alhálózati maszk bitjeinek számával. Futtasson egy csomóponton.
crm configure \
primitive admin_addr \
ocf:heartbeat:IPaddr2 \
params ip=<0.0.0.0> \
cidr_netmask=<24>
Áthelyezési kényszer hozzáadása
A Pacemaker-fürt minden olyan döntése, mint például hogy hol fusson egy erőforrás, pontszámok összehasonlításával történik. A pontszámok erőforrásonként vannak kiszámítva, és a fürterőforrás-kezelő kiválasztja azt a csomópontot, amelynek a legmagasabb pontszáma van egy adott erőforráshoz. (Ha egy csomópont negatív pontszámot ad egy erőforráshoz, az erőforrás nem futtatható ezen a csomóponton.) A fürt döntéseit korlátozásokkal módosíthatjuk. A korlátozások pontszámmal rendelkeznek. Ha egy kényszer pontszáma alacsonyabb az INFINITY-nél, az csak javaslat. Az INFINITY pontszáma azt jelenti, hogy kötelező. Biztosítani szeretnénk, hogy a rendelkezésre állási csoport és a virtuális IP-erőforrás elsődleges része ugyanazon a gazdagépen fusson, ezért meghatározunk egy helymegkötési kényszert az INFINITY pontszámával.
A virtuális IP-cím és az elsődleges node ugyanazon a csomóponton való futásához a kolokációs korlátozás beállításához futtassa a következő parancsot az egyik csomóponton:
crm configure
colocation vip_on_master inf: \
admin_addr ms-ag_cluster:Master
commit
Rendelési kényszer hozzáadása
A kolokációs kényszer implicit módon tartalmaz egy rendezési kényszert. A rendelkezésre állási csoport erőforrásának áthelyezése előtt áthelyezi a virtuális IP-erőforrást. Alapértelmezés szerint az események sorrendje a következő:
- Felhasználói problémák
resource migrate a rendelkezésre állási csoport elsődleges csomópont1 és csomópont2 között.
- A virtuális IP-erőforrás leáll az 1. csomóponton.
- A virtuális IP-erőforrás a 2. csomóponton kezdődik. Ezen a ponton az IP-cím ideiglenesen a 2. csomópontra mutat, míg a 2. csomópont továbbra is feladatátvétel előtti másodlagos.
- Az 1. csomópont rendelkezésre állási csoportjának fővezérlője lefokozásra kerül.
- A 2. csomópont rendelkezésre állási csoportját előléptetik főkiszolgálóvá.
Ha meg szeretné akadályozni, hogy az IP-cím ideiglenesen a másodlagos csomópontra mutasson a feladatátvétel előtt, adjon hozzá egy sorrendi korlátozást az alábbi paranccsal egy csomóponton:
sudo crm configure \
order ag_first inf: ms-ag_cluster:promote admin_addr:start
Fontos
Miután konfigurálta a fürtöt, és hozzáadta a rendelkezésre állási csoportot fürt erőforrásként, nem használhatja a Transact-SQL-t a rendelkezésre állási csoport erőforrásainak átváltására. A Linuxon futó SQL Server-fürterőforrások nincsenek olyan szorosan összekapcsolva az operációs rendszerrel, mint a Windows Server feladatátvevő fürtön (WSFC). Az SQL Server szolgáltatás nincs tisztában a fürt jelenlétével. Az összes vezénylés a klaszterkezelő eszközökkel történik. A SLES-ben használja a(z) crm-t.
Manuálisan átállítja az elérhetőségi csoportot a crm-ra. Ne kezdeményezz feladatátvételt a Transact-SQL használatával. További információért lásd: Hibatűrés.
További információ:
Kapcsolódó tartalom
Ütemterv
A magas rendelkezésre állás érdekében Linux-kiszolgálókon létrehozott rendelkezésre állási csoport lépései eltérnek a Windows Server feladatátvevő fürt eljárásaitól. Az alábbi lista a magas szintű lépéseket ismerteti:
Telepítési útmutató az SQL Server Linux rendszeren.
Konfigurálja az SQL Server rendelkezésre állási csoportját a magas rendelkezésre álláshoz Linuxon.
Konfiguráljon egy fürterőforrás-kezelőt, például a Pacemakert. Ezek az utasítások ebben a cikkben találhatók.
A fürterőforrás-kezelő konfigurálásának módja az adott Linux-disztribúciótól függ.
Fontos
Az éles környezetekben szükség van egy ''fencing agent''-re a magas rendelkezésre állás érdekében. A cikkben szereplő példák nem használnak kerítésügynököket. Csak tesztelésre és ellenőrzésre használhatók.
Egy Linux-klaszter a "fencing" technikát használja, hogy a klasztert visszaállítsa egy ismert állapotba. A kerítés konfigurálásának módja az elosztástól és a környezettől függ. A kerítés jelenleg nem érhető el egyes felhőkörnyezetekben.
A kerítést általában az operációs rendszeren implementálják, és a környezettől függ. A kerítésre vonatkozó utasításokat az operációs rendszer forgalmazójának dokumentációjában találja.
Adja hozzá a rendelkezésre állási csoportot a fürterőforrásaként.
Minden csomóponton nyissa meg a tűzfalportokat. Nyissa meg a Pacemaker magas rendelkezésre állású szolgáltatáshoz, az SQL Server-példányhoz és a rendelkezésre állási csoport végpontjához tartozó portot. Az SQL Servert futtató kiszolgáló alapértelmezett TCP-portja 1433.
sudo ufw allow 2224/tcp
sudo ufw allow 3121/tcp
sudo ufw allow 21064/tcp
sudo ufw allow 5405/udp
sudo ufw allow 1433/tcp # Replace with TDS endpoint
sudo ufw allow 5022/tcp # Replace with DATA_MIRRORING endpoint
sudo ufw reload
Alternatív megoldásként letilthatja a tűzfalat, de termelési környezetben ez nem ajánlott:
sudo ufw disable
Telepítse a Pacemaker-csomagokat. Minden csomóponton futtassa az alábbi parancsokat az Ubuntu 20.04-hez. További információ a korábbi verziók telepítéséről: Ubuntu HA – MS SQL Server az Azure.
sudo apt-get install -y pacemaker pacemaker-cli-utils crmsh resource-agents fence-agents corosync python3-azure
Adja meg a Pacemaker- és Corosync-csomagok telepítésekor létrehozott alapértelmezett felhasználó jelszavát. Használja ugyanazt a jelszót az összes csomóponton.
sudo passwd hacluster
Hozza létre a fürtöt
Fürt létrehozása előtt létre kell hoznia egy hitelesítési kulcsot az elsődleges kiszolgálón, majd azt át kell másolnia az automatikus átvételi csoportban (AG) részt vevő többi kiszolgálóra.
Az alábbi szkripttel hozzon létre egy hitelesítési kulcsot az elsődleges kiszolgálón:
sudo corosync-keygen
A scp használatával más kiszolgálókra másolhatja a generált kulcsot:
sudo scp /etc/corosync/authkey dbadmin@server-02:/etc/corosync
sudo scp /etc/corosync/authkey dbadmin@server-03:/etc/corosync
A klaszter létrehozásához szerkessze a /etc/corosync/corosync.conf fájlt az elsődleges kiszolgálón:
sudo vim /etc/corosync/corosync.conf
A corosync.conf fájlnak az alábbi példához hasonlóan kell kinéznie:
totem {
version: 2
cluster_name: agclustername
transport: udpu
crypto_cipher: none
crypto_hash: none
}
logging {
fileline: off
to_stderr: yes
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
debug: off
logger_subsys {
subsys: QUORUM
debug: off
}
}
quorum {
provider: corosync_votequorum
}
nodelist {
node {
name: server-01
nodeid: 1
ring0_addr: 10.0.0.4
}
node {
name: server-02
nodeid: 2
ring0_addr: 10.0.0.5
}
node {
name: server-03
nodeid: 3
ring0_addr: 10.0.0.6
}
}
Cserélje le a corosync.conf fájlt más csomópontokon:
sudo scp /etc/corosync/corosync.conf dbadmin@server-02:/etc/corosync
sudo scp /etc/corosync/corosync.conf dbadmin@server-03:/etc/corosync
Indítsa újra a pacemaker és corosync szolgáltatásokat:
sudo systemctl restart pacemaker corosync
Erősítse meg a klaszter állapotát, és ellenőrizze a konfigurációt.
sudo crm status
Több hálózati adapter (NIC) megfontolandó szempontjai
A több hálózati adapterrel rendelkező kiszolgálók magas rendelkezésre állásának beállításakor kövesse az alábbi javaslatokat:
Győződjön meg arról, hogy a hosts fájl be van állítva, hogy a több hálózati adapter kiszolgálói IP-címe az egyes csomópontokon lévő Linux-kiszolgáló állomásneve legyen.
Amikor a fürtöt Pacemakerrel állítja be, a kiszolgálók gazdagépneveinek használata esetén a Corosyncnak konfigurálnia kellene az összes hálózati interfész beállításait. Csak egyetlen hálózati adapteren keresztül szeretnénk a Pacemaker/Corosync kommunikációt. A Pacemaker-fürt konfigurálása után módosítsa a konfigurációt a corosync.conf fájlban, és frissítse a Pacemaker/Corosync kommunikációhoz használni kívánt dedikált hálózati adapter IP-címét.
A <hostname> fájlban megadott corosync.conf-nak meg kell egyeznie a fordított keresés (ping -a <ip_address>) során kapott kimenettel, és a gazdagépen konfigurált rövid névnek kell lennie. Győződjön meg arról, hogy a hosts fájl a névfeloldáshoz megfelelő IP-címet is jelöli.
A corosync.conf fájl példájának módosításait az alábbiakban emeljük ki:
nodelist {
node {
ring0_addr: <ip_address_of_node1_NIC1>
name: <hostname_of_node1>
nodeid: 1
}
node {
ring0_addr: <ip_address_of_node2_NIC1>
name: <hostname_of_node2>
nodeid: 2
}
node {
ring0_addr: <ip_address_of_node3_NIC1>
name: <hostname_of_node3>
nodeid: 3
}
}
A Pacemaker-fürt szállítóknak kerítési eszközzel kell elkülöníteniük a meghiúsult csomópontokat, a támogatott fürtbeállításhoz konfigurálva. Ha a fürterőforrás-kezelő nem tudja meghatározni egy csomópont vagy erőforrás állapotát, a lekerítés újra ismert állapotba hozza a fürtöt.
Az erőforrásszintű kerítés gondoskodik arról, hogy kimaradás esetén ne történjen adatsérülés. Erőforrásszintű kerítéssel például a DRBD -vel (elosztott replikált blokkeszköz) megjelölheti a csomóponton lévő lemezt elavultként, amikor a kommunikációs hivatkozás leáll.
A csomópontszintű kerítés biztosítja, hogy a csomópontok ne futtassanak erőforrásokat. Ez a csomópont alaphelyzetbe állításával történik, a Pacemaker implementációját STONITH-nak hívják. A Pacemaker számos különféle kerítéseszközt támogat, például szünetmentes tápegységet vagy felügyeleti adaptereket a kiszolgálókhoz.
További információ: Pacemaker-fürtök a Semmiből és Vívás és Stonith.
Mivel a csomópontszintű kerítés konfigurációja nagyban függ a környezetétől, letiltjuk ebben az oktatóanyagban (később konfigurálható). Futtassa a következő szkriptet az elsődleges csomóponton:
sudo crm configure property stonith-enabled=false
Ebben a példában a kerítés letiltása csak tesztelési célokra szolgál. Ha éles környezetben szeretné használni a Pacemakert, a környezetétől függően tervezze meg a fencing megvalósítását, és tartsa azt engedélyezve. Lépjen kapcsolatba az operációs rendszer gyártójával, és kérjen információt a kerítésügynökökről az adott disztribúcióval kapcsolatban.
A fürt tulajdonságának újraellenőrzési időköze beállítása
A cluster-recheck-interval tulajdonság azt az ellenőrzési időközt jelzi, amikor a klaszter ellenőrzi az erőforrásparaméterek, korlátozások vagy más klaszterbeállítások változásait. Ha egy replika leáll, a fürt megpróbálja újraindítani a replikát egy időközönként, amelyet a failure-timeout érték és a cluster-recheck-interval érték határol. Ha például failure-timeout 60 másodpercre van állítva, és cluster-recheck-interval 120 másodpercre van állítva, az újraindítást 60 másodpercnél hosszabb, de 120 másodpercnél rövidebb időközzel próbálja meg. A failure-timeout 60 másodpercre kell állítania, és cluster-recheck-interval 60 másodpercnél nagyobb értékre. A cluster-recheck-interval kisebb értékre állítása nem ajánlott.
Az 2 minutes érték beállításához futtasson egy parancsot:
sudo crm configure property cluster-recheck-interval=2min
Ha már rendelkezik egy Pacemaker-fürt által felügyelt rendelkezésre állási csoport erőforrásával, a Pacemaker 1.1.18-11.el7 csomagja viselkedésbeli változást vezetett be a start-failure-is-fatal fürtbeállításhoz, amikor az értéke false. Ez a módosítás hatással van a feladatátvételi munkafolyamatra. Ha egy elsődleges replika leállás történik, a fürtnek az egyik elérhető másodlagos replikára kell átváltania. Ehelyett a felhasználók észrevehetik, hogy a fürt továbbra is megpróbálja elindítani a sikertelen elsődleges replikát. Ha az elsődleges nem jön online állapotba (állandó leállás miatt), akkor a fürt sosem vált át egy másik elérhető másodlagos replikára. A módosítás miatt a start-failure-is-fatal beállításához korábban javasolt konfiguráció már nem érvényes, és a beállítást vissza kell állítani a truealapértelmezett értékére.
Emellett az AG erőforrást frissíteni kell, hogy a failure-timeout tulajdonságot is tartalmazza.
Az true érték beállításához futtasson egy parancsot:
sudo crm configure property start-failure-is-fatal=true
Frissítse a meglévő AG erőforrás tulajdonságát failure-timeout-ról 60s-re a végrehajtáshoz (cserélje le a ag1-t a rendelkezésre állási csoport erőforrásának nevére):
sudo crm configure meta failure-timeout=60s
SQL Server-erőforrásügynök telepítése a Pacemakerrel való integrációhoz
Futtassa az alábbi parancsokat az összes csomóponton.
sudo apt-get install mssql-server-ha
SQL Server-bejelentkezés létrehozása a Pacemakerhez
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.
Minden SQL Server-példányon hozzon létre egy kiszolgálói bejelentkezést a Pacemakerszámára.
Az alábbi Transact-SQL létrehoz egy bejelentkezést. Cserélje le <password> saját összetett jelszavára.
USE [master];
GO
CREATE LOGIN [pacemakerLogin]
WITH PASSWORD = N'<password>';
ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin];
A rendelkezésre állási csoport létrehozásakor a Pacemaker-felhasználónak ALTER, CONTROLés VIEW DEFINITION engedélyre van szüksége a rendelkezésre állási csoporthoz a létrehozás után, de a csomópontok hozzáadása előtt.
Minden SQL Server-példányon mentse az SQL Server bejelentkezésihitelesítő adatait.
Cserélje le <password> saját összetett jelszavára.
echo 'pacemakerLogin' >> ~/pacemaker-passwd
echo '<password>' >> ~/pacemaker-passwd
sudo mv ~/pacemaker-passwd /var/opt/mssql/secrets/passwd
sudo chown root:root /var/opt/mssql/secrets/passwd
sudo chmod 400 /var/opt/mssql/secrets/passwd # Only readable by root
Rendelkezésre állási csoport erőforrásának létrehozása
A rendelkezésre állási csoport erőforrásának létrehozásához használja a sudo crm configure parancsot az erőforrás tulajdonságainak beállításához. Az alábbi példa létrehoz egy elsődleges/replika típusú erőforrás-ocf:mssql:ag egy ag1nevű rendelkezésre állási csoporthoz.
~$ sudo crm
configure
primitive ag1_cluster \
ocf:mssql:ag \
params ag_name="ag1" \
meta failure-timeout=60s \
op start timeout=60s \
op stop timeout=60s \
op promote timeout=60s \
op demote timeout=10s \
op monitor timeout=60s interval=10s \
op monitor timeout=60s on-fail=demote interval=11s role="Master" \
op monitor timeout=60s interval=12s role="Slave" \
op notify timeout=60s
ms ms-ag1 ag1_cluster \
meta master-max="1" master-node-max="1" clone-max="3" \
clone-node-max="1" notify="true"
commit
Jegyzet
Amikor létrehozza az erőforrást, és ezt követően rendszeres időközönként a Pacemaker erőforrás-ügynök automatikusan beállítja a rendelkezésre állási csoport REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT értékét a rendelkezésre állási csoport konfigurációja alapján. Ha például a rendelkezésre állási csoport három szinkron replikával rendelkezik, az ügynök REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT1értékre állítja. További részletekért és további konfigurációs lehetőségekért tekintse meg rendelkezésre állási csoport konfigurációinak magas rendelkezésre állását és adatvédelmet.
Virtuális IP-erőforrás létrehozása
A virtuális IP-cím erőforrásának létrehozásához futtassa a következő parancsot egy csomóponton. Használjon egy elérhető statikus IP-címet a hálózatról. A szkript futtatása előtt cserélje le a < ... > közötti értékeket egy érvényes IP-címre.
sudo crm configure primitive virtualip \
ocf:heartbeat:IPaddr2 \
params ip=10.128.16.240
A Pacemakerben nincs egyenértékű virtuális kiszolgálónév. Ha olyan kapcsolati sztringet szeretne használni, amely egy sztringkiszolgáló nevére mutat, és nem használja az IP-címet, regisztrálja az IP-erőforrás címét és a kívánt virtuális kiszolgáló nevét a DNS-ben. Dr-konfigurációk esetén regisztrálja a kívánt virtuális kiszolgálónevet és IP-címet az elsődleges és a DR-hely DNS-kiszolgálóival.
Áthelyezési kényszer hozzáadása
A Pacemaker-fürt minden olyan döntése, mint például hogy hol fusson egy erőforrás, pontszámok összehasonlításával történik. A pontszámok erőforrásonként vannak kiszámítva, és a fürterőforrás-kezelő kiválasztja azt a csomópontot, amelynek a legmagasabb pontszáma van egy adott erőforráshoz. (Ha egy csomópont negatív pontszámot ad egy erőforráshoz, az erőforrás nem futtatható ezen a csomóponton.)
A fürt döntéseinek konfigurálásához használjon korlátozásokat. A korlátozások pontszámmal rendelkeznek. Ha egy kényszer pontszáma alacsonyabb az INFINITY-nél, az csak javaslat. Ha a pontszám INFINITY, akkor kötelező.
Annak biztosítása érdekében, hogy az elsődleges replika és a virtuális IP-erőforrás ugyanazon a gazdagépen legyen, adjon meg egy elhelyezési kényszert az INFINITY pontszámával. A helymegkötés hozzáadásához futtassa a következő parancsot egy csomóponton.
sudo crm configure colocation ag-with-listener INFINITY: virtualip-group ms-ag1:Master
Rendelési kényszer hozzáadása
A kolokációs kényszer implicit módon tartalmaz egy rendezési kényszert. A rendelkezésre állási csoport erőforrásának áthelyezése előtt áthelyezi a virtuális IP-erőforrást. Alapértelmezés szerint az események sorrendje a következő:
Felhasználói problémák pcs resource move a rendelkezésre állási csoport elsődleges node1 és node2között.
A virtuális IP-erőforrás leáll a(z) node1rendszeren.
A virtuális IP-erőforrás a node2-n indul.
Ezen a ponton az IP-cím ideiglenesen node2-ra mutat, míg node2 továbbra is a feladatátvétel előtti másodlagos.
A rendelkezésre állási csoport elsődleges node1 másodlagosra lesz lefokozva.
A node2-en levő másodlagos rendelkezésre állási csoport elsődlegessé van előléptetve.
Ha meg szeretné akadályozni, hogy az IP-cím ideiglenesen a csomópontra mutasson a feladatátvétel előtti másodlagossal, adjon hozzá egy rendezési kényszert.
Rendelési kényszer hozzáadásához futtassa a következő parancsot egy csomóponton:
sudo crm configure order ag-before-listener Mandatory: ms-ag1:promote virtualip-group:start
Miután konfigurálta a fürtöt, és hozzáadta a rendelkezésre állási csoportot fürt erőforrásként, nem használhatja a Transact-SQL-t a rendelkezésre állási csoport erőforrásainak átváltására. A Linuxon futó SQL Server-fürterőforrások nincsenek olyan szorosan összekapcsolva az operációs rendszerrel, mint a Windows Server feladatátvevő fürtön (WSFC). Az SQL Server szolgáltatás nem ismeri a fürt jelenlétét. Az összes vezénylés a klaszterkezelő eszközökkel történik.
Kapcsolódó tartalom