Хоёр зангилааны бөөгнөрөл - чөтгөр нарийн ширийн зүйлд байдаг

Хөөе Хабр! Би нийтлэлийн орчуулгыг та бүхэнд толилуулж байна "Хоёр зангилаа - Чөтгөр дэлгэрэнгүй мэдээлэлд байна" Эндрю Бекхоф.

Олон хүмүүс хоёр зангилаатай кластеруудыг илүүд үздэг, учир нь тэдгээр нь үзэл баримтлалын хувьд энгийн бөгөөд гурван зангилаатай харьцуулахад 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 оролцож байгаа эсэх, тэдгээрийн аль нэг тавиуртай хүчийг хуваалцаж байгаа эсэхээс хамаарна) эсвэл
  • чуулгыг хүндэтгэж, үе тэнгийн зангилаа бүтэлгүйтсэн үед өөрийгөө хугацаанаас нь өмнө салгадаг

Ямар ч тохиолдолд хоёр тавиур нь нэгээс илүү биш бөгөөд зангилаанууд нь бие даасан тэжээлийн хангамжийг хүлээн авах эсвэл гурван (хэдэн зангилаатай байгаагаас хамааран түүнээс дээш) хуваарилагдсан байх ёстой.

Хоёр дата төв

Энэ үед эрсдэлд орохоо больсон уншигчид гамшгийн нөхөн сэргээлтийн талаар бодохыг хүсч магадгүй юм. Гурван өөр тавиур дээр тархсан гурван зангилаатай ижил дата төвийг астероид мөргөхөд юу болох вэ? Мэдээжийн хэрэг муу зүйл, гэхдээ таны хэрэгцээ шаардлагаас хамааран хоёр дахь дата төвийг нэмэх нь хангалтгүй байж магадгүй юм.

Хэрэв зөв хийгдсэн бол хоёр дахь дата төв нь таны үйлчилгээ болон тэдгээрийн өгөгдлийн хамгийн сүүлийн үеийн, тогтвортой хуулбарыг танд (боломжийн дагуу) өгдөг. Гэсэн хэдий ч, хоёр зангилаа, хоёр тавиуртай хувилбаруудын нэгэн адил системд хамгийн их хүртээмжтэй байх, авлига (эсвэл өгөгдлийн багцын зөрүү) урьдчилан сэргийлэх хангалттай мэдээлэл байхгүй байна. Гурван зангилаа (эсвэл тавиур) байсан ч гэсэн тэдгээрийг зөвхөн хоёр дата төвд хуваарилах нь хоёр тал харилцах боломжгүй (одоо илүү их магадлалтай) үйл явдлын үед системийг найдвартай шийдвэр гаргах боломжгүй болгодог.

Энэ нь дата төвийн давхар шийдэл хэзээ ч тохирохгүй гэсэн үг биш юм. Компаниуд ихэвчлэн нөөц дата төв рүү шилжих онцгой алхам хийхээсээ өмнө хүнийг мэддэг байхыг хүсдэг. Хэрэв та тасалдлыг автоматжуулахыг хүсвэл чуулгын хувьд гуравдагч дата төв хэрэгтэй (шууд эсвэл арбитраар дамжуулан) эсвэл өгөгдлийг бүхэлд нь найдвартай хаах арга замыг олох болно гэдгийг санаарай. төв.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх