Komek du girêk - şeytan di hûrguliyan de ye

Hey Habr! Wergera gotarê pêşkêşî we dikim "Du Nodes - Şeytan di hûrguliyan de ye" ji hêla Andrew Beekhof ve.

Pir kes komên du-girêk tercîh dikin ji ber ku ew ji hêla têgînî ve hêsan xuya dikin û di heman demê de 33% ji hevpîşeyên xwe yên sê-girê erzantir in. Her çend mimkun e ku meriv komek baş a du girêkan li hev bicivîne, di pir rewşan de, ji ber senaryoyên nedîtbar, veavakirinek wusa dê gelek pirsgirêkên ne diyar biafirîne.

Gava yekem a afirandina pergalek berdestbûna bilind ev e ku meriv xalên têkçûnê yên takekesî, ku bi gelemperî wekî kurtkirî têne jêbirin, bibînin û hewl bidin. SPoF (yek xala têkçûnê).

Hêjayî bibîrxistinê ye ku ne gengaz e ku di her pergalê de hemî xetereyên gengaz ên dakêşanê ji holê rakin. Ev ji vê yekê derdikeve ku berevaniyek tîpîk li dijî xetereyê danasîna hin zêdebûnê ye, ku dibe sedema zêdebûna tevliheviya pergalê û derketina xalên nû yên têkçûnê. Ji ber vê yekê, em di destpêkê de lihevhatinek çêdikin û balê dikişînin ser bûyerên ku bi xalên têkçûn ên kesane ve girêdayî ne, û ne li ser zincîreyên têkildar û, ji ber vê yekê, her ku diçe kêmtir dibe.

Ji ber danûstendinan, em ne tenê li SPoF digerin, lê di heman demê de xetere û encaman jî hevseng dikin, ji ber vê yekê encamên ku çi krîtîk e û çi ne dibe ku ji bo her bicîhkirinê cûda bibe.

Ne her kes hewcedarê dabînkerên elektrîkê yên alternatîf bi xetên elektrîkê yên serbixwe ne. Her çend paranoya bi kêmî ve xerîdarek drav da dema ku çavdêriya wan transformatorek xelet dît. Xerîdar bi têlefonê hewl da ku pargîdaniya elektrîkê hişyar bike heya ku trafoya xelet teqiya.

Xalek destpêkek xwezayî ew e ku di pergalê de ji yekê zêdetir girêk hebin. Lêbelê, berî ku pergal bikaribe karûbaran biguhezîne girêka zindî piştî têkçûnekê, bi gelemperî hewce dike ku pê ewle bibe ku karûbarên ku têne veguheztin li cîhek din ne çalak in.

Ger têkçûnek encam bide ku her du girêk ji heman malpera statîk re xizmet dikin, ji komek du-girêk re zererek tune. Lêbelê, tişt diguhezin ger encam ev be ku her du alî serbixwe rêzek karek hevbeş birêve bibin an gihîştina nivîsandina nekoordînasyona databasek dubare an pergala pelê ya hevbeş peyda bikin.

Ji ber vê yekê, ji bo pêşîgirtina li xirabûna daneyê di encama têkçûna yek nodê de - em xwe dispêrin tiştek ku jê re tê gotin "veqetandin" (sifandin).

Prensîba veqetandinê

Di bingeha prensîba veqetandinê de pirs ev e: gelo girêkek hevrik dikare bibe sedema xerabûna daneyê? Di rewşê de ku gendeliya daneyê senaryoyek muhtemel e, çareseriyek baş dê ev be ku girêk hem ji daxwazên hatin û hem jî ji hilanîna domdar veqetîne. Nêzîkatiya herî gelemperî ya veqetandinê qutkirina girêkên xelet e.

Du kategoriyên rêbazên veqetandinê hene, ku ez ê gazî bikim rast и rasterast, lê ew dikarin wekhev bêne gotin jîr и nejîr. Rêbazên rasterast çalakiyên ji hêla hevalên saxlem ve dihewîne, wek pêwendiya bi cîhazek IPMI (Navbera Rêvebiriya Platforma Aqilmend) an iLO (mekanîzmayek ji bo birêvebirina serveran di nebûna gihîştina laşî ya wan de), di heman demê de ku rêbazên nerasterast xwe dispêrin têkçûn. girêk ku bi rengekî nas bike ku ew di rewşek nebaş de ye (an bi kêmanî rê li ber başbûna endamên din digire) û nîşan bide nobedar hardware li ser hewcedariya qutkirina girêka têkçûyî.

