Slodzes lÄ«dzsvaroÅ”ana programmā Openstack (2. daļa)

Š’ pēdējais raksts mēs runājām par mÅ«su mēģinājumiem izmantot Watcher un iesniedzām testa ziņojumu. Mēs periodiski veicam Ŕādus testus liela uzņēmuma vai operatora mākoņa balansÄ“Å”anai un citām kritiskām funkcijām.

Tā kā risināmā problēma ir ļoti sarežģīta, var bÅ«t nepiecieÅ”ami vairāki raksti, lai aprakstÄ«tu mÅ«su projektu. Å odien mēs publicējam sērijas otro rakstu, kas veltÄ«ts virtuālo maŔīnu lÄ«dzsvaroÅ”anai mākonÄ«.

Kaut kāda terminoloģija

Uzņēmums VmWare ieviesa utilītu DRS (Distributed Resource Scheduler), lai līdzsvarotu izstrādātās un piedāvātās virtualizācijas vides slodzi.

Kā raksta searchvmware.techtarget.com/definition/VMware-DRS
ā€œVMware DRS (Distributed Resource Scheduler) ir utilÄ«ta, kas lÄ«dzsvaro skaitļoÅ”anas slodzi ar pieejamajiem resursiem virtuālajā vidē. LietderÄ«ba ir daļa no virtualizācijas komplekta ar nosaukumu VMware Infrastructure.

Izmantojot VMware DRS, lietotāji definē noteikumus fizisko resursu sadalei starp virtuālajām maŔīnām (VM). LietderÄ«bu var konfigurēt manuālai vai automātiskai vadÄ«bai. VMware resursu kopas var viegli pievienot, noņemt vai reorganizēt. Ja vēlaties, resursu kopumus var izolēt starp dažādām biznesa vienÄ«bām. Ja darba slodze vienā vai vairākās virtuālajās maŔīnās krasi mainās, VMware DRS pārdala virtuālās maŔīnas pa fiziskajiem serveriem. Ja kopējā darba slodze samazinās, daži fiziskie serveri var tikt Ä«slaicÄ«gi izslēgti un darba slodze tiks konsolidēta.

Kāpēc ir nepiecieÅ”ama lÄ«dzsvaroÅ”ana?


MÅ«suprāt, DRS ir obligāta mākoņa funkcija, lai gan tas nenozÄ«mē, ka DRS ir jāizmanto vienmēr un visur. AtkarÄ«bā no mākoņa mērÄ·a un vajadzÄ«bām var bÅ«t atŔķirÄ«gas prasÄ«bas DRS un balansÄ“Å”anas metodēm. Var bÅ«t situācijas, kad balansÄ“Å”ana nemaz nav nepiecieÅ”ama. Vai pat kaitÄ«gs.

Lai labāk saprastu, kur un kuriem klientiem ir nepiecieÅ”ams DRS, ņemsim vērā viņu mērÄ·us un uzdevumus. Mākoņus var iedalÄ«t publiskajos un privātajos. Å eit ir galvenās atŔķirÄ«bas starp Å”iem mākoņiem un klientu mērÄ·iem.

Privātie mākoņi / Lielo uzņēmumu klienti
Publiskie mākoņi / Vidējie un mazie uzņēmumi, cilvēki

Operatora galvenais kritērijs un mērķi
Uzticama pakalpojuma vai produkta nodroŔināŔana
Pakalpojumu izmaksu samazināŔana cīņā konkurētspējÄ«gā tirgÅ«

Servisa prasības
Uzticamība visos līmeņos un visos sistēmas elementos

Garantēta veiktspēja

Prioritāti pieŔķiriet virtuālajām maŔīnām vairākās kategorijās 

Informācijas un fiziskā datu droŔība

SLA un XNUMX/XNUMX atbalsts
Maksimāla pakalpojuma saņemÅ”anas vienkārŔība

SalīdzinoŔi vienkārŔi pakalpojumi

Atbildība par datiem gulstas uz klientu

Nav nepiecieŔama VM prioritātes noteikŔana

Informācijas droŔība standarta pakalpojumu līmenī, atbildība uz klientu

Var būt kļūmes

Nav SLA, kvalitāte netiek garantēta

E-pasta atbalsts

DublēŔana nav nepiecieŔama

Klientu funkcijas
Ļoti plaŔs pielietojumu klāsts.

Uzņēmumā mantotās lietojumprogrammas.

Sarežģītas pielāgotas arhitektūras katram klientam.

Radniecības noteikumi.

ProgrammatÅ«ra darbojas bez apstāŔanās 7x24 režīmā. 

DublÄ“Å”anas rÄ«ki lidojumā.

Paredzama cikliskā klientu slodze.
Tipiskas lietojumprogrammas ā€“ tÄ«kla balansÄ“Å”ana, Apache, WEB, VPN, SQL

Lietojumprogramma var kādu laiku apturēt

Ļauj patvaļīgi izplatīt virtuālās maŔīnas mākonī

Klienta dublējums

Paredzama statistiski vidējā slodze ar lielu klientu skaitu.

Ietekme uz arhitektūru
Ģeoklasterizācija

Centralizēta vai izplatīta krātuve

Rezervēts IBS
Vietējā datu glabāŔana skaitļoÅ”anas mezglos

MērÄ·u lÄ«dzsvaroÅ”ana
Vienmērīgs slodzes sadalījums

Maksimālā lietojumprogrammas atsaucÄ«ba 

Minimālais aizkaves laiks balansÄ“Å”anai

Balansējiet tikai tad, kad tas ir nepārprotami nepiecieÅ”ams

Dažu iekārtu izveŔana profilaktiskajai apkopei
Samazināt pakalpojumu izmaksas un operatora izmaksas 

Dažu resursu atspējoÅ”ana zemas slodzes gadÄ«jumā

Enerģijas taupīŔana

Personāla izmaksu samazināŔana

Mēs paÅ”i izdarām Ŕādus secinājumus:

Privātiem mākoņiemnodroÅ”ināta lieliem korporatÄ«vajiem klientiem, DRS var izmantot, ievērojot Ŕādus ierobežojumus:

  • informācijas droŔība un afinitātes noteikumu ievēroÅ”ana balansÄ“Å”anas laikā;
  • pietiekamu resursu pieejamÄ«ba rezervē avārijas gadÄ«jumā;
  • virtuālās maŔīnas dati atrodas centralizētā vai izkliedētā krātuves sistēmā;
  • satriecoÅ”as administrÄ“Å”anas, dublÄ“Å”anas un lÄ«dzsvaroÅ”anas procedÅ«ras laika gaitā;
  • balansÄ“Å”ana tikai klientu resursdatoru agregāta ietvaros;
  • balansÄ“Å”ana tikai tad, ja ir spēcÄ«ga nelÄ«dzsvarotÄ«ba, visefektÄ«vākās un droŔākās VM migrācijas (galu galā migrācija var neizdoties);
  • salÄ«dzinoÅ”i ā€œklusoā€ virtuālo maŔīnu lÄ«dzsvaroÅ”ana (ā€œtrokŔņainuā€ virtuālo maŔīnu migrācija var aizņemt ļoti ilgu laiku);
  • balansÄ“Å”ana, ņemot vērā ā€œizmaksasā€ - krātuves sistēmas un tÄ«kla slodzi (ar pielāgotu arhitektÅ«ru lieliem klientiem);
  • lÄ«dzsvaroÅ”ana, ņemot vērā katras VM individuālās uzvedÄ«bas Ä«paŔības;
  • BalansÄ“Å”anu vēlams veikt ārpus darba laika (naktÄ«s, brÄ«vdienās, brÄ«vdienās).

Publiskajiem mākoņiemSniedzot pakalpojumus mazajiem klientiem, DRS var izmantot daudz biežāk ar uzlabotām iespējām:

  • informācijas droŔības ierobežojumu un radniecÄ«bas noteikumu trÅ«kums;
  • balansÄ“Å”ana mākonÄ«;
  • balansÄ“Å”ana jebkurā saprātÄ«gā laikā;
  • balansējot jebkuru VM;
  • "trokŔņaino" virtuālo maŔīnu balansÄ“Å”ana (lai netraucētu citiem);
  • virtuālās maŔīnas dati bieži atrodas vietējos diskos;
  • ņemot vērā uzglabāŔanas sistēmu un tÄ«klu vidējo veiktspēju (mākoņu arhitektÅ«ra ir vienota);
  • balansÄ“Å”ana saskaņā ar vispārÄ«giem noteikumiem un pieejamo datu centra uzvedÄ«bas statistiku.

Problēmas sarežģītība

LīdzsvaroŔanas grūtības rada tas, ka DRS jādarbojas ar lielu skaitu nenoteiktu faktoru:

  • katras klienta informācijas sistēmas lietotāju uzvedÄ«ba;
  • informācijas sistēmu serveru darbÄ«bas algoritmi;
  • DBVS serveru uzvedÄ«ba;
  • slodze uz skaitļoÅ”anas resursiem, uzglabāŔanas sistēmām, tÄ«klu;
  • serveru savstarpējā mijiedarbÄ«ba cīņā par mākoņa resursiem.

Liela skaita virtuālo aplikāciju serveru un datu bāzu slodze uz mākoņu resursiem notiek laika gaitā, sekas var izpausties un neparedzamā laika periodā pārklāties viena ar otru ar neparedzamu efektu. Pat lai kontrolētu salÄ«dzinoÅ”i vienkārÅ”us procesus (piemēram, lai vadÄ«tu dzinēju, Å«dens sildÄ«Å”anas sistēmu mājās), automātiskajām vadÄ«bas sistēmām ir jāizmanto sarežģītas proporcionāli-integrāli-diferencējoÅ”s algoritmi ar atgriezenisko saiti.

Slodzes lÄ«dzsvaroÅ”ana programmā Openstack (2. daļa)

Mūsu uzdevums ir daudzkārt sarežģītāks, un pastāv risks, ka sistēma nespēs saprātīgā laikā līdzsvarot slodzi līdz noteiktajām vērtībām, pat ja nav ārējas ietekmes no lietotājiem.

Slodzes lÄ«dzsvaroÅ”ana programmā Openstack (2. daļa)

Mūsu attīstības vēsture

Lai atrisinātu Å”o problēmu, mēs nolēmām nesākt no nulles, bet balstÄ«ties uz esoÅ”o pieredzi un sākām sazināties ar speciālistiem ar pieredzi Å”ajā jomā. Par laimi mÅ«su izpratne par problēmu pilnÄ«bā sakrita.

Posms 1

Mēs izmantojām sistēmu, kuras pamatā ir neironu tīklu tehnoloģija, un mēģinājām optimizēt savus resursus, pamatojoties uz to.

Å Ä« posma interese bija par jaunas tehnoloÄ£ijas izmēģināŔanu, un tās nozÄ«me bija nestandarta pieejas pielietoÅ”anā problēmas risināŔanā, kur standarta pieejas bija praktiski izsmēluŔās.

Mēs iedarbinājām sistēmu, un mēs patieŔām sākām lÄ«dzsvarot. MÅ«su mākoņa mērogs neļāva mums iegÅ«t izstrādātāju norādÄ«tos optimistiskos rezultātus, taču bija skaidrs, ka balansÄ“Å”ana darbojas.

Tajā paŔā laikā mums bija diezgan nopietni ierobežojumi:

  • Lai apmācÄ«tu neironu tÄ«klu, virtuālajām maŔīnām jādarbojas bez bÅ«tiskām izmaiņām nedēļām vai mēneÅ”iem.
  • Algoritms ir paredzēts optimizācijai, pamatojoties uz agrāko ā€œvēsturiskoā€ datu analÄ«zi.
  • Neironu tÄ«kla apmācÄ«bai ir nepiecieÅ”ams diezgan liels datu un skaitļoÅ”anas resursu apjoms.
  • Optimizāciju un balansÄ“Å”anu var veikt salÄ«dzinoÅ”i reti ā€“ reizi pāris stundās, kas viennozÄ«mÄ«gi ir par maz.

Posms 2

Tā kā mēs nebijām apmierināti ar lietu stāvokli, mēs nolēmām modificēt sistēmu un, lai to izdarītu, atbildētu galvenais jautājums - kam mēs to taisām?

Pirmkārt ā€“ korporatÄ«vajiem klientiem. Tas nozÄ«mē, ka mums ir vajadzÄ«ga sistēma, kas darbojas ātri, ar tiem korporatÄ«vajiem ierobežojumiem, kas tikai vienkārÅ”o ievieÅ”anu.

Otrais jautājums - Ko jÅ«s domājat ar vārdu "tÅ«lÄ«t"? ÄŖsu debaÅ”u rezultātā nolēmām, ka varētu sākt ar reakcijas laiku 5ā€“10 minÅ«tes, lai Ä«slaicÄ«gi pārspriegumi neievestu sistēmu rezonansē.

TreÅ”ais jautājums ā€“ kādu izmēru no sabalansētā serveru skaita izvēlēties?
Å Ä« problēma atrisinājās pati par sevi. Parasti klienti nepadara serveru apkopojumus ļoti lielus, un tas atbilst rakstā sniegtajiem ieteikumiem ierobežot apkopojumus lÄ«dz 30ā€“40 serveriem.

Turklāt, segmentējot serveru pÅ«lu, mēs vienkārÅ”ojam balansÄ“Å”anas algoritma uzdevumu.

Ceturtais jautājums ā€“ cik mums piemērots ir neironu tÄ«kls ar savu ilgo mācÄ«Å”anās procesu un reto balansÄ“Å”anu? Mēs nolēmām no tā atteikties, izvēloties vienkārŔākus darbÄ«bas algoritmus, lai iegÅ«tu rezultātus dažu sekunžu laikā.

Slodzes lÄ«dzsvaroÅ”ana programmā Openstack (2. daļa)

Var atrast aprakstu sistēmai, kas izmanto Ŕādus algoritmus, un tās trÅ«kumus Å”eit

Mēs ieviesām un ieviesām Å”o sistēmu un saņēmām iepriecinoÅ”us rezultātus ā€“ tagad tā regulāri analizē mākoņu slodzi un sniedz ieteikumus virtuālo maŔīnu pārvietoÅ”anai, kas lielākoties ir pareizi. Jau Å”obrÄ«d ir skaidrs, ka varam panākt 10-15% resursu atbrÄ«voÅ”anu jaunām virtuālajām maŔīnām, vienlaikus uzlabojot esoÅ”o darba kvalitāti.

Slodzes lÄ«dzsvaroÅ”ana programmā Openstack (2. daļa)

Kad tiek konstatēta RAM vai CPU nelÄ«dzsvarotÄ«ba, sistēma izdod komandas Tionix plānotājam, lai veiktu nepiecieÅ”amo virtuālo maŔīnu tieÅ”o migrāciju. Kā redzams no uzraudzÄ«bas sistēmas, virtuālā maŔīna pārcēlās no viena (augŔējā) uz otru (apakŔējo) resursdatora un atbrÄ«voja atmiņu augŔējā resursdatorā (izcelts ar dzelteniem apļiem), attiecÄ«gi aizņemot to apakŔējā (izcelts baltā krāsā). apļi).

Tagad mēs cenÅ”amies precÄ«zāk novērtēt paÅ”reizējā algoritma efektivitāti un cenÅ”amies atrast tajā iespējamās kļūdas.

Posms 3

Šķiet, ka par to var nomierināties, gaidīt pierādītu efektivitāti un slēgt tēmu.
Bet mÅ«s mudina veikt jaunu posmu Ŕādas acÄ«mredzamas optimizācijas iespējas

  1. Statistika, piemēram, Å”eit Šø Å”eit parāda, ka divu un četru procesoru sistēmu veiktspēja ir ievērojami zemāka nekā viena procesora sistēmām. Tas nozÄ«mē, ka visi lietotāji saņem ievērojami mazāku izvadi no CPU, RAM, SSD, LAN, FC, kas iegādāti daudzprocesoru sistēmās, salÄ«dzinot ar viena procesora sistēmām.
  2. PaÅ”iem resursu plānotājiem var bÅ«t nopietnas kļūdas, Å”eit ir viens no rakstiem par Å”o tēmu.
  3. Intel un AMD piedāvātās tehnoloÄ£ijas operatÄ«vās atmiņas un keÅ”atmiņas uzraudzÄ«bai ļauj pētÄ«t virtuālo maŔīnu uzvedÄ«bu un izvietot tās tā, lai ā€œtrokŔņainiā€ kaimiņi netraucētu ā€œklusajāmā€ virtuālajām maŔīnām.
  4. Parametru kopas paplaÅ”ināŔana (tÄ«kls, krātuves sistēma, virtuālās maŔīnas prioritāte, migrācijas izmaksas, tās gatavÄ«ba migrācijai).

Kopā

MÅ«su darba rezultāts balansÄ“Å”anas algoritmu pilnveidoÅ”anā bija skaidrs secinājums, ka, izmantojot mÅ«sdienÄ«gus algoritmus, ir iespējams panākt bÅ«tisku datu centra resursu optimizāciju (25-30%) un vienlaikus uzlabot klientu apkalpoÅ”anas kvalitāti.

Uz neironu tÄ«kliem balstÄ«ts algoritms noteikti ir interesants risinājums, taču tas ir jāpilnveido, un esoÅ”o ierobežojumu dēļ tas nav piemērots Ŕāda veida problēmu risināŔanai privātajiem mākoņiem raksturÄ«gajos apjomos. Tajā paŔā laikā algoritms uzrādÄ«ja labus rezultātus ievērojama izmēra publiskajos mākoņos.

Vairāk par procesoru, plānotāju iespējām un augsta lÄ«meņa balansÄ“Å”anu pastāstÄ«sim turpmākajos rakstos.

Avots: www.habr.com

Pievieno komentāru