Kaip nustatyti „Redis“, kad būtų užtikrintas aukštas prieinamumas naudojant „Sentinel“ „CentOS 8“ – 2 dalis


Redis užtikrina aukštą pasiekiamumą per paskirstytą Redis Sentinel sistemą. Sentinel padeda stebėti Redis atvejus, aptikti gedimus ir automatiškai perjungti vaidmenis, taip įgalindamas Redis diegimą, kad būtų išvengta bet kokių gedimų.

Jame yra stebimi Redis egzemplioriai (pagrindinis ir kopijos), palaikomas pranešimas apie kitas paslaugas/procesus arba sistemos administratorius naudojant scenarijų, automatinis perkėlimas, kad būtų nukreipta kopija į pagrindinį, kai pagrindinis įrenginys sugenda, ir konfigūracija, skirta klientams atrasti esamą pagrindinį kompiuterį, siūlantį tam tikrą paslaugą.

Šiame straipsnyje parodyta, kaip nustatyti Redis, kad būtų užtikrintas aukštas pasiekiamumas naudojant Redis Sentinel sistemoje CentOS 8, įskaitant kontrolinių elementų konfigūravimą, sąrankos būsenos tikrinimą ir Sentinel perversmas.

Būtina sąlyga:

  1. Kaip nustatyti „Redis“ replikaciją (išjungus klasterio režimą) „CentOS 8“ – 1 dalis

Bandymo aplinkos sąranka

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

Remiantis Redis Sentinel dokumentacija, norint užtikrinti patikimą diegimą, reikia mažiausiai trijų Sentinel egzempliorių. Atsižvelgiant į aukščiau pateiktą sąranką, jei pagrindinis nepavyks, Sentinels2 ir Sentinel3 susitars dėl gedimo ir galės leisti atlikti perkėlimą, todėl gali tęsti kliento operacijas.

1 veiksmas: paleiskite ir įjunkite „Redis Sentinel“ paslaugą

1. Sistemoje CentOS 8 paslauga Redis Sentinel įdiegta kartu su Redis serveriu (ką jau padarėme Redis replikacijos sąranka).

Norėdami paleisti Redis sentinel paslaugą ir įjungti ją automatiškai paleidžiant sistemą, naudokite šias systemctl komandas. Be to, patvirtinkite, kad jis veikia, patikrindami jo būseną (padarykite tai visuose mazguose):

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

2 veiksmas: „Redis Sentinel“ konfigūravimas visuose Redis mazguose

2. Šiame skyriuje paaiškiname, kaip sukonfigūruoti Sentinel visuose mūsų mazguose. Paslaugos Sentinel konfigūracijos formatas panašus kaip ir Redis serverio. Norėdami jį sukonfigūruoti, naudokite /etc/redis-sentinel.conf savarankiškai dokumentuotą konfigūracijos failą.

Pirmiausia sukurkite originalaus failo atsarginę kopiją ir atidarykite ją redaguoti.

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

3. Pagal numatytuosius nustatymus „Sentinel“ klausosi prievado 26379, patikrinkite tai visais atvejais. Atminkite, kad parametrą pririšti turite palikti komentuotą (arba nustatyti į 0.0.0.0).

port 26379

4. Tada pasakykite Sentinel, kad jis stebėtų mūsų pagrindinį ir laikytųsi jo būsenos „Objektyviai žemyn“ tik jei tam pritaria bent 2 kvorumo sargybiniai. Galite pakeisti „mano valdytojas“ tinkintu pavadinimu.

#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

Svarbu: „Sentinel Monitor“ teiginys PRIVALO būti pateiktas prieš „sentinel“ auth-pass teiginį, kad būtų išvengta klaidos „Nėra tokio pagrindinio su nurodytą pavadinimą. “, kai iš naujo paleisite „sentinel“ paslaugą.

5. Jei stebėti Redis pagrindiniame kompiuteryje yra nustatytas slaptažodis (mūsų atveju pagrindinis yra), pateikite slaptažodį, kad „Sentinel“ egzempliorius galėtų autentifikuoti apsaugotą egzempliorių.

 
sentinel auth-pass mymaster Securep@55Here

6. Tada nustatykite, kiek milisekundžių pagrindinis (arba bet kokia pridėta kopija ar kontrolinis) turėtų būti nepasiekiamas, kad būtų galima jį laikyti „Subjektyviai žemyn“.

Ši konfigūracija reiškia, kad pagrindinis serveris bus laikomas sugedusiu, kai tik per 5 sekundes negausime atsakymo iš ping (1 sekundė atitinka 1000 milisekundžių).