Quorum dema ku hem rêbazên rasterast û hem jî nerasterast bikar tîne dibe alîkar.

Veqetandina rasterast

Di doza veqetandina rasterast de, em dikarin quorumê bikar bînin da ku di bûyera têkçûna torê de pêşî li pêşbaziyên veqetandinê bigirin.

Digel têgîna quorumê, di pergalê de têr agahdarî heye (tevî bêyî girêdana bi hevalên xwe re) ji bo nod bixweber zanibin gelo divê ew dest bi veqetandin û/an başbûnê bikin.

Bêyî kêmasiyek, her du aliyên dabeşkirina torê dê rast bihesibînin ku aliyê din mirî ye û dê hewl bidin ku yê din ji hev veqetînin. Di rewşa herî xirab de, her du partî bi rê ve dibin ku tevahiya komê rawestînin. Senaryoyek alternatîf hevberdanek mirinê ye, kelekek bêdawî ya girêkan çêdibe, hevalên xwe nabîne, wan ji nû ve dest pê dike û gava ku hevalê wan heman mantiqê dişopîne dest bi başbûnê dike ku ji nû ve were destpêkirin.

Pirsgirêka veqetandinê ev e ku cîhazên ku herî gelemperî têne bikar anîn ji ber heman bûyerên têkçûnê yên ku em dixwazin ji bo başbûnê armanc bikin, tune dibin. Piraniya kartên IPMI û iLO li ser mêvandarên ku ew kontrol dikin têne saz kirin û, bi xwerû, heman torê bikar tînin, ku dibe sedem ku mêvandarên armanc bawer bikin ku mêvandarên din negirêdayî ne.

Mixabin, taybetmendiyên xebitandinê yên cîhazên IPMI û iLo kêm caran di dema kirîna amûran de têne hesibandin.

Veqetandina nerasterast

Quorum di heman demê de ji bo birêvebirina veqetandina nerasterast girîng e; heke rast were kirin, quorum dikare rê bide kesên saxmayî ku texmîn bikin ku girêkên winda dê piştî demek diyar veguhezînin rewşek ewle.

Bi vê veavakirinê re, ger quorum winda nebe, demjimêra çavdêriya hardware her N çirke tê nûve kirin. Ger demjimêr (bi gelemperî çend pirjimarên N) biqede, wê hingê cîhaz hêzek nebaş pêk tîne (ne qutkirin).

Ev nêzîkatî pir bibandor e, lê bêyî quorumê di hundurê komê de agahdariya têr tune ku wê birêve bibe. Ne hêsan e ku meriv ferqa di navbera qutbûna torê û têkçûnek girêka peer de bêje. Sedema ku ev girîng e ev e ku bêyî şiyana ku hûn di navbera her du bûyeran de cûda bikin, hûn neçar in ku di her du rewşan de heman tevgerê hilbijêrin.

Pirsgirêka hilbijartina yek modê ev e ku qursek çalakiyê tune ku hebûna herî zêde bike û pêşî li windabûna daneyê bigire.

  • Ger hûn hilbijêrin ku girêkek peer çalak e lê di rastiyê de têk diçe, kom dê bêhewce karûbarên ku têne xebitandin ji bo telafîkirina windakirina karûbaran ji girê hevtayê têkçûyî rawestîne.
  • Ger hûn biryar didin ku texmîn bikin ku nodek daketiye, lê ew tenê têkçûnek torê bû û di rastiyê de girêka dûr fonksiyonel e, wê hingê hûn herî baş ji bo hin lihevhatina bi destan a pêşerojê ya berhevokên daneya encam têne tomar kirin.

Bêyî ku hûn çi heurîstîkî bikar tînin, ne hindik e ku meriv têkçûnek biafirîne ku dê bibe sedema têkçûna her du aliyan an jî bibe sedema ku komê girêkên saxlem bigre. Ne karanîna quorumê bi rastî komê ji yek ji amûrên herî hêzdar ên di cebilxaneya wê de bêpar dihêle.

Ger alternatîfek din tune be, nêzîkatiya herî baş ew e ku hebûna xwe feda bike (li vir nivîskar behsa teorema CAP dike). Hebûna zêde ya daneyên xerabûyî arîkariya kesî nake, û bi destan lihevhatina daneyên cihêreng jî ne xweş e.

Quorum

