EnglischFranzösischSpanisch

Server ausführen | Ubuntu > | Fedora > |


OnWorks-Favicon

hbal - Online in der Cloud

Führen Sie hbal im kostenlosen OnWorks-Hosting-Provider über Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator aus

Dies ist der Befehl hbal, der im kostenlosen OnWorks-Hosting-Provider über eine unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME


hbal - Cluster-Balancer für Ganeti

ZUSAMMENFASSUNG


hbal {Backend-Optionen...} [Algorithmusoptionen...] [Berichtsoptionen...]

hbal --Version

Backend-Optionen:

{ -m Gruppe | -L[ Weg ] [-X] | -t Datendatei | -I Weg }

Algorithmusoptionen:

[ --max-cpu CPU-Verhältnis ] [ --min-Festplatte Festplattenverhältnis ] [ -l begrenzen ] [ -e Ergebnis ] [ -g Delta ] [
--min-Gain-Limit Schwelle ] [ -O Name... ] [ --no-disk-moves ] [ --no-instance-moves ] [
-U util-Datei ] [ --ignore-dynu ] [ --ignore-soft-errors ] [ --mond ja|nein ] [ --mond-xen ]
[ --exit-on-missing-mond-data ] [ --evac-modus ] [ --eingeschränkte-migration ] [
--select-instanzen inst... ] [ --exclude-Instanzen inst... ]

Berichtsoptionen:

[ -C[ Datei ] ] [ -P[ Felder ] ] [ --print-instanzen ] [ -S Datei ] [ -v... | -q ]

BESCHREIBUNG


hbal ist ein Cluster-Balancer, der den aktuellen Status des Clusters (Knoten mit
ihre gesamte und freie Festplatte, Arbeitsspeicher usw.) und die Instanzplatzierung und berechnet eine Reihe von
Schritte, um den Cluster in einen besseren Zustand zu bringen.

Der verwendete Algorithmus ist stabil (dh er liefert die gleichen Ergebnisse, wenn
Neustart aus der Mitte der Lösung) und relativ schnell. Es ist jedoch nicht
entworfen, um ein perfekter Algorithmus zu sein: Es ist möglich, ihn in eine Ecke zu bringen, von der aus
es kann keine Verbesserung finden, weil es nur einen "Schritt" vorausschaut.

Das Programm greift über Rapi oder Luxi auf den Clusterstatus zu. Es fordert auch Daten über die
Netzwerk von allen MonDs mit der Option --mond. Derzeit werden nur Daten verwendet, die von
CPU-Last-Kollektor.

Standardmäßig zeigt das Programm die Lösung inkrementell an, während sie berechnet wird, in a
etwas kryptisches Format; Um die aktuelle Ganeti-Befehlsliste zu erhalten, verwenden Sie die -C .

ALGORITHM
Das Programm arbeitet in unabhängigen Schritten; bei jedem Schritt berechnen wir den besten Instanzzug
das senkt den Cluster-Score.

Die möglichen Verschiebungstypen für eine Instanz sind Kombinationen aus Failover/Migration und
replace-disks so, dass wir einen der Instanzknoten ändern und der andere bleibt
(aber möglicherweise mit geänderter Rolle, zB von primär wird es sekundär). Die Liste lautet:

· Ausfallsicherung (f)

· Sekundär ersetzen (r)

· Primär ersetzen, ein zusammengesetzter Zug (f, r, f)

· Failover und Ersatz sekundär, auch Composite (f, r)

· Sekundär und Failover ersetzen, auch Composite (r, f)

Die einzig verbleibende Möglichkeit, beide Knoten zu ersetzen (r,f,r,f oder die
Äquivalent f,r,f,r), da diese Bewegung eine erschöpfende Suche über beide Kandidaten erfordert
primäre und sekundäre Knoten und ist O(n*n) in der Anzahl der Knoten. Außerdem ist es
scheint keine besseren Ergebnisse zu geben, führt aber zu mehr Festplattenaustausch.

INVESTMENT RESTRICTIONS
Bei jedem Schritt verhindern wir eine Instanzverschiebung, wenn dies Folgendes bewirken würde:

· ein Knoten, der in den N+1-Fehlerzustand geht

· eine Instanz zum Verschieben auf einen Offline-Knoten (Offline-Knoten werden entweder aus dem Cluster gelesen
oder deklariert mit -O; entwässerte Knoten werden als offline betrachtet)

· ein Ausschluss-Tag-basierter Konflikt (Ausschluss-Tags werden aus dem Cluster gelesen und/oder definiert
über das --Ausschluss-Tags Option)

· ein zu überschreitendes max. vcpu/pcpu-Verhältnis (konfiguriert über --max-cpu)

· Mindestprozentsatz freier Datenträger, um das konfigurierte Limit zu unterschreiten (konfiguriert über --min-Festplatte)

CLUSTER WERTUNG
Wie bereits erwähnt, versucht der Algorithmus, die Clusterbewertung bei jedem Schritt zu minimieren. Zur Zeit
Diese Punktzahl wird als gewichtete Summe der folgenden Komponenten berechnet:

· Standardabweichung des Prozentsatzes des freien Speichers

· Standardabweichung des Prozentsatzes des reservierten Speichers

· die Summe der Prozentsätze des reservierten Speichers

· Standardabweichung des Prozentsatzes der freien Festplatte

· Anzahl der Knoten, die die N+1-Prüfung nicht bestehen

· Anzahl der Instanzen, die (entweder als primär oder sekundär) auf Offline-Knoten leben; in dem
Sinn für hbal (und die anderen htools) entwässerte Knoten werden als offline betrachtet

· Anzahl der Instanzen, die (als primäre) auf Offline-Knoten leben; das ist anders als oben
Metrik durch Unterstützung des Failovers solcher Instanzen in 2-Knoten-Clustern

· Standardabweichung des Verhältnisses von virtuellem zu physischem CPU (für primäre Instanzen von
der Knoten)

· Standardabweichung des Bruchteils der verfügbaren Spindeln (im dedizierten Modus,
Spindeln stellen physische Spindeln dar; ansonsten diese überbeschreibbare Maßnahme für IO
Last, und der Überzeichnungsfaktor wird bei der Berechnung der Anzahl der
verfügbare Spindeln)

· Standardabweichung der dynamischen Last auf den Knoten, für CPU, Speicher, Festplatte und Netzwerk

· Standardabweichung der CPU-Last von MonD

· die Anzahl der Instanzen mit primärer und sekundärer Instanz in derselben Fehlerdomäne

Die Werte für freien Speicher und freie Festplatte tragen dazu bei, dass alle Knoten in gewisser Weise ausgeglichen sind
deren Ressourcenverbrauch. Der reservierte Speicher hilft sicherzustellen, dass die Knoten etwas
ausbalanciert beim Halten von sekundären Instanzen und dass kein Knoten zu viel Speicher reserviert hält
für N+1. Und schließlich hilft der N+1-Prozentsatz, den Algorithmus zur Eliminierung zu führen
N+1 Fehler, wenn möglich.

Abgesehen von den N+1-Fehlern, der Anzahl der Offline-Instanzen und der Fehlerdomänenverletzung
zählt, verwenden wir die Standardabweichung seit bei Verwendung mit Werten innerhalb eines festen Bereichs (we
verwenden Sie Prozentwerte, die als Werte zwischen null und eins ausgedrückt werden), es liefert konsistente Ergebnisse über
alle Metriken (es gibt einige kleine Probleme im Zusammenhang mit verschiedenen Mitteln, aber es funktioniert
im Allgemeinen gut). Die Werte vom Typ 'count' haben eine höhere Punktzahl und sind daher von größerer Bedeutung
zum Auswuchten; daher sind diese besser für harte Einschränkungen (wie das Evakuieren von Knoten und
Behebung von N+1 Fehlern). Beispielsweise zählen die Offline-Instanzen (dh die Anzahl der
Instanzen, die auf Offline-Knoten leben) bewirkt, dass der Algorithmus Instanzen aktiv verschiebt
weg von Offline-Knoten. Dies, gepaart mit der Einschränkung der Platzierung durch Offline
Knoten, wird die Evakuierung solcher Knoten verursachen.

