Kako nastaviti Redis za visoko razpoložljivost s Sentinelom v CentOS 8 - 2. del


Redis zagotavlja visoko razpoložljivost prek distribuiranega sistema Redis Sentinel. Sentinel pomaga spremljati primere Redisa, odkrivati napake in samodejno preklaplja med vlogami, kar omogoča uvajanje Redisa, da se upre kakršnim koli napakam.

Vključuje spremljanje primerov Redis (glavni in replike), podpira obveščanje o drugih storitvah/procesih ali skrbnika sistema s pomočjo skripta, samodejni preklop na fazo za promocijo replike v glavnega, ko glavni pade, in nudi konfiguracijo za odjemalce, da odkrijejo trenutno poveljnik, ki ponuja določeno storitev.

Ta članek prikazuje, kako nastaviti Redis za visoko razpoložljivost z Redis Sentinel v CentOS 8, vključno s konfiguriranjem stražnikov, preverjanjem stanja namestitve in preskušanjem odpovedi Sentinel.

  1. Kako nastaviti replikacijo Redis (z onemogočenim načinom grozda) v CentOS 8 - 1. del

Master Server and Sentinel1: 10.42.0.247
Redis Replica1 and Sentinel2: 10.42.0.21
Redis Replica2 and Sentinel3: 10.42.0.34

V skladu z dokumentacijo Redis Sentinel potrebujemo vsaj tri primerke Sentinel za zanesljivo uvajanje. Upoštevajoč našo zgoraj določeno nastavitev, se Sentinels2 in Sentinel3 v primeru neuspešnega povezovanja strinjata z napako in lahko odobrita preusmeritev, s čimer lahko odjemalske operacije nadaljujejo.

1. korak: Zagon in omogočanje storitve Redis Sentinel

1. Na CentOS 8 je storitev Redis Sentinel nameščena skupaj s strežnikom Redis (kar smo že storili v nastavitvi Redis Replication Setup).

Če želite zagnati stražarsko storitev Redis in omogočiti samodejni zagon ob zagonu sistema, uporabite naslednje ukaze systemctl. Potrdite tudi, da deluje in preverite njegovo stanje (to storite na vseh vozliščih):

# systemctl start redis-sentinel
# systemctl enable redis-sentinel
# systemctl status redis-sentinel

2. korak: Konfiguriranje Redis Sentinel na vseh vozliščih Redis

2. V tem poglavju razlagamo, kako nastaviti Sentinel na vseh naših vozliščih. Storitev Sentinel ima podobno konfiguracijsko obliko kot strežnik Redis. Če jo želite konfigurirati, uporabite samo-dokumentirano konfiguracijsko datoteko /etc/redis-sentinel.conf.

Najprej ustvarite varnostno kopijo izvirne datoteke in jo odprite za urejanje.

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

3. Sentinel privzeto posluša na vratih 26379, to preveri na vseh primerkih. Upoštevajte, da morate parameter vezja pustiti pripomnjenim (ali nastaviti na 0.0.0.0).

port 26379

4. Nato povejte Sentinelu, naj nadzira našega mojstra in ga upošteva v stanju\"Objektivno navzdol", le če se strinjata vsaj dva kvoruma. Lahko\"mymaster" zamenjate z imenom po meri.

#On Master Server and Sentinel1
sentinel monitor mymaster 127.0.0.1 6379 2

#On Replica1 and Sentinel2
sentinel monitor mymaster 10.42.0.247 6379 2

#On Replica1 and Sentinel3
sentinel monitor mymaster 10.42.0.247 6379 2

Pomembno: Stavek nadzornikovega nadzornika MORA biti postavljen pred stavkovni odzivnik za avtorizacijo prenosa, da bi se izognili napaki\"Nobenega glavnega z navedenim imenom." ob ponovnem zagonu varovalne storitve.

5. Če ima nadzornik Redis za nadzor nastavljeno geslo (v našem primeru ga ima glavni strežnik), vnesite geslo, da se bo primerek Sentinel lahko overil z zaščitenim primerkom.

 
sentinel auth-pass mymaster [email 

6. Nato nastavite število milisekund, da mora biti glavni (ali katera koli priložena replika ali stražnik) nedosegljiv, da ga upošteva v stanju\"Subjektivno navzdol".

Naslednja konfiguracija pomeni, da bo glavna naprava odpovedala, takoj ko v 5 sekundah ne prejmemo odgovora od naših pingov (1 sekunda ustreza 1000 milisekunam).

sentinel down-after-milliseconds mymaster 5000

7. Nato nastavite časovno omejitev preklopa v milisekundah, ki določa veliko stvari (preberite dokumentacijo parametra v konfiguracijski datoteki).

sentinel failover-timeout mymaster 180000

8. Nato nastavite število kopij, ki jih je mogoče prekonfigurirati, da hkrati uporabite novo glavno enoto po odpovedi. Ker imamo dve kopiji, bomo eno repliko nastavili, druga pa bo napredovala v novega mojstra.

sentinel parallel-syncs mymaster 1

Upoštevajte, da bi morale biti konfiguracijski datoteki na Redis Replica1 in Sentinel2 ter Reddis Replica1 in Sentinel2 enaki.

9. Nato znova zaženite storitve Sentinel na vseh vozliščih, da uporabite nedavne spremembe.

# systemctl restart redis-sentinel

10. Nato odprite vrata 26379 v požarnem zidu na vseh vozliščih, da omogočite primerkom Sentinel, da začnejo govoriti, prejemajo povezave od drugih primerkov Sentinel s pomočjo požarnega zidu-cmd.

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

11. Vse replike bodo samodejno odkrite. Pomembno je, da bo Sentinel samodejno posodobil konfiguracijo z dodatnimi informacijami o replikah. To lahko potrdite tako, da za vsak primerek odprete konfiguracijsko datoteko Sentinel in si jo ogledate.

Na primer, ko pogledate konec konfiguracijske datoteke glavne enote, bi morali videti izjave znanih stražnikov in znanih replik, kot je prikazano na naslednjem posnetku zaslona.

Na replici1 in replici2 bi moralo biti enako.

Upoštevajte, da se tudi konfiguracija Sentinela prepiše/posodobi vsakič, ko se replika poviša v status glavnega med preklopom in vsakič, ko v nastavitvi odkrijejo novo Sentinel.

3. korak: Preverite stanje nastavitve Redis Sentinel

12. Zdaj s pomočjo ukaza info sentinel preverite stanje/informacije nadzornika na glavni enoti, kot sledi.

# redis-cli -p 26379 info sentinel

Iz rezultata ukaza, kot je razvidno iz naslednjega posnetka zaslona, imamo dve kopiji/sužnji in tri stražnike.

13. Če želite prikazati podrobne informacije o glavnem računalniku (imenovanem mojstrski mojster), uporabite ukaz glavnega kontrolnika.

# redis-cli -p 26379 sentinel master mymaster

14. Če želite prikazati podrobne informacije o podrejenih in stražarjih, uporabite ukaz sentinel suves oziroma ukaz sentinel sentinels.

# redis-cli -p 26379 sentinel slaves mymaster
# redis-cli -p 26379 sentinel sentinels mymaster

15. Nato od pomožnih primerkov z ukazom sentinel get-master-addr-by-name vprašajte naslov glavne enote po imenu, kot sledi.

Izhod mora biti naslov IP in vrata trenutnega primerka glavne enote:

# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

4. korak: Preizkusite preklop Sentinel

16. Na koncu preizkusimo samodejni preklop v našo nastavitev Sentinel. Na glavnem računalniku Redis/Sentinel pustite, da master Redis (ki deluje na vratih 6379) spi 60 sekund. Nato poizvedite naslov trenutnega glavnega mesta na replikah/podrejenih napravah, kot sledi.

# redis-cli -p 6379
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379>  debug sleep 60
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

Iz izhoda za poizvedbo je novi master zdaj replika/slave2 z naslovom IP 10.42.0.34, kot je razvidno iz naslednjega posnetka zaslona.

Več informacij lahko dobite v dokumentaciji Redis Sentinel. Če pa imate kakršne koli pomisleke za skupno rabo ali poizvedbe, je spodnji obrazec za povratne informacije vaš dostop do nas.

V naslednjem in zadnjem delu te serije bomo preučili, kako ustanoviti Redis Cluster v CentOS 8. To bo neodvisen članek iz prvih dveh.