RedIS-klastri seadistamine CentOS 8-s - 3. osa


Redis Cluster on sisseehitatud Redise funktsioon, mis toetab automaatset killustamist, paljundamist ja kõrget kättesaadavust, mis oli varem rakendatud Sentinelsi abil. See on mõeldud kaheks põhieesmärgiks: üks on jagada oma andmekogum automaatselt mitme eksemplari vahel ja teiseks tagada teatud määral kättesaadavus partitsioonide ajal, jätkata toiminguid, kui mõni eksemplar (eriti meistrid) ebaõnnestub või ei saa enamusega ühendust sõlmed klastris.

Klaster peatub siiski suuremate tõrgete korral (nt kui enamus põhieksemplare pole saadaval). Samuti, kui põhihaldur ja ori korraga ebaõnnestuvad, ei saa klaster tavapäraseid toiminguid jätkata (ehkki lahendus on klastri paigutuse automaatseks muutmiseks lisada rohkem sõlme või luua klastris asümmeetria).

Redise klastri dokumentatsiooni kohaselt peab ootuspäraselt töötav minimaalne klaster sisaldama vähemalt 3 põhisõlme. Kuid kõrge kättesaadavuse jaoks sobivaimas seadistuses peaks olema vähemalt 6 sõlme kolme isanda ja kolme orjaga, kummalgi isikul on ori.

Tähtis: Redis Clusteril on ka mõned piirangud, mis puudutavad tuge nii NATted-keskkondadele kui ka neile, kus IP-aadresse või TCP-porte muudetakse näiteks Dockeri all. Lisaks ei toeta seda iga kliendikogu.

Selles artiklis selgitatakse, kuidas seadistada CentOS 8-s Redis-klaster (keelatud klastrirežiimiga). See sisaldab Redise installimist, klastri sõlmede konfigureerimist, klastri loomist ja klastri tõrkeotsingu testimist.

Märkus. Selle juhendi jaoks kasutame klastrirežiimi käitamiseks värskeid/tühje Redise eksemplare. Klastrirežiim ei tööta mõnede meie Redise seeria kahes esimeses juhendis tehtud konfiguratsioonidega, eriti see ei toimi, kui kasutatakse parameetri koopiat.

  1. CentOS 8 installiga serverid

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

Meie seadistusel on 3 lugemis-/kirjutamissõlme ja 3 kirjutuskaitstud replikasõlme, igal masteril on üks koopia, nii et kolm kildu sisaldavad igas klastris kõiki klastri andmeid. Rakenduse API või CLI klient saab kirjutada ainult põhisõlmedele, kuid lugeda mis tahes klastri sõlmest.

1. samm: Redise installimine kõikidele sõlmedele

1. Logige SSH-i kaudu kõikidesse eksemplaridesse ja käivitage järgmine käsk Redise mooduli installimiseks, kasutades DNF-i paketihaldurit, nagu näidatud.

# dnf module install redis

2. Seejärel käivitage teenus Redis, lubage sellel automaatselt süsteemi käivitamisel käivitada ja kontrollige selle olekut, et kontrollida, kas see töötab (kontrollige teenust kõigil kuuel eksemplaril):

# systemctl start redis
# systemctl enable redis
# systemctl status redis

2. samm: Redis-eksemplaride seadistamine kõigil sõlmedel

3. Selles jaotises kirjeldatakse Redise klastri sõlmede konfigureerimist. Ärge unustage siin kõikides sõlmedes konfiguratsiooni teha.

Redise serveri konfigureerimiseks kasutage konfiguratsioonifaili /etc/redis.conf. Soovitatava tavana looge enne faili redigeerimist algse faili varukoopia, kasutades valitud käsurea tekstiredaktorit.

# cp /etc/redis.conf /etc/redis.conf.orig
# vi /etc/redis.conf

4. Järgmisena leidke järgmised konfiguratsiooniparameetrid ja muutke nende väärtusi, nagu näidatud. Seondumisparameeter määrab Redise serveri liidese kuulamise, määrab selle väärtuseks eksemplari LAN IP. Eemaldage 127.0.0.1, kuna mõistsime, et selle sinna jätmine aeglustab klastri loomise protsessi, eriti klastriga liitumise etappi.

bind  10.42.0.247

Seejärel määrake kaitstud režiimiks no , et lubada ühendusi klastri teistest eksemplaridest.

protected-mode no

Parameeter port määratleb porti, mida Redise server ühendusi kuulab, vaikimisi on see 6379. See on andmeport klientidega suhtlemiseks.

port 6379

5. Järgmine parameetrite komplekt võimaldab klastrirežiimi ja määrab mõned selle kasulikud funktsioonid. Kui klastri toega parameeter on yes , aktiveerib klastrirežiimi.

cluster-enabled yes

Järgmisena määrab parameeter klaster-config-fail klastersõlme klastri konfiguratsioonifaili nime (nt sõlmed-6379.conf). Fail luuakse töökataloogis (vaikimisi määratakse parameetri dir abil/var/lib/redis) ja seda ei saa kasutaja muuta.

