Hvernig á að setja upp Redis þyrping í CentOS 8 - Part 3


Redis Cluster er innbyggður Redis eiginleiki sem styður sjálfvirka klippingu, afritun og mikið framboð sem áður var útfært með Sentinels. Það er hannað fyrir tvo megintilganga: einn er að skipta gagnasafninu þínu sjálfkrafa á milli margra tilvika og í öðru lagi til að veita einhvers konar framboð á skiptingum, til að halda áfram aðgerðum þegar sum tilvik (sérstaklega meistarar) mistakast eða geta ekki átt samskipti við meirihluta hnúta í þyrpingunni.

Hins vegar hættir þyrpingin að starfa ef stærri bilanir verða (t.d. þegar meirihluti meistaratilvika er ekki tiltækur). Einnig, ef húsbóndi og þræll mistakast á sama tíma, getur þyrpingin ekki haldið áfram eðlilegri starfsemi (þó að lausnin sé að bæta við fleiri hnútum eða búa til ósamhverfu í þyrpingunni, til að breyta sjálfvirkt klasaskipulaginu).

Samkvæmt Redis klasaskjölunum þarf lágmarksþyrpingin sem virkar eins og búist er við að innihalda að minnsta kosti 3 aðalhnúta. En hentugasta uppsetningin fyrir mikið framboð ætti að hafa að minnsta kosti 6 hnúta með þremur herrum og þremur þrælum, þar sem hver skipstjóri hefur þræll.

Mikilvægt: Redis Cluster hefur einnig nokkrar takmarkanir sem eru skortur á stuðningi við NATted umhverfi sem og þau þar sem IP tölur eða TCP tengi eru endurmerkt til dæmis undir Docker. Að auki styður ekki hvert viðskiptabókasafn það.

Þessi grein sýnir hvernig á að setja upp Redis Cluster (með Cluster-Mode Disabled) í CentOS 8. Hún felur í sér hvernig á að setja upp Redis, stilla klasahnúta, búa til klasa og prófa þyrpingarbilunina.

Athugið: Fyrir þessa handbók munum við nota fersk/tóm Redis tilvik til að keyra klasahaminn. Klasahamurinn mun ekki virka með sumum stillingum sem gerðar eru í fyrstu tveimur leiðbeiningunum í Redis seríunni okkar, sérstaklega virkar hann ekki þegar eftirmynd breytunnar er notuð.

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

Redis Master1: 10.42.0.247
Redis Master2: 10.42.0.197
Redis Master3: 10.42.0.132

Redis Slave1: 10.42.0.200
Redis Slave2: 10.42.0.21
Redis Slave3: 10.42.0.34

Uppsetningin okkar hefur 3 les/skrifa aðalhnúta og 3 skrifvarða eftirmyndarhnúta, þar sem hver master er með eina eftirmynd, þannig að þrjú brot innihalda öll gögn klasans í hverjum hnút. Forritaskil forrita eða CLI viðskiptavinur getur aðeins skrifað á aðalhnúta en lesið úr hvaða hnút sem er í klasanum.

Skref 1: Uppsetning Redis á öllum hnútum

1. Skráðu þig inn í öll tilvik í gegnum SSH, keyrðu síðan eftirfarandi skipun til að setja upp Redis eininguna með því að nota DNF pakkastjórann eins og sýnt er.

# dnf module install redis

2. Næst skaltu ræsa Redis þjónustuna, gera henni kleift að byrja sjálfkrafa við ræsingu kerfisins og athuga stöðu hennar til að ganga úr skugga um að hún sé í gangi (staðfestu þjónustuna í öllum 6 tilvikunum):

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

Skref 2: Stilla Redis tilvik á öllum hnútum

3. Þessi hluti lýsir því hvernig á að stilla Redis klasahnúta. Mundu að framkvæma stillingarnar hér á öllum hnútum.

Notaðu /etc/redis.conf stillingarskrána til að stilla Redis þjóninn. Eins og mælt er með skaltu búa til öryggisafrit af upprunalegu skránni áður en þú breytir henni með því að nota skipanalínuritara að eigin vali.

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

4. Næst skaltu finna eftirfarandi stillingarfæribreytur og breyta gildum þeirra eins og sýnt er. Binding færibreytan setur viðmót Redis netþjónsins sem hlustar á, stillir gildi þess á tilvikið LAN IP. Fjarlægðu 127.0.0.1 vegna þess að við gerðum okkur grein fyrir því að skilja hana eftir hægir á sköpunarferli klasa, sérstaklega stigið að sameinast klasanum.

bind  10.42.0.247

Stilltu síðan verndaða stillinguna á nei til að leyfa tengingar frá öðrum tilfellum í þyrpingunni.

protected-mode no

Gáttarbreytan skilgreinir portið sem Redis þjónninn mun hlusta á fyrir tengingar, sjálfgefið er 6379. Þetta er gagnagáttin fyrir samskipti við viðskiptavini.

port 6379

5. Næsta sett af breytum mun virkja klasahaminn og setja nokkrar af gagnlegum eiginleikum hans. Klösavirkja færibreytan, þegar hún er stillt á , virkjar klasahamurinn.

cluster-enabled yes

Næst setur cluster-config-file færibreytan heiti á klasastillingarskrá klasahnúts (t.d. nodes-6379.conf). Skráin er búin til í vinnumöppunni (sjálfgefið er /var/lib/redis skilgreint með dir breytu) og er ekki hægt að breyta því af notanda.

cluster-config-file nodes-6379.conf

Næsti gagnlegi klasavalkosturinn er cluster-node-timeout, hann er notaður til að stilla hámarkstíma í millisekúndum sem tilvik getur verið ófáanlegt til að það teljist vera í bilunarástandi. Gildi 15000 jafngildir 15 sekúndum.

cluster-node-timeout 15000

6. Við þurfum líka að virkja Redis þrautseigju á diski. Við getum notað einn af þrautseigju stillingum, það er Append Only File (AOF): hún skráir (í skránni appendonly.aof sem búin er til undir vinnuskránni) hverja skrifaðgerð sem þjóninum hefur borist. Gögnin verða spiluð við ræsingu netþjónsins til að endurbyggja upprunalega gagnasafnið.

Til að virkja það skaltu stilla appendonly færibreytuna á yes.

appendonly yes

7. Eftir að hafa gert allar breytingar skaltu endurræsa Redis þjónustuna á öllum hnútum til að beita nýlegum breytingum.

# systemctl restart redis

8. Á þessum tímapunkti ætti sérhver klasahnútur nú að hafa auðkenni. Þú getur athugað þetta í loggskránni sem er staðsett á /var/log/redis/redis.log.

# cat /var/log/redis/redis.log

9. Næst skaltu opna port 6397 og 16379 á öllum tilvikunum. Seinni höfnin er notuð fyrir þyrpingarrútuna (hnút-til-hnút samskiptarás sem notar tvíundarsamskiptareglur). Þetta er grunnkrafa fyrir Redis cluster TCP tengingar.

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

Skref 3: Að búa til Redis þyrpinguna

10. Til að búa til þyrpinguna skaltu nota redis-cli skipanalínubiðlarann sem hér segir. --cluster create gerir kleift að búa til klasa og --cluster-replicas 1 þýðir að búa til eina eftirmynd á hvern master.

Fyrir uppsetningu okkar sem hefur 6 hnúta, munum við hafa 3 herra og 3 þræla.

Athugaðu að fyrstu 6 hnútarnir verða taldir meistarar (M) og næstu þrír munu teljast þrælar (S). Fyrsti þrællinn, þ.e. 10.42.0.200:6379, endurtekur fyrsta húsbóndann, þ.e. 10.42.0.247:6379, annar þrællinn endurtekur annan húsbóndann, í þeirri röð.

Eftirfarandi skipun er sniðin á þann hátt að útkoman muni tákna rökrétta uppsetningu okkar hér að ofan.

# redis-cli --cluster create 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6379 10.42.0.34:6379 --cluster-replicas 1

11. Þegar búið er að búa til klasa, keyrðu eftirfarandi skipun á hvaða vél sem er (tilgreindu IP-tölu hans með -h fánanum) til að skrá alla klasahnúta.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes

Þú ættir að geta séð alla klasahnúta, þar sem þrælarnir gefa til kynna herra sína, eins og sýnt er á eftirfarandi skjámynd.

Hinir mismunandi reitir eru í þessari röð: hnútakenni, IP-tala:gátt, fánar, síðasta ping sent, síðasta pong móttekið, uppsetningartímabil, hlekkjaástand, raufar (fyrir meistara).

Skref 4: Prófa Redis Cluster Failover

12. Í þessum hluta munum við sýna fram á hvernig á að prófa þyrpingabilun. Fyrst skulum við taka mið af meisturunum.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Taktu líka eftir Redis þrælunum.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

13. Næst skulum við stöðva Redis þjónustuna á einum af aðalhnútunum td 10.42.0.197 og athuga alla aðalhnúta í klasanum.

# systemctl stop redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master

Á eftirfarandi skjámynd geturðu séð að hnúturinn 10.42.0.197:6367 er í bilunarástandi og þræll hans 10.42.0.21:6379 hefur verið færður í meistarastöðu.

14. Nú skulum við hefja Redis þjónustuna aftur á misheppnuðum hnút og athuga alla meistarana í þyrpingunni.

# systemctl start redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Athugaðu líka klasaþrælana til að staðfesta að meistarinn sem mistókst sé nú þræll.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

Skref 5: Prófaðu afritun gagna yfir Redis þyrpinguna

15. Þessi síðasti hluti útskýrir hvernig á að sannreyna afritun klasagagna. Við munum búa til lykil og gildi á einum af meistaranum og reyna síðan að lesa það úr öllum klasahnútum sem hér segir. Notaðu -c rofann til að virkja klasastuðning undir redis-cli gagnsemi og fá aðgang að gögnum í klasaham.

# redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
# redis-cli -c -h 10.42.0.247 -p 6379 get name
# redis-cli -c -h 10.42.0.21 -p 6379 get name
# redis-cli -c -h 10.42.0.132 -p 6379 get name
# redis-cli -c -h 10.42.0.200 -p 6379 get name
# redis-cli -c -h 10.42.0.197 -p 6379 get name
# redis-cli -c -h 10.42.0.34 -p 6379 get name

Niðurstaðan er að Redis þyrpingin er ákjósanlegasta leiðin til að fá sjálfvirka klippingu, afritun og mikið framboð. Það eru margar aðrar vel skjalfestar stillingarfæribreytur í restinni af /etc/redis.conf skránni, þú getur fundið frekari upplýsingar í opinberu skjölunum: Redis cluster tutorial og Redis cluster specification.

Þetta kemur okkur að lokum þriggja hluta Redis kennsluröðarinnar. Hægt er að nota athugasemdareyðublaðið hér að neðan til að senda inn spurningar eða athugasemdir.