X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/01144827a495b56653259a7cb825a48e364b3d42..fdd9ac5be699bd74589d9aee34c1e60bd74044dd:/NEWS diff --git a/NEWS b/NEWS index dd55bcf..23e86ee 100644 --- a/NEWS +++ b/NEWS @@ -1,12 +1,432 @@ News ==== +Version 2.4.0 rc1 +----------------- + +*(unreleased)* + +- Moved ``rapi_users`` file into separate directory, now named + ``…/ganeti/rapi/users`` + + +Version 2.3.0 rc1 +----------------- + +*(Released Fri, 19 Nov 2010)* + +A number of bugfixes and documentation updates: + +- Update ganeti-os-interface documentation +- Fixed a bug related to duplicate MACs or similar items which should be + unique +- Fix breakage in OS state modify +- Reinstall instance: disallow offline secondaries (fixes bug related to + OS changing but reinstall failing) +- plus all the other fixes between 2.2.1 and 2.2.2 + + +Version 2.3.0 rc0 +----------------- + +*(Released Tue, 2 Nov 2010)* + +- Fixed clearing of the default iallocator using ``gnt-cluster modify`` +- Fixed master failover race with watcher +- Fixed a bug in ``gnt-node modify`` which could lead to an inconsistent + configuration +- Accept previously stopped instance for export with instance removal +- Simplify and extend the environment variables for instance OS scripts +- Added new node flags, ``master_capable`` and ``vm_capable`` +- Added optional instance disk wiping prior during allocation. This is a + cluster-wide option and can be set/modified using + ``gnt-cluster {init,modify} --prealloc-wipe-disks``. +- Added IPv6 support, see :doc:`design document ` and + :doc:`install-quick` +- Added a new watcher option (``--ignore-pause``) +- Added option to ignore offline node on instance start/stop + (``--ignore-offline``) +- Allow overriding OS parameters with ``gnt-instance reinstall`` +- Added ability to change node's secondary IP address using ``gnt-node + modify`` +- Implemented privilege separation for all daemons except + ``ganeti-noded``, see ``configure`` options +- Complain if an instance's disk is marked faulty in ``gnt-cluster + verify`` +- Implemented job priorities (see ``ganeti(7)`` manpage) +- Ignore failures while shutting down instances during failover from + offline node +- Exit daemon's bootstrap process only once daemon is ready +- Export more information via ``LUQueryInstances``/remote API +- Improved documentation, QA and unittests +- RAPI daemon now watches ``rapi_users`` all the time and doesn't need a + restart if the file was created or changed +- Added LUXI protocol version sent with each request and response, + allowing detection of server/client mismatches +- Moved the Python scripts among gnt-* and ganeti-* into modules +- Moved all code related to setting up SSH to an external script, + ``setup-ssh`` +- Infrastructure changes for node group support in future versions + + +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 @@ -830,7 +1250,7 @@ Version 1.2b2 post-configuration update hook) - Other small bugfixes -.. vim: set textwidth=72 : +.. vim: set textwidth=72 syntax=rst : .. Local Variables: .. mode: rst .. fill-column: 72