Kuidas uuesti seadistada replikatsioon (kui klastrirežiim on keelatud) CentOS 8-s - 1. osa


Redis (Remote Dictionary Server) on väga populaarne ja laialt kasutatav avatud lähtekoodiga, kiire, hajutatud ja tõhus mälus sisalduv võtmeväärtusega andmebaas/andmestruktuuri server.

See pakub rikkalikke funktsioone, mis muudavad selle efektiivseks paljude kasutusjuhtumite jaoks: andmebaasina, vahemällu salvestamise kihina, sõnumivahendajana või järjekorrana; rakendatav veebirakendustes, vestlus- ja sõnumirakendustes, mängudes, reaalajas andmete analüüsi ja palju muud.

See toetab paindlikke andmestruktuure, ülema ja orja asünkroonseid replikatsioone lugemisvõime skaleerimiseks ja kaitset andmete kadumise eest, kliendipoolset killustumist kirjutamise jõudluse suurendamiseks, kahte püsivuse vormi mälus olevate andmete kompaktsel kujul kettale kirjutamiseks, klastreid ja jaotamine. See sisaldab ka automaatseid tõrkeotsinguid kõrge kättesaadavusega juurutamiseks Redis Sentineli, Lua skriptimise, tehingute ja paljude teiste kaudu.

Olles EI SQL-i või mitteseotud andmebaas, pakub Redis tavapärasest andmebaasisüsteemist (näiteks MySQL/MariaDB, PostgreSQL jms) võrreldes mõningaid jõudluse eeliseid, kuna kõik selle andmed asuvad või on salvestatud mällu, muutes need rakendusele hõlpsasti kättesaadavaks, samas kui traditsioonilised andmebaasid peavad kõik andmed kettale või välisele allikale kirjutama või neid lugema.

Redis on muutunud üha enam levinud valikuks vahemällu salvestamise jaoks, mis võimaldab vahemällu salvestatud andmeid (rakenduse põhimäluruumi salvestatud) taaskasutada, selle asemel, et sageli kasutatavate andmete jaoks alati andmebaasis päringuid teha. Nii et see on RDMS-i (relatsiooniliste andmebaaside haldussüsteemide) fantastiline kaaslane, et lõppkokkuvõttes parandada rakenduste jõudlust.

Selles kolmeosalises Redise õpetussarjas käsitleme Redise peamiste funktsioonide seadistamist ja kasutamist, milleks on paljundamine, kõrge kättesaadavus Redis Sentineli ja Redis Clusteri abil. Artiklid on järgmised:

See juhend näitab, kuidas seadistada RedIS-i replikatsioon (keelatud klastrirežiimiga) CentOS 8 Linuxis, sealhulgas Redise installimine, põhi- ja koopiate konfigureerimine ning replikatsiooni testimine.

Oluline: Redise klastril (st replikatsiooniklastril), mille klastrirežiim on keelatud, on üks sõlmpunkt (nt põhiüksus ja üks või kaks koopiat), kus Redise klaster, kus lubatud on klastrirežiim, võib koosneda kahest või enamast sõlmerühmast (nt kolmest mastrist kummalgi on orjad või kaks).

  1. CentOS 8 installiga serverid

Redis Master Server: 10.42.0.247
Redis Replica1/Slave1: 10.42.0.21
Redis Replica2/Slave2: 10.42.0.34

Ülaltoodud seadistustega (millel on üks lugemise/kirjutamise esmane/põhisõlm ja 2 kirjutuskaitstud replica sõlme), on meil üks sõlmpühm, mis sisaldab igas klastris kõiki klastri andmeid. Kui ori ühendub isandaga, saab ta täieliku andmebaasi esialgse koopia ja kõik orjal varem eksisteerinud andmed visatakse ära.

Pealegi saab klient kirjutada ainult masterile, kuid lugeda mis tahes klastri sõlmest. Ja kui kirjutatakse masterile, levitati neid kõigi ühendatud orjadega, et värskendada orja andmekogumeid reaalajas.

1. samm: Redise installimine CentOS 8-le

1. Alustuseks logige SSH kaudu sisse kõikidesse CentOS 8 sõlmedesse, seejärel installige Redise pakett kõigile sõlmedele (põhi- ja koopiad), kasutades DNF-i paketihaldurit, nagu näidatud.

