Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako redis grozd roči okvare vozlišč


Kako redis grozd roči okvare vozlišč


Redis Cluster obdeluje okvare vozlišč s kombinacijo odkrivanja napak, promocije replik in upravljanja stanja grozda, da se zagotovi nadaljnje delovanje in razpoložljivost podatkov. Zasnovan je tako, da preživi okvare nekaj vozlišč s samodejnim spodbujanjem replik za nadomeščanje nedosegljivih mojstrov in ohranjanje celovitosti ključnega prostora, hkrati pa zmanjšuje tveganja za izgubo podatkov.

Grozdna komunikacija in odkrivanje napak

Vozlišča grozdov Redis komunicirajo prek namenskega binarnega protokola, ki temelji na TCP, imenovanem redis gručni avtobus. Vsako vozlišče vzdržuje povezave z vsakim drugim vozliščem v grozdu s tem vodilom, kar omogoča neprekinjene zdravstvene preglede in širjenje države. Vozlišča občasno pošiljajo pakete za ping, da potrdijo operativni status vrstnikov in delijo informacije o stanju grozda. Ta komunikacija uporablja protokol tračev za učinkovito širjenje informacij o grozdu, ki pomaga pri odkrivanju napak na vozlišču.

Vozlišča spremljajo vrstnike z aktivnim mehanizmom pinga. Če se vozlišče ne odzove na pinge v konfiguriranem obdobju časovne omejitve (Node_timeout), je označeno kot morda neuspešno s statusom PFAIL. To je predhodna indikacija odpovedi, kar pomeni, da je vozlišče morda nedosegljivo ali navzdol, vendar še ni potrjeno. Če stanje PFAIL vztraja in ga potrdi večina glavnih vozlišč, je vozlišče označeno kot neuspeh, kar kaže na to, da grozd šteje za nedosegljivo ali nižje. Ta mehanizem za odkrivanje napak, ki temelji na soglasju, pomaga preprečiti lažne pozitivne rezultate pri prepoznavanju neuspelih vozlišč.

Ravnanje z okvarami glavnih vozlišč

Ko je glavno vozlišče označeno kot FAIL, Redis Cluster sproži postopek preklopa, da promovira eno od svojih replik, da postane novi mojster. Ta postopek se samodejno sproži z detektorjem okvare grozda brez upravnega posredovanja. Promovirana replika prevzame odgovornost, da servirajo hash reže, ki jih je prej upravljal neuspeli mojster, in zagotovi, da lahko grozd še naprej streže zahteve brez ročne konfiguracije.

Preklop se zgodi le, če je na voljo vsaj ena replika in dosegljiva za promocijo. Če nobena ustrezna replika ne obstaja, grozd vstopi v stanje napak, kjer bo prenehala sprejemati poizvedbe, da preprečijo služenje nedoslednih podatkov. To poudarja pomembnost, da se replike, ki so konfigurirane za vsak mojster, ohrani visoko razpoložljivost.

Mehanika in varnost preklopa

Med preklopom replika počaka, da se v celoti sinhronizira z glavnim, ki ga nadomešča, in zagotovi, da je obdelal vse čakajoče posodobitve, da se izogne ​​izgubi podatkov. To doseže tako, da ustreza odmiku podvajanja z glavnim, tako da ima posodobljen nabor podatkov, preden prevzame glavno vlogo.

Ko je sinhronizirana, replika zahteva novo konfiguracijsko epoho od večine mojstrov. Epoha je logični časovni žig, ki se uporablja za sledenje konfiguracijskim spremembam v grozdu. Po pridobitvi soglasja replika oddaja posodobljeno konfiguracijo na vsa vozlišča in napoveduje svojo promocijo za Master in Demotion starega mojstra do replike ali odstranitve.

Stari mojster, ko si opomore, prejme to konfiguracijsko posodobitev in preneha služiti poizvedbe kot glavni. Zahteva zahteve odjemalca na novega glavnega in zagotavlja, da stranke pregledno nadaljujejo interakcijo z grozdom brez ročnega posredovanja.

Ravnanje omrežnih particij in scenarijev z deljenimi možgani

Redis Cluster uporablja soglasje, ki temelji na večini, da se izogne ​​težavam z deljenimi možgani med omrežnimi particijami. Mojster ne bo uspel le, če ga več kot polovica mojstrov v grozdu ne dosega le. Mojstri, ki ne morejo komunicirati z večino, bodo nehali sprejemati zapise in preprečujejo različna stanja podatkov med pregradi.

Če pa manjšinska particija vsebuje stranke, ki še naprej pišejo na mojstra pred preklopom, obstaja možnost za izgubo pisanja. Redis to tveganje ublaži tako, da zavrne zapisovanje na manjšinski strani po časovni omejitvi in ​​na večini, tako da hitro ni uspel nad nedosegljivim mojstrom.

Kljub tem previdnostnim ukrepom se lahko med Windows preklopi izgubijo, ker Redis uporablja asinhrono podvajanje med mojstri in replikami. Ker se odgovori za pisanje ukazov in posodobitve podvajanja pošljejo skoraj hkrati, je okno za izgubo zapisov zelo ozko, a ne nemogoče.

Možnosti konfiguracije, ki vplivajo na ravnanje z okvaro

Redis grozd vključuje možnosti konfiguracije, ki vplivajo na razpoložljivost in vedenje med okvarami vozlišč:

-`Cluster-Require-full-Coverage` (privzeto da): grozd neha sprejemati zapise, če je kateri koli del ključnega prostora odkrit zaradi okvar vozlišč, kar zagotavlja močno skladnost podatkov.
-`Cluster-Allow-berds-when-Down` (privzeto št): Nadzira, ali so branja dovoljena, ko je grozd v stanju odpovedi. Če to omogočite, omogočajo odčitke iz vozlišč tudi med delnimi okvarami, vendar lahko tvega, da se bodo vročene ustaljene podatke.

Te nastavitve omogočajo skrbnikom, da uravnotežijo razpoložljivost in doslednost na podlagi zahtev za aplikacijo.

Ročno podpora za preklop

Poleg samodejnega preklopa Redis Cluster ponuja ukaz za ročno preklop, ki ga je mogoče izdati na repličnih vozliščih. To je koristno za vzdrževanje ali scenarije testiranja, kjer želi skrbnik zamenjati glavne vloge, ne da bi čakal na dejanski dogodek okvare.

Ročni preklop deluje tako, da blokira odjemalce na trenutnem mojstrov in čaka, da se replika v celoti dohiti, nato pa repliko promovira z gladkim atomskim prehodom. To ne zagotavlja izgube podatkov med spremembo vlog in minimalne motnje strank.

Povzetek

Redis Cluster obdeluje okvare vozlišča predvsem s sistemom za odkrivanje napak in preklop, ki temelji na neprekinjenem spremljanju prek vodila grozda Redis in protokolu tračev. Vozlišča zaznajo nedosegljive mojstre in samodejno spodbujajo replike po konsenzusnem postopku, ki zahteva, da se večina mojstrov dogovori o neuspehu. Failover je zasnovan tako, da zmanjša izgubo podatkov z zagotavljanjem, da se replike v celoti sinhronizirajo pred promocijo. Omrežne particije se upravljajo z večinskimi odločitvami, da se prepreči razcepljene pogoje, čeprav se lahko zaradi asinhrone replikacije pojavi ozko izgubo pisanja. Možnosti konfiguracije omogočajo uglasitev razpoložljivosti v primerjavi z doslednostjo med okvarami, ukazi za ročni preklop pa operaterjem nadzorujejo vzdrževanje.

Ta arhitektura omogoča redis grozdu, da zagotavlja visoko razpoložljivost in toleranco na particijo s samodejnim okrevanjem iz okvare glavnih vozlišč, s čimer zagotavlja, da grozd ostane operativni in dosledni v scenarijih odpovedi.