hbal - Online en la nube

Este es el comando hbal que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


hbal - Balanceador de clústeres para Ganeti

SINOPSIS


hbal {opciones de backend ...} [opciones de algoritmo ...] [opciones de informes ...]

hbal --versión

Opciones de backend:

{ -m grupo | -L [ camino ] [-X] | -t archivo de datos | -I camino }

Opciones de algoritmo:

[ --max-cpu proporción de cpu ] [ --min-disco relación de disco ] [ -l límitar ] [ -e Puntuación ] [ -g delta ] [
- límite de ganancia mínima umbral ] [ -O nombre ... ] [ --sin movimientos de disco ] [ --no-movimientos-de-instancia ] [
-U archivo util ] [ --ignorar-dynu ] [ --ignorar-errores-suaves ] [ --mundo si | no ] [ --mond-xen ]
[ --salida-en-datos-mond-faltantes ] [ --modo de evacuación ] [ - migración restringida ] [
--seleccionar-instancias inst ... ] [ --excluir-instancias inst ... ]

Opciones de informes:

[ -C[ presentar ] ] [ -pag[ campos ] ] [ --instancias de impresión ] [ -S presentar ] [ -v ... | -q ]

DESCRIPCIÓN


hbal es un balanceador de clústeres que analiza el estado actual del clúster (nodos con
su disco total y libre, memoria, etc.) y la ubicación de la instancia y calcula una serie de
pasos diseñados para mejorar el estado del clúster.

El algoritmo utilizado está diseñado para ser estable (es decir, le dará los mismos resultados cuando
reiniciarlo desde el medio de la solución) y razonablemente rápido. Sin embargo, no es
diseñado para ser un algoritmo perfecto: es posible hacerlo ir a una esquina desde la cual
no puede encontrar ninguna mejora, porque sólo mira un "paso" hacia adelante.

El programa accede al estado del clúster a través de Rapi o Luxi. También solicita datos a través del
red de todos los MonDs con la opción --mond. Actualmente utiliza solo datos producidos por
Colector de carga de CPU.

De forma predeterminada, el programa mostrará la solución de forma incremental a medida que se calcula, en un
formato algo críptico; para obtener la lista de comandos de Ganeti real, use el -C .

ALGORITMO
El programa funciona en pasos independientes; en cada paso, calculamos el mejor movimiento de instancia
que reduce la puntuación del clúster.

El tipo de movimiento posible para una instancia son combinaciones de conmutación por error / migración y
reemplazar-discos de modo que cambiemos uno de los nodos de instancia, y el otro permanece
(pero posiblemente con un rol cambiado, por ejemplo, de primario se convierte en secundario). La lista es:

· Conmutación por error (f)

· Reemplazar secundaria (r)

· Reemplazar primario, un movimiento compuesto (f, r, f)

· Conmutación por error y reemplazo secundario, también compuesto (f, r)

· Reemplazar secundaria y conmutación por error, también compuesta (r, f)

No hacemos la única posibilidad restante de reemplazar ambos nodos (r, f, r, f o el
equivalente f, r, f, r) ya que estos movimientos necesitan una búsqueda exhaustiva sobre ambos candidatos
nodos primarios y secundarios, y es O (n * n) en el número de nodos. Además,
no parece dar mejores puntuaciones, pero resultará en más reemplazos de disco.

INVERSIÓN RESTRICCIONES
En cada paso, evitamos el movimiento de una instancia si ocasionara:

· Un nodo para entrar en estado de falla N + 1

· Una instancia para pasar a un nodo fuera de línea (los nodos fuera de línea se leen desde el clúster
o declarado con -O; los nodos drenados se consideran fuera de línea)

· Un conflicto basado en etiquetas de exclusión (las etiquetas de exclusión se leen del clúster y / o se definen
mediante el - etiquetas de exclusión opción)

· Debe superarse una relación máxima de vcpu / pcpu (configurada mediante --max-cpu)

· Porcentaje mínimo de disco libre para ir por debajo del límite configurado (configurado mediante --min-disco)

GRUPO PUNTAJE
Como se dijo antes, el algoritmo intenta minimizar la puntuación del grupo en cada paso. En la actualidad
esta puntuación se calcula como una suma ponderada de los siguientes componentes:

· Desviación estándar del porcentaje de memoria libre

· Desviación estándar del porcentaje de memoria reservada

· La suma de los porcentajes de memoria reservada

· Desviación estándar del porcentaje de disco libre

· Recuento de nodos que fallan en la verificación N + 1

· Recuento de instancias que viven (ya sea como primarias o secundarias) en nodos fuera de línea; en el
sentido de hbal (y las otras htools) los nodos drenados se consideran fuera de línea

· Recuento de instancias que viven (como primarias) en nodos fuera de línea; esto difiere de lo anterior
métrica al ayudar a la conmutación por error de tales instancias en clústeres de 2 nodos

· Desviación estándar de la relación de cpus virtual a físico (para instancias primarias de
el nodo)

· Desviación estándar de la fracción de los husillos disponibles (en modo dedicado,
los husillos representan husillos físicos; de lo contrario, esta medida de suscripción excesiva para IO
carga, y el factor de sobresuscripción se tiene en cuenta al calcular el número de
husillos disponibles)

· Desviación estándar de la carga dinámica en los nodos, para cpus, memoria, disco y red

· Desviación estándar de la carga de la CPU proporcionada por MonD

· El recuento de instancias con primario y secundario en el mismo dominio de falla

Los valores de memoria libre y disco libre ayudan a garantizar que todos los nodos estén algo equilibrados en
su uso de recursos. La memoria reservada ayuda a asegurar que los nodos estén algo
equilibrado en la celebración de instancias secundarias, y que ningún nodo mantiene demasiada memoria reservada
para N + 1. Y finalmente, el porcentaje N + 1 ayuda a guiar el algoritmo hacia la eliminación
Fallos N + 1, si es posible.

Excepto por las fallas N + 1, el recuento de instancias fuera de línea y la infracción del dominio de fallas
cuenta, usamos la desviación estándar ya que cuando se usa con valores dentro de un rango fijo (usamos
utilizar porcentajes expresados ​​como valores entre cero y uno) da resultados consistentes en
todas las métricas (hay algunos pequeños problemas relacionados con diferentes medios, pero funciona
generalmente bien). Los valores de tipo 'recuento' tendrán una puntuación más alta y, por lo tanto, serán más importantes
para equilibrar; por lo tanto, estos son mejores para restricciones duras (como evacuar nodos y
arreglando fallas N + 1). Por ejemplo, las instancias fuera de línea cuentan (es decir, el número de
instancias que viven en nodos fuera de línea) hará que el algoritmo mueva instancias de forma activa
lejos de los nodos fuera de línea. Esto, junto con la restricción de ubicación dada por offline
nodos, provocará la evacuación de dichos nodos.

Los valores de carga dinámica deben leerse desde un archivo externo (Ganeti no proporciona
ellos), y se calculan para cada nodo como: suma de la carga de la CPU de la instancia primaria, suma de la
carga de memoria de la instancia, suma de la carga del disco de la instancia primaria y secundaria (como DRBD genera
escribir carga en nodos secundarios también en caso normal y en escenarios degradados también leer
load) y la suma de la carga de red de la instancia principal. Un ejemplo de cómo generar estos
Los valores para la entrada a hbal serían rastrear la lista xm para instancias durante un día y por
calcular el delta de los valores de la CPU, y alimentarlo a través del -U opción para todas las instancias
(y mantenga las otras métricas como una). Para que el algoritmo funcione, todo lo que se necesita es
que los valores son consistentes para una métrica en todas las instancias (por ejemplo, todas las instancias usan
cpu% para informar el uso de la CPU, y no algo relacionado con la cantidad de segundos de CPU utilizados si el
Las CPU son diferentes) y que están normalizadas entre cero y uno. Tenga en cuenta que es
se recomienda no tener cero como valor de carga para cualquier métrica de instancia desde entonces
las instancias secundarias no están bien equilibradas.

La carga de CPU del recopilador de datos de MonD se utilizará solo si todos los MonD están en ejecución,
de lo contrario, no afectará la puntuación del clúster. Dado que no podemos encontrar la carga de la CPU de cada
instancia, podemos asumir que la carga de CPU de una instancia es proporcional al número de
su vcpus. Con esta heurística, las instancias de nodos con alta carga de CPU tenderán a moverse
a los nodos con menos carga de CPU.

En un clúster perfectamente equilibrado (todos los nodos del mismo tamaño, todas las instancias del mismo tamaño y
distribuidos en los nodos por igual), los valores para todas las métricas serían cero, con el
excepción del porcentaje total de memoria reservada. Esto no sucede con demasiada frecuencia en
práctica :)

DESCONECTADO INSTANCIAS
Dado que las versiones actuales de Ganeti no informan la memoria utilizada por instancias fuera de línea (inactivas),
ignorar el estado de ejecución de las instancias provocará cálculos incorrectos. Por esta razón, la
El algoritmo resta el tamaño de la memoria de las instancias inactivas de la memoria de nodo libre de su
nodo primario, simulando de hecho el inicio de tales instancias.

EXCLUSIÓN TAGS
El mecanismo de etiquetas de exclusión está diseñado para evitar instancias que ejecutan la misma carga de trabajo.
(por ejemplo, dos servidores DNS) para aterrizar en el mismo nodo, lo que haría que el nodo respectivo sea un
SPOF para el servicio prestado.

Funciona etiquetando instancias con ciertas etiquetas y luego construyendo mapas de exclusión basados ​​en
estas. Las etiquetas que se utilizan realmente se configuran a través de la línea de comando (opción
- etiquetas de exclusión) o agregándolos a las etiquetas del clúster:

--exclusion-tags = a, b
Esto hará que todas las etiquetas de instancia del formulario un:*, B:* ser considerado para el
mapa de exclusión

grupo etiquetas htools: iextags: a, htools: iextags: b
Esto hará que las etiquetas de instancia un:*, B:* ser considerado para el mapa de exclusión. Más
precisamente, el sufijo de las etiquetas de clúster que comienzan con htools: iextags: se convertirá en el
prefijo de las etiquetas de exclusión.

Ambas formas anteriores significan que dos instancias que tienen (p. Ej.) La etiqueta a: foo or b: barra
no terminará en el mismo nodo.

MIGRACIÓN TAGS
Si Ganeti se implementa en un clúster heterogéneo, es posible que la migración no sea posible entre
todos los nodos de un grupo de nodos. Un ejemplo de tal situación es la actualización del hipervisor.
nodo por nodo. Para que hbal conozca esas restricciones, las siguientes etiquetas de clúster son
usado.

grupo etiquetas htools: migración: a, htools: migración: b, etc.
Esto hace que las etiquetas de nodo de la forma un:*, B:*, etc se considerará migración
restricción. Más precisamente, el sufijo de las etiquetas de clúster que comienza con
htools: migración: se convertirá en el prefijo de las etiquetas de migración. Solo esos
Las migraciones se tendrán en cuenta cuando todas las etiquetas de migración de la fuente
Los nodos también están presentes en el nodo de destino.

grupo etiquetas htools: allowmigration: x :: y para migración etiquetas x y y
Esto afirma que un nodo taged y es capaz de recibir instancias de la misma forma que si
ellos tenían un x etiqueta.

Entonces, en el caso simple de una actualización de hipervisor, etiquetar todos los nodos que se han
actualizado con una etiqueta de migración es suficiente. En situaciones más complicadas, siempre es
posible utilizar una etiqueta de migración diferente para cada hipervisor utilizado y establecer explícitamente el
direcciones de migración permitidas mediante htools: allowmigration: las etiquetas.

TAGS
Dentro de un grupo de nodos, es más probable que ciertos nodos fallen simultáneamente debido a una
causa común de error (por ejemplo, si comparten la misma fuente de alimentación). Ganeti puede ser
consciente de estas causas habituales de avería mediante etiquetas.

grupo etiquetas htools: nlocation: a, htools: nlocation: b, etc.
Esto hace que las etiquetas de nodo de la forma un:*, B:*, etc. se considerará que tienen un
causa de la falla.

Las instancias con nodo primario y secundario que tienen una causa común de falla se consideran
mal colocado. Si bien estas ubicaciones siempre están permitidas, cuentan en gran medida para el
puntuación de grupo.

CAMPUS


Las opciones que se pueden pasar al programa son las siguientes:

-VS, - comandos de impresión
Imprima la lista de comandos al final de la ejecución. Sin esto, el programa solo
muestran una salida más corta, pero críptica.

Tenga en cuenta que la lista de movimientos se dividirá en pasos independientes, llamados "conjuntos de trabajos",
pero solo para la inspección visual, no para la paralelización real. No lo es
posible paralelizarlos directamente cuando se ejecutan a través de comandos "gnt-instance",
ya que se debe ejecutar un comando compuesto (por ejemplo, conmutación por error y reemplazo de discos)
en serie. La ejecución en paralelo solo es posible cuando se utiliza el backend Luxi y el
-L .

El algoritmo para dividir los movimientos en conjuntos de trabajos es acumulando movimientos hasta
el siguiente movimiento es tocar los nodos ya tocados por los movimientos actuales; esto significa que nosotros
no se puede ejecutar en paralelo (debido a la asignación de recursos en Ganeti) y así comenzamos
un nuevo conjunto de trabajos.

-pag, --print-nodos
Imprime el estado del nodo antes y después, en un formato diseñado para permitir al usuario
comprender los parámetros más importantes del nodo. Ver la página del manual herramientas(1) para
más detalles sobre esta opción.

--instancias de impresión
Imprime el mapa de instancias antes y después. Esto es menos útil que el estado del nodo,
pero puede ayudar a comprender los movimientos de instancia.

-O nombre
Esta opción (que se puede dar varias veces) marcará los nodos como digital fuera de línea..
Esto significa un par de cosas:

· Las instancias no se colocarán en estos nodos, ni siquiera temporalmente; por ejemplo, el reemplazar
primario mover no está disponible si el nodo secundario está fuera de línea, ya que este movimiento
requiere una conmutación por error.

· Estos nodos no se incluirán en el cálculo de la puntuación (excepto para
porcentaje de instancias en nodos fuera de línea)

Tenga en cuenta que el algoritmo también marcará como fuera de línea cualquier nodo informado por RAPI
como tal, o que tiene "?" en la entrada basada en archivos en cualquier campo numérico.

-e Puntuación, --min-score = * puntuación *
Este parámetro denota cuánto por encima del límite N + 1 la puntuación del clúster puede para nosotros
estar contento y altera el cálculo de dos maneras:

· Si el clúster tiene la puntuación inicial más baja que este valor, entonces no ingresamos
el algoritmo en absoluto, y salir con éxito

· Durante el proceso iterativo, si alcanzamos una puntuación inferior a este valor, salimos
el algoritmo

El valor predeterminado del parámetro es actualmente 1e-9 (elegido empíricamente).

-g delta, - ganancia mínima = * delta *
Dado que el algoritmo de equilibrio a veces puede resultar en pequeñas mejoras,
que aportan menos ganancia de lo que cuestan en tiempo de reubicación, este parámetro (por defecto
a 0.01) representa la ganancia mínima que requerimos durante un paso, para continuar
Equilibrio.

--min-gain-limit = * umbral *
La opción de ganancia mínima anterior solo tendrá efecto si la puntuación del clúster ya es
a continuación umbral (predeterminado en 0.1). El fundamento de este entorno es que en
puntuaciones de clúster altas (clústeres mal equilibrados), no queremos abortar el reequilibrio
demasiado rápido, ya que las ganancias posteriores aún podrían ser significativas. Sin embargo, bajo el
umbral, la ganancia total es solo el valor del umbral, por lo que podemos salir antes.

