On Fri, Sep 27, 2013 at 12:01 PM, 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..9efe16d 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 > + with two pairs, one for every node. The first pair is the name of the > + node and the second is an array of report objects. Further information > + about the format of the report object can be found in the Ganeti > + Monitoring Agent design document. > + > +\--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..77748f3 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 > + with two pairs, one for every node. The first pair is the name of the > + node and the second is an array of report objects. Further information > + about the format of the report object can be found in the Ganeti > + Monitoring Agent design document. > + > -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..16e0b94 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 > + with two pairs, one for every node. The first pair is the name of the > + node and the second is an array of report objects. Further information > + about the format of the report object can be found in the Ganeti > + Monitoring Agent design document. > In general, we don't want to refer to design documents, because they are meant for developers and not for end users, therefore they might theoretically also not be distributed at all. What should be done here, is following the approach of the doc/monitoring-query-format.rst file: the part of the design document describing the format is extracted into a separate file, and then included with the .. include:: directive both in the Monitoring Agent design document and in this manpage. > + > +\--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 > > Rest 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
