Hvernig á að setja upp Redis afritun (með óvirka klasaham) í CentOS 8 - Part 1


Redis (Remote Dictionary Server) er mjög vinsæll og mikið notaður opinn uppspretta, fljótur, dreifður og skilvirkur lykilgildi gagnagrunns-/gagnaskipulagsþjónn í minni.

Það býður upp á mikið safn af eiginleikum sem gera það skilvirkt fyrir margs konar notkunartilvik: sem gagnagrunnur, skyndiminnislag, skilaboðamiðlari eða biðröð; eiga við í vefforritum, spjall- og skilaboðaforritum, leikjum, rauntíma gagnagreiningum og svo margt fleira.

Það styður sveigjanlega gagnastrúktúr, ósamstillta afritun meistara-þræls til að skala lestrarafköst og verja gegn gagnatapi, klippingu viðskiptavinarhliðar til að kvarða skrifafköst, tvenns konar þrautseigju til að skrifa gögn í minni á disk á samsettu sniði, þyrping og skipting. Það býður einnig upp á sjálfvirka bilun fyrir dreifingu með miklu framboði í gegnum Redis Sentinel, Lua forskriftir, viðskipti og margt fleira.

Þar sem Redis er ENGINN SQL eða ekki tengdur gagnagrunnur, býður Redis nokkra frammistöðukosti fram yfir hefðbundin gagnagrunnskerfi (svo sem MySQL/MariaDB, PostgreSQL, osfrv.), Vegna þess að öll gögn hans eru eða eru geymd í minni sem gerir það aðgengilegt forriti, á meðan hefðbundnir gagnagrunnar verða að skrifa öll gögn á eða lesa af diski eða utanaðkomandi uppsprettu.

Redis hefur orðið sífellt algengari valkostur fyrir skyndiminni, sem gerir kleift að endurnýta skyndiminni gögn (geymd í aðalminni forrits) frekar en að leita alltaf í gagnagrunn fyrir oft notuð gögn. Svo það er frábær félagi RDMS (Relational Database Management Systems) til að bæta árangur forrita á endanum.

Í þessari þriggja hluta Redis kennsluröð munum við fara yfir hvernig á að setja upp og nota nokkra af helstu eiginleikum Redis sem eru afritun, mikið framboð með Redis Sentinel og Redis Cluster, greinarnar eru:

Þessi leiðarvísir sýnir hvernig á að setja upp Redis afritun (með óvirka klasaham) í CentOS 8 Linux, þar á meðal hvernig á að setja upp Redis, stilla master og eftirmyndir og prófa afritunina.

Mikilvægt: Redis þyrping (þ.e. afritunarþyrping) með óvirkan klasaham hefur einn hnútahóp (t.d. meistara og eina eða tvær eftirmyndir) þar sem Redis þyrping með virka þyrpingarham getur samanstendur af tveimur eða fleiri hnútahópum (t.d. hver með þræla eða tvo).

  1. Netþjónar með CentOS 8 uppsetningu

Redis Master Server: 10.42.0.247
Redis Replica1/Slave1: 10.42.0.21
Redis Replica2/Slave2: 10.42.0.34

Með ofangreindri uppsetningu (sem hefur einn les/skrifa aðal/aðalhnút og 2 skrifvarða eftirmyndarhnúta), höfum við einn hnútahóp sem inniheldur öll gögn klasans í hverjum hnút. Þegar þræll tengist húsbónda fær hann upphaflegt afrit af gagnagrunninum í heild sinni og öllum gögnum sem áður voru til á þrælnum verður hent.

Að auki getur viðskiptavinur aðeins skrifað til meistarans en lesið úr hvaða hnút sem er í klasanum. Og eins og skrif eru framkvæmd á skipstjóranum, breiddist þau út til allra tengdra þræla til að uppfæra þrælagagnasöfnin í rauntíma.

Skref 1: Uppsetning Redis á CentOS 8

1. Til að byrja með, skráðu þig inn á alla CentOS 8 hnúta í gegnum SSH, settu síðan Redis pakkann upp á alla hnúta (meistara og eftirmyndir) með DNF pakkastjóranum eins og sýnt er.

# dnf install @redis

2. Þegar uppsetningu Redis pakkans er lokið skaltu ræsa Redis þjónustuna, gera henni kleift að ræsast sjálfkrafa við hverja kerfisræsingu og athuga hvort hún sé í gangi sem hér segir.

# systemctl start redis
# systemctl enable redis
# systemctl status redis

3. Þú getur líka staðfest að Redis þjónninn sé í gangi með því að athuga hlustunargáttir með því að nota ss skipunina, eins og hér segir.

# ss -ltpn | grep redis-server

Skref 2: Stilla Redis Master Server

4. Redis er stillt með því að nota /etc/redis.conf stillingarskrána, sjálfskjalfest dæmi um stillingarskrá. Fyrst skaltu búa til öryggisafrit af upprunalegu skránni og opna hana síðan til að breyta með því að nota skipanalínuritilinn þinn að eigin vali.

# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf

5. Sjálfgefið er að Redis tilvik er stillt til að hlusta og samþykkja tengingar á loopback tengi, með því að nota bind tilskipunina. Til að eiga samskipti við eftirlíkingarnar, ætti skipstjórinn að vera stilltur til að hlusta á IPv4 hringrásarvistfangið og LAN IP tölu þess, þ.e. 10.42.0.247.

bind 127.0.0.1 10.42.0.247

6. Næst skaltu stilla færibreytuna fyrir verndaðan hátt á nei til að leyfa samskipti við eftirmyndirnar eins og sýnt er.

protected-mode no

Einnig hlustar Redis á port 6379 sem er stillt með port tilskipuninni. Þetta er gagnagáttin fyrir samskipti við forritaskil forrita eða CLI viðskiptavini.

port 6379

7. Til að tryggja valfrjálst meistara-eftirmynd samskipti, getum við verndað skipstjóra með því að nota requirepass tilskipunina, þannig að viðskiptavinir/eftirmyndir verða að gefa út auðkenningarlykilorð áður en þú keyrir einhverjar skipanir eða byrjar samstillingarferli afritunar, annars mun skipstjórinn neita biðlari/eftirmynd beiðni (muna að setja öruggt lykilorð).

Við munum nota eftirfarandi valmöguleika í sýnikennsluskyni til að sýna hvernig það virkar.

requirepass  [email 

8. Einnig eru Redis annálar geymdar í /var/log/redis/redis.log skránni, þetta er stillt með logfile tilskipuninni og sjálfgefið orðræðustig miðlarans er tilkynnt, skilgreint með loglevel færibreytunni.

loglevel  notice
logfile  /var/log/redis/redis.log

9. Þar sem systemd er sjálfgefinn kerfis- og þjónustustjóri í CentOS 8, geturðu stillt Redis til að hafa samskipti við systemd eftirlitstréð með því að stilla breytu undir eftirliti á systemd.

supervised systemd

10. Eftir að hafa gert allar nauðsynlegar stillingar skaltu vista skrána og loka henni. Endurræstu síðan Redis þjónustuna til að beita nýju breytingunum.

# systemctl daemon-reload
# systemctl restart redis

11. Til að fá aðgang að Redis þjóninum þurfum við að nota redis-cli (skipanalínuviðmót við redis-þjóninn). Sjálfgefið er að það tengist þjóninum á localhost (við 127.0.0.1 tengi 6379). Athugaðu að vegna þess að þjónninn er tryggður fyrir viðskiptavinum með því að nota lykilorð ætti að keyra skipun fyrir auðkenningu að mistakast.

Notaðu auðkenningarskipunina til að gefa upp auðkenningarlykilorðið eins og sýnt er á eftirfarandi skjámynd.

# redis-cli
127.0.0.1:6379> client list
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> client list

12. Til að tengjast eftirmynd (eftir að hafa stillt þær eins og lýst er í næsta kafla), notaðu -h og -p valkostina til að tilgreina IP-tölu/hýsilheiti eftirmyndar og port í sömu röð (ekki það að port 6379 þurfi að vera opið í eldvegg eftirmyndarinnar).

# redis-cli -h 10.42.0.21 -p 6379

13. Næst skaltu opna Redis netþjónsgagnagáttina í eldveggnum til að leyfa tengingar á heimleið við skipstjórann og endurhlaða í kjölfarið eldveggsreglurnar með því að nota firewall-cmd skipunina eins og sýnt er.

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

Skref 3: Stilla Redis eftirmynd/þrælaþjóna

14. Til að stilla Redis tilvik fljótt sem eftirmynd á flugi, notaðu redis-cli tólið og hringdu í REPLICAOF skipunina eins og sýnt er.

# redis-cli replicaof 10.42.0.247 6379
OR
# redis-cli
127.0.0.1:6379> REPLICAOF 10.42.0.247 6379

15. Til að gera afritunartengingu varanlega þarftu að gera eftirfarandi breytingar á stillingarskránni. Byrjaðu á því að taka öryggisafrit af upprunalegu skránni og opnaðu hana síðan til að breyta.

# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf

16. Til að leyfa viðskiptavinum að tengjast eftirmyndinni til að lesa gögn, bætið eftirmynd IP tölu við bindingartilskipunina.

# replica1
bind 127.0.0.1 10.42.0.21

# replica2
bind 127.0.0.1 10.42.0.34

17. Til að stilla Redis tilvik sem eftirmynd, notaðu eftirmynd breytu og stilltu IP tölu (eða hýsilheiti) og gátt aðalhnútsins sem gildi.

replicaof 10.42.0.247 6379

18. Næst, þar sem aðaltilvikið okkar er varið með lykilorði, þurfum við að stilla lykilorðið í eftirmyndarstillingunni til að gera það kleift að auðkenna fyrir masternum með því að nota masterauth færibreytuna.

masterauth [email 

19. Þar að auki, þegar eftirmynd missir tenginguna við skipstjórann, eða þegar afritunin er í gangi, er eftirmyndin stillt til að svara beiðnum viðskiptavinar, hugsanlega með úrelt gögnum. En ef það er fyrsta samstillingin, þá gagnasettið gæti bara verið tómt. Þessari hegðun er stjórnað af færibreytunni replica-serve-stale-data.

Og þar sem afrit af Redis 2.6 eru sjálfgefið skrifvarinn, þá er þessu stjórnað af afritunar-read-only færibreytunni. Þú getur gert aðrar stillingar eftirlíkingar eftir þörfum þínum.

20. Þegar þú hefur gert allar nauðsynlegar breytingar skaltu endurræsa Redis þjónustuna á öllum eftirmyndum.

# systemctl restart redis

21. Opnaðu einnig gátt 6379 í eldveggnum til að leyfa tengingar frá skipstjóra og viðskiptavinum við eftirmyndirnar og endurhlaða eldveggsreglurnar.

# firewall-cmd --zone=public --permanenent --add-port=6379/tcp
# firewall-cmd --reload

Skref 4: Athugaðu stöðu afritunar eftirmyndar

22. Þegar uppsetningu master-afritunar eftirritunar er lokið getum við athugað hvort uppsetningin virki vel sem hér segir.

Keyrðu eftirfarandi skipanir á masternum.

# redis-cli
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> info replication

23. Athugaðu einnig afritunarstöðuna á eftirmyndunum/þrælunum sem hér segir.

# redis-cli
127.0.0.1:6379> info replication

23. Nú skulum við prófa afritunina með því að stilla lykilgildi í aðaltilvikinu og athuga hvort gögnin séu samstillt við eftirmyndirnar.

Á meistaranum, gerðu þetta:

# redis-cli
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> set domain 'linux-console.net'

24. Athugaðu síðan hvort gögnin hafi verið samstillt við eftirmyndirnar eins og sýnt er.

# redis-cli
127.0.0.1:6379> get domain

25. Redis er með eiginleika sem gerir aðaltilviki kleift að takmarka hættuna á að tapa einhverjum skrifum ef ekki eru nægilega margar eftirlíkingar tiltækar, við ákveðinn fjölda sekúndna.

Þetta þýðir að meistari getur hætt að samþykkja skrif ef það eru færri en N eftirlíkingar tengdar, með töf sem er minni eða jafnmikil en M sekúndur, eins og stjórnað er af valmöguleikum mín-afrit-til-að-skrifa og mín-afrit-hámarks-töf.

Til að stilla þau skaltu afskrifa þau og stilla gildin í samræmi við uppsetningarkröfur þínar í /etc/redis.conf, eins og sýnt er á eftirfarandi skjámynd. Þessi stilling þýðir að frá síðasta ping til eftirmynda, eftir 10 sekúndur, ef það eru færri en 2 eftirmyndir á netinu, mun meistarinn hætta að samþykkja skrif.

min-replicas-to-write 2
min-replicas-max-lag 10

Þú getur fundið fleiri valkosti í restinni af /etc/redis.conf stillingarskránni og til að fá frekari upplýsingar um afritun í Redis skjölunum.

Í næstu grein munum við fjalla um hvernig á að setja upp Redis fyrir mikið framboð með Sentinel í CentOS 8. Þangað til, vertu læst og mundu að deila hugsunum þínum og spurningum með því að nota athugasemdareyðublaðið okkar hér að neðan. Þú getur náð í okkur.