Quorum dengek mezin e, rast?

Tenê nebaş ev e ku ji bo ku hûn wê di nav komek endamên N de hebe, hûn hewce ne ku têkiliyek di navbera N/2+1 girêkên we yên mayî de hebe. Ya ku di komek du girêkan de piştî têkçûna yek girêk ne gengaz e.

Ya ku di dawiyê de me bi du girêkan re tîne pirsgirêka bingehîn:
Quorum di du komikên girêk de wate nake, û bêyî wê ne gengaz e ku meriv bi pêbawerî qursa çalakiyê ya ku hebûna herî zêde dike û pêşî li windabûna daneyê digire diyar bike.
Tewra di pergalek du girêkan de ku bi kabloyek xaçerê ve girêdayî ne, ne gengaz e ku meriv bi teqez di navbera qutbûna torê û têkçûna girêka din de cûda bike. Neçalakkirina yek dawiya (îhtîmala ku, bê guman, bi dûrbûna di navbera girêkan re têkildar e) dê bes be ku her texmînek betal bike ku tenduristiya girêdanê bi tenduristiya girêka hevkar re wekhev e.

Çêkirina komikek du-girêk kar dike

Carinan xerîdar nekare an naxwaze nodek sêyemîn bikire, û em neçar in ku li alternatîfek bigerin.

Vebijêrk 1 - Rêbaza veqetandina dubare

Amûra iLO an IPMI ya girêkek xalek têkçûnek nîşan dide ji ber ku, heke ew têk biçe, kesên sax nekarin wê bikar bînin da ku girêkê bînin rewşek ewledar. Di komek ji 3 an bêtir girêkan de, em dikarin vê yekê bi hesabkirina quorumê û karanîna çavdêriyek hişk (mekanîzmayek veqetandina nerasterast, wekî ku berê hatî nîqaş kirin) kêm bikin. Di doza du girêkan de, divê em li şûna wê yekîneyên belavkirina hêza torê (PDU) bikar bînin.

Piştî têkçûnekê, yê sax pêşî hewl dide ku bi cîhaza veqetandinê ya bingehîn (iLO an IPMI-ya pêvekirî) re têkilî dayne. Ger ev serketî be, başbûn wekî berê berdewam dike. Tenê heke cîhaza iLO/IPMI têk biçe PDU tê gihîştin; heke gihîştin serketî be, başbûn dikare berdewam bike.

Pê bawer bin ku PDU-yê ji seyrûsefera komê li ser torek cûda bi cîh bikin, wekî din têkçûnek torê ya yekane dê gihîştina hem cîhazên veqetandinê û hem jî sererastkirina karûbaran asteng bike.

Li vir hûn dikarin bipirsin - gelo PDU yek xala têkçûnê ye? Bersiva kîjan e, bê guman ew e.

Ger ev xetere ji we re girîng e, hûn ne bi tenê ne: her du girêkan bi du PDU-yan ve girêdin û ji nermalava komkirinê re bibêjin ku dema ku girêkan vekêşan û jêbirin hem jî bikar bîne. Ger yek PDU bimire, kom naha çalak dimîne, û têkçûnek duyemîn a PDU-ya din an jî cîhaza IPMI-yê dê hewce bike ku başbûnê asteng bike.

Vebijêrk 2 - Zêdekirina Arbiter

Di hin senaryoyan de, dema ku rêbaza veqetandina dubare ji hêla teknîkî ve gengaz e, ew ji hêla siyasî ve dijwar e. Pir pargîdanî hez dikin ku di navbera rêveber û xwedan serîlêdanê de hin veqetînek hebe, û rêveberên torê yên hişyar-agahdar her gav dilxwaz nînin ku mîhengên gihîştina PDU-yê bi kesî re parve bikin.

Di vê rewşê de, alternatîfa pêşniyarkirî ev e ku meriv partiyek sêyemîn a bêalî biafirîne ku dikare hesabkirina quorumê temam bike.

Di bûyera têkçûnekê de, pêdivî ye ku nodek bikaribe pêlên hewayê yên heval an hakemê xwe bibîne da ku karûbaran vegerîne. Hakem di heman demê de fonksiyonek veqetandinê vedihewîne heke her du girêk dikarin hakemê bibînin lê nikanin hevûdu bibînin.

Pêdivî ye ku ev vebijark bi rêgezek veqetandina nerasterast re were bikar anîn, wek mînak demjimêrek çavdêriya hardware, ku ji bo kuştina makîneyek hatî mîheng kirin heke ew girêdana bi hevtayê xwe û girêka hakemê re winda bike. Ji ber vê yekê, xelaskarek bi maqûl dikare bihesibîne ku girêka hevtayê wê dê di rewşek ewledar de be piştî ku demjimêra çavdêriya hardware qediya.

Cûdahiya pratîkî ya di navbera hakemek û nodek sêyemîn de ev e ku hakemek ji bo xebitandinê pir hindik çavkaniyan hewce dike û bi potansiyel dikare ji yek komê zêdetir xizmet bike.

Vebijêrk 3 - Faktora Mirovan

Nêzîkatiya paşîn ev e ku kesên rizgarbûyî karûbarên ku berê didin meşandin berdewam bikin, lê dest bi yên nû nekin heya ku pirsgirêk bi xwe çareser nebe (vegerandina torê, ji nû ve destpêkirina girêk) an jî kesek berpirsiyariya ku bi destan piştrast bike ku aliyê din miriye.

Vebijarka bonus

Ma min behs kir ku hûn dikarin nodek sêyemîn lê zêde bikin?

Du refik

Ji bo xatirê argumanê, em îdia bikin ku min hûn ji hêjayiyên girêka sêyemîn qanî kiriye, naha divê em lihevhatina fizîkî ya girêkan bifikirin. Ger ew di heman refikê de werin bicîh kirin (û hêzdar bibin), ev jî SPoF pêk tîne, û ya ku bi lêzêdekirina refikek duyemîn nayê çareser kirin.

Ger ev ecêb e, bifikirin ka dê çi biqewime ger rafikek bi du nokan têk biçe, û girêka saxlem dê çawa di navbera wê û têkçûna torê de cûda bike.

Bersiva kurt ev e ku ev ne mumkin e, û em dîsa di doza du girêkan de bi hemî pirsgirêkan re mijûl dibin. An jî rizgarbûyî:

  • quorumê paşguh dike û bi xeletî hewl dide ku di dema qutbûna torê de dest bi vegerandinê bike (qabiliyeta temamkirina veqetandinê çîrokek cûda ye û girêdayî ye ka PDU tê de ye û gelo ew hêzê bi yek ji refikan re parve dikin), an
  • rêzê li quorumê digire û dema ku girêka hevtayê wê têk diçe xwe zû qut dike

Di her rewşê de, du refik ji yekê ne çêtir in, û girêk divê an dabînkirina hêzê ya serbixwe werbigirin an jî li sê (an jî zêdetir, li gorî çend girêkên we hene) refikan werin belavkirin.

Du navendên daneyê

Di vê nuqteyê de, xwendevanên ku êdî ji xetereyê ne dûr in, dibe ku bixwazin başkirina karesatê bifikirin. Çi diqewime dema ku asteroîdek bi sê girêkên me yên ku li sê refikên cûda belav bûne li heman navenda daneyê dixe? Zelal Tiştên Xerab, lê li gorî hewcedariyên we ve girêdayî, lê zêdekirina navendek daneya duyemîn dibe ku ne bes be.

Ger rast were kirin, navenda daneya duyemîn ji we re (û bi awayek maqûl) kopiyek nûjen û domdar a karûbarên we û daneyên wan peyda dike. Lêbelê, wekî ku di senaryoyên du-node, du-rack de, di pergalê de agahdariya têr tune ku hebûna herî zêde misoger bike û pêşî li gendeliyê bigire (an jî nakokiyên daneyên daneyê). Tewra bi sê nod (an refikan), belavkirina wan li ser tenê du navendên daneyê dihêle ku pergal nekare di bûyerek bûyerek (niha pir muhtemeltir) de ku her du alî nikaribin ragihînin bi pêbawer biryara rast bide.

Ev nayê vê wateyê ku çareseriyek navendek daneya dualî qet ne guncaw e. Pargîdan bi gelemperî dixwazin ku kesek berî ku gavê awarte bavêje navendek daneya hilanînê haydar be. Tenê ji bîr mekin ku ger hûn bixwazin qutbûnê bixweber bikin, hûn ê hewce nebin navendek daneya sêyemîn ji bo ku quorum jêhatî be (an rasterast an bi navgînek hakemek), an jî hûn ê rêyek bibînin ku bi pêbawerî tevahî daneyan rawestînin. navîne.

Source: www.habr.com

Add a comment