Koormuse tasakaalustamine Openstackis (Osa 2)

Uues eelmisel artiklil Oleme rÀÀkinud Watcher'i kasutamise katsetest ja esitanud katsetuste aruande. Selliseid katseid teeme regulaarselt kÔrgema ettevÔtte vÔi teenusepakkuja pilve tasakaalustamiseks ja muude kriitiliste funktsioonide jaoks.

Ülesande kĂ”rge keerukus vĂ”ib nĂ”uda meie projekti kirjeldamiseks mitmeid artikleid. TĂ€na avaldame teise artikli tsĂŒklist, mis on pĂŒhendatud virtuaalmasinate tasakaalustamisele pilves.

Veidi terminoloogiat

EttevÔte VMware tutvustas DRS-i (Distributed Resource Scheduler), et tasakaalustada koormust nende vÀlja töötatud ja pakutavates virtuaalisuse keskkondades.

Nagu kirjutab searchvmware.techtarget.com/definition/VMware-DRS
„VMware DRS (jaotatud ressursi planeerija) on tööriist, mis tasakaalustab arvutuskoormust kergesti kergesti kergelt kergesti kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt kergelt.

VMware DRS-i abil saavad kasutajad seadistada reegleid fĂŒĂŒsiliste ressursside jaotamiseks virtuaalmasinate vahel. Tööriista saab seadistada kĂ€sitsi vĂ”i automaatse juhtimise jaoks. VMware ressursigrupid vĂ”ivad olla hĂ”lpsasti lisatud, eemaldatud vĂ”i ĂŒmber korraldatud. Soovi korral vĂ”ivad ressursigrupid olla erinevate Ă€riĂŒksuste vahel isoleeritud. Kui mingil virtuaalmasinal on koormus jĂ€rsult muutumas, siis VMware DRS jaotab virtuaalmasinad fĂŒĂŒsiliste serverite vahel ĂŒmber. Kui kogu koormus vĂ€heneb, vĂ”ivad mĂ”ned fĂŒĂŒsilised serverid ajutiselt vĂ€lja lĂŒlitada ja koormus vĂ”ib konsolideerida.

Miks on tasakaalustamine vajalik?


Meie arvates on DRS kohustuslik pilve funktsioon, kuigi see ei tÀhenda, et DRS-i tuleb alati ja igal pool kasutada. KÔne alla vÔivad tulla erinevad nÔuded DRS-ile ja tasakaalustamismeetoditele sÔltuvalt pilve otstarbeks ja vajadustest. VÔib-olla on olukordi, kus tasakaalustamine ei ole vajalik vÔi isegi kahjulik.

Et paremini mĂ”ista, kus ja millistele klientidele on DRS vajalik, vaatame nende eesmĂ€rke ja ĂŒlesandeid. Pilved jagunevad avalikeks ja privaatseteks. Siin on peamised erinevused nende pilvede ja klientide eesmĂ€rkide vahel.

Privaatpilved / Suured ettevÔtted
Avalikud pilved / Keskmine ja vÀike Àri, inimesed

Peamine kriteerium ja operaatori eesmÀrgid
UsaldusvÀÀrse teenuse vÔi toote pakkumine
Teenuste kogumismoega tegelemine konkurentsitihedal turul

Teenuse nÔuded
UsaldusvÀÀrsus kĂ”igil tasanditel ja sĂŒsteemi kĂ”ikides elementides

Tagatud jÔudlus

Virtuaalmasinate prioritiseerimine mitmesse kategooriasse 

Teabe ja fĂŒĂŒsiline andmete turvalisus

SLA ja ööpÀevaringne tugi
Teenuse saamise maksimaalne lihtsus

Suhteliselt lihtsad teenused

Andmete eest vastutab klient

Virtuaalmasinate prioritiseerimine ei ole vajalik

Teabe turvalisus standardteenuste tasemel, vastutus kliendil

SĂŒsteemi tĂ”rkeid vĂ”ib esineda

SLA-d ei ole, kvaliteeti ei garanteerita

Tugi e-posti teel

Varundamine ei ole kohustuslik

Kliendi eripÀra
VĂ€ga lai rakenduste spekter.

PÀrandrakendused, mis on ettevÔttes edasi antud.

Kliendi jaoks keerukad kohandatud arhitektuurid.

Affiniteedi reeglid.

Tarkvara töötab katkestusteta 7x24 reĆŸiimis. 

Varundamisseadmed "reaalajas".

Klientide prognoositav tsĂŒkliline koormus.
Standardrakendused – vĂ”rgu tasakaalustamine, Apache, WEB, VPN, SQL

Rakenduse peatamine on vÔimalik teatud ajaks

VÔimalik on virtuaalmasinate suvaline jaotus pilves

Varundamine kliendi poolt

Prognoositav statistiliselt keskmine koormus suure hulga klientide korral.

TagajÀrjed arhitektuurile
Geoklusterdamine

Keskne vÔi jaotatud andmesalvestus

Reserveeritud DR
Andmete kohalik talletamine arvutuspunktides

Tasakaalustamise eesmÀrgid
Koormuse ĂŒhtlane jaotamine

Rakenduste maksimaalne reageerimisvÔime 

Minimaalne viivitus tasakaalustamisel

Tasakaalustamine ainult selgelt vajaliku korral

Osade seadmete vÀlja viimine hooldustööd teostama
Teenuse ja operaatori kulude vÀhendamine 

Osade ressursside vĂ€ljalĂŒlitamine madala koormuse korral

Energiakulu kokkuhoid

Kulude vÀhendamine personalile

JÔudsime jÀrgmistele jÀreldustele:

Privaatsete pilvede jaoks, mida pakuvad suured korporatiivsed kliendid, DRS vÔib rakenduda jÀrgmiste piirangute kohaselt:

  • teabe turvalisus ja affiniteedi reeglite arvesse vĂ”tmine tasakaalustamisel;
  • reservis peab olema piisav ressursside maht hĂ€daolukordade korral;
  • virtuaalmasinate andmed paiknevad kesksetes vĂ”i jaotatud andmesalvestustes;
  • ajastatud haldustööde, varukoopiate ja koormuse jaotamise lahtiseletamine;
  • koormuse jaotamine ainult kliendi hostide rĂŒhmas;
  • koormuse jaotamine ainult siis, kui tasakaal on tugevasti hĂ€iritud, kĂ”ige tĂ”husamad ja turvalisemad VM-i migreerimised (sest migreerimine vĂ”ib lĂ”ppeda ebaĂ”nnestumisena);
  • koormuse jaotamine 'rahulike' virtuaalmasinate pĂ”hjal (igal juhul 'mĂŒrarikka' virtuaalmasina migreerimine vĂ”ib vĂ”tta kaua aega);
  • koormuse jaotamine 'kulude' pĂ”hjal — koormus salvestusseadmetele ja vĂ”rgule (kohandatud arhitektuuride puhul suurematele klientidele);
  • koormuse jaotamine arvestades iga VM-i individuaalseid kĂ€itumismustreid;
  • koormuse jaotamine oleks soovitatav teha töövĂ€lisel ajal (öösel, nĂ€dalavahetustel, pĂŒhadel).

Avalike pilvede jaoks, mis pakuvad teenuseid vÀikestele klientidele, vÔivad DRS-i rakendused olla palju sagedamad, laiemate vÔimalustega:

  • turvasĂ€tete ja affiniteedieeskirjade puudumine;
  • koormuse jaotamine pilve piires;
  • koormuse jaotamine igal mĂ”istlikul ajal;
  • koormuse jaotamine igasuguste VM-ide vahel;
  • koormuse jaotamine 'mĂŒrarikka' virtuaalmasina pĂ”hjal (et mitte segada teisi);
  • virtuaalmasinate andmed asuvad sageli kohalikul kettal;
  • arvestades salvestusseadmete ja vĂ”rgu keskmist jĂ”udlust (pilve arhitektuur on ĂŒhtne);
  • koormuse jaotamine ĂŒldiste reeglite ja olemasoleva keskkonna kĂ€itumise statistika pĂ”hjal.

Probleemi keerukus

Koormuse jaotamise keerukus seisneb selles, et DRS peab töötama suure arvu mÀÀramatute teguritega:

  • kliendi info sĂŒsteemide igaĂŒhe kasutajate kĂ€itumine;
  • infosisĂŒsteemide serverite töö algoritmid;
  • andmebaasi serverite kĂ€itumine;
  • koormus arvutusressurssidele, salvestusseadmetele, vĂ”rgule;
  • serverite omavaheline suhtlemine ressursside pĂ€rast vĂ”itlemisel.

Paljude virtuaalserverite rakenduste ja andmebaaside koormus avaldub ajas, tagajĂ€rjed vĂ”ivad ilmneda ja kattuda ĂŒksteisega ettearvamatute mĂ”judega ettearvamatul ajal. Isegi suhteliselt lihtsate protsesside (nt mootori juhtimine, kodu veesoojendussĂŒsteem) juhtimise jaoks peab automaatikaettevĂ”ttes olema kasutada keerulisi proportsionaalne-integraalne-differentseerivad tagasiside algoritme.

Koormuse tasakaalustamine Openstackis (Osa 2)

Meie ĂŒlesanne on mitmeid jĂ€rke keerulisem ja on oht, et sĂŒsteem ei suuda mĂ”istliku aja jooksul koormust tasakaalustada seatud vÀÀrtustele, isegi kui kasutajaid ei esine vĂ€list mĂ”ju.

Koormuse tasakaalustamine Openstackis (Osa 2)

Meie arenduste ajalugu

Selle probleemiga tegelemiseks otsustasime mitte alustada nullist, vaid tugineda olemasolevale kogemusele ja hakkasime suhtlema alal kogenud spetsialistidega. Õnneks kattus meie arusaam probleemist tĂ€ielikult.

Etapp 1

Kasutame sĂŒsteemi, mis pĂ”hineb nĂ€rvivĂ”rkude tehnoloogial, ja proovime selle alusel meie ressursse optimeerida.

Selle etapi huvi seisnes uue tehnoloogia katsetamises ning selle olulisus seisnes mittestandardses lĂ€henemisviisis ĂŒlesande lahendamisel, kus sarnastes tingimustes on standardsed lĂ€henemisviisid praktiliselt ammendunud.

KĂ€ivitame sĂŒsteemi ja meil tĂ”esti hakkas tasakaalustus tööle. Meie pilve ulatus ei lubanud meil saada optimistlikke tulemusi, nagu arendajad olid vĂ€itnud, kuid oli nĂ€ha, et tasakaalustus töötab.

Selle juures olid meil tÔsised piirangud:

  • NĂ€rvivĂ”rgu koolitamiseks on vajalik, et virtuaalmasinad töötaksid ilma mĂ€rkimisvÀÀrsete muutusteta nĂ€dalaid vĂ”i kuid.
  • Algoritm on mĂ”eldud optimeerimiseks lĂ€htudes varasemate "ajalooliste" andmete analĂŒĂŒsist.
  • NĂ€rvivĂ”rgu koolitamiseks on vajalik piisavalt suur andmehulk ja arvutusvĂ”ime.
  • Optimeerimist ja tasakaalustamist saab teha suhteliselt harva – paar korda tunnis, mis on ilmselgelt ebapiisav.

Etapp 2

Kuna meid ei rahuldanud olukord, otsustasime sĂŒsteemi modifitseerida ja sellele vastata peamisele kĂŒsimusele – kellele me seda valmistame?

Esmalt – ettevĂ”tte klientidele. See tĂ€hendab, et vajame sĂŒsteemi, mis töötab kiiresti, koos nende ettevĂ”tte piirangutega, mis ainult lihtsustavad elluviimist.

Teine kĂŒsimus – mida mĂ”ista sĂ”na "kiiresti" all? LĂŒhikeste arutelude tulemusena otsustasime, et saame lĂ€htuda reageerimise ajast 5 – 10 minutit, et lĂŒhiajalised hĂŒpped ei hĂ€iriks sĂŒsteemi.

Kolmas kĂŒsimus – kui palju servereid tuleks tasakaalustada?
See, this issue resolved itself. Typically, clients do not make server aggregates very large, and this aligns with the recommendations in the article to limit aggregates to 30-40 servers.

Furthermore, by segmenting the server pool, we simplify the task for the balancing algorithm.

The fourth issue – how suitable is the neural network for us with its long training process and infrequent balancing? We decided to opt out of it in favor of simpler operational algorithms, to achieve results in seconds.

Koormuse tasakaalustamine Openstackis (Osa 2)

You can learn about the system that uses such algorithms and its drawbacks siit

We implemented and launched this system and received promising results – it now regularly analyzes the cloud load and provides recommendations for moving virtual machines, which are largely correct. Even now, it's clear that we can achieve a 10-15% resource release for new virtual machines while improving the performance of existing ones.

Koormuse tasakaalustamine Openstackis (Osa 2)

Upon detecting an imbalance in RAM or CPU, the system sends commands to the Tionix scheduler to perform live migration of the required virtual machines. As seen in the monitoring system, a virtual machine moved from one (upper) host to another (lower) host and freed memory on the upper host (highlighted in yellow circles), occupying it accordingly on the lower one (highlighted in white circles).

Currently, we are trying to evaluate the effectiveness of the existing algorithm more accurately and are looking for possible errors within it.

Etapp 3

It would seem that we could relax at this point, wait for proven efficiency, and close the topic.
But we are pushed towards conducting a new phase by the following clear optimization opportunities

  1. Statistics, for example, siit ja siit show that dual- and quad-processor systems are significantly lower in performance compared to single-processor systems. This means that all users receive much lower returns from purchased multi-processor systems in terms of CPU, RAM, SSD, LAN, FC, compared to single-processor ones.
  2. The resource schedulers themselves can operate with serious errors, here is one of the articles sellel teemal.
  3. Intel ja AMD pakuvad RAM ja vahemĂ€lu jĂ€lgimise tehnoloogiaid, mis vĂ”imaldavad uurida virtuaalmasinate kĂ€itumist ja paigutada neid nii, et "mĂŒra" naabrid ei segaks "rahulikke" virtuaalmasinaid.
  4. Parameetrite komplekti laienemine (vÔrk, salvestusseade, virtuaalmasina prioriteet, migratsiooni maksumus, migratsiooni valmisolek).

KokkuvÔttes

Meie töö tulemuseks tasakaalustamisalgoritmide tÀiustamisel on selge jÀreldus, et tÀnu kaasaegsetele algoritmidele on vÔimalik saavutada olulisi ressursside (25-30%) optimeerimist andmekeskustes ja samal ajal parandada klienditeeninduse kvaliteeti.

NeuraalvĂ”rkudel pĂ”hinev algoritm on kahtlemata huvitav, kuid vajab edasist arendamist ning olemasolevate piirangute tĂ”ttu ei sobi see selliste ĂŒlesannete lahendamiseks, mis on iseloomulikud privaatsetele pilvedele. Samas on avalikes suurtes pilvedes nĂ€idanud algoritm hĂ€id tulemusi.

Protsessorite, planeerijate ja kÔrgema taseme tasakaalustamise vÔimaluste kohta rÀÀgime jÀrgnevates artiklites.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster