Ikki tugun klasteri - shayton tafsilotlarda

Hey Xabr! E'tiboringizga maqolaning tarjimasini taqdim etaman "Ikki tugun - Iblis tafsilotlarda" Endryu Beekhof tomonidan.

Ko'pchilik ikki tugunli klasterlarni afzal ko'radi, chunki ular kontseptual jihatdan sodda ko'rinadi va shuningdek, uch tugunli hamkasblariga qaraganda 33% arzonroqdir. Ikki tugunning yaxshi klasterini birlashtirish juda mumkin bo'lsa-da, ko'p hollarda, ko'rib chiqilmagan stsenariylar tufayli, bunday konfiguratsiya ko'plab noaniq muammolarni keltirib chiqaradi.

Mavjudligi yuqori bo'lgan har qanday tizimni yaratishning birinchi qadami, ko'pincha shunday qisqartirilgan muvaffaqiyatsizliklarning individual nuqtalarini topish va yo'q qilishga urinishdir. SPoF (yagona nosozlik nuqtasi).

Shuni yodda tutish kerakki, har qanday tizimda ishlamay qolishning barcha mumkin bo'lgan xavflarini bartaraf etish mumkin emas. Bu xavf-xatarga qarshi odatiy mudofaa tizimning murakkabligini oshirishga va yangi nosozlik nuqtalarining paydo bo'lishiga olib keladigan ortiqcha qismlarni joriy etishdan kelib chiqadi. Shuning uchun, biz dastlab murosaga kelamiz va o'zaro bog'liq va shuning uchun tobora kamroq ehtimoliy voqealar zanjiriga emas, balki alohida muvaffaqiyatsizlik nuqtalari bilan bog'liq voqealarga e'tibor qaratamiz.

Shartnomalarni hisobga olgan holda, biz nafaqat SPoFni qidiramiz, balki xavf va oqibatlarni ham muvozanatlashtiramiz, buning natijasida nima muhim va nima bo'lmasligi haqidagi xulosa har bir joylashtirish uchun farq qilishi mumkin.

Har kim ham mustaqil elektr uzatish liniyalariga ega bo'lgan muqobil elektr ta'minotchilariga muhtoj emas. Garchi paranoyya kamida bitta mijoz uchun to'langan bo'lsa-da, ularning monitoringi noto'g'ri transformatorni aniqlaganida. Xaridor nosoz transformator portlaguncha elektr taΚΌminoti korxonasini ogohlantirishga urinib telefon qoΚ»ngΚ»iroqlarini amalga oshirdi.

Tabiiy boshlang'ich nuqtasi tizimda bir nechta tugunlarga ega bo'lishdir. Biroq, tizim nosozlikdan keyin xizmatlarni omon qolgan tugunga ko'chirishdan oldin, odatda ko'chirilayotgan xizmatlar boshqa joyga faol emasligiga ishonch hosil qilishi kerak.

Ikki tugunli klasterning hech qanday salbiy tomoni yo'q, agar nosozlik ikkala tugun bir xil statik veb-saytga xizmat ko'rsatishiga olib keladi. Biroq, natijada ikkala tomon ham umumiy ish navbatini mustaqil ravishda boshqarsa yoki takrorlangan ma'lumotlar bazasiga yoki umumiy fayl tizimiga muvofiqlashtirilmagan yozish ruxsatini ta'minlasa, hamma narsa o'zgaradi.

Shuning uchun, bitta tugunning ishdan chiqishi natijasida ma'lumotlarning buzilishini oldini olish uchun - biz chaqirilgan narsaga tayanamiz "ajralish" (qilichbozlik).

Dissotsiatsiya printsipi

Dissotsiatsiya tamoyilining markazida savol tug'iladi: raqobatdosh tugun ma'lumotlarning buzilishiga olib kelishi mumkinmi? Ma'lumotlarning buzilishi mumkin bo'lgan stsenariy bo'lsa, yaxshi yechim tugunni kiruvchi so'rovlardan va doimiy saqlashdan ajratish bo'ladi. Ajratishning eng keng tarqalgan usuli noto'g'ri tugunlarni ajratishdir.

Dissotsiatsiya usullarining ikkita toifasi bor, men ularni chaqiraman to'g'ri ΠΈ bilvosita, lekin ularni teng ravishda chaqirish mumkin faol ΠΈ passiv. To'g'ridan-to'g'ri usullar omon qolgan tengdoshlarning harakatlarini o'z ichiga oladi, masalan, IPMI (Intelligent Platform Management Interface) yoki iLO (ularga jismoniy kirish imkoni bo'lmaganda serverlarni boshqarish mexanizmi) qurilmalari bilan o'zaro ta'sir qilish, bilvosita usullar esa muvaffaqiyatsizlikka tayanadi. tugunni qandaydir tarzda uning nosog'lom holatda ekanligini tan olish (yoki hech bo'lmaganda boshqa a'zolarning tiklanishiga to'sqinlik qilish) va signal berish apparat kuzatuvchisi muvaffaqiyatsiz tugunni uzish zarurati haqida.

Kvorum to'g'ridan-to'g'ri va bilvosita usullardan foydalanganda yordam beradi.

To'g'ridan-to'g'ri dissosiatsiya

To'g'ridan-to'g'ri dissotsiatsiya holatida, tarmoq ishlamay qolganda dissotsiatsiya poygalarining oldini olish uchun kvorumdan foydalanishimiz mumkin.

Kvorum kontseptsiyasi bilan tizimda tugunlar dissotsiatsiyani va/yoki tiklanishni boshlash kerakligini avtomatik ravishda bilishi uchun tizimda etarli ma'lumot mavjud (hatto tengdoshlariga ulanmasdan ham).

Kvorum bo'lmasa, tarmoq bo'linishining ikkala tomoni ham boshqa tomonni o'lik deb hisoblaydi va ikkinchisini ajratishga harakat qiladi. Eng yomon holatda, ikkala tomon ham butun klasterni yopishga muvaffaq bo'lishadi. Muqobil stsenariy - bu o'lim o'yinlari, tugunlarning tugunlari tugunlarining cheksiz tsikli, ularning tengdoshlarini ko'rmaslik, ularni qayta ishga tushirish va ularning tengdoshlari bir xil mantiqqa amal qilganda qayta ishga tushirish uchun tiklanishni boshlash.

Ajratish bilan bog'liq muammo shundaki, eng ko'p ishlatiladigan qurilmalar biz qayta tiklashni maqsad qilgan bir xil nosozliklar tufayli ishlamay qoladi. Ko'pgina IPMI va iLO kartalari ular boshqaradigan xostlarga o'rnatiladi va sukut bo'yicha bir xil tarmoqdan foydalanadi, bu esa maqsadli xostlarni boshqa xostlar oflayn deb hisoblashiga sabab bo'ladi.

Afsuski, uskunani sotib olishda IPMI va iLo qurilmalarining ishlash xususiyatlari kamdan-kam hollarda hisobga olinadi.

Bilvosita dissotsiatsiya

Kvorum bilvosita disassotsiatsiyani boshqarish uchun ham muhimdir; agar to'g'ri bajarilgan bo'lsa, kvorum omon qolganlarga yo'qolgan tugunlar ma'lum vaqtdan keyin xavfsiz holatga o'tishini taxmin qilish imkonini beradi.

Ushbu konfiguratsiya bilan, agar kvorum yo'qolmasa, apparat kuzatuv taymeri har N soniyada qayta o'rnatiladi. Agar taymer (odatda N ning bir necha karrali) muddati tugasa, qurilma nomaqbul quvvatni o'chirib qo'yadi (o'chmaydi).

Ushbu yondashuv juda samarali, ammo kvorum bo'lmasa, uni boshqarish uchun klaster ichida etarli ma'lumot yo'q. Tarmoqning uzilishi va tengdosh tugunining ishdan chiqishi o'rtasidagi farqni aniqlash oson emas. Buning muhim sababi shundaki, ikkita holatni farqlash qobiliyatisiz siz ikkala holatda ham bir xil xatti-harakatni tanlashga majbur bo'lasiz.

Bitta rejimni tanlash bilan bog'liq muammo shundaki, mavjudlikni maksimal darajada oshiradigan va ma'lumotlar yo'qotilishining oldini oladigan harakat yo'nalishi mavjud emas.

  • Agar siz tengdosh tugunni faol deb hisoblasangiz, lekin aslida muvaffaqiyatsiz bo'lsa, klaster muvaffaqiyatsiz tengdosh tugundan xizmatlarning yo'qolishini qoplash uchun ishlayotgan xizmatlarni keraksiz ravishda to'xtatadi.
  • Agar siz tugun ishlamay qolgan deb taxmin qilishga qaror qilsangiz, lekin bu shunchaki tarmoqdagi nosozlik bo'lsa va aslida masofaviy tugun ishlayotgan bo'lsa, eng yaxshi holatda siz natijada olingan ma'lumotlar to'plamlarini kelajakda qo'lda moslashtirish uchun ro'yxatdan o'tasiz.

Qaysi evristikadan foydalanmasligingizdan qat'i nazar, ikkala tomonning ishlamay qolishiga yoki klasterning omon qolgan tugunlarni o'chirib qo'yishiga olib keladigan nosozlikni yaratish ahamiyatsiz. Kvorumdan foydalanmaslik klasterni arsenalidagi eng kuchli vositalardan biridan mahrum qiladi.

Agar boshqa alternativa bo'lmasa, eng yaxshi yondashuv mavjudlikni qurbon qilishdir (bu erda muallif CAP teoremasiga ishora qiladi). Buzilgan ma'lumotlarning yuqori darajada mavjudligi hech kimga yordam bermaydi va turli xil ma'lumotlar to'plamlarini qo'lda yarashtirish ham qiziq emas.

Kvorum

Kvorum ajoyib eshitiladi, to'g'rimi?

Yagona salbiy tomoni shundaki, uni N a'zodan iborat klasterda bo'lish uchun siz qolgan tugunlaringizning N/2+1 o'rtasida aloqaga ega bo'lishingiz kerak. Bitta tugun ishlamay qolgandan keyin ikkita tugunli klasterda bu mumkin emas.

Bu bizni ikkita tugun bilan bog'liq asosiy muammoga olib keladi:
Ikki tugun klasterida kvorum mantiqiy emas va usiz mavjudlikni maksimal darajada oshiradigan va ma'lumotlar yo'qotilishining oldini oladigan harakat yo'nalishini ishonchli aniqlash mumkin emas.
Hatto o'zaro faoliyat kabel orqali bog'langan ikkita tugun tizimida ham tarmoqning uzilishi va boshqa tugunning ishdan chiqishini aniq ajratib bo'lmaydi. Bir uchini o'chirib qo'yish (uning ehtimolligi, albatta, tugunlar orasidagi masofaga mutanosib) ulanishning sog'lig'i sherik tugunining sog'lig'iga teng degan har qanday taxminni bekor qilish uchun etarli bo'ladi.

Ikki tugunli klasterni ishlash

Ba'zida mijoz uchinchi tugunni sotib olmaydi yoki xohlamaydi va biz muqobilni izlashga majburmiz.

Variant 1 - takroriy dissotsiatsiya usuli

Tugunning iLO yoki IPMI qurilmasi nosozlik nuqtasini ifodalaydi, chunki agar u muvaffaqiyatsiz bo'lsa, omon qolganlar tugunni xavfsiz holatga keltirish uchun undan foydalana olmaydi. 3 yoki undan ortiq tugunlardan iborat klasterda biz buni kvorumni hisoblash va apparat kuzatuvchisi (yuqorida muhokama qilinganidek, bilvosita disassotsiatsiya mexanizmi) yordamida kamaytirishimiz mumkin. Ikki tugun bo'lsa, biz tarmoq quvvat taqsimlash birliklaridan (PDU) foydalanishimiz kerak.

Muvaffaqiyatsizlikdan so'ng, omon qolgan birinchi navbatda asosiy disassotsiatsiya qurilmasi (o'rnatilgan iLO yoki IPMI) bilan bog'lanishga harakat qiladi. Agar bu muvaffaqiyatli bo'lsa, tiklanish odatdagidek davom etadi. Faqat iLO/IPMI qurilmasi ishlamay qolsa, PDUga kirish mumkin; agar kirish muvaffaqiyatli bo'lsa, tiklash davom etishi mumkin.

PDU ni klaster trafigidan boshqa tarmoqqa joylashtirganingizga ishonch hosil qiling, aks holda bitta tarmoq nosozligi ikkala disassotsiatsiya qurilmalariga kirishni bloklaydi va xizmatlarni tiklashni bloklaydi.

Bu erda siz so'rashingiz mumkin - PDU bitta nosozlik nuqtasimi? Bunga javob, albatta, shunday.

Agar bu xavf siz uchun muhim bo'lsa, siz yolg'iz emassiz: ikkala tugunni ikkita PDUga ulang va klasterlash dasturiga tugunlarni yoqish va o'chirishda ikkalasidan ham foydalanishni ayting. Agar bitta PDU o'lib qolsa, klaster faol bo'lib qoladi va qayta tiklashni bloklash uchun boshqa PDU yoki IPMI qurilmasining ikkinchi nosozligi talab qilinadi.

Variant 2 - Arbitrni qo'shish

Ba'zi stsenariylarda, takroriy disassotsiatsiya usuli texnik jihatdan mumkin bo'lsa-da, bu siyosiy jihatdan qiyin. Ko'pgina kompaniyalar ma'murlar va dastur egalari o'rtasida biroz bo'linishni yaxshi ko'radilar va xavfsizlikka e'tibor beradigan tarmoq ma'murlari har doim ham PDU kirish sozlamalarini hech kim bilan baham ko'rishni xohlamaydilar.

Bunday holda, tavsiya etilgan muqobil kvorum hisobini to'ldirishi mumkin bo'lgan neytral uchinchi tomonni yaratishdir.

Muvaffaqiyatsiz bo'lgan taqdirda, xizmatlarni tiklash uchun tugun o'z tengdoshi yoki hakamning efir to'lqinlarini ko'ra olishi kerak. Agar ikkala tugun ham hakamni ko'rsa, lekin bir-birini ko'ra olmasa, hakam o'chirish funksiyasini ham o'z ichiga oladi.

Ushbu parametrni bilvosita ajratish usuli bilan birgalikda qo'llash kerak, masalan, apparat kuzatuv taymeri, agar u o'z tengdoshi va hakamlik tuguniga ulanishni yo'qotsa, mashinani o'ldirish uchun tuzilgan. Shunday qilib, omon qolgan odam apparat nazorati taymerining muddati tugagandan so'ng, uning tengdosh tugunlari xavfsiz holatda bo'ladi, deb taxmin qilish mumkin.

Arbitr va uchinchi tugun o'rtasidagi amaliy farq shundan iboratki, hakam ishlash uchun ancha kam resurslarni talab qiladi va bir nechta klasterga xizmat qilishi mumkin.

Variant 3 - Inson omili

Yakuniy yondashuv, omon qolganlar allaqachon ishlayotgan xizmatlarni ishga tushirishda davom etishlari, lekin muammo o'z-o'zidan hal bo'lmaguncha (tarmoqni tiklash, tugunni qayta ishga tushirish) yoki boshqa tomonning o'lganligini qo'lda tasdiqlash uchun javobgarlikni o'z zimmasiga olguncha yangilarini boshlamasliklari kerak.

Bonus varianti

Uchinchi tugunni qo'shishingiz mumkinligini aytdimmi?

Ikki tayanch

Bahs uchun keling, sizni uchinchi tugunning afzalliklariga ishontirdim deb o'ylaylik, endi tugunlarning jismoniy joylashishini ko'rib chiqishimiz kerak. Agar ular bir xil tokchada joylashgan bo'lsa (va quvvatlansa), bu ham SPoFni tashkil qiladi va ikkinchi rafni qo'shish orqali hal qilib bo'lmaydi.

Agar bu hayratlanarli bo'lsa, ikkita tugunli raft ishlamay qolsa nima bo'lishini va omon qolgan tugun bu va tarmoq ishdan chiqishini qanday farqlashini ko'rib chiqing.

Qisqa javob shundaki, bu mumkin emas va biz yana ikkita tugunli ishdagi barcha muammolar bilan shug'ullanamiz. Yoki omon qolgan:

  • kvorumni e'tiborsiz qoldiradi va tarmoq uzilishlari paytida tiklashni noto'g'ri boshlashga urinadi (dissosiatsiyani yakunlash qobiliyati boshqa voqea va PDU ishtirok etadimi va ular quvvatni har qanday raf bilan taqsimlaydimi yoki yo'qligiga bog'liq) yoki
  • kvorumni hurmat qiladi va tengdosh tugun ishlamay qolganda o'zini muddatidan oldin uzib qo'yadi

Har qanday holatda, ikkita raf bittadan yaxshiroq emas va tugunlar mustaqil quvvat manbalarini olishlari yoki uchta (yoki qancha tugunlar mavjudligiga qarab) taqsimlanishi kerak.

Ikkita ma'lumot markazlari

Shu nuqtada, endi xavf-xatarni yoqtirmaydigan o'quvchilar falokatni tiklash haqida o'ylashlari mumkin. Asteroid bir xil ma'lumotlar markaziga uch xil tokchalar bo'ylab tarqalgan uchta tugunimiz bilan urilsa nima bo'ladi? Shubhasiz, yomon narsalar, lekin sizning ehtiyojlaringizga qarab, ikkinchi ma'lumot markazini qo'shish etarli bo'lmasligi mumkin.

Agar to'g'ri bajarilgan bo'lsa, ikkinchi ma'lumot markazi sizga (va oqilona) xizmatlaringiz va ularning ma'lumotlarining yangilangan va izchil nusxasini taqdim etadi. Biroq, ikkita tugunli, ikkita rafli stsenariylarda bo'lgani kabi, tizimda maksimal mavjudlikni ta'minlash va buzilishning (yoki ma'lumotlar to'plamining nomuvofiqligini) oldini olish uchun etarli ma'lumot yo'q. Hatto uchta tugun (yoki raf) bo'lsa ham, ularni faqat ikkita ma'lumot markazlari bo'ylab tarqatish tizimni ikkala tomon ham aloqa qila olmaydigan voqea sodir bo'lgan taqdirda (hozir ancha kattaroq) ishonchli qaror qabul qila olmaydi.

Bu ikkilamchi ma'lumotlar markazi yechimi hech qachon mos kelmaydi degani emas. Kompaniyalar ko'pincha zahiraviy ma'lumotlar markaziga o'tish uchun favqulodda qadam qo'yishdan oldin odam xabardor bo'lishini xohlaydi. Shuni yodda tutingki, agar siz uzilishni avtomatlashtirmoqchi bo'lsangiz, mantiqiy bo'lishi uchun sizga uchinchi ma'lumot markazi kerak bo'ladi (to'g'ridan-to'g'ri yoki hakam orqali) yoki siz butun ma'lumotlarni ishonchli tarzda o'chirish yo'lini topasiz. markaz.

Manba: www.habr.com

a Izoh qo'shish