hbal - Online în cloud

Aceasta este comanda hbal care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


hbal - Cluster balancer pentru Ganeti

REZUMAT


hbal {opțiuni de backend...} [opțiuni de algoritm...] [opțiuni de raportare...]

hbal --versiune

Opțiuni de backend:

{ -m grup | -L[ cale ] [-X] | -t fișier de date | -I cale }

Opțiuni de algoritm:

[ --max-cpu raportul CPU ] [ --min-disc raportul de disc ] [ -l limita ] [ -e scor ] [ -g deltă ] [
--min-câștig-limită prag ] [ -O nume ... ] [ --fără-disc-mișcări ] [ --nicio-instanță-mișcări ] [
-U fişier-util ] [ --ignore-dynu ] [ --ignore-soft-errors ] [ --mond da|nu ] [ --mond-xen ]
[ --exit-on-lipsing-mond-data ] [ --mod-evacuare ] [ --migrare-restricționată ] [
--select-instanțe inst ... ] [ --exclude-instanțe inst ... ]

Opțiuni de raportare:

[ -C[ fişier ] ] [ -p[ domenii ] ] [ --print-instanțe ] [ -S fişier ] [ -v... | -q ]

DESCRIERE


hbal este un echilibrator de cluster care se uită la starea curentă a clusterului (noduri cu
discul lor total și liber, memorie etc.) și plasarea instanțelor și calculează o serie de
pași menționați pentru a aduce clusterul într-o stare mai bună.

Algoritmul folosit este conceput pentru a fi stabil (adică vă va oferi aceleași rezultate când
repornindu-l de la mijlocul soluției) și destul de rapid. Nu este, însă,
conceput pentru a fi un algoritm perfect: este posibil să-l faci să intre într-un colț din care
nu poate găsi nicio îmbunătățire, pentru că arată doar un „pas” înainte.

Programul accesează starea clusterului prin Rapi sau Luxi. De asemenea, solicită date peste
rețeaua din toate MonD-urile cu opțiunea --mond. În prezent folosește doar date produse de
Colector de încărcare CPU.

În mod implicit, programul va afișa soluția în mod incremental pe măsură ce este calculată, în a
format oarecum criptic; pentru a obține lista reală de comenzi Ganeti, utilizați -C opțiune.

ALGORITM
Programul funcționează în pași independenți; la fiecare pas, calculăm cea mai bună mișcare de instanță
care scade scorul clusterului.

Tipul de mutare posibil pentru o instanță sunt combinații de failover/migrare și
replace-disks astfel încât să schimbăm unul dintre nodurile instanței, iar celălalt rămâne
(dar posibil cu rolul schimbat, de exemplu din primar devine secundar). Lista este:

· failover (f)

· înlocuiți secundar (r)

· înlocuiți primar, o mișcare compusă (f, r, f)

· failover și înlocuire secundară, de asemenea compozită (f, r)

· înlocuiți secundar și failover, de asemenea compozit (r, f)

Nu facem singura posibilitate rămasă de a înlocui ambele noduri (r,f,r,f sau
echivalent f,r,f,r) deoarece aceste mișcări necesită o căutare exhaustivă asupra ambilor candidați
noduri primare și secundare și este O(n*n) în numărul de noduri. În plus, acesta
nu pare să dea scoruri mai bune, dar va avea ca rezultat mai multe înlocuiri de disc.

INVESTIȚII RESTRICȚII
La fiecare pas, împiedicăm mutarea unei instanțe dacă ar provoca:

· un nod care să intre în starea de eșec N+1

· o instanță pentru a trece pe un nod offline (nodurile offline sunt fie citite din cluster
sau declarat cu -O; nodurile drenate sunt considerate offline)

· un conflict bazat pe etichete de excludere (etichetele de excludere sunt citite din cluster și/sau definite
prin intermediul --etichete-excludere opțiune)

· un raport maxim vcpu/pcpu care trebuie depășit (configurat prin --max-cpu)

· Procentul minim de disc liber pentru a ajunge sub limita configurată (configurată prin --min-disc)

CURSE PUNTAREA
După cum sa spus mai înainte, algoritmul încearcă să minimizeze scorul cluster la fiecare pas. În prezent
acest scor este calculat ca o sumă ponderată a următoarelor componente:

· abaterea standard a procentului de memorie liberă

· abaterea standard a procentului de memorie rezervată

· suma procentelor de memorie rezervată

· abaterea standard a procentului de disc liber

· numărul de noduri care nu a reuşit verificarea N+1

· numărul de instanțe care trăiesc (fie ca primar, fie ca secundar) pe noduri offline; în
sensul de hbal (și celelalte htools) nodurile drenate sunt considerate offline

· numărul de instanțe care trăiesc (ca primar) pe noduri offline; aceasta diferă de cele de mai sus
metrică, ajutând la failoverul unor astfel de instanțe în clustere cu 2 noduri

· abaterea standard a raportului dintre CPU-ul virtual și cel fizic (pentru instanțe primare de
nodul)

· abaterea standard a fracției de axuri disponibile (în modul dedicat,
fusurile reprezintă fusuri fizice; altfel această măsură suprascrisibilă pentru IO
încărcare, iar factorul de supraabonament este luat în considerare la calcularea numărului de
fusuri disponibile)

· abaterea standard a sarcinii dinamice pe noduri, pentru CPU, memorie, disc si retea

· abaterea standard a sarcinii CPU furnizată de MonD

· numărul de instanțe cu primar și secundar în același domeniu de eșec

Memoria liberă și valorile discului liber vă ajută să vă asigurați că toate nodurile sunt oarecum echilibrate
utilizarea resurselor lor. Memoria rezervată ajută la asigurarea faptului că nodurile sunt oarecum
echilibrat în păstrarea instanțelor secundare și că niciun nod nu păstrează prea multă memorie rezervată
pentru N+1. Și, în sfârșit, procentul N+1 ajută la ghidarea algoritmului către eliminare
N+1 defecțiuni, dacă este posibil.

Cu excepția celor N+1 eșecuri, numără instanțele offline și încălcarea domeniului de eșec
contează, folosim abaterea standard, deoarece atunci când este utilizată cu valori într-un interval fix (noi
utilizați procente exprimate ca valori între zero și unu) dă rezultate consistente în întreaga
toate valorile (există câteva mici probleme legate de diferite mijloace, dar funcționează
în general bine). Valorile de tip „număr” vor avea un scor mai mare și, prin urmare, vor conta mai mult
pentru echilibrare; astfel încât acestea sunt mai bune pentru constrângeri dure (cum ar fi evacuarea nodurilor și
remedierea defecțiunilor N+1). De exemplu, se numără instanțele offline (adică numărul de
instanțe care trăiesc pe noduri offline) va determina algoritmul să mute în mod activ instanțele
departe de nodurile offline. Acest lucru, împreună cu restricția de plasare dată de offline
noduri, va determina evacuarea unor astfel de noduri.

Valorile de încărcare dinamică trebuie citite dintr-un fișier extern (Ganeti nu furnizează
ele), și sunt calculate pentru fiecare nod ca: suma încărcării CPU a instanței primare, suma
încărcarea memoriei instanței, suma încărcării discului instanței primare și secundare (cum generează DRBD
Scrie încărcare pe nodurile secundare și în caz normal și în scenarii degradate, citește, de asemenea
încărcare) și suma încărcării rețelei instanței primare. Un exemplu despre cum să le generezi
valorile pentru intrarea în hbal ar fi urmărirea listei xm pentru cazuri de peste o zi și până la
calculând delta valorilor CPU și alimentați-o prin intermediul -U opțiune pentru toate cazurile
(și păstrați celelalte valori ca una singură). Pentru ca algoritmul să funcționeze, tot ce este necesar este
că valorile sunt consecvente pentru o valoare pentru toate instanțele (de exemplu, toate instanțele folosesc
cpu% pentru a raporta utilizarea CPU și nu ceva legat de numărul de secunde CPU utilizate dacă
CPU-urile sunt diferite) și că sunt normalizate între zero și unu. Rețineți că este
se recomandă să nu aibă zero ca valoare de încărcare pentru nicio măsurătoare de instanță de atunci
cazurile secundare nu sunt bine echilibrate.

Încărcarea CPU din colectorul de date al MonD va fi utilizată numai dacă toate MonD-urile rulează,
altfel nu va afecta scorul clusterului. Deoarece nu putem găsi încărcarea CPU a fiecăruia
de exemplu, putem presupune că sarcina CPU a unei instanțe este proporțională cu numărul de
vcpus-ul său. Cu această euristică, instanțe de la noduri cu încărcare mare a CPU vor tinde să se miște
către noduri cu o încărcare mai mică a CPU.

Pe un cluster perfect echilibrat (toate nodurile de aceeași dimensiune, toate instanțele de aceeași dimensiune și
distribuite în mod egal între nodurile), valorile pentru toate valorile ar fi zero, cu
cu excepția procentului total de memorie rezervată. Acest lucru nu se întâmplă prea des în
practică :)

OFFLINE INSTANȚE
Deoarece versiunile actuale Ganeti nu raportează memoria utilizată de instanțe offline (în jos),
ignorarea stării de rulare a instanțelor va cauza calcule greșite. Din acest motiv,
algoritmul scade dimensiunea memoriei instanțelor în jos din memoria nodului liber al acestora
nod primar, de fapt simulând pornirea unor astfel de instanțe.

EXCLUDERE ETICHETE
Mecanismul etichetelor de excludere este conceput pentru a preveni instanțe care rulează aceeași sarcină de lucru
(ex. două servere DNS) să aterizeze pe același nod, ceea ce ar face ca nodul respectiv a
SPOF pentru serviciul dat.

Funcționează prin etichetarea instanțelor cu anumite etichete și apoi construind hărți de excludere bazate pe
aceste. Ce etichete sunt utilizate efectiv este configurată fie prin linia de comandă (opțiunea
--etichete-excludere) sau prin adăugarea lor la etichetele cluster:

--exclusion-tags=a,b
Acest lucru va face toate etichetele de instanță ale formularului A:*, b:* fi luat în considerare pentru
harta excluderii

grup tag-uri htools:iextags:a, htools:iextags:b
Acest lucru va face etichete de instanță A:*, b:* să fie luate în considerare pentru harta excluderii. Mai mult
mai exact, sufixul etichetelor cluster care încep cu htools:iextags: va deveni
prefixul etichetelor de excludere.

Ambele forme de mai sus înseamnă că două cazuri având ambele (de exemplu) eticheta a:foo or b:bar
nu se va termina pe același nod.

MIGRAȚIA ETICHETE
Dacă Ganeti este implementat pe un cluster eterogen, migrarea ar putea să nu fie posibilă între
toate nodurile unui grup de noduri. Un exemplu de astfel de situație este actualizarea hypervisorului
nod cu nod. Pentru a face hbal conștient de aceste restricții, următoarele etichete de cluster sunt
folosit.

grup tag-uri htools:migration:a, htools:migration:b, etc
Acest lucru face să creeze etichete de nod ale formularului A:*, b:*, etc să fie considerate migrație
restricţie. Mai precis, sufixul etichetelor cluster care începe cu
htools:migration: va deveni prefixul etichetelor de migrare. Doar acelea
Migrațiile vor fi luate în considerare în cazul în care toate etichetele de migrare ale sursei
nodul sunt de asemenea prezente pe nodul țintă.

grup tag-uri htools:allowmigration:x::y pentru migrațiune tag-uri x și y
Aceasta afirmă că un nod etichetat y este capabil să primească instanțe în același mod ca și cum
au avut o x etichetă.

Deci, în cazul simplu al unui upgrade de hypervisor, etichetarea tuturor nodurilor care au fost
actualizat cu o etichetă de migrare este suficient. În situații mai complicate, așa este întotdeauna
este posibil să se utilizeze o etichetă de migrare diferită pentru fiecare hypervisor utilizat și să se precizeze în mod explicit
direcţiile de migrare permise prin intermediul htools:allowmigration: tag-uri.

LOCAȚIE ETICHETE
În cadrul unui grup de noduri, este mai probabil ca anumite noduri să eșueze simultan din cauza a
cauza obișnuită a erorii (de exemplu, dacă au aceeași unitate de alimentare). Ganeti poate fi
a conștientizat acele cauze comune ale eșecului prin intermediul etichetelor.

grup tag-uri htools:nlocation:a, htools:nlocation:b, etc
Acest lucru face să creeze etichete de nod ale formularului A:*, b:*, etc să fie considerate a avea un comun
cauza eșecului.

Sunt luate în considerare cazurile cu nodul primar și secundar care au o cauză comună de defecțiune
prost plasat. Deși astfel de plasări sunt întotdeauna permise, ele contează foarte mult pentru
scorul cluster.

OPŢIUNI


Opțiunile care pot fi transmise programului sunt următoarele:

-C, --print-comenzi
Tipăriți lista de comenzi la sfârșitul rulării. Fără aceasta, programul va fi numai
arată o ieșire mai scurtă, dar criptică.

Rețineți că lista de mișcări va fi împărțită în pași independenți, numiți „seturi de locuri de muncă”,
dar numai pentru inspecție vizuală, nu pentru paralelizare efectivă. Nu este
este posibil să le paralelizezi direct atunci când sunt executate prin comenzi „gnt-instance”,
deoarece o comandă compusă (de exemplu failover și înlocuire-disk) trebuie să fie executată
în serie. Execuția în paralel este posibilă numai atunci când se utilizează backend-ul Luxi și
-L opțiune.

Algoritmul de împărțire a mișcărilor în seturi de joburi este acumularea de mișcări până la
următoarea mișcare este atingerea nodurilor deja atinse de mișcările curente; asta înseamnă noi
nu se poate executa în paralel (din cauza alocării resurselor în Ganeti) și așa începem
un nou set de locuri de muncă.

-p, --print-nodes
Imprimă starea nodului înainte și după, într-un format conceput pentru a permite utilizatorului
înțelegeți cei mai importanți parametri ai nodului. Vezi pagina de manual hinstrumente(1) pentru
mai multe detalii despre aceasta optiune.

--print-instanțe
Imprimă harta instanței înainte și după. Acest lucru este mai puțin util ca starea nodului,
dar poate ajuta la înțelegerea mișcărilor instanțelor.

-O nume
Această opțiune (care poate fi dată de mai multe ori) va marca nodurile ca fiind Offline.
Aceasta înseamnă câteva lucruri:

· instanțe nu vor fi plasate pe aceste noduri, nici măcar temporar; de ex înlocui
primar mutarea nu este disponibilă dacă nodul secundar este offline, deoarece această mutare
necesită un failover.

· aceste noduri nu vor fi incluse în calculul scorului (cu excepția
procentul de instanțe pe nodurile offline)

Rețineți că algoritmul va marca, de asemenea, ca offline orice noduri care sunt raportate de RAPI
ca atare, sau care au "?" în introducerea pe bază de fișier în orice câmpuri numerice.

-e scor, --min-score=*scor*
Acest parametru indică cât de mult peste limita N+1 ne poate face scorul clusterului
fii mulțumit și modifică calculul în două moduri:

· dacă clusterul are scorul inițial mai mic decât această valoare, atunci nu intrăm
algoritmul și ieșiți cu succes

· în timpul procesului iterativ, dacă ajungem la un scor mai mic decât această valoare, ieșim
algoritmul

Valoarea implicită a parametrului este în prezent 1e-9 (aleasă empiric).

-g deltă, --min-gain=*delta*
Deoarece algoritmul de echilibrare poate duce uneori la îmbunătățiri foarte mici,
care aduc un câștig mai mic decât îl costă în timpul de relocare, acest parametru (implicit
la 0.01) reprezintă câștigul minim de care avem nevoie în timpul unui pas, pentru a continua
balansare.

--min-gain-limit=*prag*
Opțiunea de câștig minim de mai sus va avea efect numai dacă scorul cluster este deja
de mai jos prag (implicit la 0.1). Motivul din spatele acestui decor este că la
scoruri mari ale clusterelor (clustere prost echilibrate), nu dorim să anulăm reechilibrarea
prea repede, deoarece câștigurile ulterioare ar putea fi încă semnificative. Cu toate acestea, sub
prag, câștigul total este doar valoarea pragului, așa că putem ieși mai devreme.

--fără-disc-mișcări
Acest parametru împiedică hbal să folosească mutarea discului (adică „gnt-instance
înlocuirea discurilor"). Acest lucru va duce la o echilibrare mult mai rapidă, dar de
desigur, îmbunătățirile sunt limitate. Este la latitudinea utilizatorului să decidă când să utilizeze
unul sau altul.

--nicio-instanță-mișcări
Acest parametru împiedică hbal să folosească mișcări ale instanței (adică „gnt-instance
migrare/failover"). Aceasta va folosi doar înlocuirea lentă a discului
operațiuni, și va oferi, de asemenea, un echilibru mai prost, dar poate fi util dacă se deplasează
cazurile din jur este considerată nesigură sau nu este preferată.

--mod-evacuare
Acest parametru restricționează lista de instanțe luate în considerare pentru trecerea la cele
trăind pe noduri offline/drenate. Poate fi folosit ca înlocuitor (vrac) pentru
al lui Ganeti gnt-node evacua, cu nota că nu garantează integral
evacuare.

--migrare-restricționată
Acest parametru nu permite orice mutare de înlocuire primară (frf), precum și acelea
mutari de înlocuire și failover (rf) acolo unde nodul primar al instanței nu este
drenat. Dacă este folosit împreună cu opțiunea --evac-mode, singurele migrări care
hbal va face migrarea instanțelor de pe un nod drenat. Acest lucru poate fi util dacă
în timpul unei reinstalări a sistemului de operare de bază, migrarea este posibilă numai din
sistem de operare vechi la noul sistem de operare. Rețineți, totuși, că, de obicei, utilizarea etichetelor de migrare este
alegere mai buna.

--select-instances=*instanțe*
Acest parametru marchează instanțele date (ca o listă separată prin virgulă) ca fiind singure
cele fiind mutate în timpul reechilibrării.

--exclude-instances=*instanțe*
Acest parametru marchează instanțe date (ca o listă separată prin virgulă) de la a fi
mutat în timpul reechilibrării.

-U fişier-util
Acest parametru specifică un fișier care conține informații de utilizare dinamică a instanței
care va fi folosit pentru a ajusta algoritmul de echilibrare pentru a egaliza sarcina pe noduri
(spre deosebire de utilizarea statică a resurselor). Fișierul are formatul „nume_instanță
cpu_util mem_util disk_util net_util" unde sunt interpretați parametrii "_util".
ca numere și numele instanței trebuie să se potrivească exact cu instanța citită din
Ganeti. În cazul numelor de instanțe necunoscute, programul se va opri.

Dacă nu sunt date, valorile implicite sunt una pentru toate valorile și, prin urmare, sunt dinamice
utilizarea are un singur efect asupra algoritmului: egalizarea secundarului
instanțe între noduri (aceasta este singura măsurătoare care nu este urmărită de altul,
valoare dedicată și, prin urmare, încărcarea pe disc a instanțelor va provoca o instanță secundară
egalizare). Rețineți că valoarea unuia va influența ușor și primarul
numărul de instanțe, dar acesta este deja urmărit prin alte valori și, prin urmare, prin intermediul
influenţa utilizării dinamice va fi practic nesemnificativă.

--ignore-dynu
Dacă sunt furnizate, toate informațiile de utilizare dinamică vor fi ignorate presupunând că sunt
0. Această opțiune va avea prioritate față de orice date transmise de opțiunea -U sau de
MonD-urile cu opțiunea --mond și --mond-data.

--ignore-soft-errors
Dacă se acordă, toate verificările pentru erori slabe vor fi omise atunci când se ia în considerare echilibrarea
mișcări. În acest fel, se poate face progres într-un cluster în care toate nodurile sunt într-un
stare proastă din punct de vedere al politicii, cum ar fi depășirea ratelor de suprasubscriere pe CPU sau spind-uri.

-S nume de fișier, --save-cluster=*nume fișier*
Dacă este dat, starea clusterului înainte de echilibrare este salvată în fișierul dat
plus extensia „original” (de ex nume de fișier.original), iar starea la final
a echilibrării este salvat în fișierul dat plus extensia „echilibrat” (adică
nume de fișier.echilibrat). Acest lucru permite realimentarea stării clusterului către hbal în sine
sau de exemplu hspace prin opțiunea -t.

-t fișier de date, --text-data=*fișier de date*
Specificație backend: numele fișierului care deține nodul și informații despre instanță
(dacă nu se colectează prin RAPI sau LUXI). Acesta sau unul dintre celelalte backend trebuie să fie
selectat. Opțiunea este descrisă în pagina de manual hinstrumente(1).

--mond=*da|nu*
Dacă este dat, programul va interoga toate MonDs pentru a prelua date din datele acceptate
colectori prin rețea.

--mond-xen
Dacă este dat, interogați și colectorii specifici Xen de la MonD, cu condiția monitorizării respective
demonii sunt interogați deloc.

--exit-on-lipsing-mond-data
Dacă este dat, anulați dacă datele obținute din interogarea MonDs sunt incomplete. The
comportamentul implicit este de a continua cu o estimare optimă bazată pe informațiile statice.

--mond-data fișier de date
Numele fișierului care conține datele furnizate de MonD, pentru a înlocui interogarea MonDs
prin rețea. Acesta este folosit mai ales pentru depanare. Fișierul trebuie să fie în JSON
formatați și prezentați o matrice de obiecte JSON, unul pentru fiecare nod, cu doi membri.
Primul membru numit nod este numele nodului și al doilea membru numit
rapoarte este o serie de obiecte de raport. Obiectele raportului trebuie să fie în același
formatul produs de agentul de monitorizare.

-m grup
Specificații backend: colectați date direct de la grup dat ca argument
prin RAPI. Opțiunea este descrisă în pagina de manual hinstrumente(1).

-L [cale]
Specificație backend: colectați date direct de la demonul principal, care urmează să fie
contactat prin LUXI (un protocol intern Ganeti). Opțiunea este descrisă în
pagina man hinstrumente(1).

-X Când utilizați backend-ul Luxi, hbal poate executa și comenzile date. The
metoda de execuție este de a executa seturile de joburi individuale (vezi -C opțiune pentru
detalii) în etape separate, avortând dacă în orice moment un set de joburi nu are toate joburile
de succes. Fiecare pas din soluția de echilibrare va fi tradus în exact
un job Ganeti (care are între unul și trei OpCodes) și toți pașii din a
setul de joburi va fi executat în paralel. Seturile de joburi în sine sunt executate în serie.

Execuția seriei de lucrări poate fi întreruptă, vezi mai jos pentru manipularea semnalului.

-l N, --max-length=*N*
Limitați soluția la această lungime. Acesta poate fi folosit, de exemplu, pentru a automatiza
executarea echilibrarii.

--max-cpu=*proporția CPU*
Raportul maxim virtual al CPU-ului fizic, ca număr în virgulă mobilă mai mare decât
sau egal cu unu. De exemplu, specificarea raportul CPU as 2.5 înseamnă că, pentru un 4-cpu
mașină, ar trebui să fie permisă utilizarea unui maximum de 10 CPU virtuale pentru primar
instanțe. O valoare de exact unu înseamnă că nu va exista o supraabonare la CPU
(cu excepția timpului CPU utilizat de nodul însuși), iar valorile sub unu nu fac
sens, deoarece asta înseamnă că alte resurse (de exemplu, discul) nu vor fi utilizate pe deplin din cauza
Restricții CPU.

--min-disk=*disk-raport*
Cantitatea minimă de spațiu liber pe disc rămasă, ca număr în virgulă mobilă. Pentru
exemplu, precizarea raportul de disc as 0.25 înseamnă că cel puțin un sfert de disc
spațiul ar trebui lăsat liber pe noduri.

-G uuid, --group=*uuid*
Pe un cluster cu mai multe grupuri, selectați acest grup pentru procesare. Altfel hbal va
avorta, deoarece nu poate echilibra mai multe grupuri în același timp.

-v, --verbos
Creșteți verbozitatea ieșirii. Fiecare utilizare a acestei opțiuni va crește
verbozitatea (în prezent, mai mult de 2 nu are sens) față de valoarea implicită a unuia.

-q, --Liniște
Reduceți verbozitatea ieșirii. Fiecare utilizare a acestei opțiuni va reduce valoarea
verbozitatea (mai puțin decât zero nu are sens) de la valoarea implicită a unuia.

-V, --versiune
Doar afișați versiunea programului și ieșiți.

SEMNAL MANIPULARE


Când executați joburi prin LUXI (folosind opțiunea -X), în mod normal, hbal va executa toate joburile
până când una dintre ele emite erori sau toate lucrările se termină cu succes.

Deoarece echilibrarea poate dura mult timp, este posibil să opriți hbal mai devreme în două moduri:

· prin trimiterea unui SIGINT (^C), hbal va înregistra cererea de terminare și va aștepta
până când joburile trimise în prezent se termină, moment în care se va ieși (cu codul de ieșire 0
dacă toate lucrările s-au terminat corect, altfel cu codul de ieșire 1 ca de obicei)

· prin trimiterea unui SIGTERM, hbal va ieși imediat (cu codul de ieșire 2); este
responsabilitatea utilizatorului de a continua cu Ganeti și de a verifica rezultatul
locuri de muncă în curs de executare

Rețineți că, în orice situație, este perfect sigur să ucideți hbal, fie prin semnalele de mai sus
sau prin orice alt semnal (de ex. SIGQUIT, SIGKILL), deoarece joburile în sine sunt procesate
de Ganeti, în timp ce hbal (după depunere) urmărește doar progresul lor. În acest caz,
utilizatorul va trebui să îl interogheze pe Ganeti pentru rezultatele jobului.

EXIT STAREA


Starea de ieșire a comenzii va fi zero, cu excepția cazului în care din anumite motive algoritmul a eșuat
(de exemplu, date greșite ale nodului sau ale instanței), opțiuni nevalide ale liniei de comandă sau (în cazul unui job
execuție) unul dintre joburi a eșuat.

Odată ce execuția jobului prin Luxi a început (-X), dacă echilibrarea a fost întreruptă mai devreme (via
SIGINT, sau prin --max-length), dar toate joburile au fost executate cu succes, atunci starea de ieșire este
zero; un cod de ieșire diferit de zero înseamnă că starea clusterului ar trebui investigată, deoarece a
lucrarea a eșuat sau nu am putut calcula starea acesteia și acest lucru poate indica, de asemenea, o problemă la
partea Ganeti.

Utilizați hbal online folosind serviciile onworks.net



Cele mai recente programe online Linux și Windows