Kuinka asentaa Redis korkeaan käytettävyyteen Sentinelillä CentOS 8:ssa - Osa 2


Redis tarjoaa korkean saatavuuden Redis Sentinel -hajautetun järjestelmän kautta. Sentinel auttaa seuraamaan Redis-esiintymiä, havaitsemaan vikoja ja vaihtaa roolit automaattisesti, jolloin Redis-käyttöönotto voi vastustaa kaikenlaisia vikoja.

Se sisältää Redis-esiintymien (master ja replikat) valvonnan, tukee ilmoituksia muista palveluista/prosesseista tai järjestelmänvalvojalle komentosarjan kautta, automaattista vikasietoa replikan siirtämiseksi pääkoneeseen, kun isäntäkone kaatuu ja tarjoaa asetukset, jotta asiakkaat voivat löytää nykyisen isäntälaitteen, joka tarjoaa tiettyä palvelua.

Tässä artikkelissa kerrotaan, kuinka Redis määritetään korkeaa käytettävyyttä varten Redis Sentinel -sovelluksella CentOS 8:ssa, mukaan lukien sentinelien määrittäminen, asennuksen tilan tarkistaminen ja Sentinel-virheenvaihto.

Edellytys:

  1. Redis-replikoinnin määrittäminen (klusteritila poissa käytöstä) CentOS 8:ssa – Osa 1

Testiympäristön asetukset

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

Redis Sentinel -dokumentaation mukaan tarvitaan vähintään kolme Sentinel-instanssia tehokkaaseen käyttöönottoon. Ottaen huomioon yllä olevat asetuksemme, jos master epäonnistuu, Sentinels2 ja Sentinel3 sopivat virheestä ja voivat valtuuttaa vikasietotilan. asiakkaan toiminta voi jatkua.

Vaihe 1: Redis Sentinel -palvelun käynnistäminen ja käyttöönotto

1. CentOS 8 -käyttöjärjestelmässä Redis Sentinel -palvelu on asennettu Redis-palvelimen rinnalle (jonka teimme jo Redis Replication Setup).

Voit käynnistää Redis sentinel-palvelun ja ottaa sen käyttöön automaattisesti järjestelmän käynnistyksen yhteydessä käyttämällä seuraavia systemctl-komentoja. Varmista myös, että se on käynnissä tarkistamalla sen tila (tee tämä kaikissa solmuissa):

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

Vaihe 2: Redis Sentinelin määrittäminen kaikissa Redis-solmuissa

2. Tässä osiossa selitämme, kuinka Sentinel määritetään kaikissa solmuissamme. Sentinel-palvelulla on samanlainen määritysmuoto kuin Redis-palvelimella. Määritä se käyttämällä /etc/redis-sentinel.conf itsedokumentoitua määritystiedostoa.

Luo ensin varmuuskopio alkuperäisestä tiedostosta ja avaa se muokkausta varten.

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

3. Oletuksena Sentinel kuuntelee porttia 26379, varmista tämä kaikissa tapauksissa. Huomaa, että bind-parametri on jätettävä kommentoimatta (tai arvoksi 0.0.0.0).

port 26379

4. Pyydä seuraavaksi Sentineliä tarkkailemaan päällikköämme ja harkitsemaan sitä Objektiivisesti alas -tilassa. vain, jos vähintään kaksi päätösvaltaista vartijaa hyväksyy. Voit korvata "mymaster" muokatulla nimellä.

#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

Tärkeää: Sentinel monitor -lause TÄYTYY asettaa ennen sentinel auth-pass -lausetta, jotta vältytään virheeltä "Ei tällaista masteria määritetty nimi. ” kun sentinel-palvelu käynnistetään uudelleen.

5. Jos valvottavalla Redis-isännällä on salasana asetettu (meidän tapauksessamme isäntä on), anna salasana, jotta Sentinel-ilmentymä voi todentaa suojatun ilmentymän kanssa.

 
sentinel auth-pass mymaster Securep@55Here

6. Aseta sitten millisekuntien määrä, jonka pääkoneen (tai minkä tahansa liitetyn replikan tai vartijan) ei pitäisi olla tavoitettavissa, jotta se voidaan katsoa Subjektiivisesti alas -tilassa.

