Lastbalansering i OpenStack

I stora molnsystem Àr frÄgan om automatisk belastningsbalansering eller justering av belastningen pÄ datorkÀllor sÀrskilt viktig. Detta problem har ocksÄ uppmÀrksammats av Tionix (utvecklare och operatör av molntjÀnster, en del av Rostelecom-gruppen).

Och eftersom vÄr huvudsakliga utvecklingsplattform Àr OpenStack, och vi, precis som alla andra, Àr lata, beslutades det att vÀlja en fÀrdig modul som redan finns i plattformen. VÄrt val föll pÄ Watcher, som vi beslutade att anvÀnda för vÄra behov.
Lastbalansering i OpenStack
Till att börja med, lÄt oss gÄ igenom termer och definitioner.

Termer och definitioner

Syftet — Ă€r det mĂ€nniskolĂ€sbara, observerbara och mĂ€tbara slutresultatet som ska uppnĂ„s. För att nĂ„ varje mĂ„l finns det en eller flera strategier. En strategi Ă€r en implementering av en algoritm som kan hitta en lösning för det givna mĂ„let.

Handling (Action) — Ă€r en grundlĂ€ggande uppgift som förĂ€ndrar det nuvarande tillstĂ„ndet för den mĂ„linriktade hanterade resursen i OpenStack-klustret, sĂ„som: migrering av en virtuell maskin (migration), Ă€ndring av strömstatus för en nod (change_node_power_state), Ă€ndring av status för nova-tjĂ€nsten (change_nova_service_state), Ă€ndring av flavor (resize), registrering av nop-meddelande (nop), ingen aktivitet under en viss tidsperiod — paus (sleep), överföring av en disk (volume_migrate).

Handlingsplan (Action Plan) — Ă€r ett specifikt flöde av Ă„tgĂ€rder som utförs i en viss ordning för att uppnĂ„ ett specifikt mĂ„l. Handlingsplanen innehĂ„ller ocksĂ„ en bedömning av den globala effektiviteten med en uppsĂ€ttning prestationsmĂ„tt. Handlingsplanen genereras av Watcher efter en framgĂ„ngsrik revision, dĂ€r den anvĂ€nda strategin hittar en lösning för att nĂ„ mĂ„let. Handlingsplanen bestĂ„r av en lista över sekventiella handlingar.

Revision (Audit) — Ă€r en begĂ€ran om att optimera klustret. Optimering utförs för att nĂ„ ett mĂ„l i detta kluster. För varje framgĂ„ngsrik revision genererar Watcher en handlingsplan.

RevisionsomrĂ„de (Audit Scope) — detta Ă€r en uppsĂ€ttning resurser dĂ€r en granskning utförs (tillgĂ€nglighetszon(er), nodaggregatorer, individuella berĂ€kningsnoder eller lagringsnoder, etc.). GranskningsomrĂ„det definieras i varje mall. Om granskningsomrĂ„det inte anges, granskas hela klustret.

Granskningsmall (Audit Template) — en sparad uppsĂ€ttning instĂ€llningar för att köra en granskning. Mallar Ă€r nödvĂ€ndiga för att upprepade gĂ„nger köra granskningar med samma instĂ€llningar. Mallen mĂ„ste innehĂ„lla granskningsmĂ„let; om strategier inte anges, vĂ€ljs de mest lĂ€mpliga bland de befintliga strategierna.

Kluster (Cluster) — detta Ă€r en uppsĂ€ttning fysiska maskiner som tillhandahĂ„ller berĂ€kningsresurser, lagringsresurser och nĂ€tverksresurser och hanteras av samma OpenStack-kontrollnod.

Kluster datamodell (Cluster Data Model, CDM) — detta Ă€r en logisk representation av det aktuella tillstĂ„ndet och topologin av resurser som hanteras av klustret.

Effektivitetsindikator (Efficacy Indicator) — en indikator som visar hur vĂ€l en lösning, skapad med hjĂ€lp av denna strategi, utförs. Effektivitetsindikatorer Ă€r specifika för ett visst mĂ„l och anvĂ€nds vanligtvis för att berĂ€kna den globala effektiviteten av den slutliga handlingsplanen.

Effektivitets-specifikation (Efficacy Specification) — detta Ă€r en uppsĂ€ttning specifika egenskaper kopplade till varje mĂ„l, som definierar olika effektivitetsindikatorer som strategin som sĂ€kerstĂ€ller uppfyllandet av mĂ„let mĂ„ste uppfylla i sin lösning. Varje lösning som föreslĂ„s av strategin kommer att kontrolleras mot specifikationen innan dess globala effektivitet berĂ€knas.

“RĂ€knande” motor (Scoring Engine) — detta Ă€r en körbar fil som har tydligt definierade ingĂ„ngar, tydligt definierade utgĂ„ngar och utför en rent matematisk uppgift. DĂ€rmed Ă€r berĂ€kningen oberoende av den miljö dĂ€r den körs — den kommer att ge samma resultat överallt.

Watcher planerare (Watcher Planner) — del av beslutsfattande mekanismen Watcher. Denna modul tar emot en uppsĂ€ttning Ă„tgĂ€rder som genereras av strategin och skapar en arbetsflödesplan som definierar hur dessa olika Ă„tgĂ€rder planeras tidsmĂ€ssigt och för varje Ă„tgĂ€rd, vilka förutsĂ€ttningar som gĂ€ller.

MÄl och strategier för Watcher

Syftet
Strategier

Dummy-mÄl
Dummy-strategi 

Dummy-strategi med exempel pÄ bedömningsmotorer

Dummy-strategi med resize

Spara energi
Strategi för att spara energi

Serverkonsolidering
GrundlÀggande offline serverkonsolidering

VM arbetsbelastningskonsolideringsstrategi

Arbetsbelastningsbalansering
Arbetsbelastningsbalanseringsstrategi vid migrering

Strategi för balansering av lagringskapacitet

Stabilisering av arbetsbelastning

Bullerig granne
Bullerig granne

Termisk optimering
Strategi baserad pÄ utgÄngstemperatur

Luftflödesoptimering
Strategi för enhetlig luftflödesmigration

HÄrdvaruunderhÄll
Zonmigrering

Oklassificerat
StÀllare

Dummy-mĂ„l — ett reservmĂ„l som anvĂ€nds för testning (reserved goal that is used for testing purposes).

Relaterade strategier: Dummy-strategi, Dummy-strategi med exempel pÄ bedömningsmotorer och Dummy-strategi med resize. Dummy-strategi Àr en dummy-strategi som anvÀnds för integrationstester via Tempest. Denna strategi ger ingen anvÀndbar optimering, dess enda syfte Àr att köra Tempest-tester.

Dummy-strategi med exempel pĂ„ bedömningsmotorer — strategin liknar den föregĂ„ende, men skiljer sig endast genom att den anvĂ€nder ett exempel pĂ„ en "bedömningsmotor" som rĂ€knar med hjĂ€lp av metoder för maskininlĂ€rning.

Dummy-strategi med resize — strategin liknar den föregĂ„ende, men skiljer sig endast genom att den anvĂ€nder förĂ€ndringar av flavor (migrering och resize).

AnvÀnds inte i produktion.

Spara energi — att minimera energiförbrukningen. Strategin för detta mĂ„l, Spara energi, tillsammans med strategin för VM-arbetsbelastningskonsolidering (Serverkonsolidering) kan utföra funktioner för dynamisk energihantering (DPM) som sparar elektricitet genom dynamisk konsolidering av arbetsbelastningar Ă€ven under perioder av lĂ„g resursbelastning: virtuella maskiner flyttas till fĂ€rre noder, och onödiga noder stĂ€ngs av. Efter konsolideringen föreslĂ„r strategin en lösning för att sĂ€tta pĂ„/av noder baserat pĂ„ angivna parametrar: "min_free_hosts_num" — antal lediga aktiva noder som vĂ€ntar pĂ„ belastning, och "free_used_percent" — procentandel av lediga aktiva noder i förhĂ„llande till antalet noder som Ă€r belagda av maskiner. För att strategin ska fungera mĂ„ste Ironic vara aktiverat och konfigurerat för att hantera strömförsörjningen pĂ„ noder.

Parametrar för strategin

parameter
typ
standard
beskrivning

fri_anvÀnd procent
Antal
10.0
förhÄllandet mellan antalet lediga berÀkningsnoder och antalet berÀkningsnoder med virtuella maskiner

