Yuklarni muvozanatlash: DNS round robin apparat yuk balanslagichlari oldida. Yopishqoqlikni qanday baham ko'rish mumkin?

DNS Round Robin (DRR) arzon yuk balansini amalga oshirishga imkon beradi (tarqatish yaxshiroq atama). U cheksiz gorizontal masshtablash imkonini beradi. Gap shundaki, agar veb-serverlardan biri ishlamay qolsa, ba'zi mijozlar buzilgan IP-dan bir necha daqiqa (min TTL 300 soniya) yoki undan ko'proq vaqt davomida foydalanishda davom etadilar, hatto DNS uzilishni amalga oshirsa ham.

Hardware Load Balancer (HLB) bunday veb-server nosozliklarini shaffof tarzda boshqaradi, lekin u o'tkazish qobiliyatini cheksiz ravishda kengaytira olmaydi. Issiq zaxira ham kerak.

Yaxshi yechim HLB juftliklari guruhi oldida DRR dan foydalanishga o'xshaydi. Har bir HLB juftligi hech qachon pastga tushmaydi va shuning uchun DRR hech qachon mijozlarni ushlab turmaydi. Bundan tashqari, tarmoqli kengligi etarli bo'lmasa, siz guruhga yangi HLB juftligini qo'shishingiz mumkin.

Muammo: DRR mijozlarni HLB juftlari o'rtasida tasodifiy o'tkazadi va shuning uchun (AFAIK) seansning yopishqoqligi ishlamaydi.

Men seansning yopishqoqligini ishlatishdan qochishim mumkin edi, lekin u keshlardan yaxshiroq foydalanadi, shuning uchun men saqlamoqchi bo'lgan narsadir.

Savol: Instance o'zining (sessionid, veb-server) xaritasini boshqa misollar bilan baham ko'rishi mumkin bo'lgan HLB ilovasi mumkinmi/mavjudmi?

Agar bu mumkin bo'lsa, mijoz so'rovni yo'naltirgan HLB tomonidan mustaqil ravishda bir xil veb-serverga yo'naltiriladi.

Oldindan rahmat.


person Valentino Miazzo    schedule 24.09.2009    source manba


Javoblar (4)


Zamonaviy yuk balanslagichlari juda yuqori o'tkazish qobiliyatiga (gigabit) ega. Agar siz huuuuuuuuuuge saytida ishlamasangiz (masalan, google), tarmoqli kengligi qo'shish sizga yangi yuk balanslagichlariga muhtoj bo'lmaydi, ayniqsa ko'pchilik yirik saytlar o'tkazish qobiliyatining katta qismini Akamai kabi CDN-larga (Content Delivery Networks) yuklaydi. Agar siz saytingiz orqali CDN-ga ega bo'lmagan bir gigabit ma'lumotni o'tkazayotgan bo'lsangiz va global yukni muvozanatlash strategiyasiga ega bo'lmasangiz, sizda keshga yaqinlikdan ko'ra kattaroq muammolar mavjud. :-)

O'tkazish qobiliyati chegaralari o'rniga, saytlar butun dunyo bo'ylab tarqalgan foydalanuvchilarning ularga eng yaqin server bilan gaplashishini ta'minlash uchun alohida ma'lumotlar markazlarida serverlarni geo-tarqatish uchun qo'shimcha LB juftlarini qo'shishga moyildirlar.

Oxirgi stsenariy uchun yuk balanslash kompaniyalari geo-joylashuv echimlarini taklif qiladilar, ular (hech bo'lmaganda bir necha yil oldin, men ushbu narsalarni kuzatib borgan paytimgacha) mijozning IP-larini ko'rib chiqadigan va yuk balansi juftlariga hal qilingan maxsus DNS ilovalariga asoslangan edi. Mijozga "eng yaqin" (tarmoq topologiyasi yoki ishlashi bo'yicha) virtual IP manzili. Hozirgi kunda Akamai kabi CDNlar global yuk balanslash xizmatlarini ham taklif qiladi (masalan, http://www.akamai.com/html/technology/products/gtm.html). Amazonning EC2 xostingi u yerda joylashgan saytlar uchun ham ushbu xususiyatni qo‘llab-quvvatlaydi (qarang: http://aws.amazon.com/elasticloadbalancing/).

Foydalanuvchilar bir seans davomida qit'alar bo'ylab harakatlanmasliklari sababli, sizning juftliklaringiz alohida ma'lumotlar markazlarida joylashgan bo'lsa, siz avtomatik ravishda geografik yuk balansi bilan yaqinlik (aka "yopishqoqlik") olasiz.

Yodda tutingki, geo-joylashuv haqiqatan ham qiyin, chunki orqa tarafdagi oʻzaro maʼlumotlar markazlari tarmogʻingiz botqoqlanib qolmasligi uchun maʼlumotlaringizni geo-joylashuvini ham aniqlashingiz kerak.

Menimcha, F5 va boshqa sotuvchilar ham bir xil maqsadlarga erishadigan yagona ma'lumotlar markazi echimlarini taklif qilishadi, agar siz haqiqatan ham shunday bo'lsangiz Sizning ma'lumotlar markazingiz ichidagi tarmoq infratuzilmasining (marshrutizatorlar va boshqalar) yagona nosozlik nuqtasi haqida tashvishlanasiz. Ammo marshrutizator va kalit sotuvchilari ushbu muammoni hal qilish uchun ko'proq mos bo'lishi mumkin bo'lgan yuqori darajadagi echimlarga ega.

Net-net, agar men sizning o'rningizda bo'lsam, bir nechta juft yuk balanslagichlari haqida qayg'urmagan bo'lardim. Bitta juftlikni oling va agar yoqish uchun ko‘p pulingiz va muhandislik vaqtingiz bo‘lmasa, o‘z ma’lumotlar markazi tarmog‘ini to‘g‘ri ishlashini yaxshi biladigan hoster bilan hamkorlik qiling.

Ya'ni, agar keshga yaqinlik ilovangiz uchun shunchalik katta bo'lsaki, siz bir nechta yuk balanslagichlar juftligi uchun katta $$$ ajratish haqida o'ylayotgan bo'lsangiz, ilova arxitekturasini o'zgartirishni (masalan, tashqi keshlash klasteridan foydalanish) ko'rib chiqishga arziydi. . memcached (linux uchun) kabi echimlar ushbu stsenariy uchun mo'ljallangan. Microsoft-da, shuningdek, "Tezlik" deb nomlangan bir tasma mavjud.

Qanday bo'lmasin, bu foydali ma'lumot deb umid qilaman - men bu sohada chuqur ishtirok etganimga ma'lum vaqt bo'ldi (men yirik dasturiy ta'minot sotuvchisi uchun dastur yukini muvozanatlash mahsulotini ishlab chiqqan jamoaning bir qismi bo'lganman), shuning uchun siz ikki baravar oshirishni xohlashingiz mumkin. -F5 va boshqa LB sotuvchilaridan internetni tortib olishingiz mumkin bo'lgan faktlar bilan yuqoridagi taxminlarimni tekshiring.

person Justin Grant    schedule 25.09.2009

Yaxshi, bu qadimiy savol, men uni hozirgina Google qidiruvi orqali topdim. Ammo kelajakdagi tashrif buyuruvchilar uchun bu erda qo'shimcha tushuntirishlar mavjud:

Muammo: [DNS Round Robin] mijozlarni HLB juftlari o'rtasida tasodifiy ko'chiradi va shuning uchun (AFAIK) seansning yopishqoqligi ishlamaydi.

Bu asos aniq emasligini ayta olaman. Hech kim eski nima ekanligini bilmaydi. brauzerlar buni amalga oshirishi mumkin, lekin, ehtimol, har bir brauzer oynasi ochiq ekan, bir xil IP manzilda qoladi. Yangi operatsion tizimlar, ehtimol "eng uzun prefiksga mos kelish" qoidasiga rioya qiling. Shunday qilib, bir yuk muvozanatlashtiruvchi IP-dan ikkinchisiga tasodifiy o'tish uchun juda ko'p "chaplash" bo'lmasligi kerak.

Agar siz hali ham foydalanuvchilarning yangi yuk balansi juftligiga tasodifiy qayta tayinlanishidan xavotirda bo'lsangiz klassik L3/4 va L7 yuk balansini sozlashning kichik modifikatsiyasi yordam berishi mumkin:

  • L4 yuk balanslagichlari tomonidan boshqariladigan virtual yuqori mavjud IP-larga o'tadigan DNS Round Robin yozuvlarini nashr eting.
  • L4 yuk balanslagichlarini kelib chiqqan IP manzilga asoslangan L7 yuk balanslagichlari juftligiga yo'naltiring, ya'ni oxirgi foydalanuvchilarni har doim bir xil L7 yuk balanslagichiga yo'naltirish uchun oxirgi foydalanuvchi IP-ga asoslangan izchil xeshlashdan foydalaning.
  • L7 yuk balanslagichlaringiz xohlaganingizcha "yopishqoq seanslar" dan foydalansin.

Aslini olganda, bu Uilli Tarro (HAProxy yaratuvchisi) yillar oldin yozgan narsaning kichik o'zgarishi.

person Jesper M    schedule 06.02.2011

narsalarni to'g'ri nuqtai nazarga qo'yganingiz uchun tashakkur. Men sizga qo'shilaman.

Men bir oz o'qidim va topdim:

bu kabi juda yuqori darajadagi LB kengayishi mumkin:

  • Bir soniyada 200 000 SSL qo'l siqish
  • Bir soniyada 1 million TCP ulanishi
  • Bir soniyada 3,2 million HTTP so'rovi
  • 36 Gbps TCP yoki HTTP o'tkazish qobiliyati

Shuning uchun, siz haqsiz, LB qiyinchilikka aylanishi mumkin emas.

Baribir men bu (eski) maqolani topdim http://www.tenereillo.com/GSLBPageOfShame.htm bu erda geo-faqat DNS mavjudligi bilan bog'liq muammolarni keltirib chiqarishi tushuntirilgan.

Kimdir bu maqolaga izoh bera oladimi?

rahmat,

Valentino

person Valentino Miazzo    schedule 29.09.2009
comment
Pastki savol server xatosiga ko'chirildi .com/questions/69864/ - person Valentino Miazzo; 30.09.2009

Xo'sh, nega buni oddiy tutmang va DNS serveridan kelib chiqishi IP manziliga asoslangan ma'lum IP-manzil (yoki manzillar) berishi kerak (ya'ni, oxirgi foydalanuvchilarga har doim bir xil IP-manzil(lar)ni berish uchun oxirgi foydalanuvchi IP-ga asoslangan doimiy xeshdan foydalaning. ) ?

Bu faqat oddiy va arzon yuk taqsimlash mexanizmini ta'minlashini bilaman.

Men buni qidiryapman, lekin buni amalga oshiradigan DNS serverini topa olmadim (garchi Bind ko'rinishlari bilan ba'zi imkoniyatlarga ega).

person SjorsH    schedule 29.04.2014
comment
Buni amalga oshiradigan DNS-server yo'qligiga to'g'ri kelmaydi, lekin siz buni oddiy deb ataysiz. :) - person Tim Lovell-Smith; 10.07.2014