Weboldal keresés

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:

  1. 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.