On Mon, Sep 30, 2013 at 7:54 AM, Spyros Trigazis <[email protected]> wrote:

> Update hail, hbal and htools man-pages to include the use of data
> provided by MonD.
>
> Signed-off-by: Spyros Trigazis <[email protected]>
> ---
>  man/hail.rst   |   23 +++++++++++++++++++++++
>  man/hbal.rst   |   28 +++++++++++++++++++++++++++-
>  man/htools.rst |   19 +++++++++++++++++++
>  3 files changed, 69 insertions(+), 1 deletion(-)
>
> diff --git a/man/hail.rst b/man/hail.rst
> index 72733a2..c7fe773 100644
> --- a/man/hail.rst
> +++ b/man/hail.rst
> @@ -27,6 +27,10 @@ on stderr and the exit code is changed to show failure.
>  If the input file name is ``-`` (a single minus sign), then the request
>  data will be read from *stdin*.
>
> +Apart from input data, hail collects data over the network from all
> +MonDs with the --mond option. Currently it uses only data produced by
> +the CPUload collector.
> +
>  ALGORITHM
>  ~~~~~~~~~
>
> @@ -75,6 +79,25 @@ The options that can be passed to the program are as
> follows:
>    in the JSON request itself. This is mostly used for debugging. The
>    format of the file is described in the man page **htools**\(1).
>
> +\--mond
> +  If given the program will query all MonDs to fetch data from the
> +  supported data collectors over the network.
> +
> +\--mond-data *datafile*
> +  The name of the file holding the data provided by MonD, to override
> +  quering MonDs over the network. This is mostly used for debugging. The
> +  file must be in JSON format and present an array of JSON objects ,
> +  one for every node, with two members. The first member named ``node``
> +  is the name of the node and the second member named ``reports`` is an
> +  array of report objects. The report objects must be in the same format
> +  as produced by the monitoring agent.
> +
> +\--ignore-dynu
> +  If given, all dynamic utilisation information will be ignored by
> +  assuming it to be 0. This option will take precedence over any data
> +  passed by the MonDs with the ``--mond`` and the ``--mond-data``
> +  option.
> +
>  \--simulate *description*
>    Backend specification: similar to the **-t** option, this allows
>    overriding the cluster data with a simulated cluster. For details
> diff --git a/man/hbal.rst b/man/hbal.rst
> index 218ff56..4ef2371 100644
> --- a/man/hbal.rst
> +++ b/man/hbal.rst
> @@ -58,6 +58,10 @@ reasonably fast. It is not, however, designed to be a
> perfect algorithm:
>  it is possible to make it go into a corner from which it can find no
>  improvement, because it looks only one "step" ahead.
>
> +The program accesses the cluster state via Rapi or Luxi. It also
> +requests data over the network from all MonDs with the --mond option.
> +Currently it uses only data produced by CPUload collector.
> +
>  By default, the program will show the solution incrementally as it is
>  computed, in a somewhat cryptic format; for getting the actual Ganeti
>  command list, use the **-C** option.
> @@ -121,6 +125,7 @@ following components:
>    primary instances of the node)
>  - standard deviation of the dynamic load on the nodes, for cpus,
>    memory, disk and network
> +- standard deviation of the CPU load provided by MonD
>
>  The free memory and free disk values help ensure that all nodes are
>  somewhat balanced in their resource usage. The reserved memory helps
> @@ -159,6 +164,13 @@ different), and that they are normalised to between
> zero and one. Note
>  that it's recommended to not have zero as the load value for any
>  instance metric since then secondary instances are not well balanced.
>
> +The CPUload from MonD's data collector will be used only if all MonDs
> +are running, otherwise it won't affect the cluster score. Since we can't
> +find the CPU load of each instance, we can assume that the CPU load of
> +an instance is proportional to the number of its vcpus. With this
> +heuristic, instances from nodes with high CPU load will tend to move to
> +nodes with less CPU load.
> +
>  On a perfectly balanced cluster (all nodes the same size, all
>  instances the same size and spread across the nodes equally), the
>  values for all metrics would be zero. This doesn't happen too often in
> @@ -320,7 +332,8 @@ The options that can be passed to the program are as
> follows:
>  \--ignore-dynu
>    If given, all dynamic utilisation information will be ignored by
>    assuming it to be 0. This option will take precedence over any data
> -  passed by the ``-U`` option.
> +  passed by the ``-U`` option or by the MonDs with the ``--mond`` and
> +  the ``--mond-data`` option.
>
>  -S *filename*, \--save-cluster=*filename*
>    If given, the state of the cluster before the balancing is saved to
> @@ -336,6 +349,19 @@ The options that can be passed to the program are as
> follows:
>    other backends must be selected. The option is described in the man
>    page **htools**\(1).
>
> +\--mond
> +  If given the program will query all MonDs to fetch data from the
> +  supported data collectors over the network.
> +
> +\--mond-data *datafile*
> +  The name of the file holding the data provided by MonD, to override
> +  quering MonDs over the network. This is mostly used for debugging. The
> +  file must be in JSON format and present an array of JSON objects ,
> +  one for every node, with two members. The first member named ``node``
> +  is the name of the node and the second member named ``reports`` is an
> +  array of report objects. The report objects must be in the same format
> +  as produced by the monitoring agent.
> +
>  -m *cluster*
>    Backend specification: collect data directly from the *cluster* given
>    as an argument via RAPI. The option is described in the man page
> diff --git a/man/htools.rst b/man/htools.rst
> index ecd5ece..37591aa 100644
> --- a/man/htools.rst
> +++ b/man/htools.rst
> @@ -219,6 +219,25 @@ support all options. Some common options are:
>    - vcpu ratio
>    - spindle ratio
>
> +\--mond
> +  If given the program will query all MonDs to fetch data from the
> +  supported data collectors over the network.
> +
> +\--mond-data *datafile*
> +  The name of the file holding the data provided by MonD, to override
> +  quering MonDs over the network. This is mostly used for debugging. The
> +  file must be in JSON format and present an array of JSON objects ,
> +  one for every node, with two members. The first member named ``node``
> +  is the name of the node and the second member named ``reports`` is an
> +  array of report objects. The report objects must be in the same format
> +  as produced by the monitoring agent.
> +
> +\--ignore-dynu
> +  If given, all dynamic utilisation information will be ignored by
> +  assuming it to be 0. This option will take precedence over any data
> +  passed by the ``-U`` option (available with hbal) or by the MonDs with
> +  the ``--mond`` and the ``--mond-data`` option.
> +
>  -m *cluster*
>    Backend specification: collect data directly from the *cluster* given
>    as an argument via RAPI. If the argument doesn't contain a colon (:),
> --
> 1.7.10.4
>
>
LGTM, thanks.

Michele

-- 
Google Germany GmbH
Dienerstr. 12
80331 München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Graham Law, Christine Elizabeth Flores

Reply via email to