Ganeti-htools release notes
===========================

Version 0.2.2 (Tue, 29 Dec 2009)
--------------------------------

Small release, 0.2.1 was broken and thus this was released earlier:

- Release 0.2.1 broke the LUXI backend due to a typo, fixed
- Added a live-test script that should catch errors like the above one
  in the future (needs a working, non-empty cluster)
- Changed RAPI and LUXI backends to treat drained nodes as offline,
  similar to the IAllocator backend change in 0.2.0 (which was wrongly
  marked as affecting all backends)
- Changed the metrics for offline instances and N1 score from percent to
  count, in order to increase the priority of evacuations
- Added a new metric (offline primary instances) which should fix the
  evacuation of a offline node in a 2-node cluster

Version 0.2.1 (Wed,  2 Dec 2009)
--------------------------------

- Added instance exclusion defined via instance tags
- Fixed the output of hspace to be again parseable from the shell

Version 0.2.0 (Tue, 10 Nov 2009)
--------------------------------

A significant release, with a few new major features:

- Added direct execution of the hbal solution when using the Luxi
  backend; the steps for each instance moves are submitted as a single
  jobs, and the different jobs are submitted as groups in order to
  parallelise the execution of moves
- Added support for balancing based on dynamic utilisation data for
  instances, fed in via a text file; by default, all instances are
  considered equal and this change also improves the equalisation of
  secondary instances per node
- Added support for tiered capacity calculation in hspace, where we
  start from a maximum instance spec and decrease the spec when we run
  out of resources; this should give a better measure of available
  capacity on 'fragmented' clusters; this is done separately from the
  current fixed-mode computation

Also there have been many minor improvements:

- Added option for showing instances (“--print-instances”), similar to
  the print nodes option
- Added support for customising the node list via an argument to the
  print nodes option in the form of a comma-separated list of field
  names; currently the field names are not documented, expecting further
  changes in a next release
- Enhanced the error reporting in the Luxi and Rapi backends
- Changed the handling of drained nodes, now being treated the same as
  offline nodes, for Ganeti 2.0.4+ compatibility
- A number of internal changes, simplifying code and merging some
  disparate functions
- Simplify the build system in relation to creation of archives

Version 0.1.8 (Tue, 29 Sep 2009)
--------------------------------

- Brown-paper-bag release fixing haddock issues

Version 0.1.7 (Mon, 28 Sep 2009)
--------------------------------

- Fixed a bug in the Luxi backend for big responses
- Fixed test suite exit code in presence of test failures
- Changed the migrate operation to run instead failover for instances
  which were marked as not running in the input data (this could have
  been changed since then, but it's better than today's always migrate)
- Added support for 'cheap' moves only (only migrate/failover) in
  balancing
- Added support for building without curl (thus no RAPI backend)

Version 0.1.6 (Wed, 19 Aug 2009)
--------------------------------

- Added support for Luxi (the native Ganeti protocol)
- Added support for simulated clusters (for hspace only)
- Added timeouts for the RAPI backend
- Fixed a few inconsistencies in the command line handling
- Fixed handling of errors while loading data
- The 'network' is a new dependency due to the Luxi addition

Version 0.1.5 (Thu, 09 Jul 2009)
--------------------------------

- Removed obsolete hn1 program; this allowed removal of a lot of
  supporting code
- Lots of changes in hspace: the output now is a shell fragment in order
  for script to source it or parse it easier; added failure reasons;
  optimised to use less memory for large clusters
- Optimized the scoring algorithm (used by all tools) so that now
  computations should be faster

Version 0.1.4 (Tue, 16 Jun 2009)
--------------------------------

- Added CPU count/ratio of virtual-to-physical CPUs to the cluster
  scoring methods; this means that now the balancer, the iallocator
  plugin and so on will try to keep the VCPU-to-PCPU ratio equal across
  the cluster
- Fixed some hscan bugs
- Fixed the way iallocator reads the total disk size (was broken and it
  was always falling back to summing the disk sizes)
- Internals: fixed most compile-time warnings

Version 0.1.3 (Fri, 05 Jun 2009)
--------------------------------

- Fix a bug in the ReplacePrimary instance moves, affecting most of the
  tools

Version 0.1.2 (Tue, 02 Jun 2009)
--------------------------------

- Add a new program, “hspace”, which computes the free space on a
  cluster (based on a given instance spec)
- Improvements in API docs and partially in the user docs
- Started adding unittests

Version 0.1.1 (Tue, 26 May 2009)
--------------------------------

