Kundi la nodi mbili - shetani yuko katika maelezo

Habari Habr! Ninawasilisha kwa mawazo yako tafsiri ya makala "Njia Mbili - Ibilisi yuko katika Maelezo" na Andrew Beekhof.

Watu wengi wanapendelea nguzo za nodi mbili kwa sababu zinaonekana kuwa rahisi kimawazo na pia ni nafuu kwa 33% kuliko wenzao wa nodi tatu. Ingawa inawezekana kuweka pamoja nguzo nzuri ya nodi mbili, katika hali nyingi, kwa sababu ya hali ambazo hazijazingatiwa, usanidi kama huo utaunda shida nyingi zisizo wazi.

Hatua ya kwanza ya kuunda mfumo wowote wa upatikanaji wa juu ni kutafuta na kujaribu kuondoa alama za kutofaulu, ambazo mara nyingi hufupishwa kama. SPoF (hatua moja ya kushindwa).

Inafaa kukumbuka kuwa haiwezekani kuondoa hatari zote zinazowezekana za wakati katika mfumo wowote. Hii inatokana na ukweli kwamba ulinzi wa kawaida dhidi ya hatari ni kuanzisha upungufu fulani, ambao husababisha kuongezeka kwa utata wa mfumo na kuibuka kwa pointi mpya za kushindwa. Kwa hiyo, sisi awali kufanya maelewano na kuzingatia matukio yanayohusiana na pointi ya mtu binafsi ya kushindwa, na si juu ya minyororo ya kuhusiana na, kwa hiyo, inazidi chini ya matukio yanayowezekana.

Kwa kuzingatia mabadilishano ya biashara, hatutafuti SPoF pekee, bali pia kusawazisha hatari na matokeo, kwa sababu hiyo hitimisho la kile ambacho ni muhimu na kisichoweza kutofautiana kinaweza kutofautiana kwa kila uwekaji.

Sio kila mtu anahitaji wauzaji wa umeme mbadala na nyaya za umeme zinazojitegemea. Ingawa paranoia hiyo ililipa angalau mteja mmoja wakati ufuatiliaji wao uligundua kibadilishaji chenye hitilafu. Mteja alipiga simu akijaribu kutahadharisha kampuni ya umeme hadi transfoma yenye hitilafu ilipuka.

Hatua ya asili ya kuanzia ni kuwa na nodi zaidi ya moja kwenye mfumo. Walakini, kabla ya mfumo kuhamisha huduma kwa nodi iliyobaki baada ya kutofaulu, kwa ujumla inahitaji kuhakikisha kuwa huduma zinazohamishwa hazifanyiki mahali pengine.

Hakuna upande wa chini kwa nguzo ya nodi mbili ikiwa kutofaulu kunasababisha nodi zote mbili zinazohudumia tovuti moja tuli. Hata hivyo, mambo hubadilika ikiwa matokeo ni kwamba pande zote mbili zinasimamia kwa uhuru foleni ya kazi iliyoshirikiwa au kutoa ufikiaji wa maandishi usioratibiwa kwa hifadhidata iliyoigwa au mfumo wa faili ulioshirikiwa.

Kwa hiyo, ili kuzuia uharibifu wa data kutokana na kushindwa kwa nodi moja - tunategemea kitu kinachoitwa "kujitenga" (uzio).

Kanuni ya kujitenga

Katika moyo wa kanuni ya kujitenga ni swali: je, nodi inayoshindana inaweza kusababisha uharibifu wa data? Iwapo ufisadi wa data ni hali inayowezekana, suluhisho zuri litakuwa kutenga nodi kutoka kwa maombi yanayoingia na uhifadhi unaoendelea. Mbinu ya kawaida ya kutenganisha ni kukata nodi mbovu.

Kuna aina mbili za njia za kujitenga, ambazo nitaziita sawa ΠΈ isiyo ya moja kwa moja, lakini wanaweza kuitwa kwa usawa hai ΠΈ passiv. Mbinu za moja kwa moja ni pamoja na vitendo kwa upande wa wenzao waliosalia, kama vile mwingiliano na IPMI (Intelligent Platform Management Interface) au iLO (utaratibu wa kudhibiti seva bila ufikiaji wao wa kimwili), wakati mbinu zisizo za moja kwa moja zinategemea kushindwa. nodi ya kutambua kwa namna fulani kuwa iko katika hali mbaya (au angalau inazuia washiriki wengine kupona) na ishara. walinzi wa vifaa kuhusu hitaji la kukata nodi iliyoshindwa.

Akidi husaidia wakati wa kutumia njia za moja kwa moja na zisizo za moja kwa moja.

Kutengana kwa moja kwa moja

Katika hali ya kutengana moja kwa moja, tunaweza kutumia akidi kuzuia jamii za kutengana iwapo mtandao hautafaulu.

Kwa dhana ya akidi, kuna maelezo ya kutosha katika mfumo (hata bila kuunganishwa na wenzao) kwa nodi kujua moja kwa moja ikiwa zinapaswa kuanzisha kutengana na/au kupona.

Bila akidi, pande zote mbili za mgawanyiko wa mtandao zitadhania kuwa upande mwingine umekufa na utatafuta kutenganisha mwingine. Katika hali mbaya zaidi, pande zote mbili zinaweza kuzima nguzo nzima. Hali mbadala ni mechi ya kufa, msururu usio na mwisho wa nodi zinazozaa, kutowaona wenzao, kuwaanzisha upya, na kuanzisha urejeshi ili tu kuwasha upya wakati wenzao wanafuata mantiki sawa.

Tatizo la kutenganisha ni kwamba vifaa vinavyotumika sana huwa havipatikani kwa sababu ya matukio sawa ya kushindwa ambayo tunataka kulenga kurejesha. Kadi nyingi za IPMI na iLO husakinishwa kwenye seva pangishi zinazowadhibiti na, kwa chaguo-msingi, hutumia mtandao sawa, jambo ambalo huwafanya walengwa kuamini kuwa wapangishi wengine wako nje ya mtandao.

Kwa bahati mbaya, vipengele vya uendeshaji vya vifaa vya IPMI na iLo hazizingatiwi mara chache wakati wa ununuzi wa vifaa.

Utengano usio wa moja kwa moja

Akidi pia ni muhimu kwa kudhibiti utengano usio wa moja kwa moja; ikifanywa kwa usahihi, akidi inaweza kuruhusu walionusurika kudhani kuwa nodi zilizopotea zitabadilika hadi hali salama baada ya muda fulani.

Kwa usanidi huu, kipima saa cha maunzi kinawekwa upya kila sekunde N ikiwa akidi haijapotea. Ikiwa kipima muda (kawaida zidishi kadhaa za N) kinaisha muda, basi kifaa hufanya kazi ya kuzima bila shukrani (sio kuzima).

Mbinu hii ni nzuri sana, lakini bila akidi hakuna maelezo ya kutosha ndani ya nguzo ya kuisimamia. Si rahisi kutofautisha kati ya kukatika kwa mtandao na kushindwa kwa nodi rika. Sababu ya jambo hili ni kwamba bila uwezo wa kutofautisha kati ya kesi hizo mbili, unalazimika kuchagua tabia sawa katika kesi zote mbili.

Tatizo la kuchagua hali moja ni kwamba hakuna hatua ambayo huongeza upatikanaji na kuzuia kupoteza data.

  • Ukichagua kudhani kuwa nodi rika inatumika lakini kwa kweli itashindikana, nguzo hiyo itasimamisha huduma ambazo zitakuwa zikifanya kazi ili kufidia upotevu wa huduma kutoka kwa nodi rika iliyoshindwa.
  • Ikiwa unaamua kudhani kuwa node iko chini, lakini ilikuwa tu kushindwa kwa mtandao na kwa kweli node ya mbali inafanya kazi, basi bora unajiandikisha kwa upatanisho wa mwongozo wa baadaye wa seti za data zinazosababisha.

Bila kujali unatumia heuristic gani, ni jambo dogo kuunda kutofaulu ambayo itasababisha pande zote mbili kutofaulu au kusababisha nguzo kuzima nodi zilizobaki. Kutotumia akidi kweli kunanyima nguzo mojawapo ya zana zenye nguvu zaidi katika safu yake ya uokoaji.

Ikiwa hakuna njia nyingine, njia bora ni kutoa dhabihu upatikanaji (hapa mwandishi anarejelea nadharia ya CAP). Upatikanaji wa juu wa data iliyoharibika haumsaidii mtu yeyote, na kusawazisha mwenyewe seti tofauti za data pia hakufurahishi.

Akidi

Akidi inaonekana nzuri, sivyo?

Kando pekee ni kwamba ili kuwa nayo kwenye nguzo na washiriki wa N, unahitaji kuwa na muunganisho kati ya N/2+1 ya nodi zako zilizobaki. Ambayo haiwezekani katika nguzo ya nodi mbili baada ya nodi moja kushindwa.

Ambayo mwishowe inatuleta kwenye shida ya kimsingi na nodi mbili:
Akidi haileti maana katika makundi mawili ya nodi, na bila hiyo haiwezekani kubainisha kwa uhakika hatua ya hatua ambayo huongeza upatikanaji na kuzuia upotevu wa data.
Hata katika mfumo wa nodes mbili zilizounganishwa na cable crossover, haiwezekani kutofautisha kwa uhakika kati ya kukatika kwa mtandao na kushindwa kwa node nyingine. Kuzima mwisho mmoja (uwezekano wa ambayo ni, bila shaka, sawia na umbali kati ya nodes) itakuwa ya kutosha kubatilisha dhana yoyote kwamba afya ya kiungo ni sawa na afya ya nodi ya mpenzi.

Kufanya kazi ya nguzo ya nodi mbili

Wakati mwingine mteja hawezi au hataki kununua node ya tatu, na tunalazimika kutafuta njia mbadala.

Chaguo 1 - Mbinu ya kutenganisha nakala

Kifaa cha ILO au IPMI cha nodi huwakilisha hali ya kutofaulu kwa sababu, ikishindikana, walionusurika hawawezi kukitumia kuleta nodi katika hali salama. Katika kundi la nodi 3 au zaidi, tunaweza kupunguza hili kwa kukokotoa akidi na kutumia kidhibiti cha maunzi (utaratibu usio wa moja kwa moja wa kutenganisha, kama ilivyojadiliwa hapo awali). Kwa upande wa nodi mbili, ni lazima tutumie vitengo vya usambazaji wa nguvu za mtandao (PDUs) badala yake.

Baada ya kutofaulu, mwathirika hujaribu kwanza kuwasiliana na kifaa cha msingi cha kutenganisha (iliyopachikwa iLO au IPMI). Hili likifanikiwa, urejeshaji utaendelea kama kawaida. PDU itafikiwa tu ikiwa kifaa cha ILO/IPMI kitashindwa; ufikiaji ukifaulu, urejeshaji unaweza kuendelea.

Hakikisha kuweka PDU kwenye mtandao tofauti na trafiki ya nguzo, vinginevyo kutofaulu kwa mtandao kutazuia ufikiaji wa vifaa vyote vya kutenganisha na kuzuia urejesho wa huduma.

Hapa unaweza kuuliza - je PDU ni hatua moja ya kushindwa? Ambayo jibu ni, bila shaka ni.

Ikiwa hatari hii ni muhimu kwako, hauko peke yako: unganisha nodi zote mbili kwa PDU mbili na uambie programu ya kuunganisha kutumia zote mbili wakati wa kuwasha na kuzima nodi. Kundi hili sasa litaendelea kutumika ikiwa PDU moja itakufa, na hitilafu ya pili ya PDU nyingine au kifaa cha IPMI kitahitajika ili kuzuia urejeshaji.

Chaguo 2 - Kuongeza Kisuluhishi

Katika baadhi ya matukio, wakati mbinu ya kutenganisha marudio inawezekana kiufundi, ni ngumu kisiasa. Kampuni nyingi zinapenda kuwa na utengano kati ya wasimamizi na wamiliki wa programu, na wasimamizi wa mtandao wanaojali usalama huwa hawafurahii kushiriki mipangilio ya ufikiaji wa PDU na mtu yeyote.

Katika hali hii, mbadala unaopendekezwa ni kuunda mhusika mwingine asiyeegemea upande wowote ambaye anaweza kuongeza hesabu ya akidi.

Katika tukio la kushindwa, node lazima iweze kuona mawimbi ya hewa ya wenzao au msuluhishi ili kurejesha huduma. Kisuluhishi pia kinajumuisha kazi ya kukatwa ikiwa nodi zote mbili zinaweza kuona mwamuzi lakini haziwezi kuonana.

Chaguo hili lazima litumike pamoja na mbinu ya kutenganisha isiyo ya moja kwa moja, kama vile kipima saa cha maunzi, ambacho kimesanidiwa kuua mashine ikiwa itapoteza muunganisho kwa sehemu yake ya rika na kinundu cha usuluhishi. Kwa hivyo, aliyenusurika anaweza kudhani kuwa nodi rika yake itakuwa katika hali salama baada ya kipima muda cha kidhibiti cha maunzi kuisha.

Tofauti ya kiutendaji kati ya msuluhishi na nodi ya tatu ni kwamba mwamuzi anahitaji rasilimali chache sana ili kufanya kazi na anaweza kuhudumia zaidi ya nguzo moja.

Chaguo 3 - Sababu ya kibinadamu

Njia ya mwisho ni kwa walionusurika kuendelea kuendesha huduma zozote walizokuwa tayari wanaendesha, lakini wasianzishe mpya hadi shida itakapotatuliwa yenyewe (kurejesha mtandao, kuwasha tena nodi) au mtu achukue jukumu la kudhibitisha mwenyewe kuwa upande mwingine umekufa.

Chaguo la bonasi

Nilitaja unaweza kuongeza nodi ya tatu?

Racks mbili

Kwa ajili ya hoja, hebu tujifanye kuwa nimekuhakikishia sifa za nodi ya tatu, sasa tunapaswa kuzingatia mpangilio wa kimwili wa nodes. Ikiwa zimewekwa (na kuwashwa) katika rack sawa, hii pia inajumuisha SPoF, na ambayo haiwezi kutatuliwa kwa kuongeza rack ya pili.

Ikiwa hii inashangaza, fikiria nini kitatokea ikiwa rack iliyo na nodi mbili itashindwa, na jinsi nodi iliyobaki ingetofautisha kati ya hiyo na kutofaulu kwa mtandao.

Jibu fupi ni kwamba hii haiwezekani, na tunashughulika tena na matatizo yote katika kesi ya nodes mbili. Au aliyeokoka:

  • inapuuza akidi na inajaribu kimakosa kuanzisha urejeshaji wakati wa kukatika kwa mtandao (uwezo wa kukamilisha kutengana ni hadithi tofauti na inategemea kama PDU inahusika na kama wanashiriki mamlaka na rafu zozote), au
  • huheshimu akidi na hujitenga kabla ya wakati nodi rika yake inaposhindwa

Kwa hali yoyote, rafu mbili sio bora kuliko moja, na nodi lazima zipokee vifaa vya nguvu vya kujitegemea au zisambazwe kwa tatu (au zaidi, kulingana na nodi ngapi unazo) racks.

Vituo viwili vya data

Katika hatua hii, wasomaji ambao hawachukii tena hatari wanaweza kutaka kuzingatia uokoaji wa maafa. Ni nini hufanyika wakati asteroid inapiga kituo sawa cha data na nodi zetu tatu zilizoenea kwenye rafu tatu tofauti? Ni wazi Mambo Mbaya, lakini kulingana na mahitaji yako, kuongeza kituo cha data cha pili kunaweza kuwa haitoshi.

Ikifanywa kwa usahihi, kituo cha pili cha data hukupa (na kwa sababu hiyo) nakala iliyosasishwa na thabiti ya huduma zako na data zao. Walakini, kama ilivyo katika nodi mbili, matukio ya rack mbili, hakuna habari ya kutosha katika mfumo ili kuhakikisha upatikanaji wa juu na kuzuia rushwa (au tofauti za seti ya data). Hata na nodi tatu (au rafu), kuzisambaza kwenye vituo viwili pekee vya data huacha mfumo ushindwe kufanya uamuzi sahihi katika tukio la (sasa kuna uwezekano mkubwa zaidi) ambalo wahusika wote hawawezi kuwasiliana.

Hii haimaanishi kuwa suluhisho la kituo cha data mbili halifai kamwe. Makampuni mara nyingi hutaka mtu kufahamu kabla ya kuchukua hatua ya ajabu ya kuhamia kituo cha data chelezo. Kumbuka tu kwamba ikiwa unataka kuzima kukatika kiotomatiki, utahitaji kituo cha tatu cha data kwa akidi kufanya akili (ama moja kwa moja au kupitia msuluhishi), au utapata njia ya kuzima data yote kwa uaminifu. kituo.

Chanzo: mapenzi.com

Kuongeza maoni