Apkrovos balansavimas Openstack

Didelėse debesų sistemose automatinio balansavimo arba skaičiavimo išteklių apkrovos išlyginimo problema yra ypač aktuali. Šiuo klausimu pasirūpino ir „Tionix“ (debesijos paslaugų kūrėjas ir operatorius, priklausantis „Rostelecom“ įmonių grupei).

O kadangi mūsų pagrindinė kūrimo platforma yra Openstack, o mes, kaip ir visi žmonės, esame tinginiai, buvo nuspręsta pasirinkti kokį nors paruoštą modulį, kuris jau yra platformoje. Mūsų pasirinkimas krito ant Watcher, kurį nusprendėme panaudoti savo poreikiams.
Apkrovos balansavimas Openstack
Pirmiausia pažvelkime į terminus ir apibrėžimus.

Terminai ir apibrėžimai

Tikslas yra žmogaus skaitomas, stebimas ir išmatuojamas galutinis rezultatas, kurį būtina pasiekti. Kiekvienam tikslui pasiekti yra viena ar daugiau strategijų. Strategija – tai algoritmo, galinčio rasti sprendimą tam tikram tikslui, įgyvendinimas.

Veiksmas yra elementari užduotis, pakeičianti esamą tikslinio „OpenStack“ klasterio valdomo resurso būseną, pvz.: virtualios mašinos perkėlimas (perkėlimas), mazgo galios būsenos keitimas (change_node_power_state), nova paslaugos būsenos keitimas (change_nova_service_state). ), skonio keitimas (dydžio keitimas), NOP pranešimų registravimas (nop), veiksmo nebuvimas tam tikrą laiką – pauzė (miego režimas), disko perkėlimas (volume_migrate).

Veiksmų planas - konkretus veiksmų, atliekamų tam tikra tvarka, srautas tam tikram tikslui pasiekti. Veiksmų plane taip pat pateikiami išmatuoti visuotiniai rezultatai su veiklos rodiklių rinkiniu. Stebėtojas po sėkmingo audito sugeneruoja veiksmų planą, kurio metu naudojama strategija randa sprendimą tikslui pasiekti. Veiksmų planą sudaro nuoseklių veiksmų sąrašas.

Auditas yra prašymas optimizuoti klasterį. Optimizavimas atliekamas norint pasiekti vieną tikslą tam tikrame klasteryje. Kiekvienam sėkmingam auditui Watcher sukuria veiksmų planą.

Audito apimtis yra išteklių, kurių ribose atliekamas auditas, rinkinys (prieinamumo zona (-os), mazgų agregatoriai, atskiri skaičiavimo mazgai arba saugyklos mazgai ir kt.). Audito apimtis yra apibrėžta kiekviename šablone. Jei audito apimtis nenurodyta, tikrinamas visas klasteris.

Audito šablonas — išsaugotas nustatymų rinkinys, skirtas auditui pradėti. Šablonai reikalingi norint atlikti auditą kelis kartus su tais pačiais parametrais. Šablone būtinai turi būti nurodytas audito tikslas, jei strategijos nenurodytos, parenkamos tinkamiausios esamos strategijos.

Klasteris yra fizinių mašinų, teikiančių skaičiavimo, saugojimo ir tinklo išteklius, rinkinys ir valdomas to paties OpenStack valdymo mazgo.

Klasterio duomenų modelis (CDM) yra logiškas klasterio valdomų išteklių esamos būsenos ir topologijos vaizdas.

Efektyvumo rodiklis - indikatorius, nurodantis, kaip atliekamas naudojant šią strategiją sukurtas sprendimas. Veiklos rodikliai yra būdingi tam tikram tikslui ir paprastai naudojami apskaičiuojant bendrą gauto veiksmų plano efektyvumą.

Veiksmingumo specifikacija yra specifinių savybių, susijusių su kiekvienu tikslu, rinkinys, apibrėžiantis įvairius veiklos rodiklius, kuriuos atitinkamo tikslo pasiekimo strategija turi pasiekti savo sprendime. Iš tiesų, prieš apskaičiuojant jo visuotinį efektyvumą, kiekvienas strategijos pasiūlytas sprendimas bus patikrintas pagal specifikaciją.

Taškais variklis yra vykdomasis failas, turintis tiksliai apibrėžtas įvestis, tiksliai apibrėžtas išvestis ir atliekantis grynai matematinę užduotį. Tokiu būdu skaičiavimas nepriklauso nuo aplinkos, kurioje jis atliekamas – bet kur jis duos tą patį rezultatą.

Stebėtojų planuotojas - „Watcher“ sprendimų priėmimo variklio dalis. Šiame modulyje paimamas strategijos sugeneruotų veiksmų rinkinys ir sukuriamas darbo eigos planas, kuriame nurodoma, kaip suplanuoti šiuos skirtingus veiksmus laiku ir kiekvienam veiksmui, kokios yra prielaidos.

Stebėtojo tikslai ir strategijos

Tikslas
strategija

Manekalas įvartis
Manekeno strategija 

Manekeno strategija naudojant pavyzdinius balų skaičiavimo variklius

Manekeno strategija su dydžio keitimu

Energijos taupymas
Energijos taupymo strategija

Serverio konsolidavimas
Pagrindinis serverio neprisijungus konsolidavimas

VM darbo krūvio konsolidavimo strategija

Darbo krūvio balansavimas
Darbo krūvio balanso migracijos strategija

Saugyklos talpos balanso strategija

Darbo krūvio stabilizavimas

Triukšmingas kaimynas
Triukšmingas kaimynas

Terminis optimizavimas
Išėjimo temperatūra pagrįsta strategija

Oro srauto optimizavimas
Vienoda oro srautų migracijos strategija

Techninės įrangos priežiūra
Zonos migracija

Nenaudokite
Pavara

Manekalas įvartis — rezervuotas tikslas, naudojamas testavimo tikslais.

Susijusios strategijos: netikra strategija, netikra strategija naudojant pavyzdinius balų skaičiavimo variklius ir netikra strategija su dydžio keitimu. Dummy strategija yra netikra strategija, naudojama integracijos testavimui per Tempest. Ši strategija nesuteikia jokio naudingo optimizavimo, jos vienintelis tikslas yra naudoti Tempest testus.

Manekeno strategija naudojant pavyzdinius balų skaičiavimo variklius - strategija yra panaši į ankstesnę, vienintelis skirtumas yra pavyzdinis „taškių variklis“, kuris atlieka skaičiavimus naudodamas mašininio mokymosi metodus.

Dummy strategija su dydžio keitimu – strategija panaši į ankstesnę, skiriasi tik skonio keitimo naudojimas (migracija ir dydžio keitimas).

Gamyboje nenaudota.

Energijos taupymas - sumažinti energijos suvartojimą. Šio tikslo energijos taupymo strategija kartu su VM darbo krūvio konsolidavimo strategija (serverio konsolidacija) gali naudoti dinaminio energijos valdymo (DPM) funkcijas, kurios taupo energiją dinamiškai konsoliduodamos darbo krūvius net ir mažai išteklių naudojimo laikotarpiais: virtualios mašinos perkeliamos į mažiau mazgų. , o nereikalingi mazgai išjungiami. Po konsolidavimo strategija siūlo sprendimą įjungti/išjungti mazgus pagal nurodytus parametrus: „min_free_hosts_num“ – laisvų įjungtų mazgų, kurie laukia įkėlimo, skaičius ir „free_used_percent“ – laisvų įgalintų prieglobų procentas. mazgų, kuriuos užima mašinos, skaičius. Kad strategija veiktų, turi būti įjungta ir sukonfigūruota „Iron“, kad būtų galima valdyti maitinimo ciklą mazguose.

Strategijos parametrai

parametras
тип
pagal nutylėjimą
описание

laisvo_naudojamo_procento
Skaičius
10.0
laisvų skaičiavimo mazgų skaičiaus ir skaičiavimo mazgų su virtualiomis mašinomis skaičiaus santykis

min_free_hosts_num
Žiniasklaida
1
minimalus laisvų skaičiavimo mazgų skaičius

Debesyje turi būti bent du mazgai. Naudojamas metodas yra mazgo galios būsenos keitimas (change_node_power_state). Strategija nereikalauja rinkti metrikų.

Server Consolidation – sumažinkite skaičiavimo mazgų skaičių (konsolidavimas). Jame yra dvi strategijos: pagrindinė serverio neprisijungus konsolidacija ir VM darbo krūvio konsolidavimo strategija.

Pagrindinė serverio neprisijungus konsolidavimo strategija sumažina bendrą naudojamų serverių skaičių ir sumažina perkėlimų skaičių.

Pagrindinė strategija reikalauja šių metrikų:

metrikos
paslauga
įskiepių
komentaras

compute.node.cpu.procent
celometras
nė vienas
 

cpu_util
celometras
nė vienas
 

Strategijos parametrai: migration_attempts – derinių skaičius ieškant potencialių kandidatų išjungti (numatytasis, 0, jokių apribojimų), laikotarpis – laiko intervalas sekundėmis, norint gauti statinį sujungimą iš metrinių duomenų šaltinio (numatytasis, 700).

Naudojami metodai: migracija, nova paslaugos būsenos keitimas (change_nova_service_state).

VM darbo krūvio konsolidavimo strategija yra pagrįsta pirmojo pritaikymo euristika, kuri sutelkia dėmesį į išmatuotą procesoriaus apkrovą ir bando sumažinti mazgus, kurie turi per daug arba per mažą apkrovą, atsižvelgiant į išteklių talpos apribojimus. Ši strategija suteikia sprendimą, leidžiantį efektyviau naudoti klasterio išteklius, atliekant šiuos keturis veiksmus:

  1. Iškrovimo fazė – perteklinių išteklių apdorojimas;
  2. Konsolidavimo etapas – nepakankamai panaudotų išteklių tvarkymas;
  3. Sprendimo optimizavimas – migracijų skaičiaus mažinimas;
  4. Nenaudojamų skaičiavimo mazgų išjungimas.

Strategija reikalauja šių metrikų:

metrikos
paslauga
įskiepių
komentaras

atmintis
celometras
nė vienas
 

diskas.root.size
celometras
nė vienas
 

Ši metrika yra neprivaloma, bet pagerins strategijos tikslumą, jei tokia bus:

metrikos
paslauga
įskiepių
komentaras

atmintis.gyventojas
celometras
nė vienas
 

cpu_util
celometras
nė vienas
 

Strategijos parametrai: periodas – laiko intervalas sekundėmis, norint gauti statinį apibendrinimą iš metrikos duomenų šaltinio (numatytasis nustatymas, 3600).

Naudoja tuos pačius metodus kaip ir ankstesnėje strategijoje. Daugiau informacijos čia.

Darbo krūvio balansavimas — subalansuoti darbo krūvį tarp skaičiavimo mazgų. Tikslas turi tris strategijas: darbo krūvio balanso perkėlimo strategiją, darbo krūvio stabilizavimą, saugyklos talpos balanso strategiją.

Darbo krūvio balanso perkėlimo strategija vykdo virtualios mašinos perkėlimą pagal pagrindinio kompiuterio virtualios mašinos darbo krūvį. Perkėlimo sprendimas priimamas, kai mazgo procesoriaus arba RAM panaudojimo procentas viršija nurodytą slenkstį. Tokiu atveju perkelta virtuali mašina turėtų priartinti mazgą prie vidutinio visų mazgų darbo krūvio.

Reikalavimai

  • Fizinių procesorių naudojimas;
  • Bent du fiziniai skaičiavimo mazgai;
  • Įdiegtas ir sukonfigūruotas Ceilometro komponentas – ceilometer-agent-compute, veikiantis kiekviename skaičiavimo mazge, ir Ceilometro API, taip pat surinkta ši metrika:

metrikos
paslauga
įskiepių
komentaras

cpu_util
celometras
nė vienas
 

atmintis.gyventojas
celometras
nė vienas
 

Strategijos parametrai:

parametras
тип
pagal nutylėjimą
описание

metrikos
Styginių
'cpu_util'
Pagrindinė metrika yra: „cpu_util“, „memory.resident“.

slenkstis
Skaičius
25.0
Perkėlimo darbo krūvio riba.

laikotarpis
Skaičius
300
Kaupiamasis laikotarpis Celometras.

Naudojamas migracijos metodas.

Darbo krūvio stabilizavimas yra strategija, kuria siekiama stabilizuoti darbo krūvį naudojant tiesioginę migraciją. Strategija yra pagrįsta standartinio nuokrypio algoritmu ir nustato, ar klasteryje nėra spūsčių, ir į tai reaguoja suaktyvindama mašinos migraciją, kad stabilizuotų klasterį.

Reikalavimai

  • Fizinių procesorių naudojimas;
  • Bent du fiziniai skaičiavimo mazgai;
  • Įdiegtas ir sukonfigūruotas Ceilometro komponentas – ceilometer-agent-compute, veikiantis kiekviename skaičiavimo mazge, ir Ceilometro API, taip pat surinkta ši metrika:

metrikos
paslauga
įskiepių
komentaras

cpu_util
celometras
nė vienas
 

atmintis.gyventojas
celometras
nė vienas
 

Storage Capacity Balance Strategy (strategija įgyvendinama pradedant nuo Queens) – strategija perkelia diskus priklausomai nuo Cinder baseinų apkrovos. Perdavimo sprendimas priimamas kiekvieną kartą, kai fondo panaudojimo lygis viršija nurodytą ribą. Perkeliamas diskas turėtų priartinti baseiną prie vidutinės visų Cinder telkinių apkrovos.

Reikalavimai ir apribojimai

  • Mažiausiai du „Cinder“ baseinai;
  • Disko migracijos galimybė.
  • Klasterio duomenų modelis – Cinder klasterio duomenų modelių rinkėjas.

Strategijos parametrai:

parametras
тип
pagal nutylėjimą
описание

apimties_slenkstis
Skaičius
80.0
Disko slenkstinė vertė balansuojant apimtis.

Naudojamas disko perkėlimo metodas (volume_migrate).

Triukšmingas kaimynas – nustatykite ir perkelkite „triukšmingą kaimyną“ – žemo prioriteto virtualią mašiną, kuri neigiamai veikia aukšto prioriteto virtualios mašinos našumą IPC atžvilgiu, per daug naudodama paskutinio lygio talpyklą. Sava strategija: Triukšmingas kaimynas (naudojamas strategijos parametras cache_threshold (numatytoji reikšmė yra 35), našumui nukritus iki nurodytos reikšmės, pradedamas perkėlimas. Kad strategija veiktų, įjungta LLC (paskutinio lygio talpyklos) metrika, naujausias Intel serveris su CMT palaikymu, taip pat rinkti šią metriką:

metrikos
paslauga
įskiepių
komentaras

cpu_l3_cache
celometras
nė vienas
Reikalingas Intel CMT.

Klasterio duomenų modelis (numatytasis): Nova klasterio duomenų modelių rinkėjas. Naudojamas migracijos metodas.

Darbas su šiuo tikslu naudojant prietaisų skydelį nėra visiškai įgyvendintas Queens.

Terminis optimizavimas - optimizuoti temperatūros režimą. Išleidžiamo oro temperatūra yra viena iš svarbių šiluminės telemetrijos sistemų, skirtų serverio šilumos/darbo apkrovos būsenai matuoti. Tikslas turi vieną strategiją – išėjimo temperatūra pagrįstą strategiją, pagal kurią nusprendžiama perkelti darbo krūvius į termiškai palankius pagrindinius kompiuterius (žemiausia išleidimo temperatūra), kai šaltinio pagrindinio kompiuterio išleidimo temperatūra pasiekia konfigūruojamą slenkstį.

Kad strategija veiktų, jums reikia serverio su įdiegta ir sukonfigūruota „Intel Power Node Manager“. 3.0 ar naujesnė versija, taip pat rinkti šią metriką:

metrikos
paslauga
įskiepių
komentaras

hardware.ipmi.node.outlet_temperature
celometras
IPMI
 

Strategijos parametrai:

parametras
тип
pagal nutylėjimą
описание

slenkstis
Skaičius
35.0
Temperatūros slenkstis migracijai.

laikotarpis
Skaičius
30
Laiko intervalas sekundėmis, skirtas statistinei apibendrinimui gauti iš metrikos duomenų šaltinio.

Naudojamas migracijos metodas.

Oro srauto optimizavimas - optimizuoti vėdinimo režimą. Nuosava strategija – vienodas oro srautas naudojant tiesioginę migraciją. Strategija suaktyvina virtualios mašinos perkėlimą, kai oro srautas iš serverio ventiliatoriaus viršija nurodytą slenkstį.

Kad strategija veiktų, jums reikia:

  • Techninė įranga: skaičiavimo mazgai < palaikantys NodeManager 3.0;
  • Bent du skaičiavimo mazgai;
  • Kiekviename skaičiavimo mazge įdiegtas ir sukonfigūruotas ceilometer-agent-compute ir Ceilometer API komponentas, kuris gali sėkmingai pranešti tokias metrikas kaip oro srautas, sistemos galia, įleidimo temperatūra:

metrikos
paslauga
įskiepių
komentaras

hardware.ipmi.node.airflow
celometras
IPMI
 

hardware.ipmi.node.temperature
celometras
IPMI
 

hardware.ipmi.node.power
celometras
IPMI
 

Kad strategija veiktų, jums reikia serverio, kuriame įdiegta ir sukonfigūruota „Intel Power Node Manager 3.0“ arba naujesnė versija.

Apribojimai: koncepcija nėra skirta gamybai.

Siūloma šį algoritmą naudoti su nuolatiniais auditais, nes per iteraciją planuojama perkelti tik vieną virtualią mašiną.

Galimos gyvos migracijos.

Strategijos parametrai:

parametras
тип
pagal nutylėjimą
описание

slenkstis_oro srautas
Skaičius
400.0
Oro srauto slenkstis migracijos vienetui yra 0.1CFM

slenkstis_įėjimo_t
Skaičius
28.0
Įleidimo temperatūros slenkstis priimant sprendimą dėl migracijos

slenkstinė_galia
Skaičius
350.0
Sistemos galios slenkstis priimant sprendimą dėl perėjimo

laikotarpis
Skaičius
30
Laiko intervalas sekundėmis, skirtas statistinei apibendrinimui gauti iš metrikos duomenų šaltinio.

Naudojamas migracijos metodas.

Techninės įrangos priežiūra - techninės įrangos priežiūra. Su šiuo tikslu susijusi strategija yra zonos migracija. Strategija yra efektyvaus automatinio ir minimalaus virtualių mašinų ir diskų migracijos įrankis, prireikus techninės įrangos priežiūros. Strategija sudaro veiksmų planą pagal svarmenis: veiksmų rinkinys, turintis didesnį svorį, bus suplanuotas prieš kitus. Yra dvi konfigūracijos parinktys: action_weights ir lygiagretinimas.

Apribojimai: reikia sukonfigūruoti veiksmų svorį ir lygiagretavimą.

Strategijos parametrai:

parametras
тип
pagal nutylėjimą
описание

compute_nodes
masyvas
Nė vienas
Apskaičiuokite perkėlimo mazgus.

saugyklos_baseinai
masyvas
Nė vienas
Perkėlimo saugyklos mazgai.

lygiagretus_viso
sveikasis skaičius
6
Bendras veiklų, kurios turi būti vykdomos lygiagrečiai, skaičius.

lygiagretus_mazgas
sveikasis skaičius
2
Veiksmų, atliekamų lygiagrečiai kiekvienam skaičiavimo mazgui, skaičius.

parallel_per_pool
sveikasis skaičius
2
Lygiagrečiai atliekamų veiksmų kiekvienam saugyklos telkiniui skaičius.

prioritetas
objektas
Nė vienas
Prioritetų sąrašas virtualioms mašinoms ir diskams.

su_prisegtu_tūriu
boolean
Klaidingas
Netiesa – virtualios mašinos bus perkeltos, kai bus perkelti visi diskai. Tiesa – virtualios mašinos bus perkeltos, kai bus perkelti visi prijungti diskai.

Skaičiavimo mazgų masyvo elementai:

parametras
тип
pagal nutylėjimą
описание

src_node
eilutė
Nė vienas
Skaičiavimo mazgas, iš kurio perkeliamos virtualios mašinos (būtina).

dst_mazgas
eilutė
Nė vienas
Apskaičiuokite mazgą, į kurį migruoja virtualios mašinos.

Saugojimo mazgo masyvo elementai:

parametras
тип
pagal nutylėjimą
описание

src_pool
eilutė
Nė vienas
Saugyklos telkinys, iš kurio perkeliami diskai (būtina).

dst_pool
eilutė
Nė vienas
Saugyklos baseinas, į kurį perkeliami diskai.

src_type
eilutė
Nė vienas
Originalus disko tipas (būtinas).

dst_type
eilutė
Nė vienas
Gautas disko tipas (būtinas).

Objekto prioriteto elementai:

parametras
тип
pagal nutylėjimą
описание

projektas
masyvas
Nė vienas
Projektų pavadinimai.

skaičiavimo_mazgas
masyvas
Nė vienas
Apskaičiuokite mazgų pavadinimus.

saugyklos_baseinas
masyvas
Nė vienas
Saugyklų telkinių pavadinimai.

apskaičiuoti
enum
Nė vienas
Virtualios mašinos parametrai ["vcpu_num", "mem_size", "disk_size", "created_at"].

saugojimas
enum
Nė vienas
Disko parametrai ["dydis", "created_at"].

Naudojami metodai yra virtualios mašinos migracija, disko migracija.

Nenaudokite - pagalbinis tikslas, naudojamas strategijos kūrimo procesui palengvinti. Jame nėra specifikacijų ir galima naudoti, kai strategija dar nesusieta su esamu tikslu. Šis tikslas taip pat gali būti naudojamas kaip pereinamasis taškas. Su šiuo tikslu susijusi strategija yra pavara.   

Naujo tikslo kūrimas

Stebėtojo sprendimų variklis turi „išorinio tikslo“ įskiepio sąsają, kuri leidžia integruoti išorinį tikslą, kurį galima pasiekti naudojant strategiją.

Prieš kurdami naują tikslą, įsitikinkite, kad jokie esami tikslai neatitinka jūsų poreikių.

Kuriamas naujas papildinys

Norėdami sukurti naują tikslą, turite: išplėsti tikslinę klasę, įdiegti klasės metodą get_name() norėdami grąžinti unikalų naujos paskirties vietos, kurią norite sukurti, ID. Šis unikalus identifikatorius turi atitikti įėjimo taško pavadinimą, kurį paskelbsite vėliau.

Toliau reikia įdiegti klasės metodą gauti_rodymo_vardas() norėdami grąžinti išverstą rodomą objekto, kurį norite sukurti, pavadinimą (nenaudokite kintamojo, norėdami grąžinti išverstą eilutę, kad ją automatiškai surinktų vertimo įrankis.).

Įdiekite klasės metodą get_translable_display_name()norėdami grąžinti naujojo tikslo vertimo raktą (iš tikrųjų anglišką rodomą pavadinimą). Grąžinama reikšmė turi atitikti eilutę, išverstą į get_display_name().

Įgyvendink jo metodą get_efficiacy_specification()norėdami grąžinti tikslo efektyvumo specifikaciją. Metodas get_efficiacy_specification() grąžina Watcher pateiktą Unclassified() egzempliorių. Ši veiklos specifikacija yra naudinga kuriant tikslą, nes ji atitinka tuščią specifikaciją.

Daugiau skaitykite čia

Stebėtojo architektūra (daugiau informacijos) čia).

Apkrovos balansavimas Openstack

Komponentai

Apkrovos balansavimas Openstack

Watcher API - komponentas, įgyvendinantis REST API, kurį teikia Watcher. Sąveikos mechanizmai: CLI, Horizon įskiepis, Python SDK.

Stebėtojas DB — Stebėtojų duomenų bazė.

Watcher Applier — komponentas, įgyvendinantis veiksmų plano, sukurto „Watcher Decision Engine“ komponentu, vykdymą.

Stebėtojo sprendimų variklis - Komponentas, atsakingas už galimų optimizavimo veiksmų, kad būtų pasiektas audito tikslas, apskaičiavimą. Jei strategija nenurodyta, komponentas savarankiškai pasirenka tinkamiausią.

„Watcher Metrics“ leidykla – Komponentas, renkantis ir apskaičiuojantis kai kurias metrikas arba įvykius ir paskelbiantis juos CEP galutiniame taške. Komponento funkcionalumą taip pat gali suteikti „Ceilometer“ leidėjas.

Sudėtingo įvykių apdorojimo (CEP) variklis - sudėtingų įvykių apdorojimo variklis. Dėl našumo priežasčių vienu metu gali veikti keli CEP Engine egzemplioriai, kurių kiekvienas apdoroja tam tikro tipo metriką / įvykį. Watcher sistemoje CEP suaktyvina dviejų tipų veiksmus: - įrašo atitinkamus įvykius/metriką laiko eilučių duomenų bazėje; - Nusiųskite atitinkamus įvykius į Watcher Decision Engine, kai šis įvykis gali paveikti dabartinės optimizavimo strategijos rezultatą, nes Openstack klasteris nėra statiška sistema.

Komponentai sąveikauja naudodami AMQP protokolą.

Stebėtojo konfigūravimas

Sąveikos su Watcher schema

Apkrovos balansavimas Openstack

Stebėtojo testo rezultatai

  1. Puslapyje Optimizavimas – veiksmų planai 500 (tiek ant grynų Queens, tiek ant stendo su Tionix moduliais) jis pasirodo tik pradėjus auditą ir sugeneravus veiksmų planą, tuščias atsidaro normaliai.
  2. Veiksmo detalių skirtuke yra klaidų, neįmanoma gauti audito tikslo ir strategijos (tiek ant gryno Queens, tiek ant stovo su Tionix moduliais).
  3. Auditai Dummy (testo) tikslu sukuriami ir pradedami įprastai, generuojami veiksmų planai.
  4. Neklasifikuoto tikslo auditai nekuriami, nes tikslas yra nefunkcionalus ir yra skirtas tarpinei konfigūracijai kuriant naujas strategijas.
  5. Auditai darbo krūvio balansavimui (Saugyklos talpos balanso strategija) sukurti sėkmingai, tačiau veiksmų planas nesukuriamas. Nereikia optimizuoti saugyklos baseino.
  6. Darbo krūvio balansavimo tikslo (darbo krūvio balanso migracijos strategijos) auditai sukurti sėkmingai, tačiau veiksmų planas nesukuriamas.
  7. Darbo krūvio balansavimo (darbo krūvio stabilizavimo strategijos) auditai nepavyksta.
  8. Triukšmingo kaimyno tikslo auditai sukurti sėkmingai, tačiau veiksmų planas nesukuriamas.
  9. Auditai Techninės įrangos priežiūros tikslais sukurti sėkmingai, veiksmų planas nesugeneruojamas pilnai (generuojami veiklos rodikliai, tačiau pats veiksmų sąrašas negeneruojamas).
  10. Redaguojant nova.conf konfigūracijas (numatytajame skyriuje compute_monitors = cpu.virt_driver) skaičiavimo ir valdymo mazguose klaidų neištaisoma.
  11. Taip pat nepavyksta atlikti audito, taikomo serverio konsolidavimui (pagrindinei strategijai).
  12. Serverio konsolidavimo (VM darbo krūvio konsolidavimo strategijos) auditas nepavyksta dėl klaidos. Žurnaluose įvyko klaida gaunant šaltinio duomenis. Diskusija apie klaidą, ypač čia.
    Bandėme konfigūracijos faile nurodyti Watcher (tai nepadėjo - dėl klaidos visuose optimizavimo puslapiuose grįžimas į pradinį konfigūracijos failo turinį nepataiso situacijos):

    [watcher_strategies.basic] duomenų šaltinis = celometras, gnocchi
  13. Energijos taupymo auditas nepavyksta. Sprendžiant iš žurnalų, problema vis dar yra Ironic nebuvimas; ji neveiks be nepriekaištingo aptarnavimo.
  14. Šiluminio optimizavimo auditas nepavyksta. Atsekimas yra toks pat kaip serverio konsolidavimo (VM darbo krūvio konsolidavimo strategija) (šaltinio duomenų klaida)
  15. Oro srauto optimizavimo auditas nepavyksta dėl klaidos.

Taip pat aptiktos šios audito užbaigimo klaidos. Atsekimas Decision-engine.log žurnaluose (klasterio būsena neapibrėžta).

→ Klaidos aptarimas čia

išvada

Mūsų dviejų mėnesių tyrimo rezultatas buvo nedviprasmiška išvada, kad norėdami gauti visavertę, veikiančią apkrovų balansavimo sistemą, šioje dalyje turėsime glaudžiai bendradarbiauti tobulinant Openstack platformos įrankius.

Watcher pasirodė esąs rimtas ir sparčiai besivystantis produktas, turintis milžinišką potencialą, kurio visiškas panaudojimas pareikalaus daug rimto darbo.

Tačiau daugiau apie tai – kituose serijos straipsniuose.

Šaltinis: www.habr.com

Добавить комментарий