# dnf install @redis

2. Pärast Redise paketi installimise lõpetamist käivitage Redise teenus, lubage sellel automaatselt käivituda iga süsteemi käivitamisel ja kontrollige, kas see töötab ja töötab järgmiselt.

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

3. Samuti saate Redise serveri töökorda seada, kontrollides kuulamisporte käsuga ss järgmiselt.

# ss -ltpn | grep redis-server

2. samm: Redis Master Serveri konfigureerimine

4. Redis konfigureeritakse konfiguratsioonifaili /etc/redis.conf abil, mis on isedokumenteeritud konfiguratsioonifaili näide. Kõigepealt looge algfaili varukoopia ja avage see redigeerimiseks, kasutades valitud käsurea redaktorit.

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

5. Vaikimisi on Redise eksemplar konfigureeritud sidumisdirektiivi abil loopback-liidesel ühendusi kuulama ja aktsepteerima. Replikatega suhtlemiseks peaks juht olema konfigureeritud kuulama IPv4 loopback-aadressi ja selle LAN-i IP-aadressi, st 10.42.0.247.

bind 127.0.0.1 10.42.0.247

6. Seejärel määrake kaitstud režiimi parameeter väärtusele no , et võimaldada suhtlust koopiatega, nagu näidatud.

protected-mode no

Redis kuulab ka porti 6379, mis on määratud port -direktiivi abil. See on andmeport rakenduse API-de või CLI-klientidega suhtlemiseks.

port 6379

7. Master-replica kommunikatsiooni valikuliseks kindlustamiseks saame me masterit kaitsta, kasutades nõueepass direktiivi, nii et kliendid/koopiad peavad enne käskude käivitamist või replikatsiooni sünkroonimisprotsessi alustamist väljastama autentimisparooli, vastasel juhul keeldub juht kliendi/koopia taotlus (pidage meeles, et määrake turvaline parool).

Kasutame demonstratsiooni eesmärgil järgmist võimalust, et näidata, kuidas see töötab.

requirepass  [email 

8. Redise logid salvestatakse ka faili /var/log/redis/redis.log, see määratakse logifaili käskkirja abil ja serveri vaikesõnalisuse tase on teade, mis on määratletud parameetri loglevel abil.

loglevel  notice
logfile  /var/log/redis/redis.log

9. Kuna systemd on CentOS 8 vaikesüsteemi- ja teenusehaldur, saate Redise konfigureerida süsteemd järelevalve puuga suhtlemiseks, seades jälgitava parameetri väärtuseks systemd.

supervised systemd

10. Pärast kõigi vajalike konfiguratsioonide tegemist salvestage fail ja sulgege see. Seejärel taaskäivitage Redise teenus uute muudatuste rakendamiseks.

# systemctl daemon-reload
# systemctl restart redis

11. Redise serverisse pääsemiseks peame kasutama redis-cli (redis-serveri käsurealiides). Vaikimisi ühendatakse see serveriga localhostis (portis 127.0.0.1 port 6379). Pange tähele, et kuna server on klientide eest parooli abil kaitstud, peaks enne autentimist käsu käivitamine nurjuma.

Kasutage autentimise parooli sisestamiseks käsk auth, nagu on näidatud järgmisel ekraanipildil.

# redis-cli
127.0.0.1:6379> client list
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> client list

12. Replikaga ühenduse loomiseks (pärast nende konfigureerimist järgmises osas kirjeldatud viisil) kasutage suvandeid -h ja -p , et määrata koopia IP-aadress/hosti nimi ja vastavalt (mitte see, et port 6379 peab olema koopia tulemüüris avatud).

# redis-cli -h 10.42.0.21 -p 6379

13. Seejärel avage tulemüüris Redise serveri andmepord, et lubada sissetulevaid ühendusi põhihalduriga, ja laadige seejärel tulemüüri reeglid uuesti, kasutades käsku tulemüür-cmd, nagu näidatud.

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

3. samm: Redis Replica/Slave serverite konfigureerimine

14. Redise eksemplari kiireks seadistamiseks lennult koopiana kasutage redis-cli utiliiti ja kutsuge käsk REPLICAOF, nagu näidatud.

# redis-cli replicaof 10.42.0.247 6379
OR
# redis-cli
127.0.0.1:6379> REPLICAOF 10.42.0.247 6379

15. Replikatsiooniühenduse püsivaks muutmiseks peate konfiguratsioonifailis tegema järgmised muudatused. Alustage algfaili varundamisest ja avage see redigeerimiseks.

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

16. Et võimaldada klientidel ühenduse luua koopiaga andmete lugemiseks, lisage koopia IP-aadress sidumisdirektiivi.

# replica1
bind 127.0.0.1 10.42.0.21

# replica2
bind 127.0.0.1 10.42.0.34

17. Redise eksemplari kopeerimiseks konfigureerimiseks kasutage parameetrit replica ja määrake põhisõlme IP-aadress (või hostinimi) ja port väärtuseks.

replicaof 10.42.0.247 6379

18. Järgmisena, kuna meie peaproov on kaitstud parooliga, peame parooli seadistama koopia konfiguratsioonis, et see saaks parameetri masterauth abil autori jaoks autentida.

masterauth [email 

19. Lisaks sellele, kui koopia kaotab ühenduse masteriga või kui replikatsioon on käimas, on koopia konfigureeritud vastama kliendi päringutele, võib-olla ka „aegunud” andmetega. Kuid kui see on esimene sünkroonimine, siis võib andmekogum olla lihtsalt tühi. Seda käitumist kontrollib parameeter replica-serve-stale-data.

Ja kuna Redis 2.6 on vaikimisi koopiad kirjutuskaitstud, kontrollib seda ainult lugemisparameeter. Võite teha muid koopia konfiguratsiooni kohandusi, mis vastavad teie rakenduse vajadustele.

20. Kui olete kõik vajalikud muudatused teinud, taaskäivitage Redise teenus kõigil koopiatel.

# systemctl restart redis

21. Samuti avage tulemüüris port 6379, et võimaldada ühendusi põhi- ja klientide koopiatega ning laadige tulemüüri reeglid uuesti.

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

4. samm: kontrollige põhireplika replikatsiooni olekut

22. Kui põhireplika replikatsiooni konfiguratsioon on lõpule jõudnud, saame kontrollida, kas seadistamine töötab hästi, järgmiselt.

Käitage masteril järgmised käsud.

# redis-cli
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> info replication

23. Kontrollige ka paljunduste olekut koopiatel/orjadel järgmiselt.

# redis-cli
127.0.0.1:6379> info replication

23. Nüüd katsetame replikatsiooni seadistades peaproovi võtmeväärtuse ja kontrollime, kas andmed on sünkroonitud koopiatega.

Tehke kaptenil seda:

# redis-cli
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> set domain 'linux-console.net'

24. Seejärel kontrollige, kas andmed on sünkroonitud koopiatega, nagu näidatud.

# redis-cli
127.0.0.1:6379> get domain

25. Redisil on funktsioon, mis võimaldab peaproovil piirata mõne kirjutuse kaotamise riski juhul, kui pole piisavalt koopiaid, määratud sekundite arvuga.

See tähendab, et kapten võib lõpetada kirjutiste vastuvõtmise, kui ühendatud on vähem kui N koopiat, mille viivitus on väiksem või võrdne M sekundiga, mida kontrollivad vastavalt valikud min-koopiad-kirjutamiseks ja min-koopiad-max-viivitused.

Nende seadmiseks tühistage nende kommenteerimine ja määrake väärtused vastavalt seadistamisnõuetele kataloogis /etc/redis.conf, nagu on näidatud järgmisel ekraanipildil. See konfiguratsioon tähendab, et alates viimasest pingist kuni koopiateni, kui sekundis on vähem kui 2 koopiat, pärast 10 sekundit lõpetab kapten kirjutiste vastuvõtmise.

min-replicas-to-write 2
min-replicas-max-lag 10

Lisasuvandeid leiate ülejäänud seadistustefailist /etc/redis.conf ja lisateabe saamiseks lugege replikatsiooni kohta Redise dokumentatsioonist.

Järgmises artiklis käsitleme, kuidas seadistada Redis kõrgetasemelise kättesaadavuse jaoks Sentineliga CentOS 8-sse. Seni hoidke ennast lukus ja pidage meeles, et jagage oma küsimusi ja küsimusi, kasutades meie allolevat kommentaarivormi, et saaksite meiega ühendust võtta.