Die dynamischen Lastwerte müssen aus einer externen Datei gelesen werden (Ganeti liefert nicht
sie) und werden für jeden Knoten berechnet als: Summe der CPU-Last der primären Instanz, Summe der primären
Speicherauslastung der Instanz, Summe der Festplattenauslastung der primären und sekundären Instanz (wie von DRBD generiert
Schreiblast auch auf Sekundärknoten im Normalfall und in degradierten Szenarien auch lesen
Last) und die Summe der Netzwerklast der primären Instanz. Ein Beispiel, wie man diese generiert
Werte für die Eingabe in hbal wären das Verfolgen der xm-Liste für Instanzen über einen Tag und um
berechne das Delta der CPU-Werte und füttere das über die -U Option für alle Instanzen
(und behalten Sie die anderen Metriken als eine bei). Damit der Algorithmus funktioniert, ist nur
dass die Werte für eine Metrik über alle Instanzen hinweg konsistent sind (z. B. alle Instanzen verwenden
cpu%, um die CPU-Auslastung zu melden, und nicht etwas, das sich auf die Anzahl der verwendeten CPU-Sekunden bezieht, wenn die
CPUs sind unterschiedlich) und dass sie zwischen null und eins normalisiert sind. Beachten Sie, dass es
Es wird empfohlen, seither keine Null als Ladewert für Instanzmetriken zu verwenden
sekundäre Instanzen sind nicht gut ausbalanciert.

Die CPU-Last vom MonD-Datenkollektor wird nur verwendet, wenn alle MonDs laufen,
andernfalls hat es keinen Einfluss auf die Clusterbewertung. Da wir nicht die CPU-Last von jedem finden können
Instanz können wir davon ausgehen, dass die CPU-Last einer Instanz proportional zur Anzahl der
seine vcpus. Mit dieser Heuristik neigen Instanzen von Knoten mit hoher CPU-Last dazu, sich zu verschieben
zu Knoten mit weniger CPU-Last.

Auf einem perfekt ausbalancierten Cluster (alle Knoten gleich groß, alle Instanzen gleich groß und
gleichmäßig über die Knoten verteilt), wären die Werte für alle Metriken null, mit der
Ausnahme des Gesamtprozentsatzes des reservierten Speichers. Das passiert nicht allzu oft in
üben :)

OFFLINE INSTANZEN
Da aktuelle Ganeti-Versionen den von Offline-Instanzen (ausgefallenen) verwendeten Speicher nicht melden,
das Ignorieren des Ausführungsstatus von Instanzen führt zu falschen Berechnungen. Aus diesem Grund ist die
Algorithmus subtrahiert die Speichergröße ausgefallener Instanzen vom freien Knotenspeicher ihrer
primärer Knoten, der tatsächlich den Start solcher Instanzen simuliert.

AUSSCHLUSS STICHWORTE
Der Ausschluss-Tags-Mechanismus soll verhindern, dass Instanzen denselben Workload ausführen
(zB zwei DNS-Server) auf demselben Node landen, was den jeweiligen Node a
SPOF für den angegebenen Dienst.

Es funktioniert, indem Instanzen mit bestimmten Tags versehen und dann Ausschlusskarten basierend auf . erstellt werden
diese. Welche Tags tatsächlich verwendet werden, wird entweder über die Kommandozeile konfiguriert (Option
--Ausschluss-Tags) oder indem Sie sie zu den Cluster-Tags hinzufügen:

--exclusion-tags=a,b
Dadurch werden alle Instanz-Tags des Formulars ein:*, B:* für die in Betracht gezogen werden
Ausschlusskarte

Gruppe Tags htools:iextags:a, htools:iextags:b
Dadurch werden Instanz-Tags ein:*, B:* für die Ausschlusskarte berücksichtigt werden. Mehr
Genau, das Suffix von Cluster-Tags, beginnend mit htools:iextags: wird zum
Präfix der Ausschluss-Tags.

Beide oben genannten Formen bedeuten, dass zwei Instanzen beide (zB) das Tag a:fo or b:bar
endet nicht auf demselben Knoten.

MIGRATION STICHWORTE
Wenn Ganeti in einem heterogenen Cluster bereitgestellt wird, ist möglicherweise keine Migration zwischen
alle Knoten einer Knotengruppe. Ein Beispiel für eine solche Situation ist das Upgrade des Hypervisors
Knoten für Knoten. Um hbal auf diese Einschränkungen aufmerksam zu machen, sind die folgenden Cluster-Tags
benutzt.

Gruppe Tags htools:migration:a, htools:migration:b, etc
Dies macht Knoten-Tags der Form ein:*, B:*, usw. gelten als Migration
Beschränkung. Genauer gesagt, das Suffix von Cluster-Tags beginnend mit
Tools:Migration: wird zum Präfix der Migrations-Tags. Nur die
Migrationen werden berücksichtigt, wenn alle Migrations-Tags der Quelle
Knoten sind auch auf dem Zielknoten vorhanden.

Gruppe Tags htools:allowmigration:x::y für Migration Tags x und y
Dies behauptet, dass ein Knoten mit Tag y kann Instanzen auf die gleiche Weise empfangen, als ob
sie hatten ein x -Tag.

Im einfachen Fall eines Hypervisor-Upgrades müssen Sie also alle Knoten markieren, die
ein Upgrade mit einem Migrations-Tag genügt. In komplizierteren Situationen ist es immer
möglich, für jeden verwendeten Hypervisor ein anderes Migrations-Tag zu verwenden und dies explizit anzugeben
zulässige Migrationsrichtungen mittels htools:migration erlauben: Stichworte.

STANDORT STICHWORTE
Innerhalb einer Knotengruppe kann es wahrscheinlicher sein, dass bestimmte Knoten gleichzeitig ausfallen, weil a
gemeinsame Fehlerursache (zB wenn sie sich das gleiche Netzteil teilen). Ganeti kann sein
durch Tags auf die häufigsten Fehlerursachen aufmerksam gemacht.

Gruppe Tags htools:nlocation:a, htools:nlocation:b, etc
Dies macht Knoten-Tags der Form ein:*, B:*, usw. als gemeinsam angesehen werden
Ursache des Scheiterns.

Instanzen mit primärem und sekundärem Knoten mit einer gemeinsamen Fehlerursache werden berücksichtigt
schlecht platziert. Solche Platzierungen sind zwar immer erlaubt, zählen aber stark zu den
Cluster-Score.

OPTIONAL


Folgende Optionen können an das Programm übergeben werden:

-VS, --Druckbefehle
Drucken Sie die Befehlsliste am Ende des Laufs. Ohne dies wird das Programm nur
zeigen eine kürzere, aber kryptische Ausgabe.

Beachten Sie, dass die Umzugsliste in unabhängige Schritte unterteilt wird, die als "Jobsets" bezeichnet werden.
aber nur zur visuellen Kontrolle, nicht zur eigentlichen Parallelisierung. Es ist nicht
Möglichkeit diese direkt zu parallelisieren, wenn sie über "gnt-instance"-Befehle ausgeführt werden,
da ein zusammengesetzter Befehl (zB Failover und Replace-Disks) ausgeführt werden muss
seriell. Die parallele Ausführung ist nur bei Verwendung des Luxi-Backends und der
-L .

Der Algorithmus zum Aufteilen der Umzüge in Jobsets besteht darin, Umzüge zu akkumulieren, bis
der nächste Zug berührt Knoten, die bereits von den aktuellen Zügen berührt wurden; das heißt wir
kann nicht parallel ausgeführt werden (aufgrund der Ressourcenzuweisung in Ganeti) und somit starten wir
ein neuer Arbeitsplatz.

-P, --print-nodes
Druckt den Vorher- und Nachher-Knotenstatus in einem Format, das dem Benutzer ermöglicht,
die wichtigsten Parameter des Knotens verstehen. Siehe die Manpage Werkzeuge(1) für
mehr Details zu dieser Option.

--print-instanzen
Druckt die Vorher- und Nachher-Instanzkarte. Dies ist weniger hilfreich als der Knotenstatus,
aber es kann helfen, Instanzbewegungen zu verstehen.

-O Name
Diese Option (die mehrmals angegeben werden kann) markiert Knoten als Offline-Bereich..
Dies bedeutet ein paar Dinge:

· Instanzen werden nicht auf diesen Knoten platziert, auch nicht vorübergehend; zB die ersetzen
primär verschieben ist nicht verfügbar, wenn der sekundäre Knoten offline ist, da diese Verschiebung
erfordert ein Failover.

· diese Knoten werden nicht in die Score-Berechnung einbezogen (mit Ausnahme der
Prozentsatz der Instanzen auf Offline-Knoten)

Beachten Sie, dass der Algorithmus auch alle Knoten, die von RAPI gemeldet werden, als offline markiert
als solche, oder die haben "?" bei dateibasierter Eingabe in beliebige numerische Felder.

-e Ergebnis, --min-Score=*Score*
Dieser Parameter gibt an, wie viel über der N+1-Grenze der Cluster-Score für uns erreichen kann
zufrieden sein und ändert die Berechnung auf zwei Arten:

· wenn die Anfangspunktzahl des Clusters niedriger als dieser Wert ist, geben wir nicht ein
den Algorithmus überhaupt, und mit Erfolg beenden

· Wenn wir während des iterativen Prozesses eine Punktzahl unter diesem Wert erreichen, verlassen wir
der Algorithmus

Der Standardwert des Parameters ist derzeit 1e-9 (empirisch gewählt).

-g Delta, --min-gain=*delta*
Da der Ausgleichsalgorithmus manchmal nur sehr kleine Verbesserungen bewirken kann,
die weniger Gewinn bringen, als sie in der Umzugszeit kosten, dieser Parameter (Defaulting
bis 0.01) stellt die minimale Verstärkung dar, die wir während eines Schritts benötigen, um fortzufahren
balancieren.

--min-gain-limit=*schwelle*
Die obige Min-Gain-Option wird nur wirksam, wenn der Cluster-Score bereits . ist
unten Schwelle (standardmäßig 0.1). Der Grund für diese Einstellung ist, dass bei
hohe Clusterwerte (schlecht balancierte Cluster), wir wollen das Rebalancing nicht abbrechen
zu schnell, da spätere Gewinne noch erheblich sein könnten. Allerdings unter dem
Schwellenwert, die Gesamtverstärkung ist nur der Schwellenwert, sodass wir früh aussteigen können.

--no-disk-moves
Dieser Parameter verhindert, dass hbal Disk Move verwendet (dh "gnt-instance
"replace-disks") Operationen. Dies führt zu einem viel schnelleren Balancieren, aber
Natürlich sind die Verbesserungen begrenzt. Es liegt am Benutzer, zu entscheiden, wann er verwendet wird
das eine oder das andere.

--no-instance-moves
Dieser Parameter verhindert, dass hbal Instanzbewegungen verwendet (dh "gnt-instance
migrieren/Failover"). Dies wird nur den langsamen Festplattenaustausch verwenden
Operationen und wird auch eine schlechtere Balance bieten, kann aber nützlich sein, wenn Sie sich bewegen
Instanzen in der Umgebung gelten als unsicher oder werden nicht bevorzugt.

--evac-modus
Dieser Parameter schränkt die Liste der Instanzen ein, die für das Verschieben in Betracht gezogen werden
Leben auf Offline/Drained Nodes. Es kann als (großer) Ersatz für verwendet werden
Ganetis eigene gnt-Knoten evakuieren, mit dem Hinweis, dass es keine Vollgarantie gibt
Evakuierung.

--eingeschränkte-migration
Dieser Parameter verbietet jegliche Ersetzungs-Primärzüge (frf) sowie solche
Replace-and-Failover verschiebt (rf) dort, wo sich der primäre Knoten der Instanz nicht befindet
abgelassen. Bei Verwendung zusammen mit der Option --evac-mode sind die einzigen Migrationen, die
hbal wird die Migration von Instanzen von einem entleerten Knoten tun. Dies kann nützlich sein, wenn
bei einer Neuinstallation des Basisbetriebssystems ist eine Migration nur ab dem
altes Betriebssystem auf das neue Betriebssystem. Beachten Sie jedoch, dass in der Regel die Verwendung von Migrations-Tags die
bessere Wahl.

--select-instances=*Instanzen*
Dieser Parameter markiert die angegebenen Instanzen (als kommagetrennte Liste) als einzige
diejenigen, die während der Neugewichtung bewegt werden.

--exclude-instances=*Instanzen*
Dieser Parameter markiert die angegebenen Instanzen (als kommagetrennte Liste) als
beim Rebalancing verschoben.

-U util-Datei
Dieser Parameter gibt eine Datei an, die Informationen zur dynamischen Nutzung der Instanz enthält
die verwendet wird, um den Ausgleichsalgorithmus zu optimieren, um die Last auf den Knoten auszugleichen
(im Gegensatz zur statischen Ressourcennutzung). Die Datei hat das Format "Instanzname
cpu_util mem_util disk_util net_util", wobei die Parameter "_util" interpretiert werden
als Zahlen und der Instanzname muss genau der Instanz entsprechen, aus der gelesen wurde
Ganeti. Bei unbekannten Instanznamen bricht das Programm ab.

Wenn nicht angegeben, sind die Standardwerte eins für alle Metriken und somit dynamisch
Die Ausnutzung hat nur eine Auswirkung auf den Algorithmus: die Entzerrung der sekundären
Instanzen über Knoten hinweg (dies ist die einzige Metrik, die nicht von einer anderen,
dedizierter Wert, und somit führt die Festplattenlast der Instanzen zu einer sekundären Instanz
Ausgleich). Beachten Sie, dass der Wert von eins auch die Primärgröße leicht beeinflusst
Instanzanzahl, die aber bereits über andere Metriken verfolgt wird und somit die
Der Einfluss der dynamischen Auslastung wird praktisch unbedeutend sein.

--ignore-dynu
Falls angegeben, werden alle dynamischen Nutzungsinformationen ignoriert, indem angenommen wird, dass sie
0. Diese Option hat Vorrang vor allen Daten, die mit der Option -U oder von . übergeben werden
die MonDs mit der Option --mond und --mond-data.

--ignore-soft-errors
Falls gegeben, werden alle Prüfungen auf Soft Errors weggelassen, wenn das Auswuchten in Betracht gezogen wird
bewegt. Auf diese Weise können Fortschritte in einem Cluster erzielt werden, in dem sich alle Knoten in einem
richtlinienmäßiger schlechter Zustand, z.

-S Dateinamen, --save-cluster=*Dateiname*
Falls angegeben, wird der Status des Clusters vor dem Balancing in der angegebenen Datei gespeichert
plus die Erweiterung "original" (dh Dateinamen.original) und der Zustand am Ende
der Bilanzierung wird in der angegebenen Datei mit der Erweiterung "balanced" (dh
Dateinamen.ausgewogen). Dies ermöglicht das erneute Einspeisen des Clusterzustands entweder an hbal selbst
oder zum Beispiel hspace über die Option -t.

-t Datendatei, --text-data=*Datendatei*
Backend-Spezifikation: der Name der Datei, die Knoten- und Instanzinformationen enthält
(wenn nicht über RAPI oder LUXI gesammelt). Dieses oder eines der anderen Back-Ends muss sein
ausgewählt. Die Option ist in der Manpage beschrieben Werkzeuge(1).

--mond=*ja|nein*
Wenn angegeben, fragt das Programm alle MonDs ab, um Daten aus den unterstützten Daten abzurufen
Sammler über das Netzwerk.

--mond-xen
Falls vorhanden, auch Xen-spezifische Kollektoren von MonD abfragen, sofern Monitoring
Daemons werden überhaupt abgefragt.

--exit-on-missing-mond-data
Falls angegeben, Abbruch, wenn die aus der Abfrage von MonDs erhältlichen Daten unvollständig sind. Die
Das Standardverhalten besteht darin, mit einer besten Schätzung basierend auf den statischen Informationen fortzufahren.

--mond-data Datendatei
Der Name der Datei, die die von MonD bereitgestellten Daten enthält, um Abfragen von MonDs zu überschreiben
über das Netzwerk. Dies wird hauptsächlich zum Debuggen verwendet. Die Datei muss in JSON vorliegen
formatieren und präsentieren Sie ein Array von JSON-Objekten , eines für jeden Knoten, mit zwei Mitgliedern.
Das erste Mitglied namens node ist der Name des Knotens und das zweite Mitglied namens
Berichte ist ein Array von Berichtsobjekten. Die Berichtsobjekte müssen gleich sein
Format, wie es vom Überwachungsagenten erstellt wurde.

-m Gruppe
Backend-Spezifikation: Sammeln Sie Daten direkt vom Gruppe als Argument angegeben
über RAPI. Die Option ist in der Manpage beschrieben Werkzeuge(1).

-L [Weg]
Backend-Spezifikation: Daten direkt vom Master-Daemon sammeln, der
über LUXI (ein internes Ganeti-Protokoll) kontaktiert. Die Option ist in der . beschrieben
Man Seite Werkzeuge(1).

-X Bei Verwendung des Luxi-Backends kann hbal auch die angegebenen Befehle ausführen. Die
Ausführungsmethode besteht darin, die einzelnen Jobsets auszuführen (siehe -C Option für
Details) in separaten Phasen, Abbruch, wenn ein Jobset zu irgendeinem Zeitpunkt nicht alle Jobs hat
erfolgreich. Jeder Schritt in der Auswuchtlösung wird genau übersetzt
ein Ganeti-Job (mit einem bis drei OpCodes) und alle Schritte in a
Jobset wird parallel ausgeführt. Die Jobsets selbst werden seriell ausgeführt.

Die Ausführung der Jobserie kann unterbrochen werden, Signalbehandlung siehe unten.

-l N, --max-Länge=*N*
Beschränken Sie die Lösung auf diese Länge. Dies kann zum Beispiel verwendet werden, um die
Durchführung des Ausgleichs.

--max-cpu=*cpu-verhältnis*
Das maximale Verhältnis von virtueller zu physischer CPU, als Gleitkommazahl größer als
oder gleich eins. Zum Beispiel die Angabe CPU-Verhältnis as 2.5 bedeutet, dass für eine 4-CPU
Rechner dürfen maximal 10 virtuelle CPUs für primäre . verwendet werden
Instanzen. Ein Wert von genau eins bedeutet, dass keine CPU-Überbelegung stattfindet
(mit Ausnahme der vom Knoten selbst verwendeten CPU-Zeit) und Werte unter eins machen es nicht
Sinn, da andere Ressourcen (z. B. Festplatte) aufgrund von
CPU-Einschränkungen.

--min-disk=*Festplattenverhältnis*
Der minimal verbleibende freie Speicherplatz als Gleitkommazahl. Zum
Beispiel, Angabe Festplattenverhältnis as 0.25 bedeutet, dass mindestens ein Viertel der Festplatte
Auf den Knoten sollte Platz frei bleiben.

-G uuid, --group=*uuid*
Wählen Sie in einem Cluster mit mehreren Gruppen diese Gruppe zur Verarbeitung aus. Sonst wird hbal
abbrechen, da nicht mehrere Gruppen gleichzeitig ausgeglichen werden können.

-v, - ausführlich
Erhöhen Sie die Ausführlichkeit der Ausgabe. Jede Nutzung dieser Option erhöht die
Ausführlichkeit (derzeit machen mehr als 2 keinen Sinn) vom Standardwert eins.

-Q, --ruhig
Verringern Sie die Ausführlichkeit der Ausgabe. Jede Verwendung dieser Option verringert die
Ausführlichkeit (weniger als null macht keinen Sinn) vom Standardwert eins.

-V, --Version
Einfach Programmversion anzeigen und beenden.

SIGNAL HANDHABUNG


Beim Ausführen von Jobs über LUXI (mit der Option -X) führt hbal normalerweise alle Jobs aus
bis entweder ein Fehler auftritt oder alle Jobs erfolgreich abgeschlossen wurden.

Da der Ausgleich sehr lange dauern kann, gibt es zwei Möglichkeiten, hbal vorzeitig zu stoppen:

· durch Senden eines SIGINT (^C) registriert hbal die Beendigungsanforderung und wartet
bis die aktuell übermittelten Jobs beendet sind, dann wird sie beendet (mit Exit-Code 0
wenn alle Jobs korrekt beendet wurden, ansonsten mit Exitcode 1 wie gewohnt)

· durch Senden eines SIGTERM wird hbal sofort beendet (mit Exit-Code 2); es ist der
Verantwortung des Benutzers, Ganeti zu kontaktieren und das Ergebnis der
derzeit ausführende Jobs

Beachten Sie, dass es in jeder Situation absolut sicher ist, hbal zu töten, entweder über die oben genannten Signale
oder über ein beliebiges anderes Signal (zB SIGQUIT, SIGKILL), da die Jobs selbst bearbeitet werden
von Ganeti, während hbal (nach der Einreichung) nur ihren Fortschritt beobachtet. In diesem Fall,
der Benutzer muss Ganeti nach Jobergebnissen abfragen.

EXIT STATUS


Der Exit-Status des Befehls ist Null, es sei denn, der Algorithmus ist aus irgendeinem Grund fehlgeschlagen
(zB falsche Knoten- oder Instanzdaten), ungültige Kommandozeilenoptionen oder (bei Job
Ausführung) ist einer der Jobs fehlgeschlagen.

Nachdem die Auftragsausführung über Luxi gestartet wurde (-X), falls die Bilanzierung vorzeitig unterbrochen wurde (via
SIGINT, oder via --max-length), aber alle Jobs erfolgreich ausgeführt, dann ist der Exit-Status
Null; Ein Exit-Code ungleich Null bedeutet, dass der Cluster-Zustand untersucht werden sollte, da a
Job fehlgeschlagen oder wir konnten seinen Status nicht berechnen und dies kann auch auf ein Problem auf der Seite hinweisen
Ganetis Seite.

Verwenden Sie hbal online mit den onworks.net-Diensten


Ad


Ad