Redis-fürt beállítása a CentOS 8 rendszerben – 3. rész
A Redis Cluster egy beépített Redis funkció, amely támogatja az automatikus felosztást, replikációt és magas rendelkezésre állást, amelyet korábban a Sentinels segítségével valósítottak meg. Két fő célt szolgál: az egyik az adatkészlet automatikus felosztása több példány között, másrészt bizonyos fokú rendelkezésre állás biztosítása a partíciók során, a műveletek folytatása, ha egyes példányok (különösen a mesterek) meghibásodnak, vagy nem tudnak kommunikálni a legtöbb példánysal. csomópontok a fürtben.
A fürt azonban leáll, hogy működjön nagyobb meghibásodások esetén (például amikor a főpéldányok többsége nem érhető el). Továbbá, ha egy mester és egy szolga egyszerre meghibásodik, a fürt nem tudja folytatni a normál műveleteket (bár a kerülő megoldás több csomópont hozzáadása vagy aszimmetria létrehozása a fürtben, a fürt elrendezésének automatikus módosítása).
A Redis fürt dokumentációja szerint a várt módon működő „minimális fürtnek” legalább 3 fő csomópontot kell tartalmaznia. De a magas rendelkezésre álláshoz legmegfelelőbb beállításnak legalább 6 csomópontnak kell lennie három mesterrel és három szolgával, amelyek mindegyikének van egy slave.
Fontos: A Redis Clusternek is vannak korlátai, amelyek nem támogatják a NAT környezeteket, valamint azokat, ahol az IP-címek vagy a TCP-portok újra vannak rendelve. példány a Docker alatt. Ezenkívül nem minden ügyfélkönyvtár támogatja ezt.
Ez a cikk bemutatja, hogyan állíthat be Redis-fürtöt (Cluster-Mode letiltva) a CentOS 8 rendszerben. Tartalmazza a Redis telepítését, a fürtcsomópontok konfigurálását, a fürt létrehozását és a fürt feladatátvételének tesztelését.
Megjegyzés: Ebben az útmutatóban friss/üres Redis-példányokat fogunk használni a fürt mód futtatásához. A fürt mód nem működik a Redis sorozat első két útmutatójában megadott egyes konfigurációkkal, különösen nem működik, ha a paraméter replikáját használják.
Előfeltételek:
- Szerverek CentOS 8 telepítéssel
Tesztkörnyezet beállítása
Redis Master1: 10.42.0.247
Redis Master2: 10.42.0.197
Redis Master3: 10.42.0.132
Redis Slave1: 10.42.0.200
Redis Slave2: 10.42.0.21
Redis Slave3: 10.42.0.34
Beállításunkban 3 olvasási/írási főcsomópont és 3 csak olvasható replikacsomópont van, mindegyik főnek egy replikája van, tehát három szilánk tartalmazza a fürt összes adatát minden csomópontban. Egy alkalmazás API vagy CLI kliens csak a fő csomópontokra írhat, de a fürt bármely csomópontjáról olvashat.
1. lépés: A Redis telepítése az összes csomópontra
1. Jelentkezzen be az összes példányba az SSH-n keresztül, majd futtassa a következő parancsot a Redis modul telepítéséhez a DNF-csomagkezelő használatával, az ábrán látható módon.
dnf module install redis
2. Ezután indítsa el a Redis szolgáltatást, engedélyezze, hogy automatikusan elinduljon a rendszerindításkor, és ellenőrizze az állapotát, hogy ellenőrizze, hogy fut-e (ellenőrizze a szolgáltatást mind a 6 példányon ):
systemctl start redis
systemctl enable redis
systemctl status redis
2. lépés: A Redis-példányok konfigurálása az összes csomóponton
3. Ez a szakasz a Redis-fürt csomópontjainak konfigurálását ismerteti. Ne felejtse el végrehajtani a konfigurációkat itt az összes csomóponton.
A /etc/redis.conf konfigurációs fájl segítségével konfigurálja a Redis szervert. Javasolt gyakorlatként készítsen biztonsági másolatot az eredeti fájlról, mielőtt szerkeszti azt egy tetszőleges parancssori szövegszerkesztővel.
cp /etc/redis.conf /etc/redis.conf.orig
vi /etc/redis.conf
4. Ezután keresse meg a következő konfigurációs paramétereket, és módosítsa az értékeket az ábra szerint. A bind paraméter beállítja a Redis-kiszolgáló interfészét, amelyre figyelni fog, értékét a példány LAN IP-címére állítja be. Távolítsa el a 127.0.0.1 kódot, mert rájöttünk, hogy otthagyása lelassítja a fürt létrehozásának folyamatát, különösen a fürthöz való csatlakozást.
bind 10.42.0.247
Ezután állítsa a protected-mode-t no
értékre, hogy engedélyezze a kapcsolatokat a fürt többi példányából.
protected-mode no
A port paraméter határozza meg azt a portot, amelyen a Redis-kiszolgáló figyelni fogja a kapcsolatokat, az alapértelmezett 6379. Ez az adatport az ügyfelekkel való kommunikációhoz.
port 6379
5. A következő paraméterkészlet engedélyezi a fürt módot, és beállítja annak néhány hasznos funkcióját. A cluster-enabled paraméter yes
értékre állítva aktiválja a fürt módot.
cluster-enabled yes
Ezután a cluster-config-file paraméter beállítja a fürtcsomópont fürtkonfigurációs fájljának nevét (pl. nodes-6379.conf). A fájl a munkakönyvtárban jön létre (alapértelmezett a /var/lib/redis, a dir paraméterrel definiálva), és a felhasználó nem szerkesztheti.
cluster-config-file nodes-6379.conf
A következő hasznos fürtbeállítás a cluster-node-timeout. Ez arra szolgál, hogy beállítsa a maximális időtartamot ezredmásodpercben, ameddig egy példány nem érhető el ahhoz, hogy hibaállapotban legyen. Az 15 000 érték 15 másodpercnek felel meg.
cluster-node-timeout 15000
6. Engedélyeznünk kell a Redis-megmaradást is a lemezen. Használhatjuk az egyik megmaradási módot, a Csak fájl hozzáfűzését (AOF): naplózza (a létrehozott appendonly.aof fájlban a munkakönyvtár alatt) minden írási műveletet sikeresen fogad a szerver. Az adatokat a szerver indításakor lejátssza az eredeti adatkészlet rekonstrukciója.
Az engedélyezéséhez állítsa az appendonly paramétert yes
értékre.
appendonly yes
7. Az összes módosítás végrehajtása után indítsa újra a Redis szolgáltatást az összes csomóponton a legutóbbi módosítások alkalmazásához.
systemctl restart redis
8. Ezen a ponton minden fürtcsomópontnak rendelkeznie kell azonosítóval. Ezt a /var/log/redis/redis.log címen található naplófájlban ellenőrizheti.
cat /var/log/redis/redis.log
9. Ezután nyissa meg a 6397 és 16379 portot az összes példányon. A későbbi portot a fürtbusz (bináris protokollt használó csomópont-csomópont kommunikációs csatorna) használja. Ez alapvető követelmény a Redis-fürt TCP-kapcsolataihoz.
firewall-cmd --zone=public --permanent --add-port=6379/tcp
firewall-cmd --zone=public --permanent --add-port=16379/tcp
firewall-cmd --reload
3. lépés: A Redis-fürt létrehozása
10. A fürt létrehozásához használja a redis-cli parancssori klienst az alábbiak szerint. A --cluster create
lehetővé teszi a fürt létrehozását, a -cluster-replicas 1
pedig egy replika létrehozását jelenti mesterenként.
A 6 csomópontot tartalmazó beállításunkhoz 3 master és 3 slave lesz.
Vegye figyelembe, hogy az első 6 csomópont mesternek (M)
, a következő három pedig szolgának (S). Az első szolga, azaz a 10.42.0.200:6379 az első mestert, azaz a 10.42.0.247:6379, a második szolga pedig a második mestert replikálja, ebben a sorrendben.
A következő parancs úgy van formázva, hogy az eredmény a fenti logikai beállításunkat képviselje.
redis-cli --cluster create 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6379 10.42.0.34:6379 --cluster-replicas 1
11. Ha a fürt létrehozása sikeres volt, futtassa a következő parancsot bármelyik gazdagépen (adja meg az IP-címét a -h
jelzővel) az összes fürtcsomópont listázásához.
redis-cli -h 10.42.0.247 -p 6379 cluster nodes
Látnia kell az összes fürtcsomópontot, és a slave-ek jelzik a mestereiket, ahogy az a következő képernyőképen látható.
A különböző mezők ebben a sorrendben vannak: csomópont azonosítója, IP címe: port, zászlók, utolsó ping küldött, utolsó pong fogadott, konfigurációs korszak, link-state, slot (mesterek számára).
4. lépés: A Redis Cluster Failover tesztelése
12. Ebben a részben bemutatjuk, hogyan lehet tesztelni a fürt feladatátvételét. Először is vegyük figyelembe a mestereket.
redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master
Vegye figyelembe a Redis rabszolgákat is.
redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep slave
13. Ezután állítsuk le a Redis szolgáltatást az egyik főcsomóponton, például 10.42.0.197, és ellenőrizzük a fürt összes főcsomópontját.
systemctl stop redis
redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master
A következő képernyőképen láthatja, hogy a 10.42.0.197:6367 csomópont hibaállapotban van, és a 10.42.0.21:6379 szolga mester állapotba került.
14. Most indítsuk el újra a Redis szolgáltatást a meghibásodott csomóponton, és ellenőrizzük a fürt összes mesterét.
systemctl start redis
redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master
Ezenkívül ellenőrizze a fürt slave-eket, hogy megbizonyosodjon arról, hogy a meghibásodott mester most slave.
redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep slave
5. lépés: Adatreplikáció tesztelése a Redis-fürtben
15. Ez az utolsó szakasz a fürtadatok replikációjának ellenőrzését ismerteti. Létrehozunk egy kulcsot és értéket az egyik mesteren, majd megpróbáljuk beolvasni az összes fürtcsomópontból a következők szerint. A -c
kapcsolóval engedélyezheti a fürttámogatást a redis-cli segédprogramban, és elérheti az adatokat fürt módban.
redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
redis-cli -c -h 10.42.0.247 -p 6379 get name
redis-cli -c -h 10.42.0.21 -p 6379 get name
redis-cli -c -h 10.42.0.132 -p 6379 get name
redis-cli -c -h 10.42.0.200 -p 6379 get name
redis-cli -c -h 10.42.0.197 -p 6379 get name
redis-cli -c -h 10.42.0.34 -p 6379 get name
A lényeg az, hogy a Redis Cluster az automatikus felosztás, replikáció és magas rendelkezésre állás előnyben részesített módja. Sok más jól dokumentált konfigurációs paraméter található az /etc/redis.conf fájl többi részében, további információkat a hivatalos dokumentációban talál: Redis fürt oktatóanyag és Redis fürt specifikáció.
Ezzel elérkeztünk a Redis háromrészes oktatóanyag-sorozatának végéhez. Az alábbi visszajelzési űrlap segítségével kérdéseket vagy megjegyzéseket tehet fel.