Openstack-da yuklarni muvozanatlash (2-qism)

Π’ oxirgi maqola biz Watcher-dan foydalanishga urinishlarimiz haqida gaplashdik va sinov hisobotini taqdim etdik. Biz vaqti-vaqti bilan yirik korxona yoki operator bulutining muvozanatlash va boshqa muhim funktsiyalari uchun bunday sinovlarni o'tkazamiz.

Muammoni hal qilishning yuqori murakkabligi loyihamizni tavsiflash uchun bir nechta maqolalarni talab qilishi mumkin. Bugun biz bulutdagi virtual mashinalarni muvozanatlashga bag'ishlangan seriyadagi ikkinchi maqolani nashr etmoqdamiz.

Ba'zi terminologiya

VmWare kompaniyasi o'zlari ishlab chiqqan va taklif qilgan virtualizatsiya muhiti yukini muvozanatlash uchun DRS (Distributed Resource Scheduler) yordam dasturini taqdim etdi.

U yozgan searchvmware.techtarget.com/definition/VMware-DRS
β€œVMware DRS (Distributed Resource Scheduler) – virtual muhitda mavjud resurslar bilan hisoblash yuklarini muvozanatlashtiradigan yordamchi dastur. Yordamchi dastur VMware Infrastructure deb nomlangan virtualizatsiya to'plamining bir qismidir.

VMware DRS yordamida foydalanuvchilar virtual mashinalar (VM) o'rtasida jismoniy resurslarni taqsimlash qoidalarini belgilaydilar. Yordamchi dastur qo'lda yoki avtomatik boshqarish uchun sozlanishi mumkin. VMware resurs pullarini osongina qo'shish, olib tashlash yoki qayta tashkil qilish mumkin. Agar so'ralsa, resurs hovuzlari turli biznes bo'linmalari o'rtasida ajratilishi mumkin. Agar bir yoki bir nechta virtual mashinalardagi ish yuki keskin o'zgarsa, VMware DRS virtual mashinalarni jismoniy serverlar bo'ylab qayta taqsimlaydi. Agar umumiy ish yuki kamaysa, ba'zi jismoniy serverlar vaqtincha oflayn rejimga o'tkazilishi va ish yuki birlashtirilishi mumkin."

Nima uchun muvozanat kerak?


Bizning fikrimizcha, DRS bulutli xususiyatga ega bo'lishi kerak, ammo bu DRS har doim va hamma joyda ishlatilishi kerak degani emas. Bulutning maqsadi va ehtiyojlariga qarab, DRS va muvozanatlash usullari uchun turli talablar bo'lishi mumkin. Balanslash umuman kerak bo'lmagan holatlar bo'lishi mumkin. Yoki hatto zararli.

DRS qayerda va qaysi mijozlar uchun kerakligini yaxshiroq tushunish uchun ularning maqsad va vazifalarini ko'rib chiqaylik. Bulutlar umumiy va shaxsiyga bo'linishi mumkin. Mana bu bulutlar va mijozlar maqsadlari o'rtasidagi asosiy farqlar.

Shaxsiy bulutlar / Katta korporativ mijozlar
Umumiy bulutlar / O'rta va kichik biznes, odamlar

Operatorning asosiy mezoni va maqsadlari
Ishonchli xizmat yoki mahsulotni taqdim etish
Raqobatbardosh bozorda kurashda xizmatlar narxini pasaytirish

Xizmat talablari
Barcha darajalarda va barcha tizim elementlarida ishonchlilik

Kafolatlangan ishlash

Virtual mashinalarni bir nechta toifalarga ajrating 

Axborot va jismoniy ma'lumotlar xavfsizligi

SLA va XNUMX/XNUMX qo'llab-quvvatlash
Xizmatni olishning maksimal qulayligi

Nisbatan oddiy xizmatlar

Ma'lumotlar uchun javobgarlik mijozga yuklanadi

VM ustuvorligi talab qilinmaydi

Standart xizmatlar darajasida axborot xavfsizligi, mijozning javobgarligi

Xatolar bo'lishi mumkin

SLA yo'q, sifat kafolatlanmagan

Elektron pochta orqali yordam

Zaxiralash shart emas

Mijoz xususiyatlari
Ilovalarning juda keng doirasi.

Kompaniyada meros bo'lib qolgan eski ilovalar.

Har bir mijoz uchun murakkab maxsus arxitektura.

Aloqa qoidalari.

Dasturiy ta'minot 7x24 rejimida to'xtamasdan ishlaydi. 

Tezkor zahiralash vositalari.

Mijozlarning taxminiy tsiklik yuki.
Odatdagi ilovalar - tarmoq balansi, Apache, WEB, VPN, SQL

Ilova bir muddat to'xtab qolishi mumkin

VM-larni bulutda o'zboshimchalik bilan taqsimlash imkonini beradi

Mijozning zaxira nusxasi

Ko'p sonli mijozlar bilan bashorat qilinadigan o'rtacha statistik yuk.

Arxitekturaga ta'siri
Geoklasterlash

Markazlashtirilgan yoki taqsimlangan saqlash

Zaxiralangan IBS
Hisoblash tugunlarida mahalliy ma'lumotlarni saqlash

Maqsadlarni muvozanatlash
Bir tekis yuk taqsimoti

Ilovaning maksimal sezgirligi 

Balanslash uchun minimal kechikish vaqti

Faqat aniq kerak bo'lganda muvozanatlash

Profilaktik ta'mirlash uchun ba'zi jihozlarni olib kelish
Xizmat va operator xarajatlarini kamaytirish 

Kam yuklanganda ba'zi resurslarni o'chirib qo'yish

Energiyani tejash

Xodimlar xarajatlarini kamaytirish

Biz o'zimiz uchun quyidagi xulosalar chiqaramiz:

Shaxsiy bulutlar uchunYirik korporativ mijozlarga taqdim etilgan DRS quyidagi cheklovlarni hisobga olgan holda ishlatilishi mumkin:

  • balanslashda axborot xavfsizligi va yaqinlik qoidalarini hisobga olish;
  • avariya yuz berganda zaxirada yetarli resurslar mavjudligi;
  • virtual mashina ma'lumotlari markazlashtirilgan yoki taqsimlangan saqlash tizimida joylashgan;
  • vaqt o'tishi bilan hayratlanarli boshqaruv, zaxiralash va muvozanatlash tartib-qoidalari;
  • faqat mijoz xostlar yig'indisida balanslash;
  • faqat kuchli nomutanosiblik mavjud bo'lganda muvozanatlash, eng samarali va xavfsiz VM migratsiyalari (axir, migratsiya muvaffaqiyatsiz bo'lishi mumkin);
  • nisbatan "sokin" virtual mashinalarni muvozanatlash ("shovqinli" virtual mashinalarning ko'chishi juda uzoq vaqt talab qilishi mumkin);
  • "xarajat" ni hisobga olgan holda muvozanatlash - saqlash tizimi va tarmoqdagi yuk (yirik mijozlar uchun moslashtirilgan arxitektura bilan);
  • har bir VMning individual xulq-atvor xususiyatlarini hisobga olgan holda muvozanatlash;
  • Balanslash tarjixon ishlamaydigan soatlarda (tungi, dam olish kunlari, bayramlar) amalga oshiriladi.

Umumiy bulutlar uchunkichik mijozlarga xizmat ko'rsatish, DRS ilg'or imkoniyatlar bilan tez-tez foydalanish mumkin:

  • axborot xavfsizligi cheklovlari va yaqinlik qoidalarining yo'qligi;
  • bulut ichida muvozanatni saqlash;
  • har qanday oqilona vaqtda muvozanatlash;
  • har qanday VMni muvozanatlash;
  • "shovqinli" virtual mashinalarni muvozanatlash (boshqalarni bezovta qilmaslik uchun);
  • virtual mashina ma'lumotlari ko'pincha mahalliy disklarda joylashgan;
  • saqlash tizimlari va tarmoqlarining o'rtacha ishlashini hisobga olgan holda (bulut arxitekturasi birlashtirilgan);
  • umumiy qoidalar va mavjud ma'lumotlar markazining xatti-harakatlari statistikasiga muvofiq muvozanatlash.

Muammoning murakkabligi

Balanslashning qiyinligi shundaki, DRS ko'p sonli noaniq omillar bilan ishlashi kerak:

  • har bir mijozning axborot tizimlari foydalanuvchilarining xatti-harakati;
  • axborot tizimi serverlarining ishlashi algoritmlari;
  • DBMS serverlarining xatti-harakatlari;
  • hisoblash resurslari, saqlash tizimlari, tarmoqqa yuk;
  • bulutli resurslar uchun kurashda serverlarning bir-biri bilan o'zaro ta'siri.

Ko'p sonli virtual dastur serverlari va ma'lumotlar bazalarining bulutli resurslarga yuklanishi vaqt o'tishi bilan yuzaga keladi, oqibatlar o'zini namoyon qilishi va oldindan aytib bo'lmaydigan vaqt davomida bir-birining ustiga chiqishi mumkin. Nisbatan oddiy jarayonlarni boshqarish uchun ham (masalan, dvigatelni, uyda suv isitish tizimini boshqarish uchun) avtomatik boshqaruv tizimlari komplekslardan foydalanishi kerak. proportsional-integral-differentsiallovchi fikr-mulohazalarga ega algoritmlar.

Openstack-da yuklarni muvozanatlash (2-qism)

Bizning vazifamiz kattalikdagi ko'p tartiblar murakkabroq va tizim foydalanuvchilarning tashqi ta'siri bo'lmasa ham, o'rtacha vaqt ichida yukni belgilangan qiymatlarga tenglashtira olmasligi xavfi mavjud.

Openstack-da yuklarni muvozanatlash (2-qism)

Bizning taraqqiyotimiz tarixi

Bu muammoni hal qilish uchun biz noldan boshlamasdan, mavjud tajribaga tayanishga qaror qildik va shu sohada tajribaga ega mutaxassislar bilan muloqot qilishni boshladik. Yaxshiyamki, muammoni tushunishimiz butunlay mos keldi.

Stend 1

Biz neyron tarmoq texnologiyasiga asoslangan tizimdan foydalandik va uning asosida resurslarimizni optimallashtirishga harakat qildik.

Ushbu bosqichning qiziqishi yangi texnologiyani sinovdan o'tkazish edi va uning ahamiyati muammoni hal qilishda nostandart yondashuvni qo'llash edi, bunda boshqa narsalar teng bo'lsa, standart yondashuvlar amalda tugaydi.

Biz tizimni ishga tushirdik va biz haqiqatan ham muvozanatlashni boshladik. Bizning bulutimiz miqyosi ishlab chiquvchilar tomonidan aytilgan optimistik natijalarni olishimizga imkon bermadi, ammo muvozanat ishlayotgani aniq edi.

Shu bilan birga, bizda juda jiddiy cheklovlar bor edi:

  • Neyron tarmoqni o'rgatish uchun virtual mashinalar haftalar yoki oylar davomida sezilarli o'zgarishlarsiz ishlashi kerak.
  • Algoritm avvalgi "tarixiy" ma'lumotlarni tahlil qilish asosida optimallashtirish uchun mo'ljallangan.
  • Neyron tarmog'ini o'qitish juda katta hajmdagi ma'lumotlar va hisoblash resurslarini talab qiladi.
  • Optimallashtirish va muvozanatlash nisbatan kamdan-kam hollarda amalga oshirilishi mumkin - har bir necha soatda bir marta, bu etarli emas.

Stend 2

Vaziyat bizni qoniqtirmagani uchun tizimni o'zgartirishga qaror qildik va buning uchun javob beramiz. asosiy savol - Biz buni kim uchun qilamiz?

Birinchisi - korporativ mijozlar uchun. Bu shuni anglatadiki, bizga faqat amalga oshirishni soddalashtiradigan korporativ cheklovlar bilan tez ishlaydigan tizim kerak.

Ikkinchi savol - "tezkor" so'zi bilan nimani tushunasiz? Qisqa bahs-munozaralar natijasida biz qisqa muddatli kuchlanish tizimni rezonansga olib kelmasligi uchun 5-10 daqiqalik javob vaqti bilan boshlashga qaror qildik.

Uchinchi savol – muvozanatli serverlar sonining qaysi hajmini tanlash kerak?
Bu muammo o'z-o'zidan hal qilindi. Odatda, mijozlar server agregatsiyalarini unchalik katta qilmaydi va bu maqolaning 30-40 servergacha yig'ishlarni cheklash bo'yicha tavsiyalariga mos keladi.

Bundan tashqari, server pulini segmentlash orqali biz muvozanatlash algoritmining vazifasini soddalashtiramiz.

To'rtinchi savol - Neyron tarmoq uzoq o'rganish jarayoni va kamdan-kam muvozanatlashuvi bilan bizga qanchalik mos keladi? Natijalarni soniyalarda olish uchun biz undan oddiyroq operatsion algoritmlar foydasiga voz kechishga qaror qildik.

Openstack-da yuklarni muvozanatlash (2-qism)

Bunday algoritmlardan foydalanadigan tizimning tavsifini va uning kamchiliklarini topish mumkin shu yerda

Biz ushbu tizimni joriy qildik va ishga tushirdik va quvonarli natijalarga erishdik - endi u muntazam ravishda bulut yukini tahlil qiladi va virtual mashinalarni ko'chirish bo'yicha tavsiyalar beradi, bu asosan to'g'ri. Hozir ham biz mavjudlarining ish sifatini yaxshilagan holda yangi virtual mashinalar uchun resurslarni 10-15% chiqarishga erishishimiz aniq.

Openstack-da yuklarni muvozanatlash (2-qism)

RAM yoki protsessorda nomutanosiblik aniqlanganda, tizim kerakli virtual mashinalarni jonli ko'chirishni amalga oshirish uchun Tionix rejalashtiruvchisiga buyruqlar beradi. Monitoring tizimidan ko'rinib turibdiki, virtual mashina bir (yuqori) dan ikkinchisiga (pastki) xostga o'tdi va yuqori xostda xotirani bo'shatdi (sariq doiralarda ta'kidlangan), mos ravishda uni pastki qismida (oq rang bilan belgilangan) egalladi. doiralar).

Endi biz amaldagi algoritmning samaradorligini aniqroq baholashga harakat qilmoqdamiz va undagi mumkin bo'lgan xatolarni topishga harakat qilmoqdamiz.

Stend 3

Buni tinchlantirish, tasdiqlangan samaradorlikni kutish va mavzuni yopish mumkin.
Ammo bizni quyidagi aniq optimallashtirish imkoniyatlari yangi bosqichga o'tkazishga majbur qilmoqda

  1. Masalan, statistika, shu yerda ΠΈ shu yerda ikki va to'rt protsessorli tizimlar bir protsessorli tizimlarga qaraganda unumdorlik jihatidan sezilarli darajada past ekanligini ko'rsatadi. Bu shuni anglatadiki, barcha foydalanuvchilar bir protsessorli tizimlarga nisbatan ko'p protsessorli tizimlarda sotib olingan CPU, RAM, SSD, LAN, FC dan sezilarli darajada kamroq mahsulot oladi.
  2. Resurs rejalashtiruvchilarning o'zlari jiddiy xatolarga ega bo'lishi mumkin, bu yerda maqolalardan biri Ushbu mavzu bo'yicha.
  3. Operativ xotira va keshni kuzatish uchun Intel va AMD tomonidan taqdim etilgan texnologiyalar virtual mashinalarning xatti-harakatlarini o'rganish va ularni "shovqinli" qo'shnilar "sokin" virtual mashinalarga xalaqit bermasligi uchun joylashtirish imkonini beradi.
  4. Parametrlar to'plamini kengaytirish (tarmoq, saqlash tizimi, virtual mashinaning ustuvorligi, migratsiya narxi, uning migratsiyaga tayyorligi).

jami

Balanslash algoritmlarini takomillashtirish bo'yicha olib borgan ishimizning natijasi aniq xulosaga keldiki, zamonaviy algoritmlardan foydalangan holda ma'lumotlar markazlari resurslarini sezilarli darajada optimallashtirishga (25-30%) erishish va shu bilan birga mijozlarga xizmat ko'rsatish sifatini oshirish mumkin.

Neyron tarmoqlarga asoslangan algoritm, shubhasiz, qiziqarli yechim, ammo uni yanada rivojlantirishni talab qiladi va mavjud cheklovlar tufayli xususiy bulutlar uchun xos bo'lgan hajmlarda bunday muammolarni hal qilish uchun mos emas. Shu bilan birga, algoritm sezilarli o'lchamdagi ommaviy bulutlarda yaxshi natijalarni ko'rsatdi.

Quyidagi maqolalarda protsessorlar, rejalashtiruvchilar va yuqori darajadagi balanslash imkoniyatlari haqida ko'proq ma'lumot beramiz.

Manba: www.habr.com

a Izoh qo'shish