Grupa od dva čvora - đavo je u detaljima

Hej Habr! Predstavljam Vašoj pažnji prevod članka "Dva čvora - Đavo je u detaljima" autor Andrew Beekhof.

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

Prvi korak ka stvaranju bilo kog sistema visoke dostupnosti je pronalaženje i pokušaj eliminacije pojedinačnih tačaka kvara, često skraćeno kao SPoF (jedna tačka kvara).

Vrijedi imati na umu da je nemoguće eliminirati sve moguće rizike zastoja u bilo kojem sistemu. Ovo proizilazi iz činjenice da je tipična odbrana od rizika uvođenje neke redundancije, što dovodi do povećane složenosti sistema i pojave novih tačaka kvara. Stoga u početku pravimo kompromis i fokusiramo se na događaje povezane sa pojedinačnim tačkama neuspjeha, a ne na lance povezanih i stoga sve manje vjerovatnih događaja.

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

Nisu svima potrebni alternativni dobavljači električne energije sa nezavisnim dalekovodima. Iako se paranoja isplatila barem jednom kupcu kada je njihov nadzor otkrio neispravan transformator. Kupac je telefonirao pokušavajući da upozori elektroprivredu sve dok neispravni transformator nije eksplodirao.

Prirodna početna tačka je imati više od jednog čvora u sistemu. Međutim, prije nego što sistem može premjestiti usluge na preživjeli čvor nakon kvara, općenito treba osigurati da usluge koje se premještaju nisu aktivne negdje drugdje.

Ne postoji loša strana klastera sa dva čvora ako kvar rezultira time da oba čvora poslužuju istu statičku web stranicu. Međutim, stvari se mijenjaju ako je rezultat da obje strane nezavisno upravljaju dijeljenim redom poslova ili pružaju nekoordinirani pristup pisanju repliciranoj bazi podataka ili dijeljenom sistemu datoteka.

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

Princip disocijacije

U središtu principa disocijacije je pitanje: može li konkurentski čvor uzrokovati korupciju podataka? U slučaju da je oštećenje podataka verovatan scenario, dobro rešenje bi bilo da se čvor izoluje i od dolaznih zahteva i od stalnog skladištenja. Najčešći pristup odvajanju je odvajanje neispravnih čvorova.

Postoje dvije kategorije metoda disocijacije, koje ću nazvati ravno и indirektno, ali se jednako mogu nazvati aktivan и pasivno. Direktne metode uključuju radnje od strane preživjelih vršnjaka, kao što je interakcija sa IPMI (Inteligentno sučelje za upravljanje platformom) ili iLO (mehanizam za upravljanje serverima u nedostatku fizičkog pristupa njima) uređajem, dok se indirektne metode oslanjaju na neuspjeli čvor da nekako prepozna da je u nezdravom stanju (ili barem sprječava druge članove da se oporave) i signalizira hardware watchdog o potrebi isključivanja neuspjelog čvora.

Kvorum pomaže kada se koriste i direktne i indirektne metode.

Direktna disocijacija

U slučaju direktne disocijacije, možemo koristiti kvorum da spriječimo utrke disocijacije u slučaju kvara mreže.

Sa konceptom kvoruma, postoji dovoljno informacija u sistemu (čak i bez povezivanja sa kolegama) da čvorovi automatski znaju da li treba da započnu disocijaciju i/ili oporavak.

Bez kvoruma, obje strane mrežne podjele će s pravom pretpostaviti da je druga strana mrtva i nastojat će razdvojiti drugu stranu. U najgorem slučaju, obje strane uspijevaju ugasiti cijeli klaster. Alternativni scenario je Deathmatch, beskonačna petlja čvorova koji se pokreću, ne vide svoje vršnjake, ponovo ih dižu i započinju oporavak samo da bi se ponovo pokrenuli kada njihov kolega prati istu logiku.

Problem s odvajanjem je taj što najčešće korišteni uređaji postaju nedostupni zbog istih događaja kvara koje želimo ciljati za oporavak. Većina IPMI i iLO kartica instalirana je na hostovima koje kontroliraju i, prema zadanim postavkama, koriste istu mrežu, što uzrokuje da ciljni hostovi vjeruju da su drugi hostovi offline.

Nažalost, operativne karakteristike IPMI i iLo uređaja rijetko se razmatraju u trenutku kupovine opreme.

Indirektna disocijacija

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

Sa ovom konfiguracijom, hardverski watchdog timer se resetuje svakih N sekundi ako se kvorum ne izgubi. Ako tajmer (obično nekoliko umnožaka N) istekne, tada uređaj vrši neprikladno isključivanje (ne isključivanje).

Ovaj pristup je veoma efikasan, ali bez kvoruma nema dovoljno informacija unutar klastera da se njime upravlja. Nije lako napraviti razliku između prekida mreže i kvara ravnopravnog čvora. Razlog zašto je ovo važno je taj što ste bez mogućnosti razlikovanja između ova dva slučaja primorani da odaberete isto ponašanje u oba slučaja.

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

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

Bez obzira na to koju heuristiku koristite, trivijalno je stvoriti kvar koji će ili uzrokovati neuspjeh obje strane ili uzrokovati da klaster isključi preživjele čvorove. Nekorištenje kvoruma zaista lišava klaster jednog od najmoćnijih alata u njegovom arsenalu.

Ako ne postoji druga alternativa, najbolji pristup je žrtvovanje dostupnosti (ovdje autor upućuje na CAP teoremu). 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 odlično, zar ne?

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

Što nas na kraju dovodi do fundamentalnog problema sa dva čvora:
Kvorum nema smisla u dva klastera čvorova, a bez njega je nemoguće pouzdano odrediti tijek akcije koji maksimizira dostupnost i sprječava gubitak podataka
Čak i u sistemu od dva čvora povezana ukrštenim kablom, nemoguće je definitivno razlikovati prekid mreže i kvar drugog čvora. Onemogućavanje jednog kraja (čija je vjerovatnoća, naravno, proporcionalna udaljenosti između čvorova) će biti dovoljno da poništi svaku pretpostavku da je zdravlje veze jednako zdravlju partnerskog čvora.

Omogućavanje rada klastera sa dva čvora

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

Opcija 1 - Duplicirana metoda disocijacije

ILO ili IPMI uređaj čvora predstavlja tačku kvara jer, ako pokvari, preživjeli ga ne mogu koristiti da dovedu čvor u sigurno stanje. U klasteru od 3 ili više čvorova, ovo možemo ublažiti izračunavanjem kvoruma i korištenjem hardverskog nadzornika (mehanizam indirektnog odvajanja, kao što je ranije objašnjeno). U slučaju dva čvora, umjesto toga moramo koristiti mrežne distribucijske jedinice (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 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 prometa klastera, inače će jedan kvar na mreži blokirati pristup i uređajima za odvajanje i blokirati obnavljanje usluga.

Ovdje ćete se možda pitati - da li je PDU jedina tačka kvara? Na šta je odgovor, naravno da jeste.

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

Opcija 2 - Dodavanje arbitra

U nekim scenarijima, dok je dvostruka metoda razdruživanja tehnički moguća, ona je politički teška. Mnoge kompanije vole da imaju određenu razdvojenost između administratora i vlasnika aplikacija, a mrežni administratori koji su svjesni sigurnosti nisu uvijek oduševljeni dijeljenjem postavki PDU pristupa sa 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 da vidi talase svog vršnjaka ili arbitra kako bi obnovio usluge. Arbitar također uključuje funkciju prekida veze ako oba čvora mogu vidjeti arbitra, ali ne mogu vidjeti jedan drugog.

Ova opcija se mora koristiti zajedno sa metodom indirektne disasocijacije, kao što je hardverski nadzorni tajmer, koji je konfigurisan da ubije mašinu ako izgubi vezu sa svojim ravnopravnim i arbitarskim čvorom. Stoga, preživjeli može razumno pretpostaviti da će njegov ravnopravni čvor biti u sigurnom stanju nakon što hardverski nadzorni tajmer istekne.

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 s radom bez obzira na usluge koje su već koristili, ali ne i započinju nove dok se problem ne riješi sam (vraćanje mreže, ponovno pokretanje čvora) ili 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 regala

Argumentacije radi, hajde da se pretvaramo 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 šta bi se dogodilo da stalak sa dva čvora pokvari i kako bi preživjeli čvor razlikovao to od kvara mreže.

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

  • zanemaruje kvorum i pogrešno pokušava pokrenuti obnavljanje tokom prekida mreže (mogućnost dovršetka disocijacije je druga priča i ovisi o tome da li je PDU uključen i da li dijele snagu s bilo kojim od rackova), ili
  • poštuje kvorum i prerano se isključuje kada njegov ravnopravni čvor otkaže

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

Dva data centra

U ovom trenutku, čitaoci koji više nisu skloni riziku možda će želeti da razmotre oporavak od katastrofe. Šta se dešava kada asteroid udari u isti centar podataka sa naša tri čvora raspoređena na tri različita stalka? Očigledno loše stvari, ali ovisno o vašim potrebama, dodavanje drugog podatkovnog centra možda neće biti dovoljno.

Ako je urađeno ispravno, drugi podatkovni centar vam pruža (i to razumno) ažurnu i dosljednu kopiju vaših usluga i njihovih podataka. Međutim, kao iu scenarijima sa dva čvora i dva stalka, u sistemu nema dovoljno informacija da bi se osigurala maksimalna dostupnost i spriječila korupcija (ili neslaganja u skupu podataka). Čak i sa tri čvora (ili stalka), njihova distribucija u samo dva data centra ostavlja sistem nesposobnim da pouzdano donese pravu odluku u slučaju (sada mnogo vjerovatnijeg) događaja o kojem obje strane ne mogu komunicirati.

To ne znači da rješenje za dvostruki podatkovni centar nikada nije prikladno. Kompanije često žele da osoba bude svjesna prije nego što preduzme izuzetan korak preseljenja u rezervni podatkovni centar. Samo imajte na umu da ako želite automatizirati ispad, trebat će vam ili treći podatkovni centar da bi kvorum imao smisla (bilo direktno ili putem arbitra), ili ćete pronaći način da pouzdano isključite sve podatke centar.

izvor: www.habr.com

Dodajte komentar