Cluster fan twa knopen - de duvel is yn 'e details

Hoi Habr! Ik presintearje jo oandacht de oersetting fan it artikel "Twa knopen - De duvel is yn 'e details" by Andrew Beekhof.

In protte minsken leaver twa-knooppuntklusters om't se konseptueel ienfâldiger lykje en ek 33% goedkeaper binne as har trije-knooppunten. Hoewol it goed mooglik is om in goed kluster fan twa knooppunten te kombinearjen, sil sa'n konfiguraasje yn 'e measte gefallen, troch ûnbedoelde senario's, in protte ûnsichtbere problemen meitsje.

De earste stap foar it meitsjen fan in systeem mei hege beskikberens is om yndividuele punten fan mislearring te finen en te besykjen, faak ôfkoarte as SPoF (ien punt fan mislearring).

It is it wurdich te hâlden dat it ûnmooglik is om alle mooglike risiko's fan downtime yn elk systeem te eliminearjen. Dit komt út it feit dat in typyske ferdigening tsjin risiko is om wat oerstalligens yn te fieren, wat liedt ta ferhege systeemkompleksiteit en it ûntstean fan nije punten fan mislearring. Dêrom meitsje wy yn earste ynstânsje in kompromis en rjochtsje wy op eveneminten dy't ferbûn binne mei yndividuele punten fan mislearring, en net op keatlingen fan relatearre en, dêrom, hieltyd minder wierskynlike eveneminten.

Sjoen de ôfwikselingen sykje wy net allinnich nei SPoF, mar ek lykwicht risiko's en gefolgen, wêrtroch't de konklúzje fan wat kritysk is en wat net foar elke ynset ferskille kin.

Net elkenien hat alternative elektrisiteitsleveransiers nedich mei ûnôfhinklike krêftlinen. Hoewol de paranoia betelle foar op syn minst ien klant doe't har tafersjoch in defekte transformator ûntdekte. De klant makke telefoantsjes om it enerzjybedriuw te warskôgjen oant de defekte transformator eksplodearre.

In natuerlik útgongspunt is om mear as ien knooppunt yn it systeem te hawwen. Foardat it systeem lykwols tsjinsten kin ferpleatse nei it oerlibjende knooppunt nei in mislearring, moat it yn 't algemien soargje dat de tsjinsten dy't ferpleatst wurde net earne oars aktyf binne.

D'r is gjin nadeel oan in kluster mei twa knooppunten as in mislearring resulteart yn beide knooppunten dy't deselde statyske webside tsjinje. Dingen feroarje lykwols as it resultaat is dat beide partijen selsstannich in dielde taakwachtrige beheare of unkoördinearre skriuwtagong jouwe oan in replike databank of dielde bestânsysteem.

Dêrom, om foar te kommen dat korrupsje as gefolch fan ien knooppunt flater - wy fertrouwe op wat neamd "dissociaasje" (ferkearing).

It prinsipe fan dissociaasje

Yn it hert fan it prinsipe fan dissociaasje is de fraach: kin in konkurrearjende knooppunt datakorrupsje feroarsaakje? Yn it gefal dat datakorrupsje in wierskynlik senario is, soe in goede oplossing wêze om it knooppunt te isolearjen fan sawol ynkommende oanfragen as oanhâldende opslach. De meast foarkommende oanpak foar disassosjaasje is om de defekte knopen los te meitsjen.

D'r binne twa kategoryen fan dissociaasjemetoaden, dy't ik sil neame rjocht и yndirekt, mar se kinne likegoed neamd wurde aktyf и passyf. Direkte metoaden omfetsje aksjes fan 'e kant fan oerlibjende peers, lykas ynteraksje mei in IPMI (Intelligent Platform Management Interface) of iLO (in meganisme foar it behearen fan servers by it ûntbrekken fan fysike tagong ta har) apparaat, wylst yndirekte metoaden fertrouwe op it mislearre knooppunt om op ien of oare manier te erkennen dat it yn in net sûne steat is (of op syn minst foarkomt dat oare leden herstelle) en sinjalearje hardware watchdog oer de needsaak om it mislearre knooppunt los te meitsjen.

Quorum helpt by it brûken fan sawol direkte as yndirekte metoaden.

Direkte dissociaasje

Yn it gefal fan direkte dissociation, kinne wy ​​brûke quorum te kommen dissociation races yn it gefal fan in netwurk flater.

Mei it konsept fan quorum is d'r genôch ynformaasje yn it systeem (sels sûnder ferbining mei syn leeftydsgenoaten) foar knooppunten om automatysk te witten oft se dissosjaasje en / of herstel moatte begjinne.

Sûnder in kworum sille beide kanten fan in netwurkferdieling mei rjocht oannimme dat de oare dea is en sille besykje de oare te disassociearjen. Yn it slimste gefal slagget it beide partijen om it hiele kluster ôf te sluten. In alternatyf senario is in deathmatch, in einleaze lus fan knooppunten dy't spawnje, har leeftydsgenoaten net sjen, se opnij opstarte, en herstel begjinne allinich om opnij op te starten as har peer deselde logika folget.

It probleem mei disassosjaasje is dat de meast brûkte apparaten net beskikber wurde fanwegen deselde mislearre eveneminten dy't wy wolle rjochtsje op herstel. De measte IPMI- en iLO-kaarten wurde ynstalleare op 'e hosts dy't se kontrolearje en, standert, brûke itselde netwurk, wêrtroch't de doelhosts leauwe dat oare hosts offline binne.

Spitigernôch wurde de bestjoeringsfunksjes fan IPMI- en iLo-apparaten selden beskôge op it momint fan oankeap fan apparatuer.

Yndirekte dissociaasje

Quorum is ek wichtich foar it behearen fan yndirekte disassosjaasje; as it goed dien wurdt, kin quorum oerlibbenen tastean om oan te nimmen dat ferlerne knooppunten nei in bepaalde perioade sille oergean nei in feilige steat.

Mei dizze konfiguraasje, de hardware watchdog timer wurdt reset eltse N sekonden as kworum is net ferlern. As de timer (meastentiids ferskate multiples fan N) ferrint, dan docht it apparaat in ungraceful power down (net shutdown).

Dizze oanpak is tige effektyf, mar sûnder in kworum is d'r net genôch ynformaasje binnen it kluster om it te behearjen. It is net maklik om it ferskil te fertellen tusken in netwurkûnderbrekking en in flater fan peerknooppunten. De reden dat dit fan belang is, is dat sûnder de mooglikheid om te ûnderskieden tusken de twa gefallen, jo wurde twongen om itselde gedrach te kiezen yn beide gefallen.

It probleem mei it kiezen fan ien modus is dat d'r gjin aksje is dy't de beskikberens maksimalisearret en gegevensferlies foarkomt.

  • As jo ​​kieze om oan te nimmen dat in peer-knooppunt aktyf is, mar feitlik mislearret, sil it kluster ûnnedich stopje tsjinsten dy't rinne om te kompensearjen foar it ferlies fan tsjinsten fan 'e mislearre peer-knooppunt.
  • As jo ​​beslute om oan te nimmen dat in knooppunt del is, mar it wie gewoan in netwurkfout en yn feite is de knooppunt op ôfstân funksjoneel, dan registrearje jo jo op syn bêst foar wat takomstige hânmjittich fermoedsoening fan 'e resultearjende datasets.

Nettsjinsteande hokker heuristyk jo brûke, is it triviaal om in mislearring te meitsjen dy't beide kanten mislearret of feroarsaakje dat it kluster de oerbleaune knopen útsette. Net it brûken fan kworum ûntneemt it kluster wirklik ien fan 'e machtichste ark yn syn arsenal.

As der gjin oar alternatyf is, is de bêste oanpak om beskikberens op te offerjen (hjir ferwiist de auteur nei it CAP-stelling). Hege beskikberens fan beskeadige gegevens helpt gjinien, en it manuell fermoedsoenje fan ferskate datasets is ek net leuk.

Quorum

Quorum klinkt geweldich, krekt?

It ienige nadeel is dat om it yn in kluster te hawwen mei N leden, jo moatte in ferbining hawwe tusken N / 2 + 1 fan jo knopen oerbleaun. Wat is net mooglik yn in twa node kluster neidat ien node mislearret.

Wat ús úteinlik bringt by it fûnemintele probleem mei twa knopen:
Quorum hat gjin sin yn twa knooppuntklusters, en sûnder it is it ûnmooglik om betrouber de rin fan aksje te bepalen dy't de beskikberens maksimaleart en gegevensferlies foarkomt
Sels yn in systeem fan twa knooppunten ferbûn troch in crossover kabel, is it ûnmooglik om definityf ûnderskied tusken in netwurk ûnderbrekking en in mislearjen fan de oare knooppunt. It mislearjen fan ien ein (de kâns wêrfan fansels evenredich is mei de ôfstân tusken de knooppunten) sil genôch wêze om elke oanname ûnjildich te meitsjen dat de sûnens fan 'e keppeling lyk is oan' e sûnens fan 'e partnerknooppunt.

It meitsjen fan in twa-node kluster wurk

Soms kin of wol de klant gjin tredde knooppunt keapje, en wy binne twongen om te sykjen nei in alternatyf.

Opsje 1 - Duplicate dissociation metoade

It iLO- as IPMI-apparaat fan in knooppunt fertsjintwurdiget in punt fan mislearring, om't, as it mislearret, oerlibbenen it net kinne brûke om it knooppunt yn in feilige steat te bringen. Yn in kluster fan 3 of mear knopen kinne wy ​​dit beheine troch it kworum te berekkenjen en in hardware-watchdog te brûken (in yndirekte disassosjaasjemeganisme, lykas earder besprutsen). Yn it gefal fan twa knooppunten, moatte wy ynstee brûke netwurk macht distribúsje-ienheden (PDUs).

Nei in mislearring besiket de oerlibbene earst kontakt te meitsjen mei it primêre disassosjaasjeapparaat (ynbêde iLO of IPMI). As dit suksesfol is, giet it herstel troch as gewoanlik. Allinich as it iLO/IPMI-apparaat mislearret, is de PDU tagong; as de tagong suksesfol is, kin it herstel trochgean.

Wês wis dat jo de PDU op in oar netwurk pleatse as it klusterferkear, oars sil in inkele netwurkflater tagong blokkearje foar sawol de disassosjaasjeapparaten en blokkearje de restauraasje fan tsjinsten.

Hjir kinne jo freegje - is de PDU in inkeld punt fan mislearring? Dêrop is it antwurd fansels.

As dit risiko foar jo wichtich is, binne jo net allinich: ferbine beide knooppunten oan twa PDU's en fertel de klustersoftware om sawol te brûken as jo de knooppunten oan- en útskeakelje. It kluster bliuwt no aktyf as ien PDU stjert, en in twadde flater fan of de oare PDU of it IPMI-apparaat sil ferplicht wurde om herstel te blokkearjen.

Opsje 2 - In Arbiter tafoegje

Yn guon senario's, wylst de dûbele disassosjaasjemetoade technysk mooglik is, is it polityk lestich. In protte bedriuwen wolle graach wat skieding hawwe tusken behearders en app-eigners, en feiligensbewuste netwurkbehearders binne net altyd entûsjast oer it dielen fan PDU-tagongsynstellingen mei elkenien.

Yn dit gefal is it oanrikkemandearre alternatyf om in neutrale tredde partij te meitsjen dy't de kworumberekkening oanfolje kin.

Yn it gefal fan in mislearring moat in knooppunt de loftgolven fan syn peer as arbiter sjen kinne om tsjinsten te herstellen. De arbiter omfettet ek in disconnect-funksje as beide knooppunten de arbiter kinne sjen, mar inoar net kinne sjen.

