Þyrping af tveimur hnútum - djöfullinn er í smáatriðunum

Hæ Habr! Ég kynni þér þýðingu greinarinnar "Tveir hnútar - Djöfullinn er í smáatriðunum" eftir Andrew Beekhof

Margir kjósa tveggja hnúta klasa vegna þess að þeir virðast hugmyndalega einfaldari og eru einnig 33% ódýrari en þriggja hnúta hliðstæða þeirra. Þó að það sé alveg mögulegt að setja saman góðan þyrping af tveimur hnútum, mun slík uppsetning í flestum tilfellum, vegna óhugsaðra atburðarása, skapa mörg óljós vandamál.

Fyrsta skrefið til að búa til hvaða kerfi sem er til staðar er að finna og reyna að útrýma einstökum bilunarpunktum, oft skammstafað sem SPoF (einn bilunarpunktur).

Það er þess virði að hafa í huga að það er ómögulegt að útrýma öllum mögulegum hættum á niðurtíma í hvaða kerfi sem er. Þetta stafar af því að dæmigerð vörn gegn áhættu er að innleiða einhverja offramboð, sem leiðir til aukinnar kerfisflækjustigs og tilkomu nýrra bilana. Þess vegna gerum við upphaflega málamiðlun og einbeitum okkur að atburðum sem tengjast einstökum bilunarpunktum, en ekki á keðjur tengdra og þar af leiðandi sífellt ólíklegri atburða.

Miðað við málamiðlanir leitum við ekki aðeins að SPoF, heldur tökum einnig jafnvægi á áhættu og afleiðingar, sem leiðir af því að niðurstaðan um hvað er mikilvægt og hvað ekki getur verið mismunandi fyrir hverja dreifingu.

Ekki þurfa allir aðra raforkubirgja með sjálfstæðar raflínur. Þó að ofsóknarbrjálæðið hafi borgað sig fyrir að minnsta kosti einn viðskiptavin þegar eftirlit þeirra greindi bilaðan spenni. Viðskiptavinurinn hringdi í síma og reyndi að gera rafveitunni viðvart þar til bilaði spennirinn sprakk.

Eðlilegur upphafspunktur er að hafa fleiri en einn hnút í kerfinu. Hins vegar, áður en kerfið getur flutt þjónustu á eftirlifandi hnút eftir bilun, þarf það almennt að tryggja að þjónustan sem verið er að flytja sé ekki virk annars staðar.

Það er enginn ókostur við tveggja hnúta þyrping ef bilun leiðir til þess að báðir hnútar þjóna sömu kyrrstæðu vefsíðunni. Hins vegar breytast hlutirnir ef niðurstaðan er sú að báðir aðilar stjórna sjálfstætt sameiginlegri vinnuröð eða veita ósamræmdan skrifaðgang að endurteknum gagnagrunni eða sameiginlegu skráarkerfi.

Þess vegna, til að koma í veg fyrir gagnaspillingu sem afleiðing af stakri hnútbilun - treystum við á eitthvað sem kallast "sundrun" (girðingar).

Aðgreiningarreglan

Kjarninn í reglunni um aðgreiningu er spurningin: getur samkeppnishnútur valdið gagnaspillingu? Ef gagnaspilling er líkleg atburðarás, væri góð lausn að einangra hnútinn frá bæði komandi beiðnum og viðvarandi geymslu. Algengasta aðferðin við aftengingu er að aftengja gallaða hnúta.

Það eru tveir flokkar aðgreiningaraðferða, sem ég mun kalla bein и óbein, en þeir geta jafnt kallast virkur и óvirkur. Beinar aðferðir fela í sér aðgerðir af hálfu jafningja sem lifa af, svo sem samskipti við IPMI (Intelligent Platform Management Interface) eða iLO (kerfi til að stjórna netþjónum þar sem ekki er líkamlegur aðgangur að þeim) tæki, á meðan óbeinar aðferðir treysta á mistökin. hnút til að viðurkenna einhvern veginn að það sé í óheilbrigðu ástandi (eða að minnsta kosti koma í veg fyrir að aðrir meðlimir nái sér) og gefa til kynna vélbúnaðarvakt um nauðsyn þess að aftengja bilaða hnútinn.

Quorum hjálpar til við að nota bæði beinar og óbeinar aðferðir.

Bein sundrun

Ef um beina sundrun er að ræða getum við notað ályktun til að koma í veg fyrir aðgreiningarhlaup ef netbilun verður.

Með hugtakinu quorum eru nægar upplýsingar í kerfinu (jafnvel án þess að tengjast jafnöldrum þess) til að hnútar viti sjálfkrafa hvort þeir eigi að hefja sundrun og/eða bata.

Án sveitarfélags munu báðar hliðar tengslanetsins með réttu gera ráð fyrir að hin hliðin sé dáin og leitast við að aðskilja hina. Í versta falli tekst báðum aðilum að leggja niður allan klasann. Önnur atburðarás er deathmatch, endalaus lykkja af hnútum sem hrygna, sjá ekki jafnaldra sína, endurræsa þá og hefja bata aðeins til að endurræsa þegar jafningi þeirra fylgir sömu rökfræði.

Vandamálið við aftengingu er að algengustu tækin verða ófáanleg vegna sömu bilunartilvika og við viljum miða á til bata. Flest IPMI og iLO kort eru sett upp á vélunum sem þeir stjórna og nota sjálfgefið sama net, sem veldur því að miðhýsingar trúa því að aðrir vélar séu ótengdir.

Því miður er sjaldan tekið tillit til rekstrareiginleika IPMI og iLo tækja við kaup á búnaði.

Óbein sundrun

Quorum er einnig mikilvægt til að stjórna óbeinni aðgreiningu; ef rétt er gert getur sveitin leyft eftirlifendum að gera ráð fyrir að týndir hnútar muni breytast í öruggt ástand eftir ákveðinn tíma.

Með þessari uppsetningu er tímamælir vélbúnaðarvarðar endurstilltur á N sekúndna fresti ef ályktun tapast ekki. Ef tímamælirinn (venjulega nokkur margfeldi af N) rennur út, þá framkvæmir tækið ósmekklega slökkt (ekki lokun).

Þessi aðferð er mjög áhrifarík, en án ályktunarhæfis eru ekki nægar upplýsingar innan klasans til að stjórna henni. Það er ekki auðvelt að greina muninn á netrofi og bilun í jafningjahnút. Ástæðan fyrir því að þetta skiptir máli er sú að án getu til að greina á milli þessara tveggja tilvika neyðist þú til að velja sömu hegðun í báðum tilfellum.

Vandamálið við að velja eina stillingu er að það er engin aðgerð sem hámarkar aðgengi og kemur í veg fyrir tap á gögnum.

  • Ef þú velur að gera ráð fyrir að jafningjahnútur sé virkur en bili í raun, mun þyrpingin stöðva þjónustu sem væri í gangi að óþörfu til að bæta upp fyrir tap á þjónustu frá misheppnuðum jafningjahnút.
  • Ef þú ákveður að gera ráð fyrir að hnútur sé niðri, en það var bara netbilun og í raun er ytri hnúturinn virkur, þá ertu í besta falli að skrá þig fyrir handvirka afstemmingu á gagnasettunum sem myndast í framtíðinni.

Burtséð frá hvaða heuristic þú notar, það er léttvægt að búa til bilun sem mun annað hvort valda því að báðar hliðar mistakast eða valda því að þyrpingin slekkur á eftirlifandi hnútum. Að nota ekki sveitina sviptir þyrpinguna sannarlega einu af öflugustu verkfærunum í vopnabúrinu.

Ef það er enginn annar valkostur er besta aðferðin að fórna framboði (hér vísar höfundur til CAP setningarinnar). Mikið framboð á skemmdum gögnum hjálpar engum og það er heldur ekki skemmtilegt að samræma mismunandi gagnasöfn handvirkt.

Sveitarstjórn

Quorum hljómar vel, ekki satt?

Eini gallinn er sá að til þess að hafa það í þyrpingu með N meðlimum þarftu að hafa tengingu á milli N/2+1 af hnútunum þínum sem eftir eru. Sem er ekki mögulegt í tveggja hnútaþyrpingum eftir að einn hnút bilar.

Sem leiðir okkur að lokum að grundvallarvandamálinu með tveimur hnútum:
Quorum er ekki skynsamlegt í tveimur hnútaþyrpingum, og án þess er ómögulegt að ákvarða á áreiðanlegan hátt aðgerðina sem hámarkar aðgengi og kemur í veg fyrir gagnatap
Jafnvel í kerfi með tveimur hnútum sem eru tengdir með krossstreng er ómögulegt að greina endanlega á milli netrofs og bilunar í hinum hnútnum. Að slökkva á einum enda (líkurnar á því eru að sjálfsögðu í réttu hlutfalli við fjarlægðina á milli hnútanna) mun vera nóg til að ógilda allar forsendur um að heilsa hlekksins sé jöfn heilsu samstarfshnútsins.

Að láta tveggja hnúta klasa virka

Stundum getur eða vill viðskiptavinurinn ekki kaupa þriðja hnút og við neyðumst til að leita að vali.

Valkostur 1 - Tvítekið aðgreiningaraðferð

iLO eða IPMI tæki hnúts táknar bilunarpunkt vegna þess að ef það bilar geta þeir sem lifa af ekki notað það til að koma hnútnum í öruggt ástand. Í þyrpingu 3 eða fleiri hnúta getum við dregið úr þessu með því að reikna út hæfileika og nota vélbúnaðarvarðhund (óbeint aðgreiningarkerfi, eins og áður hefur verið rætt um). Ef um tvo hnúta er að ræða verðum við að nota netafldreifingareiningar (PDU) í staðinn.

Eftir bilun reynir eftirlifandi fyrst að hafa samband við aðalaftengingartækið (innbyggt iLO eða IPMI). Ef þetta tekst heldur batinn áfram eins og venjulega. Aðeins ef iLO/IPMI tækið bilar er aðgangur að PDU; ef aðgangurinn heppnast getur endurheimt haldið áfram.

Vertu viss um að setja PDU á annað net en klasaumferðin, annars mun ein netbilun loka fyrir aðgang að bæði aftengingartækjunum og loka fyrir endurreisn þjónustu.

Hér gætirðu spurt - er PDU einn bilunarpunktur? Við því er auðvitað svarið.

Ef þessi áhætta er veruleg fyrir þig ertu ekki einn: Tengdu báða hnúta við tvo PDU og segðu klasahugbúnaðinum að nota bæði þegar kveikt og slökkt er á hnútunum. Klasinn er nú áfram virkur ef einn PDU deyr, og önnur bilun í annaðhvort hinn PDU eða IPMI tækið verður nauðsynleg til að loka fyrir endurheimt.

Valkostur 2 - Bæta við dómara

Í sumum tilfellum, þó að tvítekin aðgreiningaraðferðin sé tæknilega möguleg, er hún pólitískt erfið. Mörg fyrirtæki vilja hafa einhvern aðskilnað á milli stjórnenda og eigenda forrita og öryggismeðvitaðir netkerfisstjórar eru ekki alltaf áhugasamir um að deila PDU aðgangsstillingum með hverjum sem er.

Í þessu tilviki er ráðlagður valkostur að búa til hlutlausan þriðja aðila sem getur bætt við útreikning á hæfi.

Ef bilun verður, verður hnútur að geta séð útvarpsbylgjur jafningja síns eða úrskurðaraðila til að endurheimta þjónustu. Dómarinn inniheldur einnig aftengingaraðgerð ef báðir hnútar geta séð úrskurðarmanninn en geta ekki séð hvor annan.

Þessi valmöguleiki verður að nota í tengslum við óbeina aðgreiningaraðferð, svo sem vélbúnaðarvakthundatímamæli, sem er stilltur til að drepa vél ef hún missir tengingu við jafningja- og úrskurðarhnút sinn. Þannig getur eftirlifandi gert ráð fyrir því að jafningjahnútur hans verði í öruggu ástandi eftir að tímamælir vélbúnaðarvaktar rennur út.

