Klaster od dva čvora - vrag je u detaljima

Hej Habr! Vašoj pozornosti predstavljam prijevod članka "Dva čvora - Đavo je u detaljima" autora Andrewa Beekhofa.

Mnogi ljudi preferiraju klastere s dva čvora jer se čine konceptualno jednostavnijima i također su 33% jeftiniji od svojih parnjaka s tri čvora. Iako je sasvim moguće sastaviti dobar klaster od dva čvora, u većini slučajeva, zbog nerazmotrenih scenarija, takva će konfiguracija stvoriti mnogo neočitih problema.

Prvi korak u stvaranju bilo kojeg sustava visoke dostupnosti je pronaći i pokušati eliminirati pojedinačne točke kvara, često skraćeno nazvane SPoF (jedna točka kvara).

Vrijedno je imati na umu da je nemoguće eliminirati sve moguće rizike zastoja u bilo kojem sustavu. To proizlazi iz činjenice da je tipična obrana od rizika uvođenje određene redundancije, što dovodi do povećane složenosti sustava i pojave novih točaka kvara. Stoga u početku pravimo kompromis i fokusiramo se na događaje povezane s pojedinačnim točkama kvara, a ne na lance povezanih i stoga sve manje vjerojatnih događaja.

S obzirom na kompromise, ne tražimo samo SPoF, već i balansiramo rizike i posljedice, zbog čega se zaključak o tome što je kritično, a što nije može razlikovati za svaku implementaciju.

Ne trebaju svi alternativne opskrbljivače električnom energijom s neovisnim dalekovodima. Iako se paranoja barem jednom kupcu isplatila kada im je nadzor otkrio neispravan transformator. Kupac je telefonirao pokušavajući upozoriti elektroprivredu sve dok neispravni transformator nije eksplodirao.

Prirodno polazište je imati više od jednog čvora u sustavu. Međutim, prije nego što sustav može premjestiti usluge na preživjeli čvor nakon kvara, općenito treba osigurati da usluge koje se premještaju nisu aktivne negdje drugdje.

Nema loše strane klastera s dva čvora ako kvar rezultira time da oba čvora poslužuju istu statičnu web stranicu. Međutim, stvari se mijenjaju ako je rezultat da obje strane neovisno upravljaju dijeljenim redom poslova ili daju nekoordinirani pristup pisanju repliciranoj bazi podataka ili zajedničkom datotečnom sustavu.

Stoga, kako bismo spriječili oštećenje podataka kao rezultat kvara jednog čvora - oslanjamo se na nešto tzv "disocijacija" (mačevanje).

Princip disocijacije

U središtu načela disocijacije je pitanje: može li konkurentski čvor uzrokovati oštećenje podataka? U slučaju da je oštećenje podataka vjerojatan scenarij, dobro bi rješenje bilo izolirati čvor i od dolaznih zahtjeva i od trajne pohrane. Najčešći pristup odvajanju je isključivanje neispravnih čvorova.

Postoje dvije kategorije metoda disocijacije, koje ću nazvati direktan и neizravno, ali se jednako mogu zvati aktivan и pasivno. Izravne metode uključuju radnje od strane preživjelih kolega, kao što je interakcija s IPMI (Intelligent Platform Management Interface) ili iLO (mehanizam za upravljanje poslužiteljima u nedostatku fizičkog pristupa njima) uređajem, dok se neizravne metode oslanjaju na neuspjele čvor kako bi nekako prepoznao da je u nezdravom stanju (ili barem spriječio druge članove da se oporave) i signalizira čuvar hardvera o potrebi odspajanja neuspjelog čvora.

Kvorum pomaže pri korištenju izravnih i neizravnih metoda.

Izravna disocijacija

U slučaju izravne disocijacije, možemo upotrijebiti kvorum za sprječavanje utrkivanja disocijacije u slučaju kvara mreže.

Uz koncept kvoruma, postoji dovoljno informacija u sustavu (čak i bez povezivanja s ravnopravnim čvorovima) da čvorovi automatski znaju trebaju li pokrenuti disocijaciju i/ili oporavak.

Bez kvoruma, obje strane mrežne podjele s pravom će pretpostaviti da je druga strana mrtva i nastojat će razdvojiti drugu. U najgorem slučaju obje strane uspiju ugasiti cijeli klaster. Alternativni scenarij je deathmatch, beskonačna petlja čvorova koji se rađaju, ne vide svoje istovrsne čvorove, ponovno ih pokreću i pokreću oporavak samo da bi se ponovno pokrenuli kada njihov ravan slijedi istu logiku.

Problem s prekidom povezivanja je taj što najčešće korišteni uređaji postaju nedostupni zbog istih događaja kvarova koje želimo ciljati za oporavak. Većina IPMI i iLO kartica instalirana je na računalima koja kontroliraju i, prema zadanim postavkama, koriste istu mrežu, što uzrokuje da ciljna računala vjeruju da su druga računala izvan mreže.

Nažalost, radne značajke IPMI i iLo uređaja rijetko se uzimaju u obzir u trenutku kupnje opreme.

Neizravna disocijacija

Kvorum je također važan za upravljanje neizravnim odvajanjem; ako se pravilno izvede, kvorum može omogućiti preživjelima da pretpostave da će izgubljeni čvorovi prijeći u sigurno stanje nakon određenog vremenskog razdoblja.

S ovom konfiguracijom, hardverski nadzorni mjerač vremena resetira se svakih N sekundi ako kvorum nije izgubljen. Ako mjerač vremena (obično nekoliko umnožaka N) istekne, tada uređaj izvodi nepristojno isključivanje (ne isključivanje).

Ovaj pristup je vrlo učinkovit, ali bez kvoruma nema dovoljno informacija unutar klastera za upravljanje njime. Nije lako reći razliku između ispada mreže i kvara ravnopravnog čvora. Razlog zašto je ovo važno je taj što ste, bez mogućnosti razlikovanja između dva slučaja, prisiljeni odabrati isto ponašanje u oba slučaja.

Problem s odabirom jednog načina je taj što ne postoji postupak koji maksimizira dostupnost i sprječava gubitak podataka.

  • Ako odlučite pretpostaviti da je ravnopravni čvor aktivan, ali zapravo ne radi, klaster će nepotrebno zaustaviti usluge koje bi radile kako bi kompenzirao gubitak usluga iz neispravnog ravnopravnog čvora.
  • Ako odlučite pretpostaviti da je čvor neispravan, ali to je bio samo mrežni kvar i zapravo udaljeni čvor radi, tada se u najboljem slučaju prijavljujete za neko buduće ručno usklađivanje rezultirajućih skupova podataka.

Bez obzira koju heuristiku koristite, trivijalno je stvoriti kvar koji će ili uzrokovati kvar na objema stranama ili uzrokovati da klaster isključi preživjele čvorove. Neupotreba kvoruma uistinu lišava klaster jednog od najmoćnijih alata u njegovom arsenalu.

Ako nema druge alternative, najbolji je pristup žrtvovati dostupnost (ovdje se autor poziva na CAP teorem). Visoka dostupnost oštećenih podataka nikome ne pomaže, a ni ručno usklađivanje različitih skupova podataka nije zabavno.

Kvorum

Kvorum zvuči sjajno, zar ne?

Jedina mana je da, kako biste ga imali u klasteru s N članova, morate imati vezu između N/2+1 preostalih čvorova. Što nije moguće u klasteru s dva čvora nakon što jedan čvor otkaže.

Što nas na kraju dovodi do temeljnog problema s dva čvora:
Kvorum nema smisla u dva klastera čvorova, a bez njega je nemoguće pouzdano odrediti tijek radnje koji maksimizira dostupnost i sprječava gubitak podataka
Čak iu sustavu od dva čvora povezana križnim kabelom, nemoguće je definitivno razlikovati mrežni ispad od kvara drugog čvora. Onemogućavanje jednog kraja (čija je vjerojatnost, naravno, proporcionalna udaljenosti između čvorova) bit će dovoljno da poništi svaku pretpostavku da je zdravlje veze jednako zdravlju partnerskog čvora.

Omogućavanje rada klastera s dva čvora

Ponekad klijent ne može ili ne želi kupiti treći čvor, pa smo prisiljeni tražiti alternativu.

Opcija 1 - Metoda dvostruke disocijacije

ILO ili IPMI uređaj čvora predstavlja točku kvara jer, ako zakaže, preživjeli ga ne mogu koristiti da dovedu čvor u sigurno stanje. U klasteru od 3 ili više čvorova, to možemo ublažiti izračunavanjem kvoruma i upotrebom hardverskog nadzornog psa (mehanizma neizravnog odvajanja, kao što je ranije objašnjeno). U slučaju dva čvora, umjesto toga moramo koristiti mrežne jedinice za distribuciju električne energije (PDU).

Nakon neuspjeha, preživjeli prvo pokušava kontaktirati primarni uređaj za odvajanje (ugrađeni iLO ili IPMI). Ako je ovo uspješno, oporavak se nastavlja kao i obično. PDU-u se pristupa samo ako iLO/IPMI uređaj ne uspije; ako je pristup uspješan, oporavak se može nastaviti.

Obavezno postavite PDU na drugu mrežu od mreže klasterskog prometa, jer će u protivnom jedan mrežni kvar blokirati pristup i uređajima za odvajanje i blokirati ponovno uspostavljanje usluga.

Ovdje možete pitati - je li PDU jedna točka kvara? Na što je odgovor, naravno da jest.

Ako vam je ovaj rizik značajan, niste sami: spojite oba čvora na dva PDU-a i recite softveru za klasteriranje da koristi oba prilikom uključivanja i isključivanja čvorova. Klaster sada ostaje aktivan ako jedan PDU umre, a za blokiranje oporavka bit će potreban drugi kvar ili drugog PDU-a ili IPMI uređaja.

Opcija 2 - Dodavanje arbitra

U nekim scenarijima, dok je dvostruka metoda razdruživanja tehnički moguća, politički je teška. Mnoge tvrtke vole imati određeno razdvajanje između administratora i vlasnika aplikacija, a mrežni administratori koji brinu o sigurnosti nisu uvijek oduševljeni dijeljenjem postavki pristupa PDU-u s bilo kim.

U ovom slučaju, preporučena alternativa je stvaranje neutralne treće strane koja može dopuniti izračun kvoruma.

U slučaju kvara, čvor mora biti u mogućnosti vidjeti eter valova svog ravnopravnog računala ili arbitra kako bi mogao vratiti usluge. Arbitar također uključuje funkciju prekida veze ako oba čvora mogu vidjeti arbitra, ali ne mogu vidjeti jedan drugog.

Ova se opcija mora koristiti u kombinaciji s neizravnom metodom odvajanja, kao što je hardverski nadzorni mjerač vremena, koji je konfiguriran da ubije stroj ako izgubi vezu s ravnopravnim i arbitarskim čvorom. Prema tome, preživjeli može razumno pretpostaviti da će njegov ravnopravni čvor biti u sigurnom stanju nakon što istekne tajmer hardverskog nadzornog psa.

Praktična razlika između arbitra i trećeg čvora je u tome što arbitar zahtijeva mnogo manje resursa za rad i potencijalno može opsluživati ​​više od jednog klastera.

Opcija 3 - Ljudski faktor

Konačni pristup je da preživjeli nastave pokretati sve usluge koje su već pokrenuli, ali ne pokreću nove sve dok se problem ne riješi sam od sebe (vraćanje mreže, ponovno pokretanje čvora) ili dok osoba ne preuzme odgovornost za ručnu potvrdu da je druga strana mrtva.

Bonus opcija

Jesam li spomenuo da možete dodati treći čvor?

Dva stalka

Rasprave radi, pretvarajmo se da sam vas uvjerio u prednosti trećeg čvora, sada moramo razmotriti fizički raspored čvorova. Ako su smješteni (i napajani) u istom stalku, to također predstavlja SPoF i onaj koji se ne može riješiti dodavanjem drugog stalka.

Ako je ovo iznenađujuće, razmislite što bi se dogodilo da stalak s dva čvora zakaže i kako bi preživjeli čvor razlikovao to od mrežnog kvara.

Kratak odgovor je da to nije moguće, a opet imamo posla sa svim problemima u slučaju dva čvora. Ili preživjeli:

  • zanemaruje kvorum i neispravno pokušava pokrenuti obnovu tijekom prekida mreže (mogućnost dovršetka odvajanja je druga priča i ovisi o tome je li uključen PDU i dijele li napajanje s bilo kojim od regala), ili
  • poštuje kvorum i prerano se odspaja kada njegov ravnopravni čvor zakaže

U svakom slučaju, dva stalka nisu bolja od jednog, a čvorovi moraju ili dobiti neovisno napajanje ili biti raspoređeni na tri (ili više, ovisno o tome koliko čvorova imate) stalka.

Dva podatkovna centra

U ovom trenutku, čitatelji koji više nisu skloni riziku mogli bi razmisliti o oporavku od katastrofe. Što se događa kada asteroid udari u isti podatkovni centar s naša tri čvora raspoređena na tri različita polica? Očito loše stvari, ali ovisno o vašim potrebama, dodavanje drugog podatkovnog centra možda neće biti dovoljno.

Ako se napravi ispravno, drugi podatkovni centar pruža vam (i to razumno) ažurnu i dosljednu kopiju vaših usluga i njihovih podataka. Međutim, kao u scenarijima s dva čvora i dva stalka, u sustavu nema dovoljno informacija da bi se osigurala maksimalna dostupnost i spriječilo oštećenje (ili odstupanja u skupu podataka). Čak i s tri čvora (ili regala), njihova raspodjela na samo dva podatkovna centra ostavlja sustav nesposobnim da pouzdano donese ispravnu odluku u slučaju (sada puno vjerojatnijeg) događaja koji obje strane ne mogu komunicirati.

To ne znači da rješenje dvostrukog podatkovnog centra nikada nije prikladno. Tvrtke često žele da osoba bude svjesna prije poduzimanja izvanrednog koraka preseljenja u rezervni podatkovni centar. Samo imajte na umu da ćete, ako želite automatizirati prekid rada, trebati treći podatkovni centar da bi kvorum imao smisla (bilo izravno ili putem arbitra) ili ćete pronaći način da pouzdano isključite sve podatke centar.

Izvor: www.habr.com

Dodajte komentar