sentinel down-after-milliseconds mymaster 5000

7. Tada nustatykite perjungimo skirtąjį laiką milisekundėmis, kuris apibrėžia daugelį dalykų (skaitykite parametro dokumentaciją konfigūracijos faile).

sentinel failover-timeout mymaster 180000

8. Tada nustatykite kopijų, kurias galima iš naujo sukonfigūruoti, kad tuo pačiu metu būtų galima naudoti naują pagrindinį failą, skaičių. Kadangi turime dvi kopijas, nustatysime vieną kopiją, nes kita bus paaukštinta iki naujojo pagrindinio.

sentinel parallel-syncs mymaster 1

Atminkite, kad Redis Replica1 ir Sentinel2 bei Reddis Replica1 ir Sentinel2 konfigūracijos failai turi būti identiški.

9. Tada iš naujo paleiskite Sentinel paslaugas visuose mazguose, kad pritaikytumėte naujausius pakeitimus.

systemctl restart redis-sentinel

10. Tada atidarykite prievadą 26379 visų mazgų užkardoje, kad Sentinel egzemplioriai pradėtų kalbėti, gautų ryšius iš kitų >Sentinel egzempliorių, naudojant ugniasienę-cmd.

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

11. Visos kopijos bus aptiktos automatiškai. Svarbu tai, kad Sentinel automatiškai atnaujins konfigūraciją su papildoma informacija apie kopijas. Tai galite patvirtinti atidarę kiekvieno egzemplioriaus Sentinel konfigūracijos failą ir peržiūrėkite jį.

Pavyzdžiui, kai žiūrite į pagrindinio konfigūracijos failo pabaigą, turėtumėte matyti teiginius known-sentinels ir known-replica, kaip parodyta toliau pateiktoje ekrano kopijoje.

Tai turėtų būti vienoda replica1 ir replica2.

Atminkite, kad Sentinel konfigūracija taip pat perrašoma/atnaujinama kiekvieną kartą, kai replika perkeliama į pagrindinę būseną ir kiekvieną kartą, kai sąrankoje aptinkamas naujas Sentinel.

3 veiksmas: patikrinkite „Redis Sentinel“ sąrankos būseną

12. Dabar patikrinkite pagrindinio įrenginio Sentinel būseną/informaciją naudodami komandą info sentinel, kaip nurodyta toliau.

redis-cli -p 26379 info sentinel

Iš komandos išvesties, kaip parodyta toliau pateiktoje ekrano kopijoje, turime dvi kopijas/vergus ir tris kontrolinius.

13. Norėdami parodyti išsamią informaciją apie pagrindinį (vadinamą mano valdytoju), naudokite komandą sentinel master.

redis-cli -p 26379 sentinel master mymaster

14. Norėdami parodyti išsamią informaciją apie vergus ir sargybinius, naudokite komandą sargybiniai vergai ir sargybinius komandą sentinels.

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

15. Tada paklauskite pagrindinio adreso pagal pavadinimą iš pagalbinių egzempliorių naudodami komandą sentinel get-master-addr-by-name, kaip nurodyta toliau.

Išvestis turėtų būti dabartinio pagrindinio egzemplioriaus IP adresas ir prievadas:

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

4 veiksmas: patikrinkite „Sentinel Failover“.

16. Galiausiai išbandykime automatinį perjungimą mūsų Sentinel sąrankoje. Pagrindiniame įrenginyje Redis/Sentinel nustatykite pagrindinį Redis (veikiantį prievadą 6379), kad jis išsijungtų 60 sekundžių. . Tada užklauskite dabartinio pagrindinio adreso kopijose/pagalbose, kaip nurodyta toliau.

redis-cli -p 6379
127.0.0.1:6379> AUTH Securep@55Here
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

Iš užklausos išvesties naujasis pagrindinis elementas dabar yra replica/slave2 su IP adresu 10.42.0.34, kaip parodyta toliau pateiktoje ekrano kopijoje.

Daugiau informacijos galite gauti iš Redis Sentinel dokumentacijos. Bet jei turite kokių nors minčių, kuriomis norite pasidalinti ar turite klausimų, toliau pateikta atsiliepimų forma yra jūsų vartai į mus.

Kitoje ir paskutinėje šios serijos dalyje apžvelgsime, kaip nustatyti Redis klasterį CentOS 8. Tai bus nepriklausomas straipsnis iš pirmųjų dviejų.