Jinsi ya Kusanidi Redis Kwa Upatikanaji wa Juu na Sentinel katika CentOS 8 - Sehemu ya 2


Redis hutoa upatikanaji wa juu kupitia mfumo uliosambazwa wa Redis Sentinel. Sentinel husaidia kufuatilia matukio ya Redis, kugundua kushindwa na itafanya swichi za majukumu kiotomatiki hivyo kuwezesha utumaji wa Redis kupinga aina yoyote ya kushindwa.

Inaangazia ufuatiliaji wa matukio ya Redis (master na replicas), inasaidia arifa ya huduma/taratibu zingine au msimamizi wa mfumo kupitia hati, kushindwa kiotomatiki ili kukuza nakala kwa bwana wakati bwana anashuka na kutoa usanidi kwa wateja kugundua sasa. bwana akitoa huduma fulani.

Makala haya yanaonyesha jinsi ya kusanidi Redis kwa upatikanaji wa juu na Redis Sentinel katika CentOS 8, ikiwa ni pamoja na kusanidi walinzi, kuangalia hali ya usanidi na kujaribu kutofaulu kwa Sentinel.

  1. Jinsi ya Kuweka Urudiaji wa Redis (iliyo na Hali ya Cluster Imezimwa) katika CentOS 8 - Sehemu ya 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

Kulingana na hati za Redis Sentinel, mtu anahitaji angalau matukio matatu ya Sentinel kwa ajili ya kupelekwa kwa nguvu. Kwa kuzingatia usanidi wetu hapo juu, ikiwa bwana atashindwa, Sentinels2 na Sentinel3 watakubaliana kuhusu kutofaulu na wataweza kuidhinisha kutofaulu, na kufanya shughuli za mteja kuendelea.

Hatua ya 1: Kuanzisha na Kuwezesha Huduma ya Redis Sentinel

1. Kwenye CentOS 8, huduma ya Redis Sentinel imesakinishwa pamoja na seva ya Redis (ambayo tayari tulifanya katika Uwekaji wa Kurudiarudia Redis).

Ili kuanza huduma ya Sentinel ya Redis na kuiwezesha kuanza kiotomatiki kwenye boot ya mfumo, tumia amri zifuatazo za systemctl. Pia, thibitisha kuwa iko na inaendelea kwa kuangalia hali yake (fanya hivi kwenye nodi zote):

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

Hatua ya 2: Kusanidi Redis Sentinel kwenye Nodi Zote za Redis

2. Katika sehemu hii, tunaelezea jinsi ya kusanidi Sentinel kwenye nodes zetu zote. Huduma ya Sentinel ina umbizo la usanidi sawa na seva ya Redis. Ili kuisanidi, tumia /etc/redis-sentinel.conf faili ya usanidi iliyojiandikisha.

Kwanza, unda nakala ya faili asili na uifungue kwa uhariri.

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

3. Kwa chaguomsingi, Sentinel husikiliza kwenye bandari 26379, thibitisha hili katika matukio yote. Kumbuka kwamba lazima uache kigezo cha kumfunga kilichotolewa maoni (au weka 0.0.0.0).

port 26379

4. Kisha, mwambie Sentinel afuatilie bwana wetu, na azingatie katika hali ya \Objectively Down ikiwa tu angalau walinzi 2 wa akidi watakubali. Unaweza kubadilisha \bwana wangu kwa jina maalum.

#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

Muhimu: Taarifa ya mfuatiliaji ni LAZIMA iwekwe mbele ya taarifa ya uthibitisho wa mtumaji ili kuepusha hitilafu \Hakuna bwana kama huyo aliye na jina lililobainishwa. wakati wa kuanzisha upya huduma ya mlinzi.

5. Ikiwa bwana wa ufuatiliaji wa Redis ana seti ya nenosiri (kwa upande wetu bwana anayo), toa nenosiri ili mfano wa Sentinel uweze kuthibitisha kwa mfano uliolindwa.

 
sentinel auth-pass mymaster [email 

6. Kisha weka idadi ya milisekunde bwana (au nakala yoyote iliyoambatishwa au mlinzi) haipaswi kufikiwa ili kuizingatia katika hali ya \Subjectively Down.

Usanidi ufuatao unamaanisha kuwa bwana atachukuliwa kuwa hafaulu punde tusipopokea jibu lolote kutoka kwa pings zetu ndani ya sekunde 5 (sekunde 1 ni sawa na milisekunde 1000).

sentinel down-after-milliseconds mymaster 5000

7. Kisha, weka muda wa kushindwa katika milliseconds ambayo inafafanua mambo mengi (soma nyaraka za parameter katika faili ya usanidi).

sentinel failover-timeout mymaster 180000

8. Kisha weka idadi ya nakala ambazo zinaweza kusanidiwa tena kutumia bwana mpya baada ya kushindwa kwa wakati mmoja. Kwa kuwa tuna nakala mbili, tutaweka nakala moja kwani nyingine itapandishwa cheo na kuwa bwana mpya.

sentinel parallel-syncs mymaster 1

Kumbuka kuwa faili za usanidi kwenye Redis Replica1 na Sentinel2, na Reddis Replica1 na Sentinel2 zinapaswa kufanana.

9. Kisha, anzisha upya huduma za Sentinel kwenye nodi zote ili kutumia mabadiliko ya hivi majuzi.

# systemctl restart redis-sentinel

10. Kisha, fungua mlango nambari 26379 kwenye ngome kwenye nodi zote ili kuwezesha matukio ya Sentinel kuanza kuzungumza, pokea miunganisho kutoka kwa matukio mengine ya Sentinel, kwa kutumia firewall-cmd.

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

11. Nakala zote zitagunduliwa kiotomatiki. Muhimu, Sentinel itasasisha usanidi kiotomatiki kwa maelezo ya ziada kuhusu nakala. Unaweza kuthibitisha hili kwa kufungua faili ya usanidi ya Sentinel kwa kila tukio na kuiangalia.

Kwa mfano, unapotazama mwisho wa faili kuu ya usanidi, unapaswa kuona walinzi wanaojulikana na taarifa za nakala inayojulikana kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

Inapaswa kuwa kesi sawa kwenye replica1 na replica2.

Kumbuka kuwa usanidi wa Sentinel pia huandikwa upya/kusasishwa kila mara nakala inapopandishwa hadhi kuwa bora wakati wa kutofaulu na kila wakati Sentinel mpya inapogunduliwa katika usanidi.

Hatua ya 3: Angalia Hali ya Kuweka Redis Sentinel

12. Sasa angalia hali/maelezo ya Sentinel juu ya bwana, ukitumia amri ya mlinzi wa maelezo kama ifuatavyo.

# redis-cli -p 26379 info sentinel

Kutoka kwa matokeo ya amri kama inavyoonekana katika picha ya skrini ifuatayo, tuna nakala mbili/watumwa na walinzi watatu.

13. Ili kuonyesha maelezo ya kina kuhusu bwana (aitwaye mymaster), tumia amri ya bwana ya askari.

# redis-cli -p 26379 sentinel master mymaster

14. Kuonyesha maelezo ya kina kuhusu watumwa na walinzi, tumia amri ya watumwa na askari walinzi mtawalia.

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

15. Kisha, uliza anwani ya bwana kwa jina kutoka kwa matukio ya mtumwa kwa kutumia amri ya get-master-addr-by-name kama ifuatavyo.

Pato linapaswa kuwa anwani ya IP na bandari ya mfano mkuu wa sasa:

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

Hatua ya 4: Jaribu Sentinel Failover

16. Hatimaye, hebu tujaribu kutofaulu kiotomatiki katika usanidi wetu wa Sentinel. Kwenye Redis/Sentinel bwana, fanya Redis master (inayoendesha bandari 6379) alale kwa sekunde 60. Kisha uulize anwani ya bwana wa sasa kwenye nakala/watumwa kama ifuatavyo.

# 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

Kutoka kwa matokeo ya hoja, bwana mpya sasa ni replica/slave2 na anwani ya IP 10.42.0.34 kama inavyoonekana kwenye picha ya skrini ifuatayo.

Unaweza kupata maelezo zaidi kutoka kwa nyaraka za Redis Sentinel. Lakini ikiwa una mawazo yoyote ya kushiriki au maswali, fomu ya maoni iliyo hapa chini ndiyo lango lako kwetu.

Katika sehemu inayofuata na ya mwisho ya mfululizo huu, tutaangalia jinsi ya kuanzisha Cluster ya Redis katika CentOS 8. Itakuwa makala ya kujitegemea kutoka kwa mbili za kwanza.