--sin movimientos de disco
Este parámetro evita que hbal use el movimiento de disco (es decir, "gnt-instance
reemplazar-discos "). Esto dará como resultado un equilibrio mucho más rápido, pero de
Por supuesto, las mejoras son limitadas. Depende del usuario decidir cuándo usar
uno u otro.

--no-movimientos-de-instancia
Este parámetro evita que hbal use movimientos de instancia (es decir, "gnt-instance
migrate / failover "). Esto solo usará el reemplazo lento de disco
operaciones, y también proporcionará un peor equilibrio, pero puede ser útil si se mueve
instancias alrededor se considera inseguro o no preferido.

--modo de evacuación
Este parámetro restringe la lista de instancias consideradas para mover a las
viviendo en nodos sin conexión / agotados. Se puede utilizar como reemplazo (a granel) de
Propia de Ganeti nodo-gnt evacuar, con la nota de que no garantiza la plena
evacuación.

- migración restringida
Este parámetro no permite ningún movimiento de reemplazo primario (frf), así como aquellos
movimientos de sustitución y conmutación por error (rf) donde el nodo principal de la instancia no está
agotado. Si se usa junto con la opción --evac-mode, las únicas migraciones que
hbal hará son migraciones de instancias de un nodo drenado. Esto puede resultar útil si
durante una reinstalación del sistema operativo base, la migración solo es posible desde el
sistema operativo antiguo al nuevo sistema operativo. Sin embargo, tenga en cuenta que, por lo general, el uso de etiquetas de migración es el
mejor elección.

--select-instances = * instancias *
Este parámetro marca las instancias dadas (como una lista separada por comas) como la única
los que se mueven durante el reequilibrio.

--exclude-instances = * instancias *
Este parámetro marca las instancias dadas (como una lista separada por comas) para que no sean
movido durante el reequilibrio.

-U archivo util
Este parámetro especifica un archivo que contiene información de utilización dinámica de la instancia
que se utilizará para ajustar el algoritmo de equilibrio para igualar la carga en los nodos
(a diferencia del uso de recursos estáticos). El archivo tiene el formato "nombre_instancia
cpu_util mem_util disk_util net_util "donde se interpretan los parámetros" _util "
como números y el nombre de la instancia debe coincidir exactamente con la instancia que se lee
Ganeti. En caso de nombres de instancia desconocidos, el programa se cancelará.

Si no se proporciona, los valores predeterminados son uno para todas las métricas y, por lo tanto, dinámicos.
La utilización tiene un solo efecto en el algoritmo: la ecualización del secundario.
instancias a través de nodos (esta es la única métrica que no es rastreada por otra,
valor dedicado y, por lo tanto, la carga de disco de instancias provocará una instancia secundaria
igualdad). Tenga en cuenta que el valor de uno también influirá ligeramente en la
recuento de instancias, pero eso ya se rastrea a través de otras métricas y, por lo tanto, el
La influencia de la utilización dinámica será prácticamente insignificante.

--ignorar-dynu
Si se da, toda la información de utilización dinámica será ignorada asumiendo que es
0. Esta opción tendrá prioridad sobre cualquier dato transmitido por la opción -U o por
los MonD con la opción --mond y --mond-data.

--ignorar-errores-suaves
Si se da, todas las verificaciones de errores leves se omitirán al considerar el equilibrio
se mueve. De esta manera, se puede avanzar en un clúster donde todos los nodos están en un
Estado incorrecto en cuanto a políticas, como exceder las tasas de sobresuscripción en la CPU o los ejes.

-S nombre de archivo, --save-cluster = * nombre de archivo *
Si se proporciona, el estado del clúster antes del equilibrio se guarda en el archivo dado.
más la extensión "original" (es decir nombre de archivo.original), y el estado al final
del balance se guarda en el archivo dado más la extensión "balanceado" (es decir
nombre de archivo.equilibrado). Esto permite volver a alimentar el estado del clúster a hbal.
o por ejemplo hspace a través de la opción -t.

-t archivo de datos, --text-data = * archivo de datos *
Especificación de backend: el nombre del nodo que contiene el archivo y la información de la instancia
(si no recolecta a través de RAPI o LUXI). Este o uno de los otros backends debe ser
seleccionado. La opción se describe en la página de manual. herramientas(1).

--mond = * sí | no *
Si se proporciona, el programa consultará todos los MonD para obtener datos de los datos admitidos
coleccionistas a través de la red.

--mond-xen
Si se proporciona, también consulte los recopiladores específicos de Xen de MonD, siempre que la supervisión
los demonios se consultan en absoluto.

--salida-en-datos-mond-faltantes
Si se proporciona, cancele si los datos que se pueden obtener al consultar MonDs están incompletos. los
El comportamiento predeterminado es continuar con la mejor suposición basada en la información estática.

--mond-datos archivo de datos
El nombre del archivo que contiene los datos proporcionados por MonD, para anular las consultas MonD
a través de la red. Esto se usa principalmente para depurar. El archivo debe estar en JSON
formatear y presentar una matriz de objetos JSON, uno para cada nodo, con dos miembros.
El primer miembro llamado nodo es el nombre del nodo y el segundo miembro llamado
informes es una matriz de objetos de informe. Los objetos del informe deben estar en el mismo
formato producido por el agente de supervisión.

-m grupo
Especificación de backend: recopile datos directamente del grupo dado como argumento
a través de RAPI. La opción se describe en la página de manual. herramientas(1).

-L [camino]
Especificación de backend: recopile datos directamente del demonio maestro, que se
contactado a través de LUXI (un protocolo interno de Ganeti). La opción se describe en el
página man herramientas(1).

-X Al usar el backend de Luxi, hbal también puede ejecutar los comandos dados. los
El método de ejecución es ejecutar los conjuntos de trabajos individuales (consulte el -C opción para
detalles) en etapas separadas, cancelando si en algún momento un conjunto de trabajo no tiene todos los trabajos
exitoso. Cada paso de la solución de equilibrio se traducirá en exactamente
un trabajo de Ganeti (que tiene entre uno y tres OpCodes), y todos los pasos en un
jobset se ejecutará en paralelo. Los propios conjuntos de trabajos se ejecutan en serie.

La ejecución de la serie de trabajos se puede interrumpir; consulte más abajo el manejo de señales.

-l N, --max-length = * N *
Restrinja la solución a esta longitud. Esto se puede utilizar, por ejemplo, para automatizar
ejecución del balanceo.

--max-cpu = * cpu-ratio *
La proporción máxima de CPU virtual a física, como un número de punto flotante mayor que
o igual a uno. Por ejemplo, especificando proporción de cpu as 2.5 significa que, para 4 cpu
máquina, se debe permitir un máximo de 10 cpus virtuales en uso para
instancias. Un valor de exactamente uno significa que no habrá una suscripción excesiva de CPU
(excepto por el tiempo de CPU utilizado por el propio nodo), y los valores por debajo de uno no hacen
sentido, ya que eso significa que otros recursos (por ejemplo, disco) no se utilizarán completamente debido a
Restricciones de CPU.

--min-disk = * relación de disco *
La cantidad mínima de espacio libre en disco restante, como un número de punto flotante. Para
ejemplo, especificando relación de disco as 0.25 significa que al menos una cuarta parte del disco
el espacio debe dejarse libre en los nodos.

-G uuid, --group = * uuid *
En un clúster de varios grupos, seleccione este grupo para procesarlo. De lo contrario, hbal lo hará
abortar, ya que no puede equilibrar varios grupos al mismo tiempo.

-v, --verboso
Aumente la verbosidad de la salida. Cada uso de esta opción aumentará la
verbosidad (actualmente más de 2 no tiene sentido) del valor predeterminado de uno.

-q, --tranquilo
Disminuya la verbosidad de la salida. Cada uso de esta opción disminuirá la
verbosidad (menos de cero no tiene sentido) del valor predeterminado de uno.

-V, --versión
Simplemente muestre la versión del programa y salga.

SEÑAL MANEJO


Al ejecutar trabajos a través de LUXI (usando la opción -X), normalmente hbal ejecutará todos los trabajos
hasta que se produzca un error o todos los trabajos finalicen correctamente.

Dado que el equilibrio puede llevar mucho tiempo, es posible detener la hbal antes de tiempo de dos maneras:

· Al enviar un SIGINT (^ C), hbal registrará la solicitud de terminación y esperará
hasta que finalicen los trabajos enviados actualmente, momento en el que saldrá (con el código de salida 0
si todos los trabajos terminaron correctamente, de lo contrario con el código de salida 1 como de costumbre)

· Enviando un SIGTERM, hbal saldrá inmediatamente (con código de salida 2); es el
responsabilidad del usuario de hacer un seguimiento con Ganeti y comprobar el resultado de la
trabajos actualmente en ejecución

Tenga en cuenta que en cualquier situación, es perfectamente seguro matar a hbal, ya sea a través de las señales anteriores.
o mediante cualquier otra señal (p. ej., SIGQUIT, SIGKILL), ya que los propios trabajos se procesan
por Ganeti mientras que hbal (después de la sumisión) solo observa su progresión. En este caso,
el usuario tendrá que consultar a Ganeti para conocer los resultados del trabajo.

SALIR ESTADO


El estado de salida del comando será cero, a menos que por alguna razón el algoritmo fallara
(por ejemplo, datos de instancia o nodo incorrectos), opciones de línea de comando no válidas, o (en caso de trabajo
ejecución) uno de los trabajos ha fallado.

Una vez que la ejecución del trabajo a través de Luxi ha comenzado (-X), si el equilibrio se interrumpió antes (a través de
SIGINT, oa través de --max-length) pero todos los trabajos se ejecutaron correctamente, entonces el estado de salida es
cero; un código de salida distinto de cero significa que se debe investigar el estado del clúster, ya que
el trabajo falló o no pudimos calcular su estado y esto también puede indicar un problema en el
Lado de Ganeti.

Use hbal en línea usando los servicios de onworks.net



Últimos programas en línea de Linux y Windows