Група два чвора - ђаво је у детаљима

Здраво, Хабр! Представљам вашој пажњи превод чланка "Два чвора - Ђаво је у детаљима" Андрев Беекхоф.

Многи људи преферирају кластере са два чвора јер изгледају концептуално једноставније и такође су 33% јефтинији од својих колега са три чвора. Иако је сасвим могуће саставити добар кластер од два чвора, у већини случајева, због неразмотрених сценарија, таква конфигурација ће створити многе неочигледне проблеме.

Први корак ка стварању било ког система високе доступности је проналажење и покушај да се елиминишу појединачне тачке квара, често скраћено као СПоФ (једна тачка отказа).

Вреди имати на уму да је немогуће елиминисати све могуће ризике застоја у било ком систему. Ово произилази из чињенице да је типична одбрана од ризика увођење неке редунданце, што доводи до повећане сложености система и појаве нових тачака отказа. Стога у почетку правимо компромис и фокусирамо се на догађаје повезане са појединачним тачкама неуспеха, а не на ланце повезаних и, самим тим, све мање вероватних догађаја.

С обзиром на компромисе, не само да тражимо СПоФ, већ и балансирамо ризике и последице, због чега се закључак о томе шта је критично, а шта није, може разликовати за сваку примену.

Нису свима потребни алтернативни добављачи електричне енергије са независним далеководима. Иако се параноја исплатила барем једном купцу када је њихов надзор открио неисправан трансформатор. Купац је телефонирао покушавајући да упозори електропривреду све док неисправни трансформатор није експлодирао.

Природна почетна тачка је имати више од једног чвора у систему. Међутим, пре него што систем може да премести услуге на преживјели чвор након квара, генерално треба да осигура да услуге које се премештају нису активне на другом месту.

Не постоји лоша страна кластера са два чвора ако квар резултира тиме да оба чвора опслужују исту статичку веб локацију. Међутим, ствари се мењају ако је резултат да обе стране независно управљају дељеним редом послова или обезбеђују некоординисани приступ писању реплицираној бази података или дељеном систему датотека.

Стога, да бисмо спречили оштећење података као резултат квара једног чвора - ослањамо се на нешто тзв "дисоцијација" (мачевање).

Принцип дисоцијације

У средишту принципа дисоцијације је питање: може ли конкурентски чвор изазвати корупцију података? У случају да је оштећење података вероватан сценарио, добро решење би било да се чвор изолује и од долазних захтева и од трајног складиштења. Најчешћи приступ одвајању је одвајање неисправних чворова.

Постоје две категорије метода дисоцијације, које ћу назвати равно и индиректан, али се подједнако могу назвати активан и пасиван. Директне методе укључују радње од стране преживјелих вршњака, као што је интеракција са ИПМИ (Интелигентни интерфејс за управљање платформом) или иЛО (механизам за управљање серверима у недостатку физичког приступа њима) уређајем, док се индиректне методе ослањају на неуспјешне чвор да некако препозна да је у нездравом стању (или барем спречава друге чланове да се опораве) и сигнализира хардверски чувар о потреби искључивања поквареног чвора.

Кворум помаже када се користе и директне и индиректне методе.

Директна дисоцијација

У случају директне дисоцијације, можемо користити кворум да спречимо трке дисоцијације у случају квара мреже.

Са концептом кворума, постоји довољно информација у систему (чак и без повезивања са колегама) да чворови аутоматски знају да ли треба да започну дисоцијацију и/или опоравак.

Без кворума, обе стране мрежне поделе ће с правом претпоставити да је друга страна мртва и настојаће да раздвоје другу страну. У најгорем случају, обе стране успевају да угасе цео кластер. Алтернативни сценарио је меч смрти, бесконачна петља чворова који се појављују, не виде своје вршњаке, поново их покрећу и започињу опоравак само да би се поново покренули када њихов колега прати исту логику.

Проблем са одвајањем је што најчешће коришћени уређаји постају недоступни због истих догађаја квара које желимо да циљамо за опоравак. Већина ИПМИ и иЛО картица је инсталирана на хостовима које контролишу и, подразумевано, користе исту мрежу, што доводи до тога да циљни хостови верују да су други хостови ван мреже.

Нажалост, радне карактеристике ИПМИ и иЛо уређаја ретко се разматрају у тренутку куповине опреме.

Индиректна дисоцијација

Кворум је такође важан за управљање индиректним одвајањем; ако се уради исправно, кворум може омогућити преживелима да претпоставе да ће изгубљени чворови прећи у безбедно стање након одређеног временског периода.

Са овом конфигурацијом, хардверски надзорни тајмер се ресетује сваких Н секунди ако се кворум не изгуби. Ако тајмер (обично неколико вишеструких од Н) истекне, тада уређај врши неприкладно искључивање (не искључивање).

Овај приступ је веома ефикасан, али без кворума нема довољно информација у кластеру да се њиме управља. Није лако направити разлику између прекида мреже и квара равноправног чвора. Разлог зашто је ово важно је тај што сте без могућности да направите разлику између два случаја, приморани да изаберете исто понашање у оба случаја.

Проблем са одабиром једног режима је у томе што не постоји начин деловања који максимизира доступност и спречава губитак података.

  • Ако одлучите да претпоставите да је равноправни чвор активан, али да у ствари не успе, кластер ће непотребно зауставити услуге које би радиле да би надокнадио губитак услуга са неуспелог равноправног чвора.
  • Ако одлучите да претпоставите да је чвор у квару, али је то био само квар на мрежи и да је удаљени чвор у ствари функционалан, онда се у најбољем случају пријављујете за неко будуће ручно усаглашавање резултујућих скупова података.

Без обзира на то коју хеуристику користите, тривијално је направити грешку која ће или узроковати неуспјех обе стране или узроковати да кластер искључи преживјеле чворове. Некоришћење кворума заиста лишава кластер једног од најмоћнијих алата у његовом арсеналу.

Ако не постоји друга алтернатива, најбољи приступ је жртвовање доступности (овде аутор упућује на ЦАП теорему). Висока доступност оштећених података никоме не помаже, а ни ручно усаглашавање различитих скупова података није забавно.

Куорум

Кворум звучи одлично, зар не?

Једина мана је што да бисте га имали у кластеру са Н чланова, морате да имате везу између Н/2+1 ваших преосталих чворова. Што није могуће у кластеру са два чвора након што један чвор откаже.

Што нас на крају доводи до основног проблема са два чвора:
Кворум нема смисла у два кластера чворова, а без њега је немогуће поуздано одредити ток акције који максимизира доступност и спречава губитак података
Чак иу систему од два чвора повезана укрштеним каблом, немогуће је дефинитивно разликовати прекид мреже и квар другог чвора. Онемогућавање једног краја (чија је вероватноћа, наравно, пропорционална растојању између чворова) биће довољно да поништи сваку претпоставку да је здравље везе једнако здрављу партнерског чвора.

Омогућавање рада кластера са два чвора

Понекад клијент не може или не жели да купи трећи чвор, а ми смо приморани да тражимо алтернативу.

Опција 1 - Метода дуплирања дисоцијације

ИЛО или ИПМИ уређај чвора представља тачку квара јер, ако поквари, преживели не могу да га користе да доведу чвор у безбедно стање. У групи од 3 или више чворова, ово можемо ублажити израчунавањем кворума и коришћењем хардверског чувара (механизам индиректног одвајања, као што је раније објашњено). У случају два чвора, уместо тога морамо користити мрежне дистрибутивне јединице (ПДУ).

Након неуспеха, преживели прво покушава да контактира примарни уређај за одвајање (уграђени иЛО или ИПМИ). Ако је ово успешно, опоравак се наставља као и обично. ПДУ-у се приступа само ако иЛО/ИПМИ уређај не успе; ако је приступ успешан, опоравак може да се настави.

Обавезно поставите ПДУ на другу мрежу од саобраћаја кластера, иначе ће један квар на мрежи блокирати приступ оба уређаја за одвајање и блокирати обнављање услуга.

Овде ћете се можда питати - да ли је ПДУ једина тачка квара? На шта је одговор, наравно да јесте.

Ако вам је овај ризик значајан, нисте сами: повежите оба чвора на два ПДУ-а и реците софтверу за кластерисање да користи оба када укључује и искључује чворове. Кластер сада остаје активан ако један ПДУ умре, а други квар другог ПДУ или ИПМИ уређаја ће бити потребан да би се блокирао опоравак.

Опција 2 - Додавање арбитра

У неким сценаријима, док је двоструки метод раздруживања технички могућ, политички је тежак. Многе компаније воле да имају извесну раздвојеност између администратора и власника апликација, а мрежни администратори који брину о безбедности нису увек ентузијастични у погледу дељења поставки приступа ПДУ-у са било ким.

У овом случају, препоручена алтернатива је креирање неутралне треће стране која може допунити израчунавање кворума.

У случају квара, чвор мора бити у стању да види таласе свог вршњака или арбитра да би обновио услуге. Арбитар такође укључује функцију прекида везе ако оба чвора могу да виде арбитра, али не могу да виде један другог.

Ова опција мора да се користи заједно са методом индиректног одвајања, као што је хардверски надзорни тајмер, који је конфигурисан да угаси машину ако изгуби везу са својим равноправним и арбитарским чвором. Дакле, преживели може разумно претпоставити да ће његов равноправни чвор бити у безбедном стању након што хардверски надзорни тајмер истекне.

Практична разлика између арбитра и трећег чвора је у томе што арбитер захтева много мање ресурса за рад и потенцијално може да опслужује више од једног кластера.

Опција 3 - Људски фактор

Коначни приступ је да преживели наставе да користе услуге које су већ користили, али не и да започну нове док се проблем не реши сам (враћање мреже, поновно покретање чвора) или особа не преузме одговорност за ручну потврду да је друга страна мртва.

Бонус опција

Да ли сам споменуо да можете додати трећи чвор?

Два регала

Аргументације ради, хајде да се претварамо да сам вас уверио у предности трећег чвора, сада морамо размотрити физички распоред чворова. Ако су смештени (и напајани) у истом сталку, ово такође представља СПоФ, и онај који се не може решити додавањем другог рек-а.

Ако је ово изненађујуће, размислите о томе шта би се догодило да поквари рацк са два чвора и како би преживјели чвор разликовао то од квара мреже.

Кратак одговор је да то није могуће, и опет се бавимо свим проблемима у случају са два чвора. Или преживели:

  • игнорише кворум и погрешно покушава да започне рестаурацију током прекида мреже (могућност довршетка дисоцијације је друга прича и зависи од тога да ли је ПДУ укључен и да ли деле напајање са било којим од рекова), или
  • поштује кворум и прерано се искључује када његов равноправни чвор откаже

У сваком случају, два река нису ништа боља од једног, а чворови морају или добити независно напајање или бити распоређени на три (или више, у зависности од тога колико чворова имате) сталка.

Два дата центра

У овом тренутку, читаоци који више нису склони ризику можда ће желети да размотре опоравак од катастрофе. Шта се дешава када астероид удари у исти центар података са наша три чвора распоређена на три различита сталка? Очигледно лоше ствари, али у зависности од ваших потреба, додавање другог центра података можда неће бити довољно.

Ако је урађено исправно, други центар података вам обезбеђује (и то разумно) ажурну и доследну копију ваших услуга и њихових података. Међутим, као иу сценаријима са два чвора и два сталка, у систему нема довољно информација да би се осигурала максимална доступност и спречила корупција (или неслагања у скупу података). Чак и са три чвора (или сталка), њихова дистрибуција у само два центра података оставља систем неспособним да поуздано донесе исправну одлуку у случају (сада много вероватнијег) догађаја који обе стране не могу да комуницирају.

То не значи да решење са двоструким датацентром никада није прикладно. Компаније често желе да особа буде свесна пре него што предузме изузетан корак да се пресели у резервни центар података. Само имајте на уму да ако желите да аутоматизујете прекид, или ће вам требати трећи центар података да би кворум имао смисла (било директно или преко арбитра), или ћете пронаћи начин да поуздано искључите све податке центар.

Извор: ввв.хабр.цом

Додај коментар