Seuraava kokoonpano tarkoittaa, että isäntäkoneen katsotaan epäonnistuneen heti, kun emme saa vastausta pingistämme 5 sekunnin kuluessa (1 sekunti vastaa 1000 millisekuntia).

sentinel down-after-milliseconds mymaster 5000

7. Aseta seuraavaksi vikasietoaika millisekunteina, mikä määrittää monia asioita (lue parametrin dokumentaatio määritystiedostosta).

sentinel failover-timeout mymaster 180000

8. Määritä sitten niiden replikoiden määrä, jotka voidaan määrittää uudelleen käyttämään uutta masteria vikasietotilan jälkeen. Koska meillä on kaksi kopiota, asetamme yhden replikan, koska toinen ylennetään uudeksi päälliköksi.

sentinel parallel-syncs mymaster 1

Huomaa, että määritystiedostojen Redis Replica1 ja Sentinel2 sekä Reddis Replica1 ja Sentinel2 tulee olla identtisiä.

9. Käynnistä seuraavaksi Sentinel-palvelut uudelleen kaikissa solmuissa ottaaksesi viimeaikaiset muutokset käyttöön.

systemctl restart redis-sentinel

10. Avaa seuraavaksi kaikkien solmujen palomuurin portti 26379, jotta Sentinel-esiintymät voivat alkaa puhua ja vastaanottaa yhteyksiä toiselta >Sentinel-esiintymiä käyttämällä palomuuri-cmd-komentoa.

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

11. Kaikki kopiot löydetään automaattisesti. Tärkeää on, että Sentinel päivittää määritykset automaattisesti lisätiedoilla replikoista. Voit vahvistaa tämän avaamalla kunkin esiintymän Sentinel-määritystiedoston ja katsomalla sitä.

Kun esimerkiksi katsot pääkäyttäjän määritystiedoston loppua, sinun pitäisi nähdä known-sentinels- ja known-replica -lauseet seuraavan kuvakaappauksen mukaisesti.

Sen pitäisi olla sama tapauskohdissa replica1 ja replica2.

Huomaa, että myös Sentinel-määritykset kirjoitetaan uudelleen/päivitetään aina, kun replika ylennetään master-tilaan vikasietotilan aikana ja joka kerta, kun asennuksesta löydetään uusi Sentinel.

Vaihe 3: Tarkista Redis Sentinel -asetusten tila

12. Tarkista nyt päälaitteen Sentinel-tila/tiedot käyttämällä info sentinel-komentoa seuraavasti.

redis-cli -p 26379 info sentinel

Seuraavassa kuvakaappauksessa komennon tulosteesta meillä on kaksi kopiota/orjaa ja kolme vartijaa.

13. Jos haluat näyttää yksityiskohtaisia tietoja masterista (nimeltään mymaster), käytä sentinel master -komentoa.

redis-cli -p 26379 sentinel master mymaster

14. Jos haluat näyttää yksityiskohtaisia tietoja orjista ja vartijoista, käytä sentinel slaves -komentoa ja sentinel sentinels-komento.

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

15. Pyydä seuraavaksi isäntäkoneen osoite nimen mukaan orja-esiintymiltä komennolla sentinel get-master-addr-by-name seuraavasti.

Lähdön tulee olla nykyisen pääesiintymän IP-osoite ja portti:

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

Vaihe 4: Testaa Sentinel Failover

16. Testataan lopuksi automaattista vikasietoa Sentinel-asetuksissa. Aseta Redis/Sentinel-isäntälaitteen Redis-master (joka toimii portissa 6379) nukkumaan 60 sekuntia . Pyydä sitten replikoiden/orjien nykyisen isäntäkoneen osoite seuraavasti.

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

Kyselyn tulosteesta uusi isäntä on nyt replica/slave2 ja IP-osoite 10.42.0.34, kuten seuraavassa kuvakaappauksessa näkyy.

Saat lisätietoja Redis Sentinel -dokumentaatiosta. Mutta jos sinulla on ajatuksia jaettavana tai kysyttävää, alla oleva palautelomake on porttisi meille.

Tämän sarjan seuraavassa ja viimeisessä osassa tarkastellaan Redis-klusterin määrittämistä CentOS 8:ssa. Se on itsenäinen artikkeli kahdesta ensimmäisestä.