News
====
+
+
+Version 2.1.1
+-------------
+
+During the 2.1.0 long release candidate cycle, a lot of improvements and
+changes have accumulated with were released later as 2.1.1.
+
+Major changes
+~~~~~~~~~~~~~
+
+The node evacuate command (``gnt-node evacuate``) was significantly
+rewritten, and as such the IAllocator protocol was changed - a new
+request type has been added. This unfortunate change during a stable
+series is designed to improve performance of node evacuations; on
+clusters with more than about five nodes and which are well-balanced,
+evacuation should proceed in parallel for all instances of the node
+being evacuated. As such, any existing IAllocator scripts need to be
+updated, otherwise the above command will fail due to the unknown
+request. The provided "dumb" allocator has not been updated; but the
+ganeti-htools package supports the new protocol since version 0.2.4.
+
+Another important change is increased validation of node and instance
+names. This might create problems in special cases, if invalid host
+names are being used.
+
+Also, a new layer of hypervisor parameters has been added, that sits at
+OS level between the cluster defaults and the instance ones. This allows
+customisation of virtualization parameters depending on the installed
+OS. For example instances with OS 'X' may have a different KVM kernel
+(or any other parameter) than the cluster defaults. This is intended to
+help managing a multiple OSes on the same cluster, without manual
+modification of each instance's parameters.
+
+A tool for merging clusters, ``cluster-merge``, has been added in the
+tools sub-directory.
+
+Bug fixes
+~~~~~~~~~
+
+- Improved the int/float conversions that should make the code more
+ robust in face of errors from the node daemons
+- Fixed the remove node code in case of internal configuration errors
+- Fixed the node daemon behaviour in face of inconsistent queue
+ directory (e.g. read-only file-system where we can't open the files
+ read-write, etc.)
+- Fixed the behaviour of gnt-node modify for master candidate demotion;
+ now it either aborts cleanly or, if given the new “auto_promote”
+ parameter, will automatically promote other nodes as needed
+- Fixed compatibility with (unreleased yet) Python 2.6.5 that would
+ completely prevent Ganeti from working
+- Fixed bug for instance export when not all disks were successfully
+ exported
+- Fixed behaviour of node add when the new node is slow in starting up
+ the node daemon
+- Fixed handling of signals in the LUXI client, which should improve
+ behaviour of command-line scripts
+- Added checks for invalid node/instance names in the configuration (now
+ flagged during cluster verify)
+- Fixed watcher behaviour for disk activation errors
+- Fixed two potentially endless loops in http library, which led to the
+ RAPI daemon hanging and consuming 100% CPU in some cases
+- Fixed bug in RAPI daemon related to hashed passwords
+- Fixed bug for unintended qemu-level bridging of multi-NIC KVM
+ instances
+- Enhanced compatibility with non-Debian OSes, but not using absolute
+ path in some commands and allowing customisation of the ssh
+ configuration directory
+- Fixed possible future issue with new Python versions by abiding to the
+ proper use of ``__slots__`` attribute on classes
+- Added checks that should prevent directory traversal attacks
+- Many documentation fixes based on feedback from users
+
+New features
+~~~~~~~~~~~~
+
+- Added an “early_release” more for instance replace disks and node
+ evacuate, where we release locks earlier and thus allow higher
+ parallelism within the cluster
+- Added watcher hooks, intended to allow the watcher to restart other
+ daemons (e.g. from the ganeti-nbma project), but they can be used of
+ course for any other purpose
+- Added a compile-time disable for DRBD barriers, to increase
+ performance if the administrator trusts the power supply or the
+ storage system to not lose writes
+- Added the option of using syslog for logging instead of, or in
+ addition to, Ganeti's own log files
+- Removed boot restriction for paravirtual NICs for KVM, recent versions
+ can indeed boot from a paravirtual NIC
+- Added a generic debug level for many operations; while this is not
+ used widely yet, it allows one to pass the debug value all the way to
+ the OS scripts
+- Enhanced the hooks environment for instance moves (failovers,
+ migrations) where the primary/secondary nodes changed during the
+ operation, by adding {NEW,OLD}_{PRIMARY,SECONDARY} vars
+- Enhanced data validations for many user-supplied values; one important
+ item is the restrictions imposed on instance and node names, which
+ might reject some (invalid) host names
+- Add a configure-time option to disable file-based storage, if it's not
+ needed; this allows greater security separation between the master
+ node and the other nodes from the point of view of the inter-node RPC
+ protocol
+- Added user notification in interactive tools if job is waiting in the
+ job queue or trying to acquire locks
+- Added log messages when a job is waiting for locks
+- Added filtering by node tags in instance operations which admit
+ multiple instances (start, stop, reboot, reinstall)
+- Added a new tool for cluster mergers, ``cluster-merge``
+- Parameters from command line which are of the form ``a=b,c=d`` can now
+ use backslash escapes to pass in values which contain commas,
+ e.g. ``a=b\\c,d=e`` where the 'a' parameter would get the value
+ ``b,c``
+- For KVM, the instance name is the first parameter passed to KVM, so
+ that it's more visible in the process list
+
+
+Version 2.1.0
+-------------
+
+Ganeti 2.1 brings many improvements with it. Major changes:
+
+- Added infrastructure to ease automated disk repairs
+- Added new daemon to export configuration data in a cheaper way than
+ using the remote API
+- Instance NICs can now be routed instead of being associated with a
+ networking bridge
+- Improved job locking logic to reduce impact of jobs acquiring multiple
+ locks waiting for other long-running jobs
+
+In-depth implementation details can be found in the Ganeti 2.1 design
+document.
+
+Details
+~~~~~~~
+
+- Added chroot hypervisor
+- Added more options to xen-hvm hypervisor (``kernel_path`` and
+ ``device_model``)
+- Added more options to xen-pvm hypervisor (``use_bootloader``,
+ ``bootloader_path`` and ``bootloader_args``)
+- Added the ``use_localtime`` option for the xen-hvm and kvm
+ hypervisors, and the default value for this has changed to false (in
+ 2.0 xen-hvm always enabled it)
+- Added luxi call to submit multiple jobs in one go
+- Added cluster initialization option to not modify ``/etc/hosts``
+ file on nodes
+- Added network interface parameters
+- Added dry run mode to some LUs
+- Added RAPI resources:
+
+ - ``/2/instances/[instance_name]/info``
+ - ``/2/instances/[instance_name]/replace-disks``
+ - ``/2/nodes/[node_name]/evacuate``
+ - ``/2/nodes/[node_name]/migrate``
+ - ``/2/nodes/[node_name]/role``
+ - ``/2/nodes/[node_name]/storage``
+ - ``/2/nodes/[node_name]/storage/modify``
+ - ``/2/nodes/[node_name]/storage/repair``
+
+- Added OpCodes to evacuate or migrate all instances on a node
+- Added new command to list storage elements on nodes (``gnt-node
+ list-storage``) and modify them (``gnt-node modify-storage``)
+- Added new ssconf files with master candidate IP address
+ (``ssconf_master_candidates_ips``), node primary IP address
+ (``ssconf_node_primary_ips``) and node secondary IP address
+ (``ssconf_node_secondary_ips``)
+- Added ``ganeti-confd`` and a client library to query the Ganeti
+ configuration via UDP
+- Added ability to run hooks after cluster initialization and before
+ cluster destruction
+- Added automatic mode for disk replace (``gnt-instance replace-disks
+ --auto``)
+- Added ``gnt-instance recreate-disks`` to re-create (empty) disks
+ after catastrophic data-loss
+- Added ``gnt-node repair-storage`` command to repair damaged LVM volume
+ groups
+- Added ``gnt-instance move`` command to move instances
+- Added ``gnt-cluster watcher`` command to control watcher
+- Added ``gnt-node powercycle`` command to powercycle nodes
+- Added new job status field ``lock_status``
+- Added parseable error codes to cluster verification (``gnt-cluster
+ verify --error-codes``) and made output less verbose (use
+ ``--verbose`` to restore previous behaviour)
+- Added UUIDs to the main config entities (cluster, nodes, instances)
+- Added support for OS variants
+- Added support for hashed passwords in the Ganeti remote API users file
+ (``rapi_users``)
+- Added option to specify maximum timeout on instance shutdown
+- Added ``--no-ssh-init`` option to ``gnt-cluster init``
+- Added new helper script to start and stop Ganeti daemons
+ (``daemon-util``), with the intent to reduce the work necessary to
+ adjust Ganeti for non-Debian distributions and to start/stop daemons
+ from one place
+- Added more unittests
+- Fixed critical bug in ganeti-masterd startup
+- Removed the configure-time ``kvm-migration-port`` parameter, this is
+ now customisable at the cluster level for both the KVM and Xen
+ hypervisors using the new ``migration_port`` parameter
+- Pass ``INSTANCE_REINSTALL`` variable to OS installation script when
+ reinstalling an instance
+- Allowed ``@`` in tag names
+- Migrated to Sphinx (http://sphinx.pocoo.org/) for documentation
+- Many documentation updates
+- Distribute hypervisor files on ``gnt-cluster redist-conf``
+- ``gnt-instance reinstall`` can now reinstall multiple instances
+- Updated many command line parameters
+- Introduced new OS API version 15
+- No longer support a default hypervisor
+- Treat virtual LVs as inexistent
+- Improved job locking logic to reduce lock contention
+- Match instance and node names case insensitively
+- Reimplemented bash completion script to be more complete
+- Improved burnin
+
+
+Version 2.0.6
+-------------
+
+- Fix cleaner behaviour on nodes not in a cluster (Debian bug 568105)
+- Fix a string formatting bug
+- Improve safety of the code in some error paths
+- Improve data validation in the master of values returned from nodes
+
+
+Version 2.0.5
+-------------
+
+- Fix security issue due to missing validation of iallocator names; this
+ allows local and remote execution of arbitrary executables
+- Fix failure of gnt-node list during instance removal
+- Ship the RAPI documentation in the archive
+
+
Version 2.0.4
-------------
- Other small bugfixes
.. vim: set textwidth=72 :
+.. Local Variables:
+.. mode: rst
+.. fill-column: 72
+.. End: