Slik konfigurerer du Redis for høy tilgjengelighet med Sentinel i CentOS 8 - Del 2


Redis gir høy tilgjengelighet via Redis Sentinel distribuert system. Sentinel hjelper til med å overvåke Redis-forekomster, oppdage feil og vil gjøre rollebytter automatisk, slik at en Redis-distribusjon kan motstå enhver form for feil.

Den har overvåking av Redis-forekomster (master og replikaer), støtter varsling av andre tjenester/prosesser eller systemadministrator via et skript, automatisk failover for å promotere en replika til en master når masteren går ned og gir konfigurasjon for klienter å oppdage gjeldende master som tilbyr en bestemt tjeneste.

Denne artikkelen demonstrerer hvordan du konfigurerer Redis for høy tilgjengelighet med Redis Sentinel i CentOS 8, inkludert konfigurering av vaktposter, kontroll av oppsettstatus og testing av en Sentinel-failover.

  1. Slik konfigurerer du Redis-replikering (med klyngemodus deaktivert) i CentOS 8 – del 1

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

I følge Redis Sentinel-dokumentasjonen trenger man minst tre Sentinel-instanser for en robust distribusjon. Med tanke på oppsettet ovenfor, hvis masteren mislykkes, vil Sentinels2 og Sentinel3 bli enige om feilen og vil kunne autorisere en failover, slik at klientoperasjoner kan fortsette.

Trinn 1: Starte og aktivere Redis Sentinel Service

1. På CentOS 8 er Redis Sentinel-tjenesten installert ved siden av Redis-serveren (som vi allerede gjorde i Redis-replikeringsoppsettet).

For å starte Redis sentinel-tjenesten og aktivere den til å starte automatisk ved systemoppstart, bruk følgende systemctl-kommandoer. Bekreft også at den er oppe og går ved å sjekke statusen (gjør dette på alle nodene):

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

Trinn 2: Konfigurere Redis Sentinel på alle Redis-noder

2. I denne delen forklarer vi hvordan du konfigurerer Sentinel på alle nodene våre. Sentinel-tjenesten har et lignende konfigurasjonsformat som Redis-serveren. For å konfigurere den, bruk /etc/redis-sentinel.conf selvdokumenterte konfigurasjonsfilen.

Lag først en sikkerhetskopi av den opprinnelige filen og åpne den for redigering.

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

3. Som standard lytter Sentinel på port 26379, bekreft dette på alle forekomstene. Merk at du må la bindingsparameteren være kommentert (eller satt til 0.0.0.0).

port 26379

4. Deretter ber du Sentinel om å overvåke vår mester, og vurdere den i «Objectively Down»-tilstanden bare hvis minst 2 quorumsvakter er enige. Du kan erstatte «mymaster» med et tilpasset navn.

#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

Viktig: Sentinel monitor-setningen MÅ plasseres før sentinel aut-pass-erklæringen for å unngå feilen «Ingen slik master med det angitte navnet». når du starter sentinel-tjenesten på nytt.

5. Hvis Redis-masteren som skal overvåkes har et passord satt (i vårt tilfelle har masteren), oppgi passordet slik at Sentinel-forekomsten kan autentisere seg med den beskyttede forekomsten.

 
sentinel auth-pass mymaster [email 

6. Sett deretter antall millisekunder masteren (eller en vedlagt replika eller vaktpost) skal være utilgjengelig for å vurdere den i tilstanden Subjectively Down.

Følgende konfigurasjon betyr at masteren vil bli ansett som mislykket så snart vi ikke mottar noe svar fra pingene våre innen 5 sekunder (1 sekund tilsvarer 1000 millisekunder).

sentinel down-after-milliseconds mymaster 5000

7. Sett deretter failover-tidsavbruddet i millisekunder som definerer mange ting (les dokumentasjonen for parameteren i konfigurasjonsfilen).

sentinel failover-timeout mymaster 180000

8. Sett deretter antall replikaer som kan rekonfigureres til å bruke den nye masteren etter en failover samtidig. Siden vi har to kopier, vil vi sette en kopi ettersom den andre vil bli forfremmet til den nye masteren.

sentinel parallel-syncs mymaster 1

Merk at konfigurasjonsfilene på Redis Replica1 og Sentinel2, og Reddis Replica1 og Sentinel2 skal være identiske.

9. Start deretter Sentinel-tjenestene på nytt på alle noder for å bruke de siste endringene.

# systemctl restart redis-sentinel

10. Deretter åpner du port 26379 i brannmuren på alle noder for å gjøre det mulig for Sentinel-forekomstene å begynne å snakke, motta forbindelser fra de andre Sentinel-forekomstene ved å bruke brannmur-cmd.

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

11. Alle kopiene vil bli oppdaget automatisk. Viktigere, Sentinel vil oppdatere konfigurasjonen automatisk med tilleggsinformasjon om replikaer. Du kan bekrefte dette ved å åpne Sentinel-konfigurasjonsfilen for hver forekomst og se gjennom den.

For eksempel, når du ser på slutten av masterens konfigurasjonsfil, bør du se kjente vaktposter og kjente replika-setninger som vist i følgende skjermbilde.

Det skal være det samme tilfellet på replica1 og replica2.

Merk at Sentinel-konfigurasjonen også skrives om/oppdateres hver gang en replika oppgraderes til masterstatus under en failover og hver gang en ny Sentinel oppdages i oppsettet.

Trinn 3: Sjekk Redis Sentinel Setup Status

12. Kontroller nå Sentinel-status/informasjon på masteren ved å bruke info sentinel-kommandoen som følger.

# redis-cli -p 26379 info sentinel

Fra utgangen av kommandoen som vist i følgende skjermbilde, har vi to replikaer/slaver og tre vaktposter.

13. For å vise detaljert informasjon om masteren (kalt mymaster), bruk sentinel master-kommandoen.

# redis-cli -p 26379 sentinel master mymaster

14. For å vise detaljert informasjon om slavene og vaktpostene, bruk henholdsvis sentinel slaves command og sentinel sentinels kommando.

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

15. Spør deretter adressen til masteren ved navn fra slaveforekomstene ved å bruke sentinel get-master-addr-by-name kommandoen som følger.

Utdataene skal være IP-adressen og porten til gjeldende hovedforekomst:

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

Trinn 4: Test Sentinel Failover

16. Til slutt, la oss teste automatisk failover i Sentinel-oppsettet vårt. På Redis/Sentinel-masteren får du Redis-masteren (kjører på port 6379) til å sove i 60 sekunder. Spør deretter adressen til gjeldende master på replikaene/slavene som følger.

# 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

Fra utgangen for spørringen er den nye masteren nå replica/slave2 med IP-adressen 10.42.0.34 som vist i følgende skjermbilde.

Du kan få mer informasjon fra Redis Sentinel-dokumentasjonen. Men hvis du har noen tanker å dele eller spørsmål, er tilbakemeldingsskjemaet nedenfor din inngangsport til oss.

I neste og siste del av denne serien skal vi se på hvordan du setter opp en Redis Cluster i CentOS 8. Det vil være en uavhengig artikkel fra de to første.