Í stórum skýjakerfum er spurningin um sjálfvirka jafnvægisstillingu eða jöfnun álags á tölvuauðlindir sérstaklega bráð. Tionix (framleiðandi og rekstraraðili skýjaþjónustu, hluti af Rostelecom fyrirtækjasamsteypunni) hefur einnig séð um þetta mál.
Og þar sem aðalþróunarvettvangurinn okkar er Openstack og við, eins og allir aðrir, erum latir, var ákveðið að velja tilbúna einingu sem er þegar innifalinn í pallinum. Val okkar féll á Watcher, sem við ákváðum að nota fyrir okkar þarfir.
Fyrst skulum við skoða hugtökin og skilgreiningarnar.
Skilmálar og skilgreiningar
Markmið er mannlæsilegur, sjáanlegur og mælanlegur lokaniðurstaða sem verður að ná. Það eru ein eða fleiri aðferðir til að ná hverju markmiði. Stefna er innleiðing á reiknirit sem er fær um að finna lausn fyrir tiltekið markmið.
Aðgerð er grunnverkefni sem breytir núverandi stöðu markstýrðu auðlindarinnar OpenStack klasans, svo sem: flytja sýndarvél (flutning), breyta aflstöðu hnút (change_node_power_state), breyta stöðu nova þjónustunnar (change_nova_service_state) ), breyta bragði (breyta stærð), skrá NOP skilaboð (nop), skortur á aðgerðum í ákveðinn tíma - hlé (svefn), diskaflutningur (volume_migrate).
Aðgerðaáætlun - ákveðið flæði aðgerða sem gerðar eru í ákveðinni röð til að ná ákveðnu markmiði. Aðgerðaáætlunin inniheldur einnig mældan árangur á heimsvísu með safni frammistöðuvísa. Aðgerðaráætlun er búin til af Watcher við árangursríka úttekt, sem leiðir til þess að stefnan sem notuð er finnur lausn til að ná markmiðinu. Aðgerðaráætlun samanstendur af lista yfir raðaðgerðir.
Endurskoðun er beiðni um að fínstilla klasann. Hagræðing er framkvæmd til að ná einu markmiði í tilteknum klasa. Fyrir hverja árangursríka úttekt býr Watcher til aðgerðaáætlun.
Umfang endurskoðunar er safn auðlinda sem endurskoðunin fer fram innan (aðgengissvæði(r), hnútasamlarar, einstakir reiknihnútar eða geymsluhnútar osfrv.). Umfang endurskoðunar er skilgreint í hverju sniðmáti. Ef umfang endurskoðunar er ekki tilgreint er allur klasinn endurskoðaður.
Úttektarsniðmát — vistuð sett af stillingum til að hefja endurskoðun. Sniðmát þarf til að keyra úttektir mörgum sinnum með sömu stillingum. Sniðmátið verður endilega að innihalda tilgang endurskoðunarinnar; ef aðferðir eru ekki tilgreindar, þá eru heppilegustu núverandi aðferðir valdar.
Klasi er safn líkamlegra véla sem bjóða upp á tölvu-, geymslu- og nettilföng og er stjórnað af sama OpenStack stjórnunarhnút.
Cluster Data Model (CDM) er rökrétt framsetning á núverandi ástandi og staðfræði auðlinda sem klasinn stjórnar.
Skilvirknivísir - vísir sem gefur til kynna hvernig lausnin sem búin er til með þessari stefnu er framkvæmd. Árangursvísar eru sérstakir fyrir tiltekið markmið og eru venjulega notaðir til að reikna út heildarárangur aðgerðaáætlunarinnar sem af því leiðir.
Forskrift um virkni er mengi sérstakra eiginleika sem tengjast hverju markmiði sem skilgreinir hina ýmsu frammistöðuvísa sem stefna til að ná samsvarandi markmiði verður að ná í lausn sinni. Reyndar verður hver lausn sem stefnan leggur til að athuga með forskriftina áður en alþjóðleg virkni hennar er reiknuð út.
Skorunarvél er keyranleg skrá sem hefur vel skilgreind inntak, vel skilgreind úttak og framkvæmir eingöngu stærðfræðilegt verkefni. Þannig er útreikningurinn óháður umhverfinu sem hann er framkvæmdur í - hann mun gefa sömu niðurstöðu hvar sem er.
Áhorfandi skipuleggjandi - hluti af Watcher ákvarðanatökuvélinni. Þessi eining tekur sett af aðgerðum sem myndast af stefnu og býr til verkflæðisáætlun sem tilgreinir hvernig á að tímasetja þessar mismunandi aðgerðir í tíma og fyrir hverja aðgerð, hverjar forsendurnar eru.
Markmið og aðferðir Watcher
Markmið
Stefna
Dummy mark
Dummy stefna
Dummy Strategy með því að nota sýnishorn af stigavélum
Dummy mark — frátekið markmið sem er notað í prófunartilgangi.
Tengdar aðferðir: Dummy Strategy, Dummy Strategy með sýnishorn af stigavélum og Dummy stefnu með stærðarbreytingu. Dummy stefna er dummy stefna sem notuð er til samþættingarprófa í gegnum Tempest. Þessi stefna veitir enga gagnlega hagræðingu, eini tilgangur hennar er að nota Tempest próf.
Dummy stefna sem notar sýnishorn af stigavélum - stefnan er svipuð þeirri fyrri, eini munurinn er notkun sýnishorns „stigavélar“ sem framkvæmir útreikninga með því að nota vélnámsaðferðir.
Dummy stefna með stærðarbreytingu - stefnan er svipuð þeirri fyrri, eini munurinn er notkunin á því að breyta bragðinu (flutningur og stærðarbreyting).
Ekki notað í framleiðslu.
Að spara orku — lágmarka orkunotkun. Orkusparnaðarstefna þessa markmiðs, ásamt VM Workload Consolidation Strategy (Server Consolidation), er fær um kraftmikla orkustýringu (DPM) eiginleika sem spara orku með því að sameina vinnuálag á kraftmikinn hátt, jafnvel á tímabilum þar sem auðlindanýting er lítil: sýndarvélar eru færðar í færri hnúta , og óþarfa hnútar eru óvirkir. Eftir sameiningu býður stefnan upp á ákvörðun um að kveikja/slökkva á hnútum í samræmi við tilgreindar færibreytur: "min_free_hosts_num" - fjöldi ókeypis virktra hnúta sem bíða eftir hleðslu og "free_used_percent" - hlutfall ókeypis virktra gestgjafa til fjöldi hnúta sem eru uppteknir af vélum. Til að stefnan virki verður að vera til virkt og stillt Ironic til að takast á við rafmagnshjólreiðar á hnútum.
Stefna breytur
breytu Tegund sjálfgefið описание
ókeypis_notað_prósent
Númer
10.0
hlutfall fjölda lausra tölvuhnúta og fjölda tölvuhnúta með sýndarvélum
minn_free_hosts_num
Int
1
lágmarksfjöldi ókeypis tölvuhnúta
Skýið verður að hafa að minnsta kosti tvo hnúta. Aðferðin sem notuð er er að breyta aflstöðu hnútsins (change_node_power_state). Stefnan krefst þess ekki að safna mælingum.
Samþjöppun miðlara - lágmarkaðu fjölda tölvuhnúta (samstæður). Það hefur tvær aðferðir: Basic Offline Server Consolidation og VM Workload Consolidation Strategy.
Basic Offline Server Consolidation stefnan lágmarkar heildarfjölda netþjóna sem notaðir eru og lágmarkar einnig fjölda flutninga.
Stefnumótunarfæribreytur: migration_attempts - fjöldi samsetninga til að leita að mögulegum umsækjendum fyrir lokun (sjálfgefið, 0, engar takmarkanir), tímabil - tímabil í sekúndum til að fá kyrrstæða samansöfnun frá mælingagagnagjafa (sjálfgefið, 700).
Aðferðir sem notaðar eru: flutningur, breyting á nova þjónustustöðu (change_nova_service_state).
Stefna VM vinnuálagssamþjöppunar er byggð á skynjunaraðferð sem einbeitir sér að mældu CPU-álagi og reynir að lágmarka hnúta sem hafa of mikið eða of lítið álag miðað við takmarkanir á auðlindagetu. Þessi stefna veitir lausn sem skilar sér í skilvirkari notkun klasaauðlinda með því að nota eftirfarandi fjögur skref:
Stefnumótunarfæribreytur: tímabil — tímabil í sekúndum til að fá kyrrstöðusamsöfnun úr mæligagnauppsprettu (sjálfgefið, 3600).
Notar sömu aðferðir og fyrri stefnu. Nánari upplýsingar hér.
Jafnvægi vinnuálags — jafnvægi á vinnuálagi milli tölvuhnúta. Markmiðið hefur þrjár aðferðir: Flutningaáætlun vinnuálags, stöðugleika vinnuálags, áætlun um jafnvægi í geymslurými.
Workload Balance Migration Strategy keyrir sýndarvélaflutninga út frá vinnuálagi sýndarvélar gestgjafans. Ákvörðun um flutning er tekin þegar % CPU eða vinnsluminni nýting hnúts fer yfir tilgreinda þröskuldinn. Í þessu tilviki ætti sýndarvélin sem flutt var að færa hnútinn nær meðalvinnuálagi allra hnúta.
Kröfur
Notkun líkamlegra örgjörva;
Að minnsta kosti tveir líkamlegir tölvuhnútar;
Setti upp og stillti Ceilometer íhlutinn - ceilometer-agent-compute, keyrandi á hverjum compute hnút, og Ceilometer API, auk þess að safna eftirfarandi mæligildum:
tölfræði
Band
'cpu_util'
Undirliggjandi mælikvarðar eru: 'cpu_util', 'memory.resident'.
þröskuldur
Númer
25.0
Vinnuálagsþröskuldur fyrir flutning.
tímabil
Númer
300
Uppsafnað tímabil Ceilometer.
Aðferðin sem notuð er er fólksflutningur.
Stöðugleiki vinnuálags er stefna sem miðar að því að koma á stöðugleika á vinnuálagi með því að nota lifandi flutning. Stefnan byggir á staðalfráviksalgrími og ákvarðar hvort þrengsli séu í klasanum og bregst við því með því að koma af stað vélaflutningi til að koma á stöðugleika í klasanum.
Kröfur
Notkun líkamlegra örgjörva;
Að minnsta kosti tveir líkamlegir tölvuhnútar;
Setti upp og stillti Ceilometer íhlutinn - ceilometer-agent-compute, keyrandi á hverjum compute hnút, og Ceilometer API, auk þess að safna eftirfarandi mæligildum:
Stefna geymslurýmis jafnvægis (stefna útfærð frá og með Queens) - stefnan flytur diska eftir álagi á Cinder laugunum. Ákvörðun um flutning er tekin í hvert sinn sem nýtingarhlutfall laugar fer yfir tilgreind viðmiðunarmörk. Diskurinn sem verið er að færa ætti að færa laugina nær meðalálagi allra Cinder lauga.
Kröfur og takmarkanir
Lágmark tvær Cinder laugar;
Möguleiki á flutningi diska.
Klasagagnalíkan - Cinder klasagagnalíkan safnari.
Stefna breytur:
breytu Tegund sjálfgefið описание
volume_threshold
Númer
80.0
Þröskuldsgildi diska fyrir jafnvægismagn.
Aðferðin sem notuð er er diskaflutningur (volume_migrate).
Hávær nágranni - Þekkja og flytja „hávaðasaman nágranna“ - sýndarvél með lágum forgangi sem hefur neikvæð áhrif á frammistöðu sýndarvélar með háa forgang hvað varðar IPC með því að ofnota Last Level Cache. Eigin stefna: Noisy Neighbor (Stefnumótunarbreyta sem notuð er er cache_threshold (sjálfgefið gildi er 35), þegar frammistaða fer niður í tilgreint gildi er flutningur hafin. Til að stefnan virki, virkjað LLC (Last Level Cache) mæligildi, nýjasta Intel netþjónn með CMT stuðningi, auk þess að safna eftirfarandi mæligildum:
Klasagagnalíkan (sjálfgefið): Nova klasagagnalíkansafnari. Aðferðin sem notuð er er fólksflutningur.
Vinna með þetta markmið í gegnum mælaborðið er ekki að fullu innleitt í Queens.
Thermal Optimization — hámarka hitastigið. Hitastig úttaks (útblásturslofts) er eitt af mikilvægu varma fjarmælingarkerfum til að mæla hitauppstreymi/vinnuálagsstöðu netþjóns. Markmiðið hefur eina stefnu, úttakshitastig byggða stefnu, sem ákveður að flytja vinnuálag yfir á hitafræðilega hagstæðan hýsil (lægsta úttakshitastig) þegar úttakshitastig upprunahýslanna nær stillanlegum þröskuldi.
Til að stefnan virki þarftu netþjón með Intel Power Node Manager uppsettan og stilltan 3.0 eða síðar, auk þess að safna eftirfarandi mæligildum:
þröskuldur
Númer
35.0
Hitamörk fyrir fólksflutninga.
tímabil
Númer
30
Tímabilið, í sekúndum, til að fá tölfræðilega samansöfnun frá mæligagnauppsprettu.
Aðferðin sem notuð er er fólksflutningur.
Hagræðing loftflæðis — hámarka loftræstingu. Eigin stefna - Samræmt loftflæði með lifandi flutningi. Stefnan kveikir á flutningi sýndarvéla þegar loftstreymi frá viftu miðlarans fer yfir tiltekinn þröskuld.
Ceilometer-agent-compute og Ceilometer API íhluturinn settur upp og stilltur á hverjum tölvuhnút, sem getur tilkynnt með góðum árangri eins og loftflæði, kerfisafl, inntakshitastig:
Til að stefnan virki þarftu netþjón með Intel Power Node Manager 3.0 eða nýrri uppsettan og stilltan.
Takmarkanir: Hugmyndin er ekki ætluð til framleiðslu.
Lagt er til að nota þetta reiknirit með stöðugum úttektum, þar sem aðeins er áætlað að flytja eina sýndarvél í hverri endurtekningu.
Lifandi fólksflutningar eru mögulegir.
Stefna breytur:
breytu Tegund sjálfgefið описание
þröskuldur_loftflæði
Númer
400.0
Loftflæðisþröskuldur fyrir flutningseining er 0.1CFM
threshold_inlet_t
Númer
28.0
Inntakshitamörk fyrir ákvörðun um flæði
threshold_power
Númer
350.0
Kerfisaflsþröskuldur fyrir ákvörðun um flutning
tímabil
Númer
30
Tímabilið, í sekúndum, til að fá tölfræðilega samansöfnun frá mæligagnauppsprettu.
Aðferðin sem notuð er er fólksflutningur.
Vélbúnaður Viðhald — viðhald vélbúnaðar. Stefnan sem tengist þessu markmiði er svæðisflutningur. Stefnan er tæki fyrir skilvirka sjálfvirka og lágmarksflutning sýndarvéla og diska ef þörf er á viðhaldi á vélbúnaði. Stefna byggir upp aðgerðaáætlun í samræmi við vægi: mengi aðgerða sem hefur meira vægi verður skipulögð á undan öðrum. Það eru tveir stillingarvalkostir: action_weights og parallelization.
Takmarkanir: Stilla þarf aðgerðaþyngd og samhliða samsetningu.
Stefna breytur:
breytu Tegund sjálfgefið описание
reikna_hnúta
array
ekkert
Reiknaðu hnúta fyrir flutning.
geymsla_laugar
array
ekkert
Geymsluhnútar fyrir flutning.
samhliða_heild
heiltala
6
Heildarfjöldi aðgerða sem þarf að framkvæma samhliða.
parallel_per_node
heiltala
2
Fjöldi aðgerða sem framkvæmdar eru samhliða fyrir hvern reiknihnút.
parallel_per_pool
heiltala
2
Fjöldi aðgerða sem gerðar eru samhliða fyrir hverja geymslupott.
forgang
mótmæla
ekkert
Forgangslisti fyrir sýndarvélar og diska.
with_attached_volume
boolískt
False
False—sýndarvélar verða fluttar eftir að allir diskar hafa verið fluttir. Satt — sýndarvélar verða fluttar eftir að allir tengdir diskar hafa verið fluttir.
Þættir í fylki tölvuhnúta:
breytu Tegund sjálfgefið описание
src_hnútur
band
ekkert
Reiknihnúturinn sem sýndarvélarnar eru fluttar frá (krafist).
dst_hnútur
band
ekkert
Reiknaðu hnútinn sem sýndarvélarnar eru að flytja til.
Geymsluhnút fylki þættir:
breytu Tegund sjálfgefið описание
src_laug
band
ekkert
Geymslusafnið sem verið er að flytja diskana frá (krafist).
dst_laug
band
ekkert
Geymslusafnið sem diskar eru fluttir í.
src_type
band
ekkert
Upprunaleg tegund disks (krafist).
dst_type
band
ekkert
Gerð disks sem myndast (áskilið).
Forgangsþættir hlutar:
breytu Tegund sjálfgefið описание
verkefni
array
ekkert
Nöfn verkefna.
reikna_hnút
array
ekkert
Reiknaðu nöfn hnúta.
geymsla_laug
array
ekkert
Geymslulaugarnöfn.
reikna
enum
ekkert
Sýndarvélarfæribreytur [„vcpu_num“, „mem_size“, „disk_size“, „created_at“].
geymslu
enum
ekkert
Diskbreytur [„stærð“, „created_at“].
Aðferðirnar sem notaðar eru eru sýndarvélaflutningur, diskaflutningur.
Óflokkað - hjálparmarkmið sem er notað til að auðvelda þróunarferlið stefnu. Inniheldur engar forskriftir og er hægt að nota hvenær sem stefnan er ekki enn tengd við núverandi markmið. Þetta markmið er einnig hægt að nota sem umbreytingarpunkt. Tengd stefna við þetta markmið er Actuator.
Að búa til nýtt markmið
Watcher Decision Engine hefur „ytri markmið“ viðmótsviðmót sem gerir það mögulegt að samþætta ytra markmið sem hægt er að ná með stefnu.
Áður en þú býrð til nýtt markmið ættir þú að ganga úr skugga um að engin núverandi markmið uppfylli þarfir þínar.
Að búa til nýja viðbót
Til að búa til nýtt markmið verður þú að: lengja markflokkinn, innleiða flokksaðferð fá_nafn() til að skila einkvæmu auðkenni nýja miðsins sem þú vilt búa til. Þetta einkvæma auðkenni verður að passa við nafn inngangsstaðar sem þú gefur upp síðar.
Næst þarftu að innleiða bekkjaraðferðina get_display_name() til að skila þýddu skjáheiti marksins sem þú vilt búa til (ekki nota breytu til að skila þýddu strengnum svo hægt sé að safna honum sjálfkrafa með þýðingartólinu.).
Innleiða bekkjaraðferð get_translatable_display_name()til að skila þýðingarlyklinum (í raun enska skjánafninu) á nýja skotmarkinu þínu. Skilagildið verður að passa við strenginn sem þýddur er í get_display_name().
Innleiða aðferð hans get_efficacy_specification()til að skila skilvirkniforskriftinni fyrir markmiðið þitt. Get_efficacy_specification() aðferðin skilar Unclassified() tilvikinu frá Watcher. Þessi frammistöðuforskrift er gagnleg í því ferli að þróa markmið þitt vegna þess að það samsvarar tómu forskriftinni.
Watcher API - hluti sem útfærir REST API frá Watcher. Samskiptaaðferðir: CLI, Horizon tappi, Python SDK.
Áhorfandi DB — Gagnagrunnur áhorfenda.
Watcher Applier — hluti sem útfærir framkvæmd aðgerðaáætlunar sem búin er til af Watcher Decision Engine íhlutnum.
Watcher Decision Engine - Hlutinn sem ber ábyrgð á því að reikna út safn hugsanlegra hagræðingaraðgerða til að ná endurskoðunarmarkmiðinu. Ef stefna er ekki tilgreind velur íhluturinn sjálfstætt þá sem hentar best.
Útgefandi Watcher Metrics - Hluti sem safnar og reiknar út suma mælikvarða eða atburði og birtir þær á CEP endapunkt. Ceilometer útgefandi getur einnig veitt virkni íhlutans.
Complex Event Processing (CEP) vél — vél fyrir flókna atburðavinnslu. Af frammistöðuástæðum geta verið mörg CEP Engine tilvik í gangi samtímis, og hver vinnur úr ákveðna tegund mæligildis/atburðar. Í Watcher kerfinu kallar CEP af stað tvenns konar aðgerðum: - skrá samsvarandi atburði/mælingar í tímaraðargagnagrunninum; - sendu viðeigandi atburði til Watcher Decision Engine þegar þessi atburður getur haft áhrif á niðurstöðu núverandi hagræðingarstefnu, þar sem Openstack þyrpingin er ekki kyrrstætt kerfi.
Íhlutirnir hafa samskipti með því að nota AMQP samskiptareglur.
Á Optimization - Action plans 500 síðu (bæði á hreinum Queens og á standi með Tionix einingum), birtist það aðeins eftir að úttektin er sett af stað og aðgerðaáætlun er búin til; sú tóma opnast venjulega.
Það eru villur á Action details flipanum, það er ekki hægt að fá endurskoðunarmarkmið og stefnu (bæði á hreinum Queens og á standi með Tionix einingar).
Úttektir með það að markmiði að vera Dummy (próf) eru búnar til og ræst venjulega, aðgerðaáætlanir eru búnar til.
Úttektir fyrir Óflokkað markmiðið eru ekki búnar til vegna þess að markmiðið er ekki virkt og er ætlað fyrir millistillingar þegar nýjar aðferðir eru búnar til.
Úttektir í þeim tilgangi að jöfnun vinnuálags (Stórage Capacity balance strategy) eru búnar til með góðum árangri, en aðgerðaáætlun er ekki búin til. Engin þörf á fínstillingu geymslulaugar.
Úttektir fyrir markmiðið um að jafna vinnuálag (Workload Balance Migration Strategy) eru búnar til með góðum árangri en aðgerðaáætlun er ekki búin til.
Úttektir fyrir jafnvægi á vinnuálagi (álagsstöðugleika) mistakast.
Úttektir fyrir háværa nágrannamarkmiðið eru búnar til með góðum árangri, en aðgerðaáætlun er ekki búin til.
Úttektir í þeim tilgangi að viðhalda vélbúnaði eru búnar til með góðum árangri, aðgerðaáætlunin er ekki búin til að fullu (frammistöðuvísar eru búnir til, en listinn yfir aðgerðir sjálfur er ekki búinn til).
Breytingar á nova.conf stillingum (í sjálfgefna hlutanum compute_monitors = cpu.virt_driver) á reikni- og stýrihnútum leiðrétta ekki villurnar.
Úttektir sem miða á samþjöppun netþjóna (Grunnstefna) mistakast einnig.
Úttektir í þeim tilgangi að sameina netþjóna (VM vinnuálagssamstæðuáætlun) mistakast með villu. Í annálunum er villa við að fá upprunagögn. Umfjöllun um villuna, sérstaklega hér.
Við reyndum að tilgreina Watcher í stillingarskránni (það hjálpaði ekki - vegna villu á öllum fínstillingarsíðum leiðréttir ekki ástandið að fara aftur í upprunalegt innihald stillingarskrárinnar):
[watcher_strategies.basic] gagnaheimild = loftmælir, gnocchi
Úttektir vegna orkusparnaðar mistakast. Af annálunum að dæma er vandamálið enn fjarvera Ironic; það mun ekki virka án baremetal þjónustu.
Úttektir fyrir varmahagræðingu mistakast. Rekjan er sú sama og fyrir Server Consolidation (VM vinnuálagssamstæðuáætlun) (upprunagagnavilla)
Úttektir í þeim tilgangi að hagræða loftflæði mistakast með villu.
Eftirfarandi villur í lok endurskoðunar koma einnig upp. Traceback í decision-engine.log logs (klasaástand er ekki skilgreint).
Niðurstaða tveggja mánaða rannsókna okkar var sú ótvíræða niðurstaða að til þess að fá fullgildt, virkt álagsjafnvægiskerfi, verðum við, í þessum hluta, að vinna náið að því að betrumbæta verkfæri fyrir Openstack vettvang.
Watcher hefur reynst vera alvarleg og ört þróun vara með gríðarlega möguleika, full notkun hennar mun krefjast mikillar alvarlegrar vinnu.