Tere, Habr! Esitlen teile tÔlget artiklist autor Andrew Beekhof.
Paljud inimesed eelistavad kaht sÔlme koosnevaid klaste, sest need nÀivad olevat kontseptuaalselt lihtsamad ning lisaks on need 33% odavamad kui nende kolm sÔlme. Kuigi on tÀiesti vÔimalik luua hea kahe sÔlmega klaster, toob see enamasti, arvestamata teatud stsenaariume, kaasa palju nÀhtamatuid probleeme.
Iga kĂ”rge saadavuse sĂŒsteemi loomise esimene samm on tuvastada ja proovida kĂ”rvaldada ĂŒksikute rikkepunkte, mida sageli lĂŒhendatult nimetatakse SPoF (ĂŒksik rikkepunkt).
Tuleb meeles pidada, et ĂŒkski sĂŒsteem ei suuda kĂ”rvaldada kĂ”iki vĂ”imalikke seiskumise riske. See tuleneb vĂ€hemalt sellest, et tĂŒĂŒpiliseks kaitseks riskide eest on teatava ĂŒlejÀÀgi loomine, mis toob kaasa sĂŒsteemi keerukuse suurenemise ja uute rikkepunktide tekkimise. Seega teeme algusest peale kompromissi ja keskendume ĂŒksikute rikkepunktide seondumisega seotud sĂŒndmustele, mitte seotud ja seega ĂŒha vĂ€hem tĂ”enĂ€olistele sĂŒndmustele.
Kompromisse arvesse vÔttes ei otsi me mitte ainult SPoF-e, vaid tasakaalustame ka riske ja tagajÀrgi, millest jÀreldus, mis on kriitiline ja mis mitte, vÔib igas rakenduses erineda.
KĂ”igile ei ole vaja alternatiivsetele elektri tarnijatele, kellel on sĂ”ltumatud elektrijooned. Kuigi paranoiad on vĂ€hemalt ĂŒhe kliendi jaoks ennast Ă”igustanud, kui nende jĂ€lgimine tuvastas defektiivse trafo. Klient helistas telefoniga, ĂŒritades teavitada energiaettevĂ”tet, kuni defektiivne trafo plahvatas.
Loomulik alguspunkt on sĂŒsteemis rohkem kui ĂŒks sĂ”lm. Siiski, enne kui sĂŒsteem saab teenused ĂŒle viia elujĂ”ulisele sĂ”lmele pĂ€rast riket, tuleb ĂŒldjuhul veenduda, et ĂŒle kantavad teenused ei ole aktiivsed kuskil mujal.
Kaks sĂ”lme klastril pole puudusi, kui mĂ”lemad sĂ”lmed hooldavad sama staatilist veebisaiti. Kuid kĂ”ik muutub, kui mĂ”lemad pooled haldavad sĂ”ltumatult ĂŒhist tööde jĂ€rjekorda vĂ”i pakuvad koordineerimata kirjutamise juurdepÀÀsu repliikeeritud andmebaasile vĂ”i ĂŒhisfaili sĂŒsteemile.
SeetĂ”ttu, et vĂ€ltida andmete kahjustamist ĂŒhe sĂ”lme rikke tĂ”ttu, toetume sellele, mida nimetatakse âpiiramineâ (fencing).
Piiramise pÔhimÔte
Piiramise pĂ”himĂ”tte aluseks on kĂŒsimus: kas konkurentsivĂ”imeline sĂ”lm vĂ”ib pĂ”hjustada andmete kahjustamist? Kui andmete kahjustamine on tĂ”enĂ€oline stsenaarium, on heaks lahenduseks sĂ”lme isoleerimine nii sissetulevatest pĂ€ringutest kui ka pidevast salvestamisest. TĂŒĂŒpiline lĂ€henemine piiramisele on rikketeenuste sĂ”lmede kĂ”rvaldamine.
On olemas kaks kategooriat piiramismeetodeid, mida ma nimetan otsesed ja kaudsed, kuid neid vĂ”ib nimetada ka aktiivseteks ja passiivseteks. Otsesed meetodid hĂ”lmavad ellujÀÀnud vĂ”rdselt sĂ”lmedelt tegevusi, nagu suhtlemine IPMI (Intelligent Platform Management Interface - fĂŒĂŒsilise serveri seisundi kaugmonitorimise ja haldamise liides) vĂ”i iLO (serverite haldamise mehhanism fĂŒĂŒsilise juurdepÀÀsuta) seadmetega, samas kui kaudsed meetodid tuginevad rikke tĂ”ttu sĂ”lmele millegipĂ€rast Ă€ra tunda, et see on ebasoodne (vĂ”i vĂ€hemalt takistab teisi liikmeid ellu jÀÀmast) ja signaalida rikkuva sĂ”lme vĂ€ljalĂŒlitamise vajadusest.
Kvoorum aitab mÔlema meetodi - otseste ja kaudsete - kasutamisel.
Otsene piiramine
Otsese piiramise korral saame kasutada kvoorumit, et vÀltida piiramisvÔistlusi vÔrgu rikke korral.
Kvoorumi mĂ”iste alusel on sĂŒsteemis piisavalt teavet (isegi ilma partneritega ĂŒhendamata), et sĂ”lmed automaatselt teaksid, kas nad peaksid kĂ€ivitama piiramise ja/vĂ”i taastamise.
Ilma kvoorumita eeldavad mĂ”lemad vĂ”rgu jagamise pooled Ă”igustatult, et teine pool on surnud, ja pĂŒĂŒdlevad teise piiramiseks. Halvimal juhul Ă”nnestub mĂ”lemal osapoolel vĂ€lja lĂŒlitada kogu klaster. Alternatiivne stsenaarium on deathmatch, lĂ”putu tsĂŒkkel sĂ”lmedest, kes ilmuvad, ei nĂ€e oma kaaslasi, taaskĂ€ivitatakse ja lĂ€hevad taastamisele, vaid taaskĂ€ivituvad, kui nende kaaslane jĂ€rgib sama loogikat.
Probleem, mis seondub eraldamisega, seisneb selles, et enimkasutatavad seadmed muutuvad kergesti kÀttesaamatuks samade rikke tÔttu, millele me taastumise ajal tugineda soovime. Enamiku IPMI ja iLO kaardid on installitud hostidele, mida nad haldavad, ja vaikimisi kasutavad nad sama vÔrku, mistÔttu siht sÔlmed arvavad, et teised sÔlmed on offline.
Kahjuks harva arvestatakse IPMI ja iLo seadmete töö eripÀra riistvara ostmise hetkel.
Kaudne eraldamine
Kvoorum on samuti oluline kaudsete eraldamiste haldamiseks. Kui kÔik on Ôigesti tehtud, vÔib kvoorum vÔimaldada ellujÀÀnud sÔlmedel oletada, et kadunud sÔlmed lÀhevad teatud aja pÀrast turvalisse olekusse.
Antud seadistusega lĂ€htestatakse riistvara watch-dog taimer iga N sekundi jĂ€rel, kui kvoorum ei ole kadunud. Kui taimer (tavaliselt mitme N kordsena) aegub, siis seade sooritab ebakorrapĂ€rase vĂ€ljalĂŒlitamise (mitte shutdown).
See lÀhenemine on vÀga efektiivne, kuid ilma kvoorumita selle haldamiseks pole klastris piisavalt teavet. VÔrgu katkestamise ja partner-sÔlme rikke vahelise erinevuse tuvastamine pole lihtne. Sellel on tÀhtsus, kuna kui ei saa eristada kahte juhtu, tuleb valida sama kÀitumismood mÔlemal juhul.
Probleem ĂŒhe reĆŸiimi valimisega on see, et ei ole ĂŒhtegi tegevusviisi, mis maksimaalselt suurendaks kĂ€ttesaadavust ja takistaks andmete kadu.
- Kui otsustate oletada, et partner-sĂ”lm on aktiivne, kuid tegelikult on juhtunud rike, siis klaster lĂ”petab ĂŒleliigsed teenused, mis peaksid töötama kukkunud partner-sĂ”lme teenuste kaotuse kompenseerimiseks.
- Kui arvate, et sĂ”lm ei tööta, kuid see oli lihtsalt vĂ”rgu rike ja tegelikult kaugsĂ”lm töötab, siis parimal juhul leppite tulevikus mingisse kĂ€sitsi sĂŒnkroniseeritud andmekogude komplekti.
ĂkskĂ”ik, millist heuristikat te kasutate, on triviaalne tekitada rike, mis kas sunnib mĂ”lemaid poole töötama vĂ”i sunnib klastrit vĂ€lja lĂŒlitama ellujÀÀnud sĂ”lmed. Kvoorumi mittesaatmine jĂ€tab klastrilt ĂŒhe tema vĂ”imsama tööriista.
Kui pole muid alternatiive, on parim lÀhenemine ohverdada kÀttesaadavus (siin viitab autor CAP-teoreemile). KÔrge kÀttesaadavus vigastatud andmete puhul ei aita kedagi, ja erinevate andmestike kÀsitsi kontrollimine ei toeta ka rÔÔmu.
Kvoorum
Kvoorum kÔlab suurepÀraselt, eks?
Ainuke puudus on see, et N liikmega klastris peab N / 2 + 1 teie sĂ”lmedest ĂŒhenduses olema. See on vĂ”imatu kahel sĂ”lmelise klastriga, kui ĂŒks sĂ”lm ebaĂ”nnestub.
See viib meid lĂ”puks kahe sĂ”lme pĂ”hikĂŒsimuseni:
kvoorum ei oma mÔtet kahe sÔlmega klastrites ja ilma selleta ei ole usaldusvÀÀrselt vÔimalik mÀÀrata tegevussuunda, mis maksimeerib kÀttesaadavust ja ennetab andmete kadumist.
Isegi kahek-sĂ”lmelises sĂŒsteemis, mis on ĂŒhendatud ristkaabliga, pole vĂ”imalik lĂ”plikult eristada vĂ”rgu vĂ€ljalĂŒlitamist ja teise sĂ”lme tĂ”rget. Ăhe otsa vĂ€ljalĂŒlitamine (mille tĂ”enĂ€osus on kindlasti proportsionaalne sĂ”lmede vahelise kaugusega) on piisav, et kehtetuks muuda igasugune eeldus, et kanali töövĂ”ime on sama, mis partner-sĂ”lme tervis.
Kaks sÔlme töötama pannud klaster
MÔnikord ei saa klient kolmandat sÔlme osta vÔi ei soovi ning me oleme sunnitud otsima alternatiivi.
Variant 1 - DubleerimisvÔistluse meetod
SÔlme iLO vÔi IPMI seade on tÔrkepunkt, kuna ebaÔnnestumise korral ei saa elusolevad seda kasutada sÔlme turvalisse olekusse viimiseks. Kolm vÔi enam sÔlme sisaldavas klastris saame seda pehmendada kvoorumi arvutamise ja riistvara vahekÀigu (hardware watchdog) kasutamisega, nagu varem arutatud. Kahe sÔlme puhul peame selle asemel kasutama vÔrgu toitejuhtmeid (power distribution units vÔi PDUs).
PĂ€rast riket pĂŒĂŒab ellu jÀÀnud esmalt ĂŒhendust vĂ”tta pĂ”hiseadmest, vahekĂ€igust (sisseehitatud iLO vĂ”i IPMI). Kui see Ă”nnestub, jĂ€tkub taastamine tavapĂ€raselt. Ainult iLO/IPMI seadme tĂ”rke korral pöördutakse PDU poole, kusjuures kui ĂŒhendus Ă”nnestub, vĂ”ib taastamine jĂ€tkuda.
Veenduge, et PDU on ĂŒhendatud vĂ”rguga, mis on eraldi klastritrafikust, vastasel juhul blokeerib ĂŒksik vĂ”rguhĂ€ire juurdepÀÀsu nii varustuse eraldajatele kui ka teenuste taastamise.
Siin saate kĂŒsida â kas PDU-seade ei ole ainus rikkepunkt? Vastus on â loomulikult on.
Kui see risk on teie jaoks oluline â te ei ole ĂŒksi: ĂŒhendage mĂ”lemad sĂ”lmed kahe PDU-ga ja mÀÀrake klastritarkvarale, et see kasutaks mĂ”lemat sĂ”lme sisselĂŒlitamisel ja vĂ€ljalĂŒlitamisel. NĂŒĂŒd jÀÀb klaster aktiivseks, kui ĂŒks PDU sureb, ja taastamise blokeerimiseks on vajalik teise PDU vĂ”i IPMI seadme rike.
Variant 2 â Arbitraari lisamine
MÔnedes stsenaariumides, kuigi tehnikaliselt on vÔimalik dubleeriva eraldamise meetod, on see poliitiliselt keeruline. Paljud ettevÔtted soovivad, et administraatorite ja rakenduste omanike vahel oleks teatud eraldatus, ja vÔrguadministraatorid, kes hoolivad turvalisusest, ei pruugi alati olla innukad kellegile PDU-juurdepÀÀsu parameetreid andma.
Sellisel juhul on soovitatav alternatiiv luua neutraalne kolmas osapool, mis suudab tÀiendada kvoori arvutust.
Rikke korral peab sĂ”lm olema vĂ”imeline nĂ€gema oma partneri vĂ”i arbitraari eeteret, et taastada teenused. Arbitraar sisaldab ka ĂŒhenduse katkestamise funktsiooni, kui mĂ”lemad sĂ”lmed saavad nĂ€ha arbitraari, kuid ei nĂ€e ĂŒksteist.
Seda valikut tuleks kasutada koos kaudse eraldamise meetodiga, nagu riistvaralise vahtkonna taimer, mis on seadistatud masin vĂ€lja lĂŒlitama, kui see kaotab ĂŒhenduse oma partneri ja arbitraariga. Nii vĂ”ib ellujÀÀnud usaldusvÀÀrselt eeldada, et tema partnerisĂ”lm on riistvaravahtkonna taimeri aegumise pĂ€rast ohutusolukorras.
Praktiline erinevus arbitraari ja kolmanda sĂ”lme vahel on see, et arbitraar vajab oma tööks palju vĂ€hem ressursse ja potentsiaalselt vĂ”ib teenindada rohkem kui ĂŒhte klastrit.
Variant 3 â Inimfaktor
Viimane lÀhenemine on see, et ellujÀÀnud jÀtkavad kÔigi varasemate teenuste tÀitmist, kuid uusi ei kÀivitata, kuni kas probleem lahendab end ise (vÔrgu taastamine, sÔlme taaskÀivitamine) vÔi inimene vÔtab vastutuse kinnitamiseks, et teine pool on surnud.
Boonuse valik
Kas ma juba mainisin, et saate lisada kolmanda sÔlme?
Kaks riiulit
Argumentide nimel oletame, et ma veenin teid kolmanda sĂ”lme eeliste osas, nĂŒĂŒd peame vaatama sĂ”lmede fĂŒĂŒsilist asukohta. Kui need asuvad (ja saavad toidet) samas riiulis, esindab see samuti SPoF-i, millest ei saa ĂŒle, lisades teise riiuli.
Kui see on ĂŒllatav, mĂ”elge sellele, mis juhtub, kui kahe sĂ”lmega riiul rikki lĂ€heb, ja kuidas ellujÀÀnud sĂ”lm seda juhtumit ja vĂ”rgu tĂ”rke eristab.
LĂŒhike vastus: see on vĂ”imatu, ja me seisame taas silmitsi kĂ”ikide probleemidega, mis kaasnevad kahete sĂ”lmega. Kas ellujÀÀnud:
- ignoreerib kvoorumit ja valehĂ€irega pĂŒĂŒab algatada taastumist vĂ”rgu katkemise ajal (vĂ”imalus eraldumise lĂ”petamiseks on eraldi teema ja sĂ”ltub sellest, kas PDU on kaasatud ja kas nad jagavad toidet mĂ”ne riiuliga), vĂ”i
- arvestab kvoorumiga ja katkestab end enne tÀhtaega, kui tema partner sÔlm ebaÔnnestub.
Igatahes, kaks riiulit ei ole paremad kui ĂŒks, ja sĂ”lmed peavad kas saama sĂ”ltumatud toiteseadmed vĂ”i olema jaotatud kolmele (vĂ”i rohkem, sĂ”ltuvalt sellest, kui palju teil sĂ”lmi on) riiulile.
Kaks and keskpunkti
Selleks hetkeks vĂ”ivad lugejad, kes ei ole enam riskialti, hakata mĂ”tlema hĂ€daolukorra taastamisele. Mis juhtub, kui asteroid tabab ĂŒhte andmekeskust, kus meie kolm sĂ”lme on jaotatud kolme erineva riiuli vahel? Ilmselgelt halvasti, kuid sĂ”ltuvalt 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 ĂŒhtse koopia teie teenustest ja nende andmetest. Siiski, nagu kahe sĂ”lme ja kahe riiuli stsenaariumide puhul, ei ole sĂŒsteemis piisavalt teavet, et tagada maksimaalne saadavus ja vĂ€ltida kahjustusi (vĂ”i andme kogumite lahknevusi). Isegi kui kolm sĂ”lme (vĂ”i riiulit) kasutatakse, jĂ€tab nende jaotamine ainult kahe andmekeskuse vahel sĂŒsteemi kindlusetuks, et langetada Ă”ige otsus juhtudel, mis vĂ”ib olla (nĂŒĂŒd palju tĂ”enĂ€olisem) sĂŒndmus, mille mĂ”lemad pooled ei suuda seostada.
See ei tĂ€henda, et kahe andmekeskuse lahendus ei sobi kunagi. EttevĂ”tted soovivad sageli, et inimene oleks teadlik, enne kui astuda erakorraline samm ĂŒleminekul varuandmekeskusele. Lihtsalt pidage meeles, et kui soovite tĂ”rkeautomaatikat, on teil vaja kas kolmandat andmekeskust, et kvoorum oleks mĂ”istlik (otse vĂ”i vahendaja kaudu), vĂ”i peate leidma viisi, kuidas usaldusvÀÀrselt kogu andmekeskus vĂ€lja lĂŒlitada.
Allikas: habr.com
