Tere, Habr! Esitan teile artikli tÔlke autor Andrew Beekhof.
Paljud inimesed eelistavad kahe sÔlmega klastreid, sest need nÀivad kontseptuaalselt lihtsamad ning on ka 33% odavamad kui nende kolme sÔlmega kolleegid. Kuigi on tÀiesti vÔimalik luua hea kahe sÔlmega klaster, vÔib see enamikul juhtudel, arvestamata mÔningaid stsenaariume, tekitada palju vÀhem ilmseid probleeme.
Esimene samm iga kĂ”rgparemuse sĂŒsteemi loomisel on otsida ja pĂŒĂŒda kĂ”rvaldada ĂŒksikuid tĂ”rkeerime, mida sageli lĂŒhendatakse kui SPoF (ĂŒksik tĂ”rkepunkt).
Oluline on meeles pidada, et ĂŒheski sĂŒsteemis ei ole vĂ”imalik kĂ”rvaldada kĂ”iki vĂ”imalikke seiskamise riske. See tuleneb vĂ€hemalt tĂ”siasjast, et tĂŒĂŒpiline kaitse riski vastu on teatud ĂŒleliigsuse loomine, mis suurendab sĂŒsteemi keerukust ja toob kaasa uusi tĂ”rkepunkte. Seega teeme alguses kompromissi ning keskendume sĂŒndmustele, mis on seotud ĂŒksikute tĂ”rkepunktidega, mitte omavahel seotud ja seega jĂ€rjest vĂ€hem tĂ”enĂ€oliste sĂŒndmusteahelatega.
Kompromisse arvesse vÔttes ei otsi me mitte ainult SPoF'e, vaid kaalume ka riske ja tagajÀrgi, mistÔttu kriitilise ja mitte kriitilise vahel vÔib eraldumine iga juurutuse puhul erineda.
KĂ”igil pole vaja alternatiivseid elektritootjaid sĂ”ltumatute elektriliinidega. Kuigi paranoia tasus end Ă€ra vĂ€hemalt ĂŒhel kliendil, kui nende jĂ€lgimisseade tuvastas defektse trafo. Klient helistas, ĂŒritades hoiatada elektrifirmat, kuni defektne trafo plahvatas.
Looduslikuks lĂ€htepunktiks on sĂŒsteemis vĂ€hemalt ĂŒhe sĂ”lme olemasolu. Siiski, enne kui sĂŒsteem suudab teenuseid ĂŒle viia ellujÀÀnud sĂ”lmele pĂ€rast riket, tuleb tavaliselt kinnitada, et ĂŒle kantavad teenused ei ole aktiivsed mingis muus kohas.
KaksisĂ”lmelisel klastril ei ole puudusi, kui mĂ”lemad sĂ”lmed teenindavad sama statilist veebisaiti tĂ”rke korral. Kuid kĂ”ik muutub, kui mĂ”lemal poolel on sĂ”ltumatu juurdepÀÀs ĂŒhisele töökohustuste jĂ€rjekorrale vĂ”i kui nad pakuvad koordineerimata kirjutamisjuurdepÀÀsu replikatsiooniga andmebaasile vĂ”i ĂŒhisele failisĂŒsteemile.
SeetĂ”ttu, et vĂ€ltida andmete kahjustamist ĂŒhe sĂ”lme tĂ”rke tĂ”ttu â toetume sellele, mida nimetatakse âpiiramiseâ (fencing).
Piiramisprintsiip
Piiramisprintsiibi aluseks on kĂŒsimus: kas konkurent sĂ”lm vĂ”ib pĂ”hjustada andmete kahjustamist? Kui andmete kahjustamine on vĂ”imalik stsenaarium â oleks hea lahendus sĂ”lme isoleerimine nii sise- kui ka pĂŒsivast salvestamisest. KĂ”ige levinum lĂ€henemine piiramisele on vigaste sĂ”lmede vĂ€ljalĂŒlitamine.
On kaks kategooriat piiramismeetodeid, mida ma nimetaksin otse ja kaudseks, kuid neid vĂ”ib samuti nimetada aktiivseteks ja passiivseteks. Otsesed meetodid hĂ”lmavad tegevusi ellujÀÀnud vĂ”rguĂŒhendusega sĂ”lmedelt, nagu IPMI (Intelligent Platform Management Interface â serveri fĂŒĂŒsilise oleku kaugmonitorimise ja haldamise liides) vĂ”i iLO (serverite haldamise mehhanism fĂŒĂŒsilise juurdepÀÀsu puudumisel), samas kui kaudsed meetodid tuginevad ebaĂ”nnestunud sĂ”lmele, et mingil moel Ă€ra tunda, et see on ebatervislik seisund (vĂ”i vĂ€hemalt segab teisi liikmeid taastumast) ja annab signaali ebaĂ”nnestunud sĂ”lme vĂ€lja lĂŒlitamise vajadusest.
Kvoorum aitab nii otseste kui ka kaudsete meetodite kasutamisel.
Otsene lahutamine
Otsese lahutamise korral saame kvoorumit kasutada ĂŒldiselt, et vĂ€ltida lahutamisvĂ”istlusi vĂ”rgu tĂ”rke korral.
Kvoorumi kontseptsiooniga sĂŒsteemis on piisavalt teavet (isegi ilma oma partneritega ĂŒhendamiseta), et sĂ”lmed automaatselt teaksid, kas nad peaksid kĂ€ivitama lahutamise ja / vĂ”i taastamise.
Ilma kvoorumit mĂ”lemad vĂ”rgu eraldumise osapooled eeldavad Ă”igesti, et teine osapool on surnud, ja pĂŒĂŒavad eraldada teist. Halvimal juhul suudavad mĂ”lemad osapooled kogu klastri vĂ€lja lĂŒlitada. Alternatiivne stsenaarium on surmav matĆĄ, lĂ”putu sĂ”lmede tsĂŒkkel, mis ilmuvad, ei nĂ€e oma peerusid, taaskĂ€ivitavad need ja kĂ€ivitavad taastamise ainult selleks, et taaskĂ€ivitada, kui nende peer jĂ€rgib sama loogikat.
Eraldamise probleem on see, et kĂ”ige sagedamini kasutatavad seadmed muutuvad kĂ€ttesaamatuks sama rikke tĂ”ttu, millele me taastumise jaoks keskendume. Enamik IPMI ja iLO kaarte on paigaldatud hostidesse, mida nad kontrollivad, ja nende vaikimisi kasutatav sama vĂ”rk paneb sihitud sĂ”lmed uskumma, et ĂŒlejÀÀnud sĂ”lmed on vĂ€lja lĂŒlitatud.
Kahjuks kÀsitletakse IPMI ja iLO seadmete tööd harva seadmete ostmise hetkel.
Kaudne eraldamine
Kvoorum on samuti oluline kaudsete eraldamiste haldamiseks; kui kÔik on Ôigesti tehtud, vÔib kvoorum lubada ellujÀÀnutel eeldada, et kadunud sÔlmed lÀhevad teatud aja pÀrast turvalisse olekusse.
Sellise seadistuse puhul lĂ€htestatakse riistvaravalve taimer iga N sekundi jĂ€rel, kui kvoorum ei ole kadunud. Kui taimer (tavaliselt mitu korda N) aegub, toimub seadme ebaviisakas toite vĂ€ljalĂŒlitamine (mitte shutdown).
See lÀhenemine on vÀga tÔhus, kuid kvoorumita selle haldamiseks pole klastris piisavalt teavet. Raskeks osutub erinevuse mÀÀramine vÔrgu katkestamise ja partner-sÔlme rikke vahel. See on oluline, sest ilma vÔimeta nende kahe olukorra vahel eristada, peate valima mÔlemal juhul sama kÀitumismudeli.
Ăksiku reĆŸiimi valimise probleem seisneb pĂ”himĂ”ttes, et puudub tegevus, mis maksimaalselt suurendaks kĂ€ttesaadavust ja takistaks andmete kadumist.
- Kui otsustate eeldada, et partnernode on aktiivne, kuid tegelikult on toimunud rike, siis klaster peatab liialt teenused, mis pidanuks töötama kukkunud partnernode'i teenuste kadumise kompenseerimiseks.
- Kui otsustate eeldada, et node ei tööta, kuid see oli lihtsalt vÔrgu rike ning tegelikult kaugnode toimib, siis parimal juhul liitute te tulevaste kÀsitsi andmekogumite kontrollimisega.
Olenemata sellest, millist heuristikat te kasutate, on triviaalne tekitada rike, mis kas sunnib mĂ”lemat poolt töötama vĂ”i sundib klastrit ellujÀÀnud node'id vĂ€lja lĂŒlitama. Kvoorumi mittekasutamine annab tĂ”eliselt klastrile ĂŒht kĂ”ige vĂ”imsamat tööriista.
Kui pole muid alternatiive, on parim lÀhenemine ohverdada kÀttesaadavus (siin viitab autor CAP-teoreemile). KÔrge kÀttesaadavus kahjustatud andmete puhul ei aita kedagi ning erinevate andmekogumite kÀsitsi kontrollimine ei paku ka kellelegi rÔÔmu.
Kvoorum
Kvoorum kÔlab suurepÀraselt, eks?
Ainus puudus on see, et N liiget sisaldava klusteri jaoks peab ĂŒhendus olema olemas vĂ€hemalt N / 2 + 1 teie sĂ”lmede vahel. See on vĂ”imatu kahe sĂ”lmiga klusteris pĂ€rast ĂŒhe sĂ”lme nurjumist.
See viib meid lÔpuks kahe sÔlme pÔhiprobleemi juurde:
kvoorum ei oma mÔtet kahe sÔlmega klusterites, ja ilma selleta ei saa usaldusvÀÀrselt mÀÀrata tegevussuunda, mis maksimeerib kÀttesaadavust ja takistab andmete kaotust.
Isegi kahe sĂ”lmega sĂŒsteemis, mis on ĂŒhendatud risti-kaabliga, on vĂ”imatu lĂ”plikult eristada vĂ”rgu katkestust ja teise sĂ”lme nurjumist. Ăhe otsa katkestamine (mille tĂ”enĂ€osus on kindlasti proportsionaalne sĂ”lmede vahemaa pikkusele) on piisav, et ĂŒmber lĂŒkata iga oletus, et kanali töökindlus on vĂ”rdne partner-sĂ”lme tervisega.
KĂŒllaltki keeruline on kahe sĂ”lmega klusterit tööle panna.
MÔnikord ei saa klient vÔi ei soovi osta kolmandat sÔlme ning me peame otsima alternatiivi.
Variant 1 â Duplitseeriv isolatsiooni meetod
iLO vĂ”i IPMI seadme rike vĂ”ib olla tĂ”rkeallikas, kuna rikke korral ei saa ĂŒlejÀÀnud elujĂ”ulised sĂ”lmed seda kasutada sĂ”lme turvalisse olekusse viimiseks. Kolmest vĂ”i enamast sĂ”lmest koosnevas klastris saame seda leevendada koosoleku arvutamise ja hardware watchdog'i kasutamisega (indirektne kuvand, nagu eelnevalt arutatud). Kahe sĂ”lmega juhul peame kasutama toitejaotusseadmeid (power distribution units vĂ”i PDUs).
PĂ€rast riket proovib ellujÀÀnud esmalt ĂŒhendust vĂ”tta peamise omavahelise seadmega (sisseehitatud iLO vĂ”i IPMI). Kui see Ă”nnestub, jĂ€tkub taastamine nagu tavaliselt. Ainult iLO/IPMI seadme rikke korral pöördutakse PDU poole, ja kui selle poole pöördumine on edukas, vĂ”ib taastamine jĂ€tkuda.
Veenduge, et PDU oleks ĂŒhendatud vĂ”rgus, mis erineb klastrisse suunatud liiklusest; vastasel juhul takistab ĂŒksik rike pÀÀsu nii omavahelistele seadmetele kui ka teenuste taastamisele.
Siin vĂ”ite kĂŒsida â kas PDU seade ei ole ainus tĂ”rkeallikas? Vastus on â on kĂŒll.
Kui see risk on teie jaoks murettekitav, siis te pole ĂŒksi: ĂŒhendage mĂ”lemad sĂ”lmed kahe PDU-ga ja öelge klastritarkvarale, et kasutada mĂ”lemat sĂ”lme sisse- ja vĂ€ljalĂŒlitamisel. NĂŒĂŒd pĂŒsib klaster aktiivne, isegi kui ĂŒks PDU sureb, ja taastumisklĂŒsopahn tuleb teise tĂ”rke tĂ”ttu, olgu see siis PDU vĂ”i IPMI seade.
Variant 2 â Arbitraari lisamine
MÔnes olukorras, kuigi tehniliselt on vÔimalik kasutada kahekordset isoleerimist, on see poliitiliselt keeruline. Paljudele ettevÔtetele meeldib, et administraatorite ja rakenduste omanike vahel on selge eraldatus, ning turvalisuse eest vastutavad vÔrguadministraatorid ei pruugi alati olla entusiastlikud PDU-juurdepÀÀsu parameetrite edastamise suhtes kellelegi.
Sellisel juhul on soovitatav alternatiiv luua neutraalne kolmas osapool, mis vÔib olukorrast kohaselt kvoraumi arvestuse tÀiustada.
TĂ”rke korral peab sĂ”lm suutma nĂ€ha oma partneri vĂ”i arbitraari signaali, et teenuseid taastada. Arbitraar sisaldab ka valmisolekut katkestada ĂŒhendust, kui mĂ”lemad sĂ”lmed saavad arbitraari nĂ€ha, kuid ei nĂ€e ĂŒksteist.
See valikut peab kasutama koos kaudse piiramise meetodiga, nĂ€iteks riistvaralise jĂ€lgimismehhanismi, mis on seadistatud masina vĂ€ljalĂŒlitamiseks, kui see kaotab ĂŒhenduse oma partneri sĂ”lme ja vahekohtu vahel. Nii saab ellujÀÀnu piisava usaldusvÀÀrsusega eeldada, et tema partneri sĂ”lm on pĂ€rast riistvaralise jĂ€lgimismehhanismi vĂ€lja lĂŒlitamist turvalises olekus.
Praktiline vahe vahekohtu ja kolmanda sĂ”lme vahel on see, et vahekoht vajab oma tööks palju vĂ€hem ressursse ja vĂ”ib potentsiaalselt teenindada rohkem kui ĂŒhte klastrit.
Variatsioon 3 â Inimfaktor
Viimane lĂ€henemine tĂ€hendab seda, et ellujÀÀjad jĂ€tkavad kĂ”ikide teenuste tĂ€itmist, mida nad juba tĂ€idavad, kuid ei alustata uusi teenuseid, kuni kas probleem ei lahene iseenesest (vĂ”rgu taastamine, sĂ”lme taaskĂ€ivitamine) vĂ”i inimene ei vĂ”ta vastutust selle kĂ€sitsi kinnitamiseks, et teine ââpool on surnud.
BoonusvÔimalus
Kas ma olen juba öelnud, et saate lisada kolmanda sÔlme?
Kaks seisst
Arutelu huvides kujutage ette, et ma veensin teid kolmanda sĂ”lme eelistes, nĂŒĂŒd peame arvestama sĂ”lmede fĂŒĂŒsilist asukohta. Kui need on paigutatud (ja toidetud) samasse rack'i, esindab see samuti SPoF-i ning sellist, mida ei saa lahendada teise rack'i lisamisega.
Kui see on hÀmmastav, mÔelge, mis juhtub, kui kahest sÔlmest koosnev rack ebaÔnnestub, ja kuidas ellujÀÀnud sÔlm selle olukorra ja vÔrgu tÔrke eristab.
LĂŒhike vastus: see pole vĂ”imalik, ja meil on taas kĂ”ik probleemid, millega silmitsi seisame kahel sĂ”lmest. Kas ellujÀÀnud:
- ignoreerib kvoorumit ja ĂŒritab valehĂ€ire ajal vale taastamist algatada (katkestuse lĂ”petamise tĂ”enĂ€osus on eraldi lugu ja sĂ”ltub, kas PDU on kaasatud ja kui nad jagavad toite mĂ”ne rack'iga), vĂ”i
- au kvoorumile ja vÀljub enne tÀhtaega, kui tema partner-sÔlm ebaÔnnestub.
Igal juhul ei ole kaks rack'i parem kui ĂŒks, ning sĂ”lmed peavad saama kas sĂ”ltumatud toiteallikad vĂ”i olema jaotatud kolmele (vĂ”i enamale, olenevalt sellest, kui palju sĂ”lmi teil on) rack'ile.
Kaks andmekeskust
Selles punktis vĂ”ivad lugejad, kes ei ole enam riskialti, hakata mĂ”tlema Ă€parduse taastamisele. Mis juhtub, kui asteroid tabab ĂŒhte andmekeskust, kus meie kolm sĂ”lme on jaotatud kolmele erinevale rack'ile? Selgelt halvad asjad, kuid olenevalt teie vajadustest, vĂ”ib teise andmekeskuse lisamine olla ebapiisav.
Kui kĂ”ik on Ă”igesti tehtud, annab teine andmekeskus teile (ja see on mĂ”istlik) ajakohase ja kooskĂ”lastatud koopia teie teenustest ja nende andmetest. Siiski, nagu ka kahe sĂ”lmega ja kahe riiuliga stsenaariumide puhul, puudub sĂŒsteemis piisavalt teavet maksimaalse kĂ€ttesaadavuse tagamiseks ja andmekogumite kahjustamise (vĂ”i lahknevuse) vĂ€ltimiseks. Isegi kolmes sĂ”lmes (vĂ”i riiulis) on nende jaotamine ainult kahe andmekeskuse vahel selline, et sĂŒsteem ei suuda usaldusvÀÀrselt teha Ă”iget otsust olukorras, mis on nĂŒĂŒd palju tĂ”enĂ€olisem, et mĂ”lemad pooled ei suuda seda seostada.
See ei tĂ€henda, et kahe andmekeskuse lahendus ei sobi kunagi. EttevĂ”tted soovivad tihti, et inimesed oleksid teadlikud, enne kui nad teevad erakordse sammu varuandmekeskusesse siirdumisel. Lihtsalt pidage meeles, et kui soovite ebaĂ”nnestumist automatiseerida, vajate kas kolmandat andmekeskust, nii et kvoorumil oleks mĂ”te (otseselt vĂ”i lĂ€bi kohtuniku), vĂ”i leiate viisi, kuidas andmekeskuse tĂ€ielikult usaldusvÀÀrselt vĂ€lja lĂŒlitada.
Allikas: habr.com
