X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/bb3776b4b5f9a8caf80ddb2a8eaf21242c336603..4ae52cc6d45cd9844a55ba37ead5b1170549d7cc:/NEWS diff --git a/NEWS b/NEWS index f43a699..ba1e881 100644 --- a/NEWS +++ b/NEWS @@ -1,17 +1,476 @@ News ==== +Version 2.2.2 +------------- + +*(Released Fri, 19 Nov 2010)* + +A few small bugs fixed, and some improvements to the build system: + +- Fix documentation regarding conversion to drbd +- Fix validation of parameters in cluster modify (``gnt-cluster modify + -B``) +- Fix error handling in node modify with multiple changes +- Allow remote imports without checked names + + +Version 2.2.1 +------------- + +*(Released Tue, 19 Oct 2010)* + +- Disable SSL session ID cache in RPC client + + +Version 2.2.1 rc1 +----------------- + +*(Released Thu, 14 Oct 2010)* + +- Fix interaction between Curl/GnuTLS and the Python's HTTP server + (thanks Apollon Oikonomopoulos!), finally allowing the use of Curl + with GnuTLS +- Fix problems with interaction between Curl and Python's HTTP server, + resulting in increased speed in many RPC calls +- Improve our release script to prevent breakage with older aclocal and + Python 2.6 + + +Version 2.2.1 rc0 +----------------- + +*(Released Thu, 7 Oct 2010)* + +- Fixed issue 125, replace hardcoded “xenvg” in ``gnt-cluster`` with + value retrieved from master +- Added support for blacklisted or hidden OS definitions +- Added simple lock monitor (accessible via (``gnt-debug locks``) +- Added support for -mem-path in KVM hypervisor abstraction layer +- Allow overriding instance parameters in tool for inter-cluster + instance moves (``tools/move-instance``) +- Improved opcode summaries (e.g. in ``gnt-job list``) +- Improve consistency of OS listing by sorting it +- Documentation updates + + +Version 2.2.0.1 +--------------- + +*(Released Fri, 8 Oct 2010)* + +- Rebuild with a newer autotools version, to fix python 2.6 compatibility + + Version 2.2.0 ------------- +*(Released Mon, 4 Oct 2010)* + +- Fixed regression in ``gnt-instance rename`` + + +Version 2.2.0 rc2 +----------------- + +*(Released Wed, 22 Sep 2010)* + +- Fixed OS_VARIANT variable for OS scripts +- Fixed cluster tag operations via RAPI +- Made ``setup-ssh`` exit with non-zero code if an error occurred +- Disabled RAPI CA checks in watcher + + +Version 2.2.0 rc1 +----------------- + +*(Released Mon, 23 Aug 2010)* + +- Support DRBD versions of the format "a.b.c.d" +- Updated manpages +- Re-introduce support for usage from multiple threads in RAPI client +- Instance renames and modify via RAPI +- Work around race condition between processing and archival in job + queue +- Mark opcodes following failed one as failed, too +- Job field ``lock_status`` was removed due to difficulties making it + work with the changed job queue in Ganeti 2.2; a better way to monitor + locks is expected for a later 2.2.x release +- Fixed dry-run behaviour with many commands +- Support ``ssh-agent`` again when adding nodes +- Many additional bugfixes + + +Version 2.2.0 rc0 +----------------- + +*(Released Fri, 30 Jul 2010)* + +Important change: the internal RPC mechanism between Ganeti nodes has +changed from using a home-grown http library (based on the Python base +libraries) to use the PycURL library. This requires that PycURL is +installed on nodes. Please note that on Debian/Ubuntu, PycURL is linked +against GnuTLS by default. cURL's support for GnuTLS had known issues +before cURL 7.21.0 and we recommend using the latest cURL release or +linking against OpenSSL. Most other distributions already link PycURL +and cURL against OpenSSL. The command:: + + python -c 'import pycurl; print pycurl.version' + +can be used to determine the libraries PycURL and cURL are linked +against. + +Other significant changes: + +- Rewrote much of the internals of the job queue, in order to achieve + better parallelism; this decouples job query operations from the job + processing, and it should allow much nicer behaviour of the master + daemon under load, and it also has uncovered some long-standing bugs + related to the job serialisation (now fixed) +- Added a default iallocator setting to the cluster parameters, + eliminating the need to always pass nodes or an iallocator for + operations that require selection of new node(s) +- Added experimental support for the LXC virtualization method +- Added support for OS parameters, which allows the installation of + instances to pass parameter to OS scripts in order to customise the + instance +- Added a hypervisor parameter controlling the migration type (live or + non-live), since hypervisors have various levels of reliability; this + has renamed the 'live' parameter to 'mode' +- Added a cluster parameter ``reserved_lvs`` that denotes reserved + logical volumes, meaning that cluster verify will ignore them and not + flag their presence as errors +- The watcher will now reset the error count for failed instances after + 8 hours, thus allowing self-healing if the problem that caused the + instances to be down/fail to start has cleared in the meantime +- Added a cluster parameter ``drbd_usermode_helper`` that makes Ganeti + check for, and warn, if the drbd module parameter ``usermode_helper`` + is not consistent with the cluster-wide setting; this is needed to + make diagnose easier of failed drbd creations +- Started adding base IPv6 support, but this is not yet + enabled/available for use +- Rename operations (cluster, instance) will now return the new name, + which is especially useful if a short name was passed in +- Added support for instance migration in RAPI +- Added a tool to pre-configure nodes for the SSH setup, before joining + them to the cluster; this will allow in the future a simplified model + for node joining (but not yet fully enabled in 2.2); this needs the + paramiko python library +- Fixed handling of name-resolving errors +- Fixed consistency of job results on the error path +- Fixed master-failover race condition when executed multiple times in + sequence +- Fixed many bugs related to the job queue (mostly introduced during the + 2.2 development cycle, so not all are impacting 2.1) +- Fixed instance migration with missing disk symlinks +- Fixed handling of unknown jobs in ``gnt-job archive`` +- And many other small fixes/improvements + +Internal changes: + +- Enhanced both the unittest and the QA coverage +- Switched the opcode validation to a generic model, and extended the + validation to all opcode parameters +- Changed more parts of the code that write shell scripts to use the + same class for this +- Switched the master daemon to use the asyncore library for the Luxi + server endpoint + + +Version 2.2.0 beta 0 +-------------------- + +*(Released Thu, 17 Jun 2010)* + +- Added tool (``move-instance``) and infrastructure to move instances + between separate clusters (see :doc:`separate documentation + ` and :doc:`design document `) +- Added per-request RPC timeout - RAPI now requires a Content-Type header for requests with a body (e.g. ``PUT`` or ``POST``) which must be set to ``application/json`` (see - RFC2616 (HTTP/1.1), section 7.2.1) + :rfc:`2616` (HTTP/1.1), section 7.2.1) +- ``ganeti-watcher`` attempts to restart ``ganeti-rapi`` if RAPI is not + reachable +- Implemented initial support for running Ganeti daemons as separate + users, see configure-time flags ``--with-user-prefix`` and + ``--with-group-prefix`` (only ``ganeti-rapi`` is supported at this + time) +- Instances can be removed after export (``gnt-backup export + --remove-instance``) +- Self-signed certificates generated by Ganeti now use a 2048 bit RSA + key (instead of 1024 bit) +- Added new cluster configuration file for cluster domain secret +- Import/export now use SSL instead of SSH +- Added support for showing estimated time when exporting an instance, + see the ``ganeti-os-interface(7)`` manpage and look for + ``EXP_SIZE_FD`` + + +Version 2.1.8 +------------- + +*(Released Tue, 16 Nov 2010)* + +Some more bugfixes. Unless critical bugs occur, this will be the last +2.1 release: + +- Fix case of MAC special-values +- Fix mac checker regex +- backend: Fix typo causing “out of range” error +- Add missing --units in gnt-instance list man page + + +Version 2.1.7 +------------- + +*(Released Tue, 24 Aug 2010)* + +Bugfixes only: + - Don't ignore secondary node silently on non-mirrored disk templates + (issue 113) + - Fix --master-netdev arg name in gnt-cluster(8) (issue 114) + - Fix usb_mouse parameter breaking with vnc_console (issue 109) + - Properly document the usb_mouse parameter + - Fix path in ganeti-rapi(8) (issue 116) + - Adjust error message when the ganeti user's .ssh directory is + missing + - Add same-node-check when changing the disk template to drbd + + +Version 2.1.6 +------------- + +*(Released Fri, 16 Jul 2010)* + +Bugfixes only: + - Add an option to only select some reboot types during qa/burnin. + (on some hypervisors consequent reboots are not supported) + - Fix infrequent race condition in master failover. Sometimes the old + master ip address would be still detected as up for a short time + after it was removed, causing failover to fail. + - Decrease mlockall warnings when the ctypes module is missing. On + Python 2.4 we support running even if no ctypes module is installed, + but we were too verbose about this issue. + - Fix building on old distributions, on which man doesn't have a + --warnings option. + - Fix RAPI not to ignore the MAC address on instance creation + - Implement the old instance creation format in the RAPI client. + + +Version 2.1.5 +------------- + +*(Released Thu, 01 Jul 2010)* + +A small bugfix release: + - Fix disk adoption: broken by strict --disk option checking in 2.1.4 + - Fix batch-create: broken in the whole 2.1 series due to a lookup on + a non-existing option + - Fix instance create: the --force-variant option was ignored + - Improve pylint 0.21 compatibility and warnings with Python 2.6 + - Fix modify node storage with non-FQDN arguments + - Fix RAPI client to authenticate under Python 2.6 when used + for more than 5 requests needing authentication + - Fix gnt-instance modify -t (storage) giving a wrong error message + when converting a non-shutdown drbd instance to plain + + +Version 2.1.4 +------------- + +*(Released Fri, 18 Jun 2010)* + +A small bugfix release: + + - Fix live migration of KVM instances started with older Ganeti + versions which had fewer hypervisor parameters + - Fix gnt-instance grow-disk on down instances + - Fix an error-reporting bug during instance migration + - Better checking of the ``--net`` and ``--disk`` values, to avoid + silently ignoring broken ones + - Fix an RPC error reporting bug affecting, for example, RAPI client + users + - Fix bug triggered by different API version os-es on different nodes + - Fix a bug in instance startup with custom hvparams: OS level + parameters would fail to be applied. + - Fix the RAPI client under Python 2.6 (but more work is needed to + make it work completely well with OpenSSL) + - Fix handling of errors when resolving names from DNS + + +Version 2.1.3 +------------- + +*(Released Thu, 3 Jun 2010)* + +A medium sized development cycle. Some new features, and some +fixes/small improvements/cleanups. + +Significant features +~~~~~~~~~~~~~~~~~~~~ + +The node deamon now tries to mlock itself into memory, unless the +``--no-mlock`` flag is passed. It also doesn't fail if it can't write +its logs, and falls back to console logging. This allows emergency +features such as ``gnt-node powercycle`` to work even in the event of a +broken node disk (tested offlining the disk hosting the node's +filesystem and dropping its memory caches; don't try this at home) + +KVM: add vhost-net acceleration support. It can be tested with a new +enough version of the kernel and of qemu-kvm. + +KVM: Add instance chrooting feature. If you use privilege dropping for +your VMs you can also now force them to chroot to an empty directory, +before starting the emulated guest. + +KVM: Add maximum migration bandwith and maximum downtime tweaking +support (requires a new-enough version of qemu-kvm). + +Cluster verify will now warn if the master node doesn't have the master +ip configured on it. + +Add a new (incompatible) instance creation request format to RAPI which +supports all parameters (previously only a subset was supported, and it +wasn't possible to extend the old format to accomodate all the new +features. The old format is still supported, and a client can check for +this feature, before using it, by checking for its presence in the +``features`` RAPI resource. + +Now with ancient latin support. Try it passing the ``--roman`` option to +``gnt-instance info``, ``gnt-cluster info`` or ``gnt-node list`` +(requires the python-roman module to be installed, in order to work). + +Other changes +~~~~~~~~~~~~~ + +As usual many internal code refactorings, documentation updates, and +such. Among others: + + - Lots of improvements and cleanups to the experimental Remote API + (RAPI) client library. + - A new unit test suite for the core daemon libraries. + - A fix to creating missing directories makes sure the umask is not + applied anymore. This enforces the same directory permissions + everywhere. + - Better handling terminating daemons with ctrl+c (used when running + them in debugging mode). + - Fix a race condition in live migrating a KVM instance, when stat() + on the old proc status file returned EINVAL, which is an unexpected + value. + - Fixed manpage checking with newer man and utf-8 charachters. But now + you need the en_US.UTF-8 locale enabled to build Ganeti from git. + + +Version 2.1.2.1 +--------------- + +*(Released Fri, 7 May 2010)* + +Fix a bug which prevented untagged KVM instances from starting. + + +Version 2.1.2 +------------- + +*(Released Fri, 7 May 2010)* + +Another release with a long development cycle, during which many +different features were added. + +Significant features +~~~~~~~~~~~~~~~~~~~~ + +The KVM hypervisor now can run the individual instances as non-root, to +reduce the impact of a VM being hijacked due to bugs in the +hypervisor. It is possible to run all instances as a single (non-root) +user, to manually specify a user for each instance, or to dynamically +allocate a user out of a cluster-wide pool to each instance, with the +guarantee that no two instances will run under the same user ID on any +given node. + +An experimental RAPI client library, that can be used standalone +(without the other Ganeti libraries), is provided in the source tree as +``lib/rapi/client.py``. Note this client might change its interface in +the future, as we iterate on its capabilities. + +A new command, ``gnt-cluster renew-crypto`` has been added to easily +replace the cluster's certificates and crypto keys. This might help in +case they have been compromised, or have simply expired. + +A new disk option for instance creation has been added that allows one +to "adopt" currently existing logical volumes, with data +preservation. This should allow easier migration to Ganeti from +unmanaged (or managed via other software) instances. + +Another disk improvement is the possibility to convert between redundant +(DRBD) and plain (LVM) disk configuration for an instance. This should +allow better scalability (starting with one node and growing the +cluster, or shrinking a two-node cluster to one node). + +A new feature that could help with automated node failovers has been +implemented: if a node sees itself as offline (by querying the master +candidates), it will try to shutdown (hard) all instances and any active +DRBD devices. This reduces the risk of duplicate instances if an +external script automatically failovers the instances on such nodes. To +enable this, the cluster parameter ``maintain_node_health`` should be +enabled; in the future this option (per the name) will enable other +automatic maintenance features. + +Instance export/import now will reuse the original instance +specifications for all parameters; that means exporting an instance, +deleting it and the importing it back should give an almost identical +instance. Note that the default import behaviour has changed from +before, where it created only one NIC; now it recreates the original +number of NICs. + +Cluster verify has added a few new checks: SSL certificates validity, +/etc/hosts consistency across the cluster, etc. + +Other changes +~~~~~~~~~~~~~ + +As usual, many internal changes were done, documentation fixes, +etc. Among others: + +- Fixed cluster initialization with disabled cluster storage (regression + introduced in 2.1.1) +- File-based storage supports growing the disks +- Fixed behaviour of node role changes +- Fixed cluster verify for some corner cases, plus a general rewrite of + cluster verify to allow future extension with more checks +- Fixed log spamming by watcher and node daemon (regression introduced + in 2.1.1) +- Fixed possible validation issues when changing the list of enabled + hypervisors +- Fixed cleanup of /etc/hosts during node removal +- Fixed RAPI response for invalid methods +- Fixed bug with hashed passwords in ``ganeti-rapi`` daemon +- Multiple small improvements to the KVM hypervisor (VNC usage, booting + from ide disks, etc.) +- Allow OS changes without re-installation (to record a changed OS + outside of Ganeti, or to allow OS renames) +- Allow instance creation without OS installation (useful for example if + the OS will be installed manually, or restored from a backup not in + Ganeti format) +- Implemented option to make cluster ``copyfile`` use the replication + network +- Added list of enabled hypervisors to ssconf (possibly useful for + external scripts) +- Added a new tool (``tools/cfgupgrade12``) that allows upgrading from + 1.2 clusters +- A partial form of node re-IP is possible via node readd, which now + allows changed node primary IP +- Command line utilities now show an informational message if the job is + waiting for a lock +- The logs of the master daemon now show the PID/UID/GID of the + connected client Version 2.1.1 ------------- +*(Released Fri, 12 Mar 2010)* + 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. @@ -126,6 +585,8 @@ New features Version 2.1.0 ------------- +*(Released Tue, 2 Mar 2010)* + Ganeti 2.1 brings many improvements with it. Major changes: - Added infrastructure to ease automated disk repairs @@ -225,6 +686,8 @@ Details Version 2.0.6 ------------- +*(Released Thu, 4 Feb 2010)* + - 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 @@ -234,6 +697,8 @@ Version 2.0.6 Version 2.0.5 ------------- +*(Released Thu, 17 Dec 2009)* + - 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 @@ -243,6 +708,8 @@ Version 2.0.5 Version 2.0.4 ------------- +*(Released Wed, 30 Sep 2009)* + - Fixed many wrong messages - Fixed a few bugs related to the locking library - Fixed MAC checking at instance creation time @@ -286,6 +753,8 @@ Version 2.0.4 Version 2.0.3 ------------- +*(Released Fri, 7 Aug 2009)* + - Added ``--ignore-size`` to the ``gnt-instance activate-disks`` command to allow using the pre-2.0.2 behaviour in activation, if any existing instances have mismatched disk sizes in the configuration @@ -302,6 +771,8 @@ Version 2.0.3 Version 2.0.2 ------------- +*(Released Fri, 17 Jul 2009)* + - Added experimental support for stripped logical volumes; this should enhance performance but comes with a higher complexity in the block device handling; stripping is only enabled when passing @@ -334,6 +805,8 @@ Version 2.0.2 Version 2.0.1 ------------- +*(Released Tue, 16 Jun 2009)* + - added ``-H``/``-B`` startup parameters to ``gnt-instance``, which will allow re-adding the start in single-user option (regression from 1.2) - the watcher writes the instance status to a file, to allow monitoring @@ -364,12 +837,16 @@ Version 2.0.1 Version 2.0.0 final ------------------- +*(Released Wed, 27 May 2009)* + - no changes from rc5 Version 2.0 release candidate 5 ------------------------------- +*(Released Wed, 20 May 2009)* + - fix a couple of bugs (validation, argument checks) - fix ``gnt-cluster getmaster`` on non-master nodes (regression) - some small improvements to RAPI and IAllocator @@ -379,6 +856,8 @@ Version 2.0 release candidate 5 Version 2.0 release candidate 4 ------------------------------- +*(Released Mon, 27 Apr 2009)* + - change the OS list to not require locks; this helps with big clusters - fix ``gnt-cluster verify`` and ``gnt-cluster verify-disks`` when the volume group is broken @@ -392,6 +871,8 @@ Version 2.0 release candidate 4 Version 2.0 release candidate 3 ------------------------------- +*(Released Wed, 8 Apr 2009)* + - Change the internal locking model of some ``gnt-node`` commands, in order to reduce contention (and blocking of master daemon) when batching many creation/reinstall jobs @@ -404,6 +885,8 @@ Version 2.0 release candidate 3 Version 2.0 release candidate 2 ------------------------------- +*(Released Fri, 27 Mar 2009)* + - Now the cfgupgrade scripts works and can upgrade 1.2.7 clusters to 2.0 - Fix watcher startup sequence, improves the behaviour of busy clusters - Some other fixes in ``gnt-cluster verify``, ``gnt-instance @@ -415,6 +898,8 @@ Version 2.0 release candidate 2 Version 2.0 release candidate 1 ------------------------------- +*(Released Mon, 2 Mar 2009)* + - More documentation updates, now all docs should be more-or-less up-to-date - A couple of small fixes (mixed hypervisor clusters, offline nodes, @@ -427,6 +912,8 @@ Version 2.0 release candidate 1 Version 2.0 beta 2 ------------------ +*(Released Thu, 19 Feb 2009)* + - Xen PVM and KVM have switched the default value for the instance root disk to the first partition on the first drive, instead of the whole drive; this means that the OS installation scripts must be changed @@ -443,6 +930,8 @@ Version 2.0 beta 2 Version 2.0 beta 1 ------------------ +*(Released Mon, 26 Jan 2009)* + - Version 2 is a general rewrite of the code and therefore the differences are too many to list, see the design document for 2.0 in the ``doc/`` subdirectory for more details @@ -473,6 +962,8 @@ Version 2.0 beta 1 Version 1.2.7 ------------- +*(Released Tue, 13 Jan 2009)* + - Change the default reboot type in ``gnt-instance reboot`` to "hard" - Reuse the old instance mac address by default on instance import, if the instance name is the same. @@ -498,6 +989,8 @@ Version 1.2.7 Version 1.2.6 ------------- +*(Released Wed, 24 Sep 2008)* + - new ``--hvm-nic-type`` and ``--hvm-disk-type`` flags to control the type of disk exported to fully virtualized instances. - provide access to the serial console of HVM instances @@ -521,6 +1014,8 @@ Version 1.2.6 Version 1.2.5 ------------- +*(Released Tue, 22 Jul 2008)* + - note: the allowed size and number of tags per object were reduced - fix a bug in ``gnt-cluster verify`` with inconsistent volume groups - fixed twisted 8.x compatibility @@ -538,6 +1033,8 @@ Version 1.2.5 Version 1.2.4 ------------- +*(Released Fri, 13 Jun 2008)* + - Experimental readonly, REST-based remote API implementation; automatically started on master node, TCP port 5080, if enabled by ``--enable-rapi`` parameter to configure script. @@ -581,6 +1078,8 @@ Version 1.2.4 Version 1.2.3 ------------- +*(Released Mon, 18 Feb 2008)* + - more tweaks to the disk activation code (especially helpful for DRBD) - change the default ``gnt-instance list`` output format, now there is one combined status field (see the manpage for the exact values this @@ -595,6 +1094,8 @@ Version 1.2.3 Version 1.2.2 ------------- +*(Released Wed, 30 Jan 2008)* + - fix ``gnt-instance modify`` breakage introduced in 1.2.1 with the HVM support (issue 23) - add command aliases infrastructure and a few aliases @@ -612,6 +1113,8 @@ Version 1.2.2 Version 1.2.1 ------------- +*(Released Wed, 16 Jan 2008)* + - experimental HVM support, read the install document, section "Initializing the cluster" - allow for the PVM hypervisor per-instance kernel and initrd paths @@ -630,6 +1133,8 @@ Version 1.2.1 Version 1.2.0 ------------- +*(Released Tue, 4 Dec 2007)* + - Log the ``xm create`` output to the node daemon log on failure (to help diagnosing the error) - In debug mode, log all external commands output if failed to the logs @@ -639,6 +1144,8 @@ Version 1.2.0 Version 1.2b3 ------------- +*(Released Wed, 28 Nov 2007)* + - Another round of updates to the DRBD 8 code to deal with more failures in the replace secondary node operation - Some more logging of failures in disk operations (lvm, drbd) @@ -649,6 +1156,8 @@ Version 1.2b3 Version 1.2b2 ------------- +*(Released Tue, 13 Nov 2007)* + - Change configuration file format from Python's Pickle to JSON. Upgrading is possible using the cfgupgrade utility. - Add support for DRBD 8.0 (new disk template ``drbd``) which allows for