cluster-config-file nodes-6379.conf

Järgmine kasulik klastrivõimalus on klastri-sõlme ajalõpp, seda kasutatakse maksimaalse aja millisekundites määramiseks, kui eksemplar ei pruugi olla saadaval, et seda tõrkeolekus arvesse võtta. Väärtus 15000 võrdub 15 sekundiga.

cluster-node-timeout 15000

6. Peame lubama ka Redise püsivuse kettal. Saame kasutada ühte püsimisrežiimi, see on ainult faili lisamine (AOF): see logib (töökataloogi all loodud failis appendonly.aof) kõik kirjutusoperatsioonid, mille server edukalt vastu võtab. Andmeid esitatakse serveri käivitamisel algse andmekogumi rekonstrueerimiseks.

Selle lubamiseks määrake parameetri appendonly väärtuseks yes .

appendonly yes

7. Pärast kõigi muudatuste tegemist taaskäivitage Redise teenus kõigis sõlmedes, et viimaseid muudatusi rakendada.

# systemctl restart redis

8. Sel hetkel peaks igal klastrisõlmel olema nüüd ID. Seda saate kontrollida logifailist, mis asub aadressil /var/log/redis/redis.log.

# cat /var/log/redis/redis.log

9. Järgmisena avage kõikidel juhtudel sadamad 6397 ja 16379. Hilisemat porti kasutatakse klastrite siiniks (sõlmedevahelised sidekanalid, kasutades binaarprotokolli). See on Redise klastri TCP-ühenduste põhinõue.

# firewall-cmd --zone=public --permanent --add-port=6379/tcp 
# firewall-cmd --zone=public --permanent --add-port=16379/tcp 
# firewall-cmd --reload

3. samm: Redise klastri loomine

10. Klastri loomiseks kasutage redis-cli käsurea klienti järgmiselt. --klastri loomine võimaldab klastri loomist ja --cluster-replicas 1 tähendab, et ühe masteri kohta luuakse üks koopia.

Meie seadistamiseks, millel on 6 sõlme, on meil 3 ülemat ja 3 alamat.

Pange tähele, et esimesed 6 sõlme loetakse master (M) ja järgmised kolm sõlmedeks (S) . Esimene ori, st 10.42.0.200:6379 kordab esimest isandat, s.o 10.42.0.247:6379, teine ori kordab teist ülemat selles järjekorras.

Järgmine käsk on vormindatud nii, et tulemus esindaks meie ülaltoodud loogilist seadistust.

# 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. Kui klastri loomine on edukas, käivitage kõigi klastrite sõlmede loetlemiseks mis tahes hostil järgmine käsk (määrake selle IP-aadress lipu -h abil).

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes

Teil peaks olema võimalik näha kõiki klastri sõlmi, kusjuures orjad tähistavad nende ülemaid, nagu on näidatud järgmisel ekraanipildil.

Erinevad väljad on selles järjekorras: sõlme ID, IP-aadress: port, lipud, viimati saadetud ping, viimane vastuvõetud pong, seadistamise ajastu, lingi olek, pesad (meistrite jaoks).

4. samm: Redise klastri tõrkeotsingu testimine

12. Selles jaotises demonstreerime klastri tõrkeotsingu testimist. Kõigepealt võtame meistrid teadmiseks.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Pange tähele ka Redise orje.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

13. Järgmisena peatame Redise teenuse ühes põhisõlmes, nt 10.42.0.197, ja kontrollime kõiki klastri põhisõlmi.

# systemctl stop redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master

Järgmisel ekraanipildil näete, et sõlm 10.42.0.197:6367 on ebaõnnestunud olekus ja selle ori 10.42.0.21:6379 on ülendatud ülema olekusse.

14. Nüüd alustame Redise teenust veel kord ebaõnnestunud sõlmes ja kontrollime kõiki klastri meistreid.

# systemctl start redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Samuti kontrollige klastri orje, et veenduda, et ebaõnnestunud juht on nüüd ori.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

5. samm: andmete replikatsiooni testimine kogu Redise klastris

15. Selles viimases osas selgitatakse, kuidas klastri andmete replikatsiooni kontrollida. Loome ühele meistrile võtme ja väärtuse, seejärel proovime seda lugeda kõigist klastrisõlmedest järgmiselt. Kasutage lülitit -c , et lubada klastri tugi redis-cli utiliidi all ja pääseda andmetele juurde klastrirežiimis.

# 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

Alumine rida on Redise klaster, mis on eelistatud viis automaatse killustumise, paljundamise ja kõrge kättesaadavuse saamiseks. Ülejäänud failis /etc/redis.conf on palju muid hästi dokumenteeritud konfiguratsiooniparameetreid. Lisateavet leiate ametlikust dokumentatsioonist: Redise klastriõpetus ja Redise klastri spetsifikatsioon.

See viib meid kolmeosalise Redise õpetussarja lõpuni. Allolevat tagasisidevormi saab kasutada küsimuste või kommentaaride postitamiseks.