- Add a new program, “hail”, which is an iallocator plugin and can
  allocate/relocate instances
- Experimental support for non-mirrored instances (hail supports them,
  hbal should no longer abort when it finds such instances and simply
  ignore them)
- The RAPI port and/or scheme can be overriden now, and even “file://”
  schemes can be used if the message body has been saved under the
  appropriate name
- Lots of code reorganization, esp. rewritten loading pipeline
- Better data checking and better error messages in case validation
  fails; tools now consider nodes with error in input data (‘?’ returned
  by ganeti) as offline
- Small enhancement to the makefile for simpler packaging

Version 0.1.0 (Tue, 19 May 2009)
--------------------------------

- Drop compatibility with Ganeti 1.2
- Add a new minimum score option (with a very low default), should help
  with very good clusters (but is still not optimal)
- Add a --quiet option to hbal
- Add support for reading offline nodes directly from the cluster

Version 0.0.8 (Tue, 21 Apr 2009)
--------------------------------

- hbal: prevent mismatches in wrong node names being passed to -O, by
  aborting in this case
- add the ability to write the commands (-C) to a script via (-C<file>),
  so that it can be later executed directly; this has also changed the
  commands to include the ncessary -f flags to skip confirmations
- add checks for extra argument in hbal and hn1, so that unintended
  errors are catched
- raise the accepted “missing” memory limit to 512MB, to cover usual Xen
  reservations

Version 0.0.7 (Mon, 23 Mar 2009)
--------------------------------

- added support for offline nodes, which are not used as targets for
  instance relocation and if they hold instances the hbal algorithm will
  attempt to relocate these away
- added support for offline instances, which now will no longer skew the
  free memory estimation of nodes; the algorithm will no longer create
  conditions for N+1 failures when such instances are later started
- implemented a complete model of node resources, in order to prevent an
  unintended re-occurrence of cases like the offline instance were we
  miscalculate some node resource; this gives warning now in case the
  node reported free disk or free memory deviates by more than a set
  amount from the expected value
- a new tool *hscan* that can generate the input text-file for the other
  tools by collection via RAPI
- some small changes to the build system to make it more friendly; also
  included the generated documentation in the source archive

Version 0.0.6 (Mon, 16 Mar 2009)
--------------------------------

- re-factored the hbal algorithm to make it stable in the sense that it
  gives the same solution when restarted from the middle; barring
  rounding of disk/memory and incomplete reporting from Ganeti (for
  1.2), it should be now feasible to rely on its output without
  generating moves ad infinitum
- the hbal algorithm now uses two more variables: the node N+1 failures
  and the amount of reserved memory; the first of which tries to ‘fix’
  the N+1 status, the latter tries to distribute secondaries more
  equally
- the hbal algorithm now uses two more moves at each step:
  replace+failover and failover+replace (besides the original failover,
  replace, and failover+replace+failover)
- slightly changed the build system to embed GIT version/tags into the
  binaries so that we know for a binary from which tree it was done,
  either via ‘--version’ or via “strings hbal|grep version”
- changed the solution list and in general the hbal output to be more
  clear by default, and changed “gnt-instance failover” to “gnt-instance
  migrate”
- added man pages for the two binaries

Version 0.0.5 (Mon, 09 Mar 2009)
--------------------------------

- a few small improvements for hbal (possibly undone by later changes),
  hbal is now quite faster
- fix documentation building
- allow hbal to work on non N+1 compliant clusters, but without
  guarantees that the end cluster will be compliant; in any case, this
  should give a smaller number of nodes that are not compliant if the
  cluster state permits it
- strip common domain suffix from nodes and instances, so that output is
  shorter and hopefully clearer

Version 0.0.4 (Sun, 15 Feb 2009)
--------------------------------

- better balancing algorithm in hbal
- implemented an RAPI collector, now the cluster data can be gathered
  automatically via RAPI and doesn't need manual export of node and
  instance list

Version 0.0.3 (Wed, 28 Jan 2009)
--------------------------------

- initial release of the hbal, a cluster rebalancing tool
- input data format changed due to hbal requirements

Version 0.0.2 (Tue, 06 Jan 2009)
--------------------------------

- fix handling of some common cases (cluster N+1 compliant from the
  start, too big depth given, failure to compute solution)
- add option to print the needed command list for reaching the proposed
  solution

Version 0.0.1 (Tue, 06 Jan 2009)
--------------------------------

- initial release of hn1 tool

.. vim: set textwidth=72 :
.. Local Variables:
.. mode: rst
.. fill-column: 72
.. End:
