Divu mezglu kopa ā€“ velns slēpjas detaļās

Čau Habr! Piedāvāju jÅ«su uzmanÄ«bai raksta tulkojumu "Divi mezgli ā€” velns ir detaļās" autors EndrjÅ« Bēkhofs.

Daudzi cilvēki dod priekÅ”roku divu mezglu klasteriem, jo ā€‹ā€‹tie Ŕķiet konceptuāli vienkārŔāki un ir arÄ« par 33% lētāki nekā trÄ«s mezglu kolēģi. Lai gan ir pilnÄ«gi iespējams izveidot labu divu mezglu kopu, vairumā gadÄ«jumu nepārdomātu scenāriju dēļ Ŕāda konfigurācija radÄ«s daudzas nepārprotamas problēmas.

Pirmais solis, lai izveidotu augstas pieejamÄ«bas sistēmu, ir atrast un mēģināt novērst atseviŔķus atteices punktus, ko bieži saÄ«sina kā SPoF (viens neveiksmes punkts).

Ir vērts paturēt prātā, ka nevienā sistēmā nav iespējams novērst visus iespējamos dÄ«kstāves riskus. Tas izriet no tā, ka tipiska aizsardzÄ«ba pret risku ir zināmas dublÄ“Å”anas ievieÅ”ana, kas palielina sistēmas sarežģītÄ«bu un jaunu atteices punktu raÅ”anos. Tāpēc mēs sākotnēji pieņemam kompromisu un koncentrējamies uz notikumiem, kas saistÄ«ti ar atseviŔķiem neveiksmes punktiem, nevis uz saistÄ«tu un lÄ«dz ar to arvien mazāk ticamu notikumu ķēdēm.

Ņemot vērā kompromisus, mēs ne tikai meklējam SPoF, bet arÄ« lÄ«dzsvarojam riskus un sekas, kā rezultātā secinājums par to, kas ir kritisks un kas nav, katrai izvietoÅ”anai var atŔķirties.

Ne visiem ir vajadzīgi alternatīvi elektroenerģijas piegādātāji ar neatkarīgām elektropārvades līnijām. Lai gan paranoja atmaksājās vismaz vienam klientam, kad viņu uzraudzība atklāja bojātu transformatoru. Klients veica tālruņa zvanus, mēģinot brīdināt elektroenerģijas uzņēmumu, līdz uzsprāga bojātais transformators.

Dabisks sākumpunkts ir vairāk nekā viens mezgls sistēmā. Tomēr, pirms sistēma pēc kļūmes var pārvietot pakalpojumus uz izdzÄ«vojuÅ”o mezglu, tai parasti ir jānodroÅ”ina, lai pārvietotie pakalpojumi citur nebÅ«tu aktÄ«vi.

Divu mezglu klasterim nav nekādu mÄ«nusu, ja kļūmes rezultātā abi mezgli apkalpo vienu un to paÅ”u statisko vietni. Tomēr lietas mainās, ja abas puses neatkarÄ«gi pārvalda koplietojamo darbu rindu vai nodroÅ”ina nekoordinētu rakstÄ«Å”anas piekļuvi replicētai datu bāzei vai koplietotai failu sistēmai.

Tāpēc, lai novērstu datu bojājumus viena mezgla atteices rezultātā - mēs paļaujamies uz kaut ko, ko sauc "disociācija" (nožogojums).

Disociācijas princips

Disociācijas principa pamatā ir jautājums: vai konkurējoÅ”s mezgls var izraisÄ«t datu bojājumus? GadÄ«jumā, ja ir iespējama datu sabojāŔana, labs risinājums bÅ«tu izolēt mezglu gan no ienākoÅ”ajiem pieprasÄ«jumiem, gan no pastāvÄ«gas krātuves. VisizplatÄ«tākā pieeja atdalÄ«Å”anai ir bojāto mezglu atvienoÅ”ana.

Ir divas disociācijas metožu kategorijas, kuras es saukÅ”u taisni Šø netieÅ”s, taču tos var saukt vienādi aktÄ«vs Šø pasÄ«vs. TieŔās metodes ietver darbÄ«bas no izdzÄ«vojuÅ”o vienaudžu puses, piemēram, mijiedarbÄ«bu ar IPMI (Intelligent Platform Management Interface) vai iLO (mehānisms serveru pārvaldÄ«bai, ja tiem nav fiziskas piekļuves) ierÄ«ci, savukārt netieŔās metodes balstās uz neveiksmÄ«go ierÄ«ci. mezgls, lai kaut kā atpazÄ«tu, ka tas ir neveselÄ«gā stāvoklÄ« (vai vismaz neļauj citiem dalÄ«bniekiem atveseļoties) un signalizē aparatÅ«ras sargsuns par nepiecieÅ”amÄ«bu atvienot neveiksmÄ«go mezglu.

Kvorums palīdz, izmantojot gan tieŔās, gan netieŔās metodes.

TieŔa disociācija

TieÅ”as disociācijas gadÄ«jumā mēs varam izmantot kvorumu, lai novērstu disociācijas sacÄ«kstes tÄ«kla atteices gadÄ«jumā.

Izmantojot kvoruma jēdzienu, sistēmā ir pietiekami daudz informācijas (pat bez savienojuma ar vienaudžiem), lai mezgli automātiski zinātu, vai tiem ir jāuzsāk disociācija un/vai atkopÅ”ana.

Bez kvoruma abas tÄ«kla plaisas puses pamatoti pieņems, ka otra puse ir mirusi, un centÄ«sies otru atdalÄ«t. Sliktākajā gadÄ«jumā abām pusēm izdodas slēgt visu klasteru. AlternatÄ«vs scenārijs ir nāves sakritÄ«ba, nebeidzama mezglu cilpa, kas nārsto, neredz savus vienaudžus, tos pārstartē un atkopÅ”anu uzsāk tikai, lai atsāknētu, kad viņu lÄ«dzinieks ievēro to paÅ”u loÄ£iku.

AtdalÄ«Å”anas problēma ir tāda, ka visbiežāk izmantotās ierÄ«ces kļūst nepieejamas to paÅ”u kļūmes notikumu dēļ, uz kuriem vēlamies atkopt. Lielākā daļa IPMI un iLO karÅ”u ir instalētas resursdatoros, kurus tās kontrolē, un pēc noklusējuma tās izmanto to paÅ”u tÄ«klu, kas liek mērÄ·a resursdatoriem uzskatÄ«t, ka citi resursdatori ir bezsaistē.

Diemžēl IPMI un iLo ierīču darbības iezīmes reti tiek ņemtas vērā aprīkojuma iegādes laikā.

NetieŔā disociācija

Kvorums ir svarÄ«gs arÄ« netieŔās disociācijas pārvaldÄ«Å”anai; ja tas tiek darÄ«ts pareizi, kvorums var ļaut izdzÄ«vojuÅ”ajiem pieņemt, ka zaudētie mezgli pēc noteikta laika pāriet uz droÅ”u stāvokli.

Izmantojot Å”o konfigurāciju, aparatÅ«ras sargsuņa taimeris tiek atiestatÄ«ts ik pēc N sekundēm, ja kvorums netiek zaudēts. Ja taimeris (parasti vairāki N reizi) beidzas, ierÄ«ce veic negraciozu izslēgÅ”anu (nevis izslēgÅ”anu).

Å Ä« pieeja ir ļoti efektÄ«va, taču bez kvoruma klasterÄ« nav pietiekami daudz informācijas, lai to pārvaldÄ«tu. Nav viegli noteikt atŔķirÄ«bu starp tÄ«kla pārtraukumu un vienādranga mezgla kļūmi. Iemesls tam ir svarÄ«gs tāpēc, ka bez spējas atŔķirt abus gadÄ«jumus jÅ«s esat spiests izvēlēties vienu un to paÅ”u rÄ«cÄ«bu abos gadÄ«jumos.

Viena režīma izvēles problēma ir tāda, ka nav tādas darbības, kas maksimāli palielinātu pieejamību un novērstu datu zudumu.

  • Ja izvēlaties pieņemt, ka vienādranga mezgls ir aktÄ«vs, bet faktiski neizdodas, klasteris nevajadzÄ«gi apturēs pakalpojumus, kas darbotos, lai kompensētu pakalpojumu zudumu no neveiksmÄ«gā peer mezgla.
  • Ja nolemjat pieņemt, ka mezgls nedarbojas, bet tā bija tikai tÄ«kla kļūme un faktiski attālais mezgls darbojas, labākajā gadÄ«jumā jÅ«s pierakstāties kādai turpmākai iegÅ«to datu kopu manuālai saskaņoÅ”anai.

NeatkarÄ«gi no tā, kādu heiristiku jÅ«s izmantojat, ir triviāli izveidot kļūmi, kas izraisÄ«s abu puÅ”u neveiksmi vai arÄ« klastera izslēgÅ”anu pārdzÄ«vojuÅ”ajiem mezgliem. Kvoruma neizmantoÅ”ana klasterim patieŔām atņem vienu no spēcÄ«gākajiem instrumentiem tās arsenālā.

Ja nav citas alternatÄ«vas, vislabākā pieeja ir upurēt pieejamÄ«bu (Å”eit autors atsaucas uz KLP teorēmu). Bojātu datu augsta pieejamÄ«ba nepalÄ«dz nevienam, un arÄ« dažādu datu kopu manuāla saskaņoÅ”ana nav patÄ«kama.

Kvorums

Kvorums izklausās lieliski, vai ne?

VienÄ«gais mÄ«nuss ir tāds, ka, lai tas bÅ«tu klasterÄ« ar N dalÄ«bniekiem, jums ir nepiecieÅ”ams savienojums starp N/2+1 atlikuÅ”o mezglu. Kas nav iespējams divu mezglu klasterÄ« pēc viena mezgla kļūmes.

Kas galu galā noved mūs pie pamatproblēmas ar diviem mezgliem:
Kvorumam nav jēgas divos mezglu klasteros, un bez tā nav iespējams droÅ”i noteikt darbÄ«bas virzienu, kas palielina pieejamÄ«bu un novērÅ” datu zudumu.
Pat sistēmā, kurā ir divi mezgli, kas savienoti ar krustojuma kabeli, nav iespējams galÄ«gi atŔķirt tÄ«kla pārtraukumu no otra mezgla kļūmes. Viena gala atspējoÅ”ana (kuras iespējamÄ«ba, protams, ir proporcionāla attālumam starp mezgliem) bÅ«s pietiekami, lai atceltu jebkuru pieņēmumu, ka saites stāvoklis ir vienāds ar partnera mezgla stāvokli.

Divu mezglu klastera darbība

Dažkārt klients nevar vai nevēlas iegādāties treÅ”o mezglu, un mēs esam spiesti meklēt alternatÄ«vu.

1. variants ā€” dublikāta disociācijas metode

Mezgla iLO vai IPMI ierÄ«ce ir kļūmes punkts, jo, ja tā neizdodas, izdzÄ«vojuÅ”ie nevar izmantot to, lai mezglu nogādātu droŔā stāvoklÄ«. 3 vai vairāk mezglu klasterÄ« mēs varam to mazināt, aprēķinot kvorumu un izmantojot aparatÅ«ras sargsuni (netieŔās disociācijas mehānisms, kā minēts iepriekÅ”). Divu mezglu gadÄ«jumā mums ir jāizmanto tÄ«kla jaudas sadales vienÄ«bas (PDU).

Pēc neveiksmes izdzÄ«vojuÅ”ais vispirms mēģina sazināties ar primāro atdalÄ«Å”anas ierÄ«ci (iegulto iLO vai IPMI). Ja tas izdodas, atveseļoÅ”anās turpinās kā parasti. PDU var piekļūt tikai tad, ja iLO/IPMI ierÄ«ce neizdodas; ja piekļuve ir veiksmÄ«ga, atkopÅ”anu var turpināt.

Noteikti ievietojiet PDU citā tÄ«klā, nevis klastera trafikā, pretējā gadÄ«jumā viena tÄ«kla kļūme bloķēs piekļuvi abām atdalÄ«Å”anas ierÄ«cēm un bloķēs pakalpojumu atjaunoÅ”anu.

Šeit jūs varat jautāt - vai PDU ir viens neveiksmes punkts? Uz kuru atbilde, protams, ir.

Ja Å”is risks jums ir nozÄ«mÄ«gs, jÅ«s neesat viens: savienojiet abus mezglus ar diviem PDU un sakiet klasterizācijas programmatÅ«rai izmantot abus, ieslēdzot un izslēdzot mezglus. Klasteris tagad paliek aktÄ«vs, ja viens PDU nomirst, un, lai bloķētu atkopÅ”anu, bÅ«s nepiecieÅ”ama otra PDU vai IPMI ierÄ«ces otrā kļūme.

2. iespēja ā€” ŔķīrējtiesneÅ”a pievienoÅ”ana

Dažos gadÄ«jumos, lai gan dublikāta atdalÄ«Å”anas metode ir tehniski iespējama, tā ir politiski sarežģīta. Daudziem uzņēmumiem patÄ«k zināma noŔķirtÄ«ba starp administratoriem un lietojumprogrammu Ä«paÅ”niekiem, un tÄ«kla administratori, kas apzinās droŔību, ne vienmēr ir entuziastiski kopÄ«got PDU piekļuves iestatÄ«jumus ar citiem.

Å ajā gadÄ«jumā ieteicamā alternatÄ«va ir izveidot neitrālu treÅ”o pusi, kas var papildināt kvoruma aprēķinu.

Kļūmes gadÄ«jumā mezglam ir jāspēj redzēt sava vienaudžu vai arbitra ētera viļņus, lai atjaunotu pakalpojumus. Å Ä·Ä«rējtiesnesis ietver arÄ« atvienoÅ”anas funkciju, ja abi mezgli var redzēt Ŕķīrējtiesnesi, bet nevar redzēt viens otru.

Å Ä« opcija ir jāizmanto kopā ar netieŔās atdalÄ«Å”anas metodi, piemēram, aparatÅ«ras sargsuņa taimeri, kas ir konfigurēts, lai iznÄ«cinātu iekārtu, ja tā zaudē savienojumu ar savu vienādranga un arbitra mezglu. Tādējādi izdzÄ«vojuÅ”ais var pamatoti pieņemt, ka tā vienādranga mezgls bÅ«s droŔā stāvoklÄ« pēc aparatÅ«ras sargsuņa taimera termiņa beigām.

Praktiskā atŔķirÄ«ba starp Ŕķīrējtiesnesi un treÅ”o mezglu ir tāda, ka ŔķīrējtiesneÅ”a darbÄ«bai ir nepiecieÅ”ams daudz mazāk resursu, un tas potenciāli var apkalpot vairāk nekā vienu klasteru.

3. variants ā€“ cilvēciskais faktors

Pēdējā pieeja ir tāda, ka izdzÄ«vojuÅ”ie turpina palaist visus pakalpojumus, kurus viņi jau palaida, bet nesāk jaunus, kamēr problēma nav atrisināta pati (tÄ«kla atjaunoÅ”ana, mezgla atsāknÄ“Å”ana) vai persona neuzņemas atbildÄ«bu par manuālu apstiprinājumu, ka otra puse ir mirusi.

Bonusa iespēja

Vai es minēju, ka varat pievienot treÅ”o mezglu?

Divi statīvi

Argumenta labad izliksimies, ka esmu jūs pārliecinājis par treŔā mezgla priekŔrocībām, tagad jāapsver mezglu fiziskais izvietojums. Ja tie atrodas (un tiek darbināti) vienā plauktā, tas arī veido SPoF, un to nevar atrisināt, pievienojot otru statīvu.

Ja tas ir pārsteidzoŔi, apsveriet, kas notiktu, ja statīvs ar diviem mezgliem sabojātos, un kā izdzīvojuŔais mezgls to atŔķirtu no tīkla kļūmes.

ÄŖsā atbilde ir tāda, ka tas nav iespējams, un atkal mēs risinām visas problēmas divu mezglu gadÄ«jumā. Vai izdzÄ«vojuÅ”ais:

  • ignorē kvorumu un nepareizi mēģina uzsākt atjaunoÅ”anu tÄ«kla pārtraukumu laikā (spēja pabeigt disociāciju ir cits stāsts un ir atkarÄ«gs no tā, vai ir iesaistÄ«ts PDU un vai tie dala enerÄ£iju ar kādu no statÄ«viem), vai
  • respektē kvorumu un priekÅ”laicÄ«gi atvienojas, ja tā vienādranga mezgls neizdodas

Jebkurā gadÄ«jumā divi statÄ«vi nav labāki par vienu, un mezgliem ir jāsaņem neatkarÄ«gi baroÅ”anas avoti vai tie ir jāsadala trÄ«s (vai vairāk, atkarÄ«bā no tā, cik mezglu jums ir) statÄ«viem.

Divi datu centri

Å ajā brÄ«dÄ« lasÄ«tāji, kuri vairs nevēlas riskēt, var apsvērt iespēju pēc katastrofas atgÅ«Å”anas. Kas notiek, kad asteroÄ«ds ietriecas tajā paŔā datu centrā ar mÅ«su trim mezgliem, kas izvietoti trÄ«s dažādos plauktos? AcÄ«mredzot sliktas lietas, taču atkarÄ«bā no jÅ«su vajadzÄ«bām ar otra datu centra pievienoÅ”anu var nepietikt.

Ja tas tiek izdarÄ«ts pareizi, otrais datu centrs nodroÅ”ina jums (un tas ir pamatoti) ar atjauninātu un konsekventu jÅ«su pakalpojumu un to datu kopiju. Tomēr, tāpat kā divu mezglu un divu plauktu scenārijos, sistēmā nav pietiekami daudz informācijas, lai nodroÅ”inātu maksimālu pieejamÄ«bu un novērstu bojājumus (vai datu kopu neatbilstÄ«bas). Pat ar trim mezgliem (vai statÄ«viem), tos sadalot tikai divos datu centros, sistēma nevar droÅ”i pieņemt pareizo lēmumu gadÄ«jumā (tagad daudz ticamāk), ka abas puses nevar sazināties.

Tas nenozÄ«mē, ka divu datu centra risinājums nekad nav piemērots. Uzņēmumi bieži vēlas, lai persona bÅ«tu informēta, pirms veic neparastu soli, pārejot uz rezerves datu centru. VienkārÅ”i paturiet prātā, ka, ja vēlaties automatizēt pārtraukumu, jums bÅ«s nepiecieÅ”ams treÅ”ais datu centrs, lai kvorums bÅ«tu jēgpilns (tieÅ”i vai ar ŔķīrējtiesneÅ”a starpniecÄ«bu), vai arÄ« jÅ«s atradÄ«sit veidu, kā droÅ”i slēgt visus datus. centrs.

Avots: www.habr.com

Pievieno komentāru