Hagnýti munurinn á gerðardómara og þriðja hnút er að gerðarmaður þarf mun færri fjármagn til að starfa og getur hugsanlega þjónað fleiri en einum klasa.

Valkostur 3 - Mannlegur þáttur

Lokaaðferðin er sú að eftirlifendur haldi áfram að keyra hvaða þjónustu sem þeir voru þegar að keyra, en ekki byrja nýjar fyrr en annað hvort vandamálið leysist af sjálfu sér (endurheimt netkerfis, endurræsa hnút) eða einstaklingur tekur ábyrgð á því að staðfesta handvirkt að hin hliðin sé dauð.

Bónus valkostur

Sagði ég að þú getur bætt við þriðja hnút?

Tvær rekkar

Til rökstuðnings skulum við láta eins og ég hafi sannfært þig um ágæti þriðja hnútsins, nú verðum við að íhuga líkamlega uppröðun hnútanna. Ef þeir eru hýstir (og knúnir) í sama rekki, er þetta einnig SPoF, og er ekki hægt að leysa með því að bæta við annarri rekki.

Ef þetta kemur á óvart skaltu íhuga hvað myndi gerast ef rekki með tveimur hnútum bilaði og hvernig eftirlifandi hnútur myndi greina á milli þess og netbilunar.

Stutta svarið er að það er ekki hægt, og aftur erum við að takast á við öll vandamálin í tveggja hnúta málinu. Eða eftirlifandi:

  • hunsar ályktun og reynir ranglega að koma af stað endurreisn meðan á netleysi stendur (getan til að ljúka sundrun er önnur saga og fer eftir því hvort PDU á hlut að máli og hvort þeir deila orku með einhverjum rekki), eða
  • virðir ályktun og aftengir sig ótímabært þegar jafningjahnútur hans bilar

Í öllum tilvikum eru tveir rekki ekki betri en einn og hnútarnir verða annað hvort að fá sjálfstæða aflgjafa eða dreifast á þrjá (eða fleiri, eftir því hversu marga hnúta þú hefur) rekki.

Tvö gagnaver

Á þessum tímapunkti gætu lesendur sem eru ekki lengur áhættufælnir viljað íhuga hamfarabata. Hvað gerist þegar smástirni lendir í sömu gagnaverinu með þrjá hnúta okkar dreift yfir þrjár mismunandi rekki? Augljóslega slæmir hlutir, en eftir þörfum þínum gæti það ekki verið nóg að bæta við annarri gagnaver.

Ef það er gert á réttan hátt, veitir annað gagnaverið þér (og sanngjarnt) uppfært og samræmt afrit af þjónustu þinni og gögnum þeirra. Hins vegar, eins og í tveggja hnúta, tveggja rekka atburðarás, eru ekki nægar upplýsingar í kerfinu til að tryggja hámarks aðgengi og koma í veg fyrir spillingu (eða misræmi í gagnasettum). Jafnvel með þrjá hnúta (eða rekki), dreifing þeirra yfir aðeins tvær gagnaver gerir kerfið ófært um að taka áreiðanlega réttar ákvörðun ef (nú mun líklegra) atburður kemur upp sem báðir aðilar geta ekki átt samskipti.

Þetta þýðir ekki að tvískiptur gagnaveralausn henti aldrei. Fyrirtæki vilja oft að einstaklingur sé meðvitaður áður en hann tekur það ótrúlega skref að flytja í varagagnaver. Hafðu bara í huga að ef þú vilt gera bilunina sjálfvirkan þarftu annaðhvort þriðja gagnaver til að skynsamlegt sé að vera ályktun (annaðhvort beint eða í gegnum gerðardómsmann), eða þú munt finna leið til að loka öllum gögnunum á áreiðanlegan hátt miðja.

Heimild: www.habr.com

Bæta við athugasemd