X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/920a91bfc87e2cb0cc3086f5e5eaad2d7af4055f..691e95632e9c675f2fc17fed558fb016691c0db7:/NEWS diff --git a/NEWS b/NEWS index 59dda19..6f004db 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,120 @@ 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 ------------- @@ -15,7 +129,7 @@ Ganeti 2.1 brings many improvements with it. Major changes: - Improved job locking logic to reduce impact of jobs acquiring multiple locks waiting for other long-running jobs -Detailed implementation details can be found in the Ganeti 2.1 design +In-depth implementation details can be found in the Ganeti 2.1 design document. Details @@ -26,8 +140,11 @@ Details ``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 time option to not modify ``/etc/hosts`` +- Added cluster initialization option to not modify ``/etc/hosts`` file on nodes - Added network interface parameters - Added dry run mode to some LUs @@ -43,8 +160,8 @@ Details - ``/2/nodes/[node_name]/storage/repair`` - Added OpCodes to evacuate or migrate all instances on a node -- Added new command to list physical volumes on nodes (``gnt-node - physical-volumes``) and to modify them (``gnt-node modify-volume``) +- 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 @@ -55,7 +172,9 @@ Details cluster destruction - Added automatic mode for disk replace (``gnt-instance replace-disks --auto``) -- Added ``gnt-node repair-volume`` command to repair damanged LVM volume +- 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 @@ -64,13 +183,25 @@ Details - 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 all config entities +- 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 -- Converted to Sphinx (http://sphinx.pocoo.org/) for documentation +- 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 @@ -84,6 +215,24 @@ Details - 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 ------------- @@ -518,3 +667,7 @@ Version 1.2b2 - Other small bugfixes .. vim: set textwidth=72 : +.. Local Variables: +.. mode: rst +.. fill-column: 72 +.. End: