In groĂen Cloud-Systemen ist die automatische Lastverteilung oder -ausgleichung der Rechenressourcen von entscheidender Bedeutung. Dies haben auch wir bei Tionix (Entwickler und Betreiber von Cloud-Diensten, Teil der Gruppe Rostelekom) erkannt.
Da unsere Hauptentwicklungsplattform OpenStack ist und wir, wie alle Menschen, faul sind, entschieden wir uns, ein bereits vorhandenes Modul zu verwenden, das Teil der Plattform ist. Unsere Wahl fiel auf Watcher, den wir fĂŒr unsere BedĂŒrfnisse nutzen wollten.
ZunÀchst betrachten wir die Begriffe und Definitionen.
Begriffe und Definitionen
Ziel â das ist ein messbares, beobachtbares und nachvollziehbares Endergebnis, das erreicht werden soll. FĂŒr jedes Ziel gibt es eine oder mehrere Strategien. Eine Strategie ist die Umsetzung eines Algorithmus, der in der Lage ist, eine Lösung fĂŒr das festgelegte Ziel zu finden.
Aktion (Action) â ist eine grundlegende Aufgabe, die den aktuellen Zustand der Zielressource im OpenStack-Cluster Ă€ndert, wie z.B.: Migration einer virtuellen Maschine (migration), Ănderung des Stromzustands des Knotens (change_node_power_state), Ănderung des Zustands des Nova-Dienstes (change_nova_service_state), Ănderung des Flavors (resize), Registrierung einer NOP-Nachricht (nop), keine Aktionen ĂŒber einen bestimmten Zeitraum â Pause (sleep), Verschieben eines Volumes (volume_migrate).
Aktionsplan (Action Plan) â ist ein spezifischer Handlungsablauf, der in einer bestimmten Reihenfolge durchgefĂŒhrt wird, um ein konkretes Ziel zu erreichen. Der Aktionsplan enthĂ€lt auch eine bewertete globale Effizienz mit einer Reihe von Leistungsindikatoren. Der Aktionsplan wird von Watcher nach einem erfolgreich durchgefĂŒhrten Audit generiert, bei dem die verwendete Strategie eine Lösung zur Erreichung des Ziels findet. Der Aktionsplan besteht aus einer Liste von aufeinanderfolgenden MaĂnahmen.
Audit (Audit) â ist eine Anforderung zur Optimierung des Clusters. Die Optimierung erfolgt, um ein Ziel in diesem Cluster zu erreichen. FĂŒr jedes erfolgreiche Audit generiert Watcher einen Aktionsplan.
Auditbereich (Audit Scope) â ist eine Sammlung von Ressourcen, innerhalb derer eine ĂberprĂŒfung durchgefĂŒhrt wird (VerfĂŒgbarkeitszone(n), Knotengruppen, einzelne Rechenknoten oder Speicherorte usw.). Der ĂberprĂŒfungsbereich ist in jeder Vorlage definiert. Wenn der ĂberprĂŒfungsbereich nicht angegeben ist, wird das gesamte Cluster ĂŒberprĂŒft.
ĂberprĂŒfungsvorlage (Audit Template) â ist eine gespeicherte Sammlung von Einstellungen zur DurchfĂŒhrung einer ĂberprĂŒfung. Vorlagen sind notwendig, um wiederholt ĂberprĂŒfungen mit denselben Einstellungen durchzufĂŒhren. Die Vorlage muss unbedingt das Ziel der ĂberprĂŒfung enthalten; wenn Strategien nicht angegeben sind, werden die am besten geeigneten vorhandenen Strategien ausgewĂ€hlt.
Cluster (Cluster) â ist eine Sammlung von physischen Maschinen, die Rechenressourcen, Speicherressourcen und Netzwerkressourcen bereitstellen und von demselben OpenStack-Managementknoten verwaltet werden.
Cluster-Datenmodell (Cluster Data Model, CDM) â ist eine logische Darstellung des aktuellen Zustands und der Topologie der vom Cluster verwalteten Ressourcen.
Effizienzindikator (Efficacy Indicator) â ein Indikator, der anzeigt, wie gut eine Lösung, die mit dieser Strategie erstellt wurde, funktioniert. Die Leistungskennzahlen sind spezifisch fĂŒr ein bestimmtes Ziel und werden in der Regel verwendet, um die globale EffektivitĂ€t des endgĂŒltigen Aktionsplans zu berechnen.
Wirksamkeitsspezifikation (Efficacy Specification) â ist eine Reihe spezifischer Merkmale, die mit jedem Ziel verbunden sind und die verschiedenen Leistungskennzahlen definieren, die die Strategie, die die Erreichung des entsprechenden Ziels gewĂ€hrleistet, in ihrer Lösung erfĂŒllen muss. TatsĂ€chlich wird jede von der Strategie vorgeschlagene Lösung an der Spezifikation gemessen, bevor ihre globale EffektivitĂ€t berechnet wird.
âScoring Engineâ (Bewertungsmaschine) â ist eine ausfĂŒhrbare Datei, die klar definierte Eingaben, klar definierte Ausgaben hat und eine rein mathematische Aufgabe ausfĂŒhrt. Daher ist die Berechnung unabhĂ€ngig von der Umgebung, in der sie ausgefĂŒhrt wird â sie liefert ĂŒberall dasselbe Ergebnis.
Watcher-Planer (Watcher Planner) â Teil des Entscheidungsmechanismus von Watcher. Dieses Modul nimmt eine Menge an Aktionen entgegen, die durch die Strategie generiert wurden, und erstellt einen Workflow-Plan, der definiert, wie diese verschiedenen Aktionen zeitlich eingeplant werden und welche Voraussetzungen fĂŒr jede Aktion erforderlich sind.
Ziele und Strategien von Watcher
Ziel
Strategien
Dummy-Ziel
Dummy-StrategieÂ
Dummy-Strategie mit Beispielen von Bewertungsmaschinen
Dummy-Strategie mit GröĂenĂ€nderung
Energieeinsparung
Energieeinsparungsstrategie
Serverkonsolidierung
Grundlegende Offline-Serverkonsolidierung
Strategie zur Konsolidierung von VM-Arbeitslasten
Arbeitslastausgleich
Strategie zur Migration des Arbeitslastausgleichs
Strategie zum Ausgleich der SpeicherkapazitÀt
Stabilisierung der Arbeitslast
Lauscher-Nachbar
Lauscher-Nachbar
Thermische Optimierung
Strategie basierend auf der Ausgangstemperatur
Luftstromoptimierung
Strategie zur einheitlichen Migration des Luftstroms
Hardwarewartung
Zonenmigration
Unklassifiziert
Aktuator
Dummy-Ziel â Ziel, das fĂŒr Testzwecke reserviert ist.
Verwandte Strategien: Dummy-Strategie, Dummy-Strategie mit Beispielen von Bewertungsmaschinen und Dummy-Strategie mit GröĂenĂ€nderung. Die Dummy-Strategie ist eine fiktive Strategie, die fĂŒr Integrationstests ĂŒber Tempest verwendet wird. Diese Strategie bietet keine nĂŒtzliche Optimierung, ihr einziges Ziel ist es, Tempest-Tests durchzufĂŒhren.
Dummy-Strategie mit Beispiel-Skor engines â diese Strategie ist Ă€hnlich der vorherigen, unterscheidet sich jedoch einzig durch die Verwendung eines Beispiels "Bewertungs-Engines", die Berechnungen mit Methoden des maschinellen Lernens durchfĂŒhrt.
Dummy-Strategie mit Resize â diese Strategie Ă€hnelt der vorherigen, besteht jedoch ausschlieĂlich aus der Anpassung des Flavors (Migration und Resize).
Wird nicht in der Produktion eingesetzt.
Energieeinsparung â den Energieverbrauch minimieren. Die Strategie fĂŒr dieses Ziel, die Saving Energy Strategy, in Kombination mit der VM Workload Consolidation Strategy (Server Consolidation), kann Funktionen des dynamischen Energiemanagements (DPM) ĂŒbernehmen, die Strom sparen durch dynamische Konsolidierung von Workloads, selbst in Zeiten niedriger Ressourcenauslastung: Virtuelle Maschinen werden auf eine geringere Anzahl von Knoten verschoben, und nicht benötigte Knoten werden deaktiviert. Nach der Konsolidierung schlĂ€gt die Strategie eine Lösung zum Ein-/Ausschalten von Knoten entsprechend den festgelegten Parametern vor: âmin_free_hosts_numâ â die Anzahl der freien, eingeschalteten Knoten, die auf Last warten, und âfree_used_percentâ â das prozentuale VerhĂ€ltnis freier, eingeschalteter Knoten zur Anzahl der Knoten, die von Maschinen belegt sind. Um die Strategie zu betreiben, muss Ironic aktiviert und konfiguriert sein, um die Stromversorgung an den Knoten zu steuern.
Strategieparameter
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
free_used_percent
Zahl
10.0
VerhÀltnis der Anzahl freier Rechenknoten zur Anzahl der Rechenknoten mit virtuellen Maschinen
min_free_hosts_num
Int
1
minimale Anzahl freier Rechenknoten
Im Cloud sollten mindestens zwei Knoten vorhanden sein. Die verwendete Methode ist das Ăndern des Stromstatus des Knotens (change_node_power_state). FĂŒr das Sammeln von Metriken ist keine Strategie erforderlich.
Serverkonsolidierung â die Minimierung der Anzahl der Rechenknoten (Konsolidierung). Es gibt zwei Strategien: Basic Offline Server Consolidation und VM Workload Consolidation Strategy.
Die Basic Offline Server Consolidation-Strategie minimiert die Gesamtanzahl der verwendeten Server sowie die Anzahl der Migrationen.
Die Basisstrategie erfordert folgende Metriken:
Metrik
Dienst
Plugins
ein Kommentar
compute.node.cpu.percent
keine
Â
cpu_util
keine
Â
Strategieparameter: migration_attempts â die Anzahl der Kombinationen, um potenzielle Kandidaten fĂŒr das Ausschalten zu finden (Standardwert: 0, keine EinschrĂ€nkungen), period â der Zeitintervall in Sekunden fĂŒr die statische Aggregation aus der Datenquelle der Metrik (Standardwert: 700).
Verwendete Methoden: Migration, Ănderung des Status des Nova-Dienstes (change_nova_service_state).
Die VM Workload Konsolidierungsstrategie basiert auf einem heuristischen First-Fit-Algorithmus, der sich auf die gemessene CPU-Auslastung konzentriert und versucht, Knoten zu minimieren, die entweder ĂŒberlastet oder unterlastet sind, unter BerĂŒcksichtigung der KapazitĂ€tsbeschrĂ€nkungen. Diese Strategie bietet eine Lösung, die zu einer effizienteren Ressourcennutzung im Cluster fĂŒhrt, indem sie die folgenden vier Phasen umfasst:
- Entlastungsphase â Bearbeitung ĂŒberbeanspruchter Ressourcen;
- Konsolidierungsphase â Bearbeitung untergenutzter Ressourcen;
- Optimierungslösung â Reduzierung der Anzahl von Migrationen;
- Deaktivierung ungenutzter Rechenknoten.
Die Strategie erfordert folgende Metriken:
Metrik
Dienst
Plugins
ein Kommentar
Speicher
keine
Â
disk.root.size
keine
Â
Die folgenden Metriken sind nicht zwingend erforderlich, erhöhen jedoch die Genauigkeit der Strategie, sofern verfĂŒgbar:
Metrik
Dienst
Plugins
ein Kommentar
memory.resident
keine
Â
cpu_util
keine
Â
Strategieparameter: period â Zeitintervall in Sekunden zur statischen Aggregation aus der Metrikdatenquelle (standardmĂ€Ăig 3600).
Verwendet dieselben Methoden wie die vorherige Strategie. Weitere Informationen .
Arbeitslastausgleich â die Arbeitslast zwischen den Rechenknoten ausbalancieren. Ziel erreicht man mit drei Strategien: Workload Balance Migration Strategy, Workload Stabilization und Storage Capacity Balance Strategy.
Die Workload Balance Migration Strategy initiiert Migrationsprozesse fĂŒr virtuelle Maschinen basierend auf der Arbeitslast der Knoten. Die Entscheidung ĂŒber die Verschiebung wird getroffen, sobald die CPU- oder RAM-Auslastung eines Knotens den festgelegten Schwellenwert ĂŒberschreitet. Dabei muss die zu verschiebende virtuelle Maschine den Knoten nĂ€her an die durchschnittliche Arbeitslast aller Knoten bringen.
Anforderungen
- Verwendung physischer Prozessoren;
- Mindestens zwei physische Rechenknoten;
- Installiertes und konfiguriertes Ceilometer-Komponenten - ceilometer-agent-compute, betrieben auf jedem Rechenknoten, und das Ceilometer API, sowie die Sammlung folgender Metriken:
Metrik
Dienst
Plugins
ein Kommentar
cpu_util
keine
Â
memory.resident
keine
Â
Strategieparameter:
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
metrics
fĂŒr einfache Datentypen und Debugging.
'cpu_util'
Metriken, die zugrunde liegen: 'cpu_util', 'memory.resident'.
Schwellenwert
Zahl
25.0
Schwellenwert der Arbeitslast fĂŒr die Migration.
Zeitraum
Zahl
300
Gesamtzeitraum fĂŒr Ceilometer.
Verwendete Methode â Migration.
Workload-Stabilisierung â eine Strategie, die darauf abzielt, die Arbeitslast durch Live-Migration zu stabilisieren. Diese Strategie basiert auf einem Standardabweichungsalgorithmus und bestimmt, ob es eine Ăberlastung im Cluster gibt, und reagiert darauf, indem sie Migrationen startet, um den Cluster zu stabilisieren.
Anforderungen
- Verwendung physischer Prozessoren;
- Mindestens zwei physische Rechenknoten;
- Installiertes und konfiguriertes Ceilometer-Komponenten - ceilometer-agent-compute, betrieben auf jedem Rechenknoten, und das Ceilometer API, sowie die Sammlung folgender Metriken:
Metrik
Dienst
Plugins
ein Kommentar
cpu_util
keine
Â
memory.resident
keine
Â
SpeicherkapazitĂ€tsausgleichsstrategie (ab Queens implementiert) â diese Strategie verschiebt Festplatten in AbhĂ€ngigkeit von der Auslastung der Cinder-Pools. Die Entscheidung zur Verschiebung wird jedes Mal getroffen, wenn der Nutzungssatz eines Pools den festgelegten Schwellenwert ĂŒbersteigt. Die verschobene Festplatte sollte dazu beitragen, den Pool der durchschnittlichen Last aller Cinder-Pools nĂ€her zu bringen.
Anforderungen und EinschrÀnkungen
- Mindestens zwei Cinder-Pools;
- Möglichkeit zur Migration von Festplatten.
- Datenmodell des Clusters â Cinder-Cluster-Datenmodell-Sammler.
Strategieparameter:
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
volume_threshold
Zahl
80.0
Schwellenwert der Festplatten fĂŒr die Volumenbalance.
Verwendetes Verfahren â Festplattentransfer (volume_migrate).
Noisy Neighbor â identifizieren und verschieben Sie den âlauten Nachbarnâ â eine virtuelle Maschine mit niedriger PrioritĂ€t, die die Leistung einer virtuellen Maschine mit hoher PrioritĂ€t negativ beeinflusst, indem sie den Last Level Cache ĂŒbermĂ€Ăig nutzt. Eigene Strategie: Noisy Neighbor (verwendeter Strategieparameter â cache_threshold (Standardwert â 35), Migration wird initiiert, wenn die Leistung den angegebenen Wert erreicht. FĂŒr das Funktionieren der Strategie sind aktivierte LLC (Last Level Cache) Metriken, der neueste Intel-Server mit CMT-UnterstĂŒtzung, sowie das Sammeln der folgenden Metriken erforderlich:
Metrik
Dienst
Plugins
ein Kommentar
cpu_l3_cache
keine
Benötigt Intel .
Cluster-Datenmodell (Standard): Nova Cluster Datenmodell-Sammler. Zugewandte Methode â Migration.
Die Arbeit mit diesem Ziel ĂŒber das Dashboard ist in Queens nicht vollstĂ€ndig implementiert.
Thermische Optimierung â den Temperaturhaushalt optimieren. Die Austrittstemperatur (Abluft) ist eines der wichtigen WĂ€rme-Ăberwachungssysteme zur Messung des Zustands der thermischen / Arbeitslast des Servers. Zu diesem Zweck gibt es eine Strategie â die Outlet-Temperatur-basierte Strategie, die Entscheidungen ĂŒber die Verlagerung von Arbeitslasten auf Knoten mit gĂŒnstigen Temperaturbedingungen (die niedrigste Austrittstemperatur) trifft, wenn die Austrittstemperatur der ursprĂŒnglichen Hosts einen einstellbaren Schwellenwert erreicht.
FĂŒr das Funktionieren der Strategie ist ein Server mit installiertem und konfiguriertem Intel Power Node Manager erforderlich. , sowie das Sammeln der folgenden Metriken erforderlich:
Metrik
Dienst
Plugins
ein Kommentar
hardware.ipmi.node.outlet_temperature
IPMI
Â
Strategieparameter:
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
Schwellenwert
Zahl
35.0
Temperaturschwelle fĂŒr die Migration.
Zeitraum
Zahl
30
Zeitintervall in Sekunden zur statistischen Aggregation aus der Quelle der Metrik.
Verwendete Methode â Migration.
Luftstromoptimierung â den LĂŒftungsmodus optimieren. Die eigene Strategie â Uniform Airflow using live migration. Diese Strategie startet die Migration der virtuellen Maschine, sobald der Luftstrom des Serverventilators den angegebenen Schwellenwert ĂŒberschreitet.
FĂŒr das Funktionieren der Strategie sind erforderlich:
- Hardware: Rechenknoten < mit UnterstĂŒtzung fĂŒr NodeManager 3.0;
- Mindestens zwei Rechenknoten;
- Installierte und konfigurierte Komponenten wie ceilometer-agent-compute und die Ceilometer-API auf jedem Rechenknoten, die erfolgreich Metriken wie Luftstrom, Systemleistung und Eingangstemperatur melden können:
Metrik
Dienst
Plugins
ein Kommentar
hardware.ipmi.node.airflow
IPMI
Â
hardware.ipmi.node.temperature
IPMI
Â
hardware.ipmi.node.power
IPMI
Â
FĂŒr die Strategie wird ein Server benötigt, auf dem Intel Power Node Manager 3.0 oder eine neuere Version installiert und konfiguriert ist.
EinschrĂ€nkungen: Das Konzept ist nicht fĂŒr den Produktionseinsatz gedacht.
Es wird empfohlen, diesen Algorithmus mit kontinuierlichen Audits zu verwenden, da in einer Iteration nur eine virtuelle Maschine migriert werden soll.
Live-Migrationen sind möglich.
Strategieparameter:
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
threshold_airflow
Zahl
400.0
Luftstromschwelle fĂŒr die Migration Einheit ist 0.1 CFM
threshold_inlet_t
Zahl
28.0
Eingangstemperaturschwelle fĂŒr die Migrationsentscheidung
threshold_power
Zahl
350.0
Systemleistungs-Schwelle fĂŒr die Migrationsentscheidung
Zeitraum
Zahl
30
Zeitintervall in Sekunden zur statistischen Aggregation aus der Quelle der Metrik.
Verwendete Methode â Migration.
Hardwarewartung â Hardware Maintenance. Die betreffende Strategie ist die Zonenmigration. Diese Strategie dient als Werkzeug fĂŒr eine effektive, automatische und minimalinvasive Migration von virtuellen Maschinen und Festplatten, falls eine technische Wartung der Hardware erforderlich ist. Die Strategie legt einen Aktionsplan anhand von Gewichten fest: Handlungen mit höherem Gewicht werden priorisiert. Es gibt zwei Konfigurationsparameter: Aktionsgewichte (action_weights) und Parallelisierung (parallelization).
EinschrÀnkungen: Die Konfiguration der Aktionsgewichte und der Parallelisierung ist erforderlich.
Strategieparameter:
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
compute_nodes
array
None
Rechnerknoten fĂŒr Migration.
storage_pools
array
None
Speicherpools fĂŒr Migration.
parallel_total
integer
6
Die Gesamtanzahl der Aktionen, die parallel ausgefĂŒhrt werden mĂŒssen.
parallel_per_node
integer
2
Die Anzahl der Aktionen, die parallel fĂŒr jeden Rechnerknoten ausgefĂŒhrt werden.
parallel_per_pool
integer
2
Die Anzahl der Aktionen, die parallel fĂŒr jeden Speicherpool ausgefĂŒhrt werden.
PrioritÀt
Objekt
None
PrioritĂ€tenliste fĂŒr virtuelle Maschinen und Festplatten.
with_attached_volume
boolean
False
Falsch â virtuelle Maschinen werden nach dem Transfer aller Festplatten migriert. Wahr â virtuelle Maschinen werden nach der Migration aller angeschlossenen Festplatten ĂŒbertragen.
Elemente des Arrays von Rechenknoten:
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
src_node
string
None
Der Rechenknoten, von dem die virtuellen Maschinen ĂŒbertragen werden (erforderlich).
dst_node
string
None
Der Rechenknoten, auf den die virtuellen Maschinen migriert werden.
Elemente des Arrays von Speicherpools:
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
src_pool
string
None
Der Speicherpool, aus dem die Festplatten ĂŒbertragen werden (erforderlich).
dst_pool
string
None
Der Speicherpool, auf den die Festplatten ĂŒbertragen werden.
src_type
string
None
Der ursprĂŒngliche Typ der Festplatte (erforderlich).
dst_type
string
None
Der endgĂŒltige Typ der Festplatte (erforderlich).
Elemente der Priorisierung von Objekten:
Parameter
Typ
standardmĂ€Ăig verwendet
Beschreibung
project
array
None
Namen der Projekte.
compute_node
array
None
Namen der Rechenknoten.
storage_pool
array
None
Namen der Speicherpools.
compute
enum
None
Parameter der virtuellen Maschinen [âvcpu_numâ, âmem_sizeâ, âdisk_sizeâ, âcreated_atâ].
storage
enum
None
Parameter der Festplatten [âsizeâ, âcreated_atâ].
Verwendete Methoden â Migration von virtuellen Maschinen, Migration von Festplatten.
Unklassifiziert â eine unterstĂŒtzende Zielsetzung, die den Entwicklungsprozess der Strategie erleichtert. Sie enthĂ€lt keine spezifischen Vorgaben und kann eingesetzt werden, wenn die Strategie noch nicht mit einem bestehenden Ziel verknĂŒpft ist. Dieses Ziel kann auch als Ăbergangsstufe genutzt werden. Die mit diesem Ziel verbundene Strategie ist â Actuator.  Â
Neues Ziel erstellen
Watcher Decision Engine verfĂŒgt ĂŒber ein Plugin-Interface fĂŒr 'externe Ziele', das die Integration eines externen Ziels ermöglicht, welches durch die Strategie erreicht werden kann.
Bevor Sie ein neues Ziel erstellen, sollten Sie sicherstellen, dass keines der bestehenden Ziele Ihren Anforderungen entspricht.
Neues Plugin erstellen
Um ein neues Ziel zu erstellen, mĂŒssen Sie: die Zielklasse erweitern und die Klassenmethode get_name () implementieren, um die eindeutige Kennung des neuen Ziels zurĂŒckzugeben, das Sie erstellen möchten. Diese eindeutige Kennung sollte mit dem Namen des Einstiegspunkts ĂŒbereinstimmen, den Sie spĂ€ter deklarieren.
Sie mĂŒssen auĂerdem die Klassenmethode get_display_name () Um den ĂŒbersetzten Anzeigenamen des Ziels zurĂŒckzugeben, das Sie erstellen möchten (verwenden Sie keine Variable, um die ĂŒbersetzte Zeichenfolge zurĂŒckzugeben, damit sie automatisch vom Ăbersetzungstool gesammelt werden kann.).
Implementieren Sie die Klassenmethode get_translatable_display_name (), um den ĂbersetzungsschlĂŒssel (tatsĂ€chlich den englischen Anzeigenamen) Ihres neuen Ziels zurĂŒckzugeben. Der RĂŒckgabewert sollte mit der Zeichenfolge ĂŒbereinstimmen, die in get_display_name () ĂŒbersetzt wurde.
Implementieren Sie seine Methode get_efficacy_specification (), um die Effizienzspezifikation fĂŒr Ihr Ziel zurĂŒckzugeben. Die Methode get_efficacy_specification () gibt eine Instanz von Unclassified () zurĂŒck, die von Watcher bereitgestellt wird. Diese Effizienzspezifikation ist nĂŒtzlich im Entwicklungsprozess Ihres Ziels, da sie mit einer leeren Spezifikation ĂŒbereinstimmt.
â
Die Architektur von Watcher (mehr dazu ).

Komponenten

Watcher API â ein Bestandteil, der die von Watcher bereitgestellte REST API implementiert. Interaktionsmechanismen: CLI, Horizon-Plugin, Python SDK.
Watcher DB â die Datenbank von Watcher.
Watcher Applier â ein Bestandteil, der die AusfĂŒhrung des vom Watcher Decision Engine erstellten Aktionsplans implementiert.
Watcher Decision Engine â eine Komponente, die dafĂŒr verantwortlich ist, eine Reihe potenzieller OptimierungsmaĂnahmen zur Erreichung des Audit-Ziels zu berechnen. Wenn keine Strategie angegeben ist, wĂ€hlt die Komponente eigenstĂ€ndig die am besten geeignete aus.
Watcher Metrics Publisher â eine Komponente, die bestimmte Metriken oder Ereignisse sammelt und berechnet und diese an einen Endpunkt von CEP veröffentlicht. Die FunktionalitĂ€t dieser Komponente kann auch vom Ceilometer-Publisher bereitgestellt werden.
Complex Event Processing (CEP) Engine â der Engine fĂŒr komplexe Ereignisverarbeitung. Aus LeistungsgrĂŒnden kann es mehrere Instanzen des CEP-Engines geben, die gleichzeitig arbeiten, wobei jede fĂŒr einen bestimmten Typ von Metrik / Ereignis zustĂ€ndig ist. In der Watcher-System fĂŒhrt CEP zwei Arten von Aktionen aus: â die entsprechenden Ereignisse / Metriken in einer Zeitreihe-Datenbank zu protokollieren; â die entsprechenden Ereignisse an die Komponente Watcher Decision Engine zu senden, wenn dieses Ereignis das Ergebnis der aktuellen Optimierungsstrategie beeinflussen könnte, da der OpenStack-Cluster kein statisches System ist.
Die Kommunikation zwischen den Komponenten erfolgt ĂŒber das AMQP-Protokoll.
â
Schema der Interaktion mit dem Watcher

Testergebnisse des Watchers
- Auf der Seite Optimierung â AktionsplĂ€ne gibt es einen 500-Fehler (sowohl auf reinem Queens als auch auf der Testumgebung mit TioniX-Modulen), der nur auftritt, nachdem das Audit gestartet und der Aktionsplan generiert wird; eine leere Seite öffnet sich normal.
- Auf der Registerkarte Aktionsdetails gibt es Fehler; das Ziel und die Strategie des Audits können nicht abgerufen werden (sowohl auf reinem Queens als auch auf der Testumgebung mit TioniX-Modulen).
- Audits mit dem Ziel Dummy (TestfÀlle) werden erfolgreich erstellt und gestartet, AktionsplÀne werden generiert.
- Audits mit dem Ziel Unclassified werden nicht erstellt, da das Ziel nicht funktionsfĂ€hig ist und fĂŒr die Zwischenkonfiguration beim Erstellen neuer Strategien gedacht ist.
- Audits mit dem Ziel Workload Balancing (Strategie zur Balance der SpeicherkapazitÀt) werden erfolgreich erstellt, jedoch wird kein Aktionsplan generiert. Es ist keine Optimierung der Speicherpools erforderlich.
- Audits mit dem Ziel Workload Balancing (Strategie zur Migration des Workloads) werden erfolgreich erstellt, jedoch wird kein Aktionsplan generiert.
- Audits mit dem Ziel Workload Balancing (Strategie zur Stabilisierung des Workloads) enden mit einem Fehler.
- Audits mit dem Ziel Noisy Neighbor werden erfolgreich erstellt, jedoch wird kein Aktionsplan generiert.
- Audits zur Hardware-Wartung werden erfolgreich erstellt, der Aktionsplan wird jedoch nicht vollstĂ€ndig generiert (Leistungskennzahlen werden generiert, aber die Liste der MaĂnahmen wird nicht erstellt).
- Ănderungen in den Konfigurationen von nova.conf (in der Default-Sektion compute_monitors = cpu.virt_driver) beheben die Fehler auf den Rechen- und Kontrollknoten nicht.
- Audits zur Server-Konsolidierung (Basic-Strategie) enden ebenfalls mit einem Fehler.
- Audits zur Server-Konsolidierung (Strategie der VM-Arbeitslastkonsolidierung) enden mit einem Fehler. In den Protokollen wird ein Fehler beim Abrufen der Rohdaten angezeigt. Fehlerdiskussion, insbesondere. .
Wir haben versucht, in der Konfigurationsdatei von Watcher anzugeben (hat nicht geholfen â in Folge traten Fehler auf allen Seiten der Optimierung auf, eine RĂŒckkehr zum ursprĂŒnglichen Inhalt der Konfigurationsdatei behebt die Situation nicht):[watcher_strategies.basic]
datasource = ceilometer, gnocchi - Audits zur Energieeinsparung enden mit einem Fehler. Anhand der Protokolle scheint das Problem tatsÀchlich im Fehlen von Ironic zu liegen, ohne Baremetal-Service funktioniert es nicht.
- Audits zur thermischen Optimierung enden mit einem Fehler. Der Traceback ist derselbe wie bei der Server-Konsolidierung (Strategie der VM-Arbeitslastkonsolidierung) (Fehler bei den Rohdaten).
- Audits zur Optimierung des Airflows enden mit einem Fehler.
Es treten auch die folgenden Fehler im Abschlussbericht auf. Der Traceback in den decision-engine.log (Zustand des Clusters nicht definiert).
â Fehlerdiskussion
Fazit
Das Ergebnis unserer zweimonatigen Untersuchungen ist die klare Erkenntnis, dass wir fĂŒr eine vollfunktionsfĂ€hige, operative Lastverteilung in diesem Bereich aktiv an der Entwicklung der Werkzeuge fĂŒr die OpenStack-Plattform arbeiten mĂŒssen.
Watcher hat sich als ein ernstzunehmendes, schnell wachsendes Produkt mit groĂem Potenzial erwiesen, fĂŒr dessen vollstĂ€ndige Nutzung jedoch eine umfassende und grĂŒndliche Arbeit erforderlich ist.
Doch dazu mehr in den nÀchsten Artikeln der Reihe.
Quelle: habr.com