Dizze opsje moat brûkt wurde yn kombinaasje mei in yndirekte disassosjaasjemetoade, lykas in hardware watchdog timer, dy't konfigurearre is om in masine te deadzjen as it ferbining ferliest mei syn peer en arbiter node. Sa kin in oerlibbene ridlik oannimme dat syn peer-knooppunt yn in feilige steat sil wêze neidat de hardware watchdog-timer ferrint.

It praktyske ferskil tusken in arbiter en in tredde knooppunt is dat in arbiter folle minder boarnen fereasket om te operearjen en kin mooglik mear as ien kluster tsjinje.

Opsje 3 - Minsklike faktor

De definitive oanpak is foar oerlibbenen om troch te gean mei it útfieren fan alle tsjinsten dy't se al diene, mar net nije begjinne oant of it probleem himsels oplost (netwurk weromsette, knooppunt opnij starte) of in persoan nimt ferantwurdlikens foar it manuell befêstigjen dat de oare kant dea is.

Bonus opsje

Haw ik al neamd dat jo in tredde knooppunt tafoegje kinne?

Twa rekken

Litte wy om 'e wille fan it argumint sizze dat ik jo oertsjûge haw fan' e fertsjinsten fan 'e tredde knooppunt, no moatte wy de fysike opstelling fan' e knooppunten beskôgje. As se binne ûnderbrocht (en oandreaun) yn deselde rack, dit foarmet ek SPoF, en ien dy't kin net oplost wurde troch it tafoegjen fan in twadde rack.

As dit ferrassend is, beskôgje dan wat der barre soe as in rek mei twa knooppunten mislearre, en hoe't it oerbleaune knooppunt ûnderskiede soe tusken dat en in netwurkfout.

It koarte antwurd is dat it net mooglik is, en wer hawwe wy te krijen mei alle problemen yn 'e twa-knooppunt gefal. Of oerlibbene:

  • negearret it kworum en besiket ferkeard om restauraasje te begjinnen tidens netwurkûnderbrekkingen (de mooglikheid om dissosiaasje te foltôgjen is in oar ferhaal en hinget ôf fan oft de PDU belutsen is en oft se macht diele mei ien fan 'e rekken), of
  • respektearret it kworum en skeakelet himsels te betiid ôf as syn peer-knooppunt mislearret

Yn alle gefallen binne twa racks net better as ien, en de knooppunten moatte óf unôfhinklike macht foarrieden ûntfange of wurde ferdield oer trije (of mear, ôfhinklik fan hoefolle knooppunten jo hawwe) racks.

Twa datasintra

Op dit punt kinne lêzers dy't net langer risiko-averse binne, miskien wol rampherstel beskôgje. Wat bart der as in asteroïde itselde datasintrum treft mei ús trije knopen ferspraat oer trije ferskillende rekken? Fansels Bad Things, mar ôfhinklik fan jo behoeften, kin it tafoegjen fan in twadde datasintrum net genôch wêze.

As it goed dien wurdt, jout it twadde datasintrum jo (en ridlik sa) in aktueel en konsekwint kopy fan jo tsjinsten en har gegevens. Lykwols, lykas yn twa-knooppunt, twa-rack-senario's, is d'r net genôch ynformaasje yn it systeem om maksimale beskikberens te garandearjen en korrupsje te foarkommen (of ferskillen yn gegevensset). Sels mei trije knooppunten (of rekken), it fersprieden fan se oer mar twa datasintra lit it systeem net betrouber it juste beslút nimme yn it gefal fan in (no folle wierskynliker) evenemint dat beide partijen net kinne kommunisearje.

Dit betsjut net dat in oplossing foar dûbele datacenters nea geskikt is. Bedriuwen wolle faaks dat in persoan bewust is foardat se de bûtengewoane stap nimme om nei in reservekopydatasintrum te gean. Hâld der gewoan yn gedachten dat as jo de ûnderbrekking automatisearje wolle, jo in tredde datasintrum nedich binne foar it kworum om sin te meitsjen (sawol direkt as fia in skiedsrjochter), of jo sille in manier fine om de folsleine gegevens betrouber út te sluten sintrum.

Boarne: www.habr.com

Add a comment