min_ledig_noder_num
Int
1
minimalt antal lediga berÀkningsnoder

Det mÄste finnas minst tvÄ noder i molnet. Den anvÀnda metoden Àr att Àndra nodens strömstatus (change_node_power_state). Strategin för insamling av mÀtvÀrden krÀver inte nÄgot.

Serverkoncentration - minimera antalet berÀkningsnoder (koncentration). Har tvÄ strategier: Basic Offline Server Consolidation och VM Workload Consolidation Strategy.

Strategin Basic Offline Server Consolidation minimerar det totala antalet anvÀnda servrar och minimerar ocksÄ antalet migrationer.

Den grundlÀggande strategin krÀver följande mÀtvÀrden:

mÀtvÀrde
tjÀnst
plugins
kommentar

compute.node.cpu.percent
ceilometer
none
 

cpu_util
ceilometer
none
 

Strategi-parametrar: migration_attempts - antal kombinationer för att söka efter potentiella kandidater för avstÀngning (standard, 0, inga begrÀnsningar), period - tidsintervallet i sekunder för att fÄ statisk aggregering frÄn datakÀlla av mÀtvÀrdet (standard, 700).

AnvÀnda metoder: migration, Àndra status för nova-tjÀnsten (change_nova_service_state).

Strategin för VM Workload Consolidation Strategy Àr baserad pÄ en heuristisk algoritm för första bÀsta valet (first-fit), som fokuserar pÄ mÀtt CPU-belastning och strÀvar efter att minimera noder som har antingen för hög eller för lÄg belastning med hÀnsyn till resurskapacitetsbegrÀnsningar. Denna strategi ger en lösning som leder till mer effektiv resursanvÀndning i klustret, genom att anvÀnda följande fyra steg:

  1. Avlastningsfas - hantering av överutnyttjade resurser;
  2. Konsolideringsfas - hantering av underutnyttjade resurser;
  3. Optimering av lösning - minska antalet migrationer;
  4. AvstÀngning av oanvÀnda berÀkningsnoder.

Strategin krÀver följande mÀtvÀrden:

mÀtvÀrde
tjÀnst
plugins
kommentar

minne
ceilometer
none
 

disk.root.size
ceilometer
none
 

Följande mÀtvÀrden Àr inte obligatoriska, men ökar noggrannheten i strategin om de Àr tillgÀngliga:

mÀtvÀrde
tjÀnst
plugins
kommentar

memory.resident
ceilometer
none
 

cpu_util
ceilometer
none
 

Strategi-parametrar: period - tidsintervallet i sekunder för att fÄ statisk aggregering frÄn datakÀlla av mÀtvÀrdet (standard, 3600).

AnvÀnder samma metoder som den föregÄende strategin. Mer information hÀr.

Arbetsbelastningsbalansering — balansera arbetsbelastningen mellan berĂ€kningsnoder. MĂ„let har tre strategier: Workload Balance Migration Strategy, Workload stabilization, Storage Capacity Balance Strategy.

Workload Balance Migration Strategy initierar migreringar av virtuella maskiner baserat pÄ arbetsbelastningen pÄ noderna. Beslutet om att flytta tas varje gÄng CPU- eller RAM-anvÀndningen pÄ en nod överskrider den angivna grÀnsen. Den flyttade virtuella maskinen bör nÀrma noden till den genomsnittliga arbetsbelastningen för alla noder.

Krav

  • AnvĂ€ndning av fysiska processorer;
  • Minst tvĂ„ fysiska berĂ€kningsnoder;
  • Installerad och konfigurerad komponent Ceilometer — ceilometer-agent-compute, som körs pĂ„ varje berĂ€kningsnod, samt Ceilometer API, och insamling av följande mĂ€tvĂ€rden:

mÀtvÀrde
tjÀnst
plugins
kommentar

cpu_util
ceilometer
none
 

memory.resident
ceilometer
none
 

Strategins parametrar:

parameter
typ
standard
beskrivning

metrics
StrÀng
‘cpu_util’
MĂ€tvĂ€rdena som ligger till grund för: ‘cpu_util’, ‘memory.resident’.

tröskelvÀrde
Antal
25.0
Arbetsbelastningströskel för migrering.

period
Antal
300
Sammanlagd tid Ceilometer.

AnvĂ€nd metod — migration.

Workload stabilization — strategi som syftar till att stabilisera arbetsbelastningen genom levande migrering. Strategin baseras pĂ„ en algoritm för standardavvikelse och bestĂ€mmer om det finns överbelastning i klustret, och reagerar pĂ„ den genom att initiera migrering av maskiner för att stabilisera klustret.

Krav

  • AnvĂ€ndning av fysiska processorer;
  • Minst tvĂ„ fysiska berĂ€kningsnoder;
  • Installerad och konfigurerad komponent Ceilometer — ceilometer-agent-compute, som körs pĂ„ varje berĂ€kningsnod, samt Ceilometer API, och insamling av följande mĂ€tvĂ€rden:

mÀtvÀrde
tjÀnst
plugins
kommentar

cpu_util
ceilometer
none
 

memory.resident
ceilometer
none
 

Storage Capacity Balance Strategy (strategin implementerades frĂ„n och med Queens) — strategin flyttar diskar baserat pĂ„ belastningen pĂ„ Cinder-poolerna. Beslutet om att flytta tas varje gĂ„ng anvĂ€ndningsgraden för poolen överskrider den angivna grĂ€nsen. Den flyttade disken bör nĂ€rma poolen till den genomsnittliga belastningen för alla Cinder-pooler.

Krav och begrÀnsningar

  • Minst tvĂ„ Cinder-pooler;
  • Möjlighet att migrera diskar.
  • Klustrets datamodell — Cinder cluster data model collector.

Strategins parametrar:

parameter
typ
standard
beskrivning

volume_threshold
Antal
80.0
TröskelvÀrde för diskar för volymbalansering.

AnvĂ€nd metod — diskmigrering (volume_migrate).

Noisy Neighbor — att identifiera och flytta "grannmaskinen" — en virtuell maskin med lĂ„g prioritet, som negativt pĂ„verkar prestanda hos en virtuell maskin med hög prioritet ur IPC-synpunkt, och överanvĂ€nder Last Level Cache. Egen strategi: Noisy Neighbor (anvĂ€nd parameter för strategi — cache_threshold (standardvĂ€rde — 35), nĂ€r prestandan faller under angivet vĂ€rde startar migreringen. För att strategin ska fungera krĂ€vs aktiverade LLC (Last Level Cache) metrikor, den senaste Intel-servern med stöd för CMT, samt insamling av följande metrikor:

mÀtvÀrde
tjÀnst
plugins
kommentar

cpu_l3_cache
ceilometer
none
NödvÀndig Intel CMT.

Klustermodell (standard): Nova cluster data model collector. AnvĂ€nd metod — migrering.

Arbete med detta mÄl via Dashboard Àr inte fullt implementerat i Queens.

Termisk optimering — optimera temperaturregimen. UtgĂ„ngstemperaturen (utluft) Ă€r ett av de viktiga termiska telemetrisystemen för att mĂ€ta tillstĂ„ndet för serverns vĂ€rme-/arbetsbelastning. För mĂ„let finns en strategi — Outlet temperature based strategy, som fattar beslut om att flytta arbetsbelastningar till noder med gynnsam temperaturregim (den lĂ€gsta utgĂ„ngstemperaturen), nĂ€r utgĂ„ngstemperaturen för de ursprungliga vĂ€rdarna nĂ„r en konfigurerbar tröskel.

För att strategin ska fungera krÀvs en server med installerad och konfigurerad Intel Power Node Manager 3.0 eller senare version, samt insamling av följande metrikor:

mÀtvÀrde
tjÀnst
plugins
kommentar

hardware.ipmi.node.outlet_temperature
ceilometer
IPMI
 

Strategins parametrar:

parameter
typ
standard
beskrivning

tröskelvÀrde
Antal
35.0
Temperaturtröskel för migrering.

period
Antal
30
Tidsintervall i sekunder för att fÄ statistisk aggregation frÄn datakÀllan för metrikor.

AnvĂ€nd metod — migration.

Luftflödesoptimering — optimera ventilationslĂ€get. Egen strategi — Uniform Airflow using live migration. Strategin initierar migreringen av den virtuella maskinen varje gĂ„ng luftflödet frĂ„n serverns flĂ€kt överstiger angiven tröskel.

För att strategin ska fungera krÀvs:

  • HĂ„rdvara: berĂ€kningsnoder <med stöd för NodeManager 3.0;
  • Minst tvĂ„ berĂ€kningsnoder;
  • Installerat och konfigurerat pĂ„ varje berĂ€kningsnod komponenten ceilometer-agent-compute och Ceilometer API, som kan rapportera sĂ„dana metrikor som luftflöde, systemeffekt, inlopps temperatur:

mÀtvÀrde
tjÀnst
plugins
kommentar

hardware.ipmi.node.airflow
ceilometer
IPMI
 

hardware.ipmi.node.temperature
ceilometer
IPMI
 

hardware.ipmi.node.power
ceilometer
IPMI
 

För att strategin ska fungera krÀvs en server med installerad och konfigurerad Intel Power Node Manager 3.0 eller senare version.

BegrÀnsningar: Konceptet Àr inte avsett för produktion.

Det rekommenderas att anvÀnda denna algoritm med kontinuerliga revisioner, eftersom en migration planeras för endast en virtuell maskin Ät gÄngen.

Levande migrationer Àr möjliga.

Strategins parametrar:

parameter
typ
standard
beskrivning

threshold_airflow
Antal
400.0
LuftflödesgrÀns för migrationen Enhet Àr 0.1CFM

threshold_inlet_t
Antal
28.0
InloppstemperaturgrÀns för migrationsbeslut

threshold_power
Antal
350.0
SystemkraftgrÀns för migrationsbeslut

period
Antal
30
Tidsintervall i sekunder för att fÄ statistisk aggregation frÄn datakÀllan för metrikor.

AnvĂ€nd metod — migration.

HĂ„rdvarunderhĂ„ll — underhĂ„ll av hĂ„rdvaror. Strategin som gĂ€ller för detta syfte Ă€r zonmigration. Strategin Ă€r ett verktyg för effektiv automatisk och minimal migration av virtuella maskiner och diskar nĂ€r tekniskt underhĂ„ll av hĂ„rdvaror behövs. Strategin bygger en handlingsplan baserat pĂ„ vikter: en uppsĂ€ttning Ă„tgĂ€rder med högre vikt kommer att planeras före andra. Det finns tvĂ„ konfigurationsparametrar: Ă„tgĂ€rdsvikter (action_weights) och parallellisering.

BegrÀnsningar: konfiguration av ÄtgÀrdsvikter och parallellisering krÀvs.

Strategins parametrar:

parameter
typ
standard
beskrivning

compute_nodes
array
None
BerÀkningsnoder för migration.

storage_pools
array
None
Lagringsnoder för migration.

parallel_total
heltal
6
Det totala antal ÄtgÀrder som ska utföras parallellt.

parallel_per_node
heltal
2
Antal ÄtgÀrder som utförs parallellt för varje berÀkningsnod.

parallel_per_pool
heltal
2
Antal ÄtgÀrder som utförs parallellt för varje lagringspool.

priority
object
None
Lista över prioriteter för virtuella maskiner och diskar.

with_attached_volume
boolean
Falskt
False — virtuella maskiner kommer att flyttas efter att alla diskar har flyttats. True — virtuella maskiner kommer att flyttas efter att alla anslutna diskar har migrerats.

Element i arrayen av berÀkningsnoder:

parameter
typ
standard
beskrivning

src_node
strÀng
None
BerÀkningsnod frÄn vilken de virtuella maskinerna flyttas (obligatoriskt).

dst_node
strÀng
None
BerÀkningsnod dit de virtuella maskinerna migreras.

Element i arrayen av lagringsnoder:

parameter
typ
standard
beskrivning

src_pool
strÀng
None
Lagringspool frÄn vilken diskar flyttas (obligatoriskt).

dst_pool
strÀng
None
Lagringspool dit diskar flyttas.

src_type
strÀng
None
Ursprunglig disktyp (obligatoriskt).

dst_type
strÀng
None
Slutgiltig disktyp (obligatoriskt).

Element av prioritetsobjekt:

parameter
typ
standard
beskrivning

projekt
array
None
Projektnamn.

compute_node
array
None
Namn pÄ berÀkningsnoder.

storage_pool
array
None
Namn pÄ lagringspooler.

compute
enum
None
Parameter för virtuella maskiner [“vcpu_num”, “mem_size”, “disk_size”, “created_at”].

lagring
enum
None
Parameter för diskar [“size”, “created_at”].

AnvĂ€nda metoder — migrering av virtuella maskiner, migrering av diskar.

Oklassificerat — en hjĂ€lpmĂ„lsĂ€ttning som anvĂ€nds för att underlĂ€tta utvecklingen av strategin. Den innehĂ„ller inga specifikationer och kan anvĂ€ndas varje gĂ„ng strategin inte Ă€r kopplad till ett befintligt mĂ„l. Detta mĂ„l kan Ă€ven anvĂ€ndas som ett övergĂ„ngssteg. Strategin kopplad till detta mĂ„l Ă€r Actuator.   

Skapa ett nytt mÄl

Watcher Decision Engine har ett plugin-grĂ€nssnitt för ”externa mĂ„l”, vilket möjliggör integration av ett externt mĂ„l som kan uppnĂ„s med hjĂ€lp av strategin.

Innan du skapar ett nytt mÄl, bör du försÀkra dig om att inget av de befintliga mÄlen uppfyller dina behov.

Skapa en ny plugin

För att skapa ett nytt mÄl mÄste du: utöka mÄlets klass, implementera metoden för klassen get_name () för att returnera det unika identifierare för det nya mÄl du vill skapa. Detta unika identifierare mÄste överensstÀmma med namnet pÄ ingÄngspunkten som du deklarerar senare.

Sedan mÄste du implementera metoden för klassen get_display_name () för att Äterge det översatta visningsnamnet för det mÄl du vill skapa (anvÀnd inte en variabel för att returnera den översatta strÀngen sÄ att den kan samlas automatiskt av översÀttningsverktyget.).

Implementera metoden för klassen get_translatable_display_name (), för att returnera översÀttningsnyckeln (faktiskt det engelska visningsnamnet) för ditt nya mÄl. Det returnerade vÀrdet ska stÀmma överens med strÀngen som översattes i get_display_name ().

Implementera dess metod get_efficacy_specification (), för att returnera effektivitetspecifikationen för ditt mÄl. Metoden get_efficacy_specification () returnerar en instans av Unclassified (), vilken tillhandahÄlls av Watcher. Denna effektivitetspecifikation Àr anvÀndbar under utvecklingen av ditt mÄl, eftersom den överensstÀmmer med en tom specifikation.

→ Mer information hĂ€r

Watcher-arkitektur (mer information hÀr).

Lastbalansering i OpenStack

Komponenter

Lastbalansering i OpenStack

Watcher API — en komponent som implementerar REST API som tillhandahĂ„lls av Watcher. Interaktionsmekanismer: CLI, plugin Horizon, Python SDK.

Watcher DB — Watchers databas.

Watcher Applier — en komponent som implementerar utförandet av Ă„tgĂ€rdsplanen som skapats av komponenten Watcher Decision Engine.

Watcher Decision Engine — en komponent som ansvarar för att berĂ€kna uppsĂ€ttningen av potentiella Ă„tgĂ€rder för optimering för att uppnĂ„ revisionsmĂ„let. Om strategin inte anges vĂ€ljer komponenten sjĂ€lv det mest lĂ€mpliga alternativet.

Watcher Metrics Publisher — en komponent som samlar in och berĂ€knar vissa metrik eller hĂ€ndelser och publicerar dem till CEP-slutpunkten. Komponentens funktionalitet kan ocksĂ„ tillhandahĂ„llas av Ceilometer publisher.

Complex Event Processing (CEP) Engine — en motor för komplex hĂ€ndelsebehandling. Av prestandaskĂ€l kan flera instanser av CEP Engine köras samtidigt, dĂ€r varje enskild hanterar en viss typ av metrik / hĂ€ndelser. I Watcher-systemet kör CEP tvĂ„ typer av Ă„tgĂ€rder: — skriv relevanta hĂ€ndelser / metrik till tidsseriedatabasen; — skicka relevanta hĂ€ndelser till Watcher Decision Engine-komponenten nĂ€r denna hĂ€ndelse kan pĂ„verka resultatet av den aktuella optimeringsstrategin, eftersom OpenStack-klustret inte Ă€r ett statiskt system.

Interaktionen mellan komponenterna sker via AMQP-protokollet.

→ Konfigurering av Watcher

Schema för interaktion med Watcher

Lastbalansering i OpenStack

Resultat av tester av Watcher

  1. PĂ„ sidan Optimering — ÅtgĂ€rdsplaner visas 500-fel (bĂ„de pĂ„ ren Queens och pĂ„ en installation med Tionix-moduler), som bara dyker upp efter att revisionen körts och Ă„tgĂ€rdsplanen genererats, en tom sida öppnas normalt.
  2. PĂ„ fliken ÅtgĂ€rdsdetaljer visas fel, det gĂ„r inte att hĂ€mta mĂ„l och revisionsstrategi (bĂ„de pĂ„ ren Queens och pĂ„ en installation med Tionix-moduler).
  3. Revisioner med mÄlet Dummy (testmÄl) skapas och körs normalt, ÄtgÀrdsplaner genereras.
  4. Revisioner med mÄlet Unclassified skapas inte, eftersom mÄlet inte Àr funktionellt och Àr avsett för mellaninstÀllningar vid skapande av nya strategier.
  5. Revisioner med mÄlet Workload Balancing (strategi för lagringskapacitetsbalansering) skapas framgÄngsrikt, men ÄtgÀrdsplanen genereras inte. Optimering av lagringspooler krÀvs inte.
  6. Revisioner med mÄlet Workload Balancing (strategi för Workload Balance Migration Strategy) skapas framgÄngsrikt, men ÄtgÀrdsplanen genereras inte.
  7. Revisioner med mÄlet Workload Balancing (strategi för Workload Stabilization Strategy) avslutas med fel.
  8. Revisioner med mÄlet Noisy Neighbor skapas framgÄngsrikt, men ÄtgÀrdsplanen genereras inte.
  9. Auditeringar för hÄrdvarunderhÄll skapas framgÄngsrikt, handlingsplanen genereras inte i sin helhet (effektivitetsindikatorer genereras, men sjÀlva ÄtgÀrdslistan genereras inte).
  10. Ändringar i konfigurationsfilerna nova.conf (i standardsektionen compute_monitors = cpu.virt_driver) pĂ„ berĂ€knings- och styrnoderna rĂ€ttar inte till felen.
  11. Auditeringar för serverkonsolidering (strategi Basic) avslutas ocksÄ med fel.
  12. Auditeringar för serverkonsolidering (strategi VM workload consolidation) avslutas med fel. Det finns ett fel i loggarna vid hÀmtning av ursprungliga data. Diskussion om felet, sÀrskilt hÀr.
    Vi försökte ange i Watcher-konfigurationsfilen (det hjĂ€lpte inte — i resultatet fel pĂ„ alla sidor för Optimering, Ă„terstĂ€llning till ursprungligt innehĂ„ll i konfigurationsfilen löser inte situationen):

    [watcher_strategies.basic]
    datasource = ceilometer, gnocchi

  13. Auditeringar för energibesparing avslutas med fel. Enligt loggarna ligger problemet fortfarande i avsaknaden av Ironic, det kommer inte att fungera utan baremetal-service.
  14. Auditeringar för termisk optimering avslutas med fel. Traceback Àr densamma som för serverkonsolidering (strategi VM workload consolidation) (fel med ursprungliga data)
  15. Auditeringar för Airflow-optimering avslutas med fel.

Det finns ocksÄ följande fel vid avslutning av audit. Traceback i loggarna decision-engine.log (klusterstatus Àr inte definierad).

→ Diskussion om felet hĂ€r

Slutsats

Resultatet av vÄr tvÄmÄnaders forskning blev en tydlig slutsats att för att fÄ ett fullt fungerande lastbalanseringssystem mÄste vi, i denna del, intensivt arbeta med att vidareutveckla verktygen för Openstack-plattformen.

Watcher har visat sig vara en seriös och snabbt vÀxande produkt med enorm potential, för att anvÀnda den fullt ut krÀvs det dock stort och seriöst arbete.

Men mer om detta – i kommande artiklar i serien.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster