Эки түйүндөрдүн кластери - шайтан майда-чүйдөсүнө чейин

Эй Хабр! Сиздердин назарыңыздарга макаланын котормосун сунуштайм "Эки түйүн - Шайтан майда-чүйдөсүнө чейин" Эндрю Beekhof тарабынан.

Көптөгөн адамдар эки түйүндүү кластерлерди артык көрүшөт, анткени алар концептуалдык жактан жөнөкөй көрүнөт жана үч түйүндүү кесиптештерине караганда 33% арзан. Эки түйүндүн жакшы кластерин бириктирүү толук мүмкүн болсо да, көпчүлүк учурда каралбаган сценарийлерден улам, мындай конфигурация көптөгөн түшүнүксүз көйгөйлөрдү жаратат.

Кандайдыр бир жогорку жеткиликтүүлүк системасын түзүүнүн биринчи кадамы - бул көп учурда мындай кыскартылган кемчиликтерди табуу жана жоюуга аракет кылуу. SPoF (бир гана ийгиликсиздик).

Бул кандайдыр бир системада токтоп калуу бардык мүмкүн болгон тобокелдиктерди жок кылуу мүмкүн эмес экенин эстен чыгарбоо керек. Бул тобокелдикке каршы типтүү коргонуу системанын татаалдыгынын жогорулашына жана жаңылануунун жаңы чекиттеринин пайда болушуна алып келген кээ бир ашыкчаларды киргизүү экендигинен келип чыгат. Ошондуктан, биз адегенде компромисске барабыз жана байланышкан жана демек, барган сайын азыраак ыктымалдуу окуялардын чынжырларына эмес, айрым кемчиликтери менен байланышкан окуяларга көңүл бурабыз.

Соода-сатыктарды эске алуу менен, биз SPoF издеп гана тим болбостон, тобокелдиктер менен кесепеттерди тең салмактайбыз, натыйжада эмне маанилүү жана эмне жок деген тыянак ар бир жайгаштыруу үчүн айырмаланышы мүмкүн.

Көз карандысыз электр линиялары бар альтернативдүү электр берүүчүлөргө баарына эле керек эмес. Паранойя жок дегенде бир кардар үчүн төлөп бергенине карабастан, алардын мониторинги бузулган трансформаторду тапканда. Кардар телефон чалып, бузулган трансформатор жарылып кеткенге чейин электр тармактар ​​ишканасына билдирүүгө аракет кылган.

Табигый баштапкы чекит системада бирден ашык түйүн болушу керек. Бирок, система иштебей калгандан кийин кызматтарды аман калган түйүнгө жылдыра алардан мурун, ал көбүнчө жылдырылып жаткан кызматтар башка жерде активдүү эмес экенине кепилдик бериши керек.

Эки түйүндүү кластердин эч кандай терс жагы жок, эгер ката эки түйүн бир эле статикалык веб-сайтты тейлөөгө алып келсе. Бирок, натыйжада эки тарап тең жалпы жумуш кезегин өз алдынча башкарса же репликацияланган маалымат базасына же жалпы файл тутумуна макулдашылбаган жазуу мүмкүнчүлүгүн берсе, баары өзгөрөт.

Ошондуктан, бир түйүн иштебей калышынын натыйжасында маалыматтардын бузулушун алдын алуу үчүн - биз аталган нерсеге таянабыз "диссоциация" (фехтование).

Диссоциациялоо принциби

Диссоциациялоо принцибинин өзөгүн мына ушул суроо турат: атаандаш түйүн маалыматтардын бузулушуна алып келиши мүмкүнбү? Маалыматтын бузулушу мүмкүн болгон сценарий болгон учурда, түйүндү келген суроо-талаптардан да, туруктуу сактагычтан да изоляциялоо жакшы чечим болот. Ажыратуунун эң кеңири таралган ыкмасы - бузулган түйүндөрдү ажыратуу.

Диссоциациялоо ыкмаларынын эки категориясы бар, мен аларды чакырам түз и кыйыр, бирок аларды бирдей атоого болот активдүү и пассивдүү. Түз методдор аман калган теңтуштардын аракеттерин камтыйт, мисалы, IPMI (Интеллектуалдык платформа башкаруу интерфейси) же iLO (аларга физикалык жетүү жок болгон серверлерди башкаруу механизми) менен өз ара аракеттенүү, ал эми кыйыр методдор ишке ашпай калган ыкмаларга таянат. түйүн кандайдыр бир жол менен анын ден-соолугу начар абалда экенин (же жок дегенде башка мүчөлөрдүн айыгып кетишине жол бербейт) жана белгилөө үчүн аппараттык көзөмөлдөөчү ишке ашпай калган түйүндү ажыратуунун зарылдыгы жөнүндө.

Кворум түз жана кыйыр ыкмаларды колдонгондо жардам берет.

Түздөн-түз диссоциация

Түздөн-түз диссоциацияланган учурда, тармак иштебей калган учурда диссоциация жарышын болтурбоо үчүн кворумду колдоно алабыз.

Кворум концепциясы менен системада түйүндөр диссоциацияны жана/же калыбына келтирүүнү баштоо керекпи же жокпу автоматтык түрдө билиши үчүн жетиштүү маалымат бар (өз теңдүүлөрү менен туташпаса да).

Кворум болбосо, тармактык бөлүнүүнүн эки тарабы тең экинчи тарапты өлдү деп эсептеп, экинчи тарапты ажыратууга аракет кылышат. Эң начар учурда эки тарап тең кластерди бүтүндөй жабууга жетишет. Альтернативалуу сценарий – өлүм матчы, түйүндөрдүн түгөнгүс цикли, алардын теңтуштарын көрбөй, кайра жүктөө жана алардын теңтуштары ошол эле логикага ылайык келгенде, кайра жүктөө үчүн гана калыбына келтирүүнү баштоо.

Ажыратуунун көйгөйү - эң көп колдонулган түзмөктөр биз калыбына келтирүүнү максат кылган ошол эле ката окуяларынан улам жеткиликсиз болуп калат. Көпчүлүк IPMI жана iLO карталары алар көзөмөлдөгөн хостторго орнотулган жана демейки боюнча, ошол эле тармакты колдонушат, бул максаттуу хосттор башка хосттор оффлайн деп ишенишет.

Тилекке каршы, жабдууларды сатып алууда IPMI жана iLo аппараттарынын иштөө өзгөчөлүктөрү чанда гана каралат.

Кыйыр диссоциация

Кворум кыйыр дисссоциацияны башкаруу үчүн да маанилүү; эгерде туура аткарылса, кворум аман калгандарга жоголгон түйүндөр белгилүү бир убакыттан кийин коопсуз абалга өтөт деп болжолдоого мүмкүндүк берет.

Бул конфигурацияда, кворум жоголбосо, аппараттык көзөмөлдөөчү таймер N секунд сайын баштапкы абалга келтирилет. Эгерде таймердин (адатта N бир нече эселенген) мөөнөтү бүтсө, анда аппарат кубатсыз өчүрүүнү ишке ашырат (өчүрүү эмес).

Бул ыкма абдан натыйжалуу, бирок кворум болбосо, кластердин ичинде аны башкаруу үчүн жетиштүү маалымат жок. Тармактын үзгүлтүккө учурашы менен теңдүү түйүндөрдүн бузулушун айырмалоо оңой эмес. Мунун маанилүүлүгүнүн себеби, эки иштин ортосундагы айырмачылыкты билбестен, эки учурда тең бирдей жүрүм-турумду тандоого мажбур болосуз.

Бир режимди тандоодогу көйгөй, жеткиликтүүлүктү максималдаштыруучу жана маалыматтардын жоголушуна жол бербөөчү иш-аракеттердин курсу жок.

  • Эгер сиз теңдүү түйүн активдүү деп эсептесеңиз, бирок чындыгында ишке ашпай калса, кластер иштебей калган теңдүү түйүндөн кызматтардын жоготуусунун ордун толтуруу үчүн иштей турган кызматтарды керексиз токтотот.
  • Эгер сиз түйүн иштебей калды деп ойлогуңуз келсе, бирок бул жөн гана тармактын бузулушу жана чындыгында алыскы түйүн иштеши болсо, анда эң жакшы дегенде, сиз пайда болгон маалыматтар топтомун келечектеги кол менен элдештирүү үчүн катталып жатасыз.

Кандай эвристиканы колдонсоңуз да, эки тараптын тең иштебей калышына же кластердин аман калган түйүндөрүнүн жабылышына алып келе турган каталарды түзүү анча маанилүү эмес. Кворумду колдонбоо чындап эле кластерди өзүнүн арсеналындагы эң күчтүү куралдардын биринен ажыратат.

Эгерде башка альтернатива жок болсо, эң жакшы ыкма - бул жеткиликтүүлүктү курмандыкка чалуу (бул жерде автор CAP теоремасын билдирет). Бузулган маалыматтардын жогорку жеткиликтүүлүгү эч кимге жардам бербейт жана ар кандай маалымат топтомдорун кол менен элдештирүү да кызыктуу эмес.

Кворум

Кворум сонун угулат, туурабы?

Жалгыз жетишпеген жагы, аны N мүчөдөн турган кластерде кармоо үчүн, калган түйүндөрүңүздүн N/2+1 ортосунда байланыш болушу керек. Бир түйүн иштебей калгандан кийин эки түйүндүү кластерде бул мүмкүн эмес.

Бул акыры бизди эки түйүн менен негизги көйгөйгө алып келет:
Кворум эки түйүн кластеринде мааниге ээ эмес жана ансыз жеткиликтүүлүктү максималдаштыруучу жана маалыматтардын жоголушуна жол бербөөчү иш-аракеттердин багытын ишенимдүү аныктоо мүмкүн эмес.
Кроссовер кабели аркылуу туташтырылган эки түйүн тутумунда да тармактын үзүлүшү менен башка түйүндүн иштебей калышын так айырмалоо мүмкүн эмес. Бир четин өчүрүү (анын ыктымалдыгы, албетте, түйүндөрдүн ортосундагы аралыкка пропорционалдуу) шилтеменин ден соолугу өнөктөш түйүнүнүн ден соолугуна барабар деген божомолду жокко чыгаруу үчүн жетиштүү болот.

Эки түйүндүү кластердик иштөө

Кээде кардар үчүнчү түйүндү сатып ала албайт же алгысы келбейт, жана биз альтернатива издөөгө аргасыз болобуз.

1-вариант - Кайталанма диссоциация ыкмасы

Түйүндүн iLO же IPMI түзмөгү иштебей калган учурду билдирет, анткени ал иштебей калса, аман калгандар түйүндү коопсуз абалга келтирүү үчүн аны колдоно алышпайт. 3 же андан көп түйүндөрдөн турган кластерде биз кворумду эсептөө жана аппараттык көзөмөлдү (мурда айтылгандай кыйыр ажыратуу механизми) колдонуу менен азайта алабыз. Эки түйүн болгон учурда, анын ордуна тармактык электр бөлүштүрүүчү блокторду (PDU) колдонушубуз керек.

Ийгиликсиз болгондон кийин, аман калган адам адегенде негизги ажыратуу аппараты менен байланышууга аракет кылат (камтылган iLO же IPMI). Бул ийгиликтүү болсо, калыбына келтирүү адаттагыдай эле уланат. iLO/IPMI түзмөгү иштебей калганда гана PDU кирүүгө болот; кирүү ийгиликтүү болсо, калыбына келтирүү улана берет.

PDUну кластердик трафикке караганда башка тармакка жайгаштырууну унутпаңыз, антпесе бир тармактын бузулушу диссоциациялоочу түзмөктөргө да кирүүгө бөгөт коёт жана кызматтарды калыбына келтирүүгө бөгөт коёт.

Бул жерде сиз сурашыңыз мүмкүн - PDU бир эле катачылыкпы? Буга жооп, албетте, ошондой.

Эгер бул коркунуч сиз үчүн маанилүү болсо, сиз жалгыз эмессиз: эки түйүндү эки PDUга туташтырыңыз жана кластердик программага түйүндөрдү күйгүзүп жана өчүрүп жатканда экөөнү тең колдонууну айтыңыз. Эгерде бир PDU өлсө, кластер активдүү бойдон кала берет жана калыбына келтирүүнү бөгөттөө үчүн башка PDU же IPMI түзмөгүнүн экинчи катасы талап кылынат.

2-вариант - Арбитрди кошуу

Кээ бир сценарийлерде кайталанган диссоциация ыкмасы техникалык жактан мүмкүн болсо да, саясий жактан кыйын. Көптөгөн компаниялар администраторлор менен тиркеме ээлеринин ортосунда кандайдыр бир бөлүнүүнү каалашат жана коопсуздукту ойлогон тармак администраторлору ар дайым эле PDU мүмкүндүк алуу жөндөөлөрүн эч ким менен бөлүшүүгө ынтызар эмес.

Бул учурда сунушталган альтернатива кворумдун эсебин толуктай турган бейтарап үчүнчү тарапты түзүү болуп саналат.

Иштебей калган учурда, түйүн кызматтарды калыбына келтирүү үчүн өзүнүн теңтушунун же арбитринин эфир толкундарын көрө алышы керек. Эгерде эки түйүн тең арбитрди көрүп, бирок бири-бирин көрө албаса, арбитр ажыратуу функциясын камтыйт.

Бул параметрди кыйыр ажыратуу ыкмасы менен бирге колдонуш керек, мисалы, аппараттык көзөмөлдөөчү таймер, эгерде машина өзүнүн теңдеши жана арбитр түйүнү менен байланышын жоготсо, аны өлтүрүүгө конфигурацияланган. Ошентип, аман калган адам аппараттык көзөмөлдөөчү таймердин мөөнөтү аяктагандан кийин, анын теңдүү түйүнү коопсуз абалда болот деп негиздүү божомолдой алат.

Арбитр менен үчүнчү түйүндүн практикалык айырмасы арбитр иштөө үчүн бир топ азыраак ресурстарды талап кылат жана потенциалдуу түрдө бирден ашык кластерге кызмат кыла алат.

3-вариант – Адам фактору

Акыркы ыкма - аман калгандар мурун иштеп жаткан кызматтардын бардыгын иштетүүнү улантуу, бирок көйгөй өзү чечилмейинче (тармакты калыбына келтирүү, түйүн кайра жүктөө) же адам экинчи тараптын өлүп калганын кол менен ырастоо үчүн жоопкерчиликти өзүнө алганга чейин жаңысын баштабашы керек.

Бонус опциясы

Үчүнчү түйүн кошо аласыз деп айттым беле?

Эки стойка

Аргумент үчүн, келгиле, мен сени үчүнчү түйүндүн артыкчылыгына ынандырдым окшойт, эми түйүндөрдүн физикалык жайгашуусун карап көрүшүбүз керек. Эгерде алар бир стойкага жайгаштырылса (жана электр кубаты менен камсыз кылынса), бул дагы SPoFти түзөт жана экинчи стеллажды кошуу менен чечүү мүмкүн эмес.

Эгер бул таң калыштуу болсо, эки түйүнү бар стойка иштебей калса эмне болорун жана аман калган түйүн муну менен тармактын бузулушун кантип айырмалай турганын карап көрүңүз.

Кыска жооп, бул мүмкүн эмес, жана биз кайрадан эки түйүн учурда бардык көйгөйлөр менен күрөшүп жатабыз. Же аман калган:

  • кворумду этибарга албайт жана тармак үзгүлтүккө учураганда калыбына келтирүүнү туура эмес баштоого аракет кылат (диссоциациялоону аяктоо мүмкүнчүлүгү башка окуя жана PDU тартылган-катышпаганына жана алар электрди стойкалардын кайсынысы менен бөлүшө тургандыгына жараша болот) же
  • кворумду сыйлайт жана анын теңдүү түйүнү иштебей калганда өзүн мөөнөтүнөн мурда ажыратат

Кандай болгон күндө да, эки стойка бирден жакшы эмес жана түйүндөр көз карандысыз энергия булактарын алышы керек же үч (же сизде канча түйүнгө жараша) бөлүштүрүлүшү керек.

Эки маалымат борбору

Бул учурда, мындан ары тобокелге барбаган окурмандар кырсыкты калыбына келтирүү жөнүндө ойлонушу мүмкүн. Биздин үч түйүн үч түрдүү стойкага жайылып турган бир эле маалымат борборуна астероид тийгенде эмне болот? Албетте, жаман нерселер, бирок муктаждыктарыңызга жараша, экинчи маалымат борборун кошуу жетишсиз болушу мүмкүн.

Эгер туура аткарылса, экинчи маалымат борбору сизге (жана негиздүү түрдө) кызматтарыңыздын жана алардын маалыматтарынын заманбап жана ырааттуу көчүрмөсүн берет. Бирок, эки түйүндүү, эки стеллаждуу сценарийлердегидей, системада максималдуу жеткиликтүүлүктү камсыз кылуу жана коррупцияны (же маалыматтар топтомундагы келишпестиктерди) алдын алуу үчүн жетиштүү маалымат жок. Үч түйүн (же стеллаждар) болсо да, аларды эки гана маалымат борборлору боюнча бөлүштүрүү системаны эки тарап тең байланыша албаган окуя болгон учурда (азыр алда канча ыктымалдуу) ишенимдүү чечим кабыл ала албайт.

Бул кош маалымат борборунун чечими эч качан ылайыктуу эмес дегенди билдирбейт. Компаниялар көп учурда камдык маалымат борборуна көчүп өзгөчө кадам жасоодон мурун бир адам кабардар болушун каалайт. Эсиңизде болсун, эгер сиз өчүрүүнү автоматташтырууну кааласаңыз, кворум үчүн үчүнчү маалымат борбору керек болот (түз же арбитр аркылуу), же сиз бүтүндөй маалыматты ишенимдүү өчүрүүнүн жолун табасыз. Борбор.

Source: www.habr.com

Комментарий кошуу