X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/46d4deb9a68a039c8776fd1a3dede74c23d63bb0..bced76fd36f3ed31f906c679c29511f073afc3af:/NEWS diff --git a/NEWS b/NEWS index 5c773ae..a2cdec7 100644 --- a/NEWS +++ b/NEWS @@ -2,10 +2,551 @@ News ==== -Version 2.7.0 rc2 +Version 2.10.0 rc1 +------------------ + +*(Released Tue, 17 Dec 2013)* + +Incompatible/important changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Adding disks with 'gnt-instance modify' now waits for the disks to sync per + default. Specify --no-wait-for-sync to override this behavior. +- The Ganeti python code now adheres to a private-module layout. In particular, + the module 'ganeti' is no longer in the python search path. +- On instance allocation, the iallocator now considers non-LVM storage + properly. In particular, actual file storage space information is used + when allocating space for a file/sharedfile instance. +- When disabling disk templates cluster-wide, the cluster now first + checks whether there are instances still using those templates. +- 'gnt-node list-storage' now also reports storage information about + file-based storage types. +- In case of non drbd instances, export \*_SECONDARY environment variables + as empty strings (and not "None") during 'instance-migrate' related hooks. + +New features +~~~~~~~~~~~~ + +- KVM hypervisors can now access RBD storage directly without having to + go through a block device. +- A new command 'gnt-cluster upgrade' was added that automates the upgrade + procedure between two Ganeti versions that are both 2.10 or higher. +- The move-instance command can now change disk templates when moving + instances, and does not require any node placement options to be + specified if the destination cluster has a default iallocator. +- Users can now change the soundhw and cpuid settings for XEN hypervisors. +- Hail and hbal now have the (optional) capability of accessing average CPU + load information through the monitoring deamon, and to use it to dynamically + adapt the allocation of instances. +- Hotplug support. Introduce new option '--hotplug' to ``gnt-instance modify`` + so that disk and NIC modifications take effect without the need of actual + reboot. There are a couple of constrains currently for this feature: + + - only KVM hypervisor (versions >= 1.0) supports it, + - one can not (yet) hotplug a disk using userspace access mode for RBD + - in case of a downgrade instances should suffer a reboot in order to + be migratable (due to core change of runtime files) + +Misc changes +~~~~~~~~~~~~ + +- A new test framework for logical units was introduced and the test + coverage for logical units was improved significantly. +- Opcodes are entirely generated from Haskell using the tool 'hs2py' and + the module 'src/Ganeti/OpCodes.hs'. +- Constants are also generated from Haskell using the tool + 'hs2py-constants' and the module 'src/Ganeti/Constants.hs', with the + exception of socket related constants, which require changing the + cluster configuration file, and HVS related constants, because they + are part of a port of instance queries to Haskell. As a result, these + changes will be part of the next release of Ganeti. + +New dependencies +~~~~~~~~~~~~~~~~ + +The following new dependencies have been added/updated. + +Python + +- The version requirements for ``python-mock`` have increased to at least + version 1.0.1. It is still used for testing only. + +Since 2.10.0 beta1 +~~~~~~~~~~~~~~~~~~ + +- All known issues in 2.10.0 beta1 have been resolved (see changes from + the 2.8 branch). +- Improve handling of KVM runtime files from earlier Ganeti versions +- Documentation fixes + +Inherited from the 2.9 branch: + +- use custom KVM path if set for version checking +- SingleNotifyPipeCondition: don't share pollers + +Inherited from the 2.8 branch: + +- Fixed Luxi daemon socket permissions after master-failover +- Improve IP version detection code directly checking for colons rather than + passing the family from the cluster object +- Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks + opportunistically anymore (Issue 622) +- Allow link local IPv6 gateways (Issue 624) +- Fix error printing (Issue 616) +- Fix a bug in InstanceSetParams concerning names: in case no name is passed in + disk modifications, keep the old one. If name=none then set disk name to + None. +- Update build_chroot script to work with the latest hackage packages +- Add a packet number limit to "fping" in master-ip-setup (Issue 630) +- Fix evacuation out of drained node (Issue 615) +- Add default file_driver if missing (Issue 571) +- Fix job error message after unclean master shutdown (Issue 618) +- Lock group(s) when creating instances (Issue 621) +- SetDiskID() before accepting an instance (Issue 633) +- Allow the ext template disks to receive arbitrary parameters, both at creation + time and while being modified +- Xen handle domain shutdown (future proofing cherry-pick) +- Refactor reading live data in htools (future proofing cherry-pick) + + +Version 2.10.0 beta1 +-------------------- + +*(Released Wed, 27 Nov 2013)* + +This was the first beta release of the 2.10 series. All important changes +are listed in the latest 2.10 entry. + +Known issues +~~~~~~~~~~~~ + +The following issues are known to be present in the beta and will be fixed +before rc1. + +- Issue 477: Wrong permissions for confd LUXI socket +- Issue 621: Instance related opcodes do not aquire network/group locks +- Issue 622: Assertion Error: Node locks differ from node resource locks +- Issue 623: IPv6 Masterd <-> Luxid communication error + + +Version 2.9.2 +------------- + +*(Released Fri, 13 Dec 2013)* + +- use custom KVM path if set for version checking +- SingleNotifyPipeCondition: don't share pollers + +Inherited from the 2.8 branch: + +- Fixed Luxi daemon socket permissions after master-failover +- Improve IP version detection code directly checking for colons rather than + passing the family from the cluster object +- Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks + opportunistically anymore (Issue 622) +- Allow link local IPv6 gateways (Issue 624) +- Fix error printing (Issue 616) +- Fix a bug in InstanceSetParams concerning names: in case no name is passed in + disk modifications, keep the old one. If name=none then set disk name to + None. +- Update build_chroot script to work with the latest hackage packages +- Add a packet number limit to "fping" in master-ip-setup (Issue 630) +- Fix evacuation out of drained node (Issue 615) +- Add default file_driver if missing (Issue 571) +- Fix job error message after unclean master shutdown (Issue 618) +- Lock group(s) when creating instances (Issue 621) +- SetDiskID() before accepting an instance (Issue 633) +- Allow the ext template disks to receive arbitrary parameters, both at creation + time and while being modified +- Xen handle domain shutdown (future proofing cherry-pick) +- Refactor reading live data in htools (future proofing cherry-pick) + + +Version 2.9.1 +------------- + +*(Released Wed, 13 Nov 2013)* + +- fix bug, that kept nodes offline when readding +- when verifying DRBD versions, ignore unavailable nodes +- fix bug that made the console unavailable on kvm in split-user + setup (issue 608) +- DRBD: ensure peers are UpToDate for dual-primary (inherited 2.8.2) + + +Version 2.9.0 +------------- + +*(Released Tue, 5 Nov 2013)* + +Incompatible/important changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- hroller now also plans for capacity to move non-redundant instances off + any node to be rebooted; the old behavior of completely ignoring any + non-redundant instances can be restored by adding the --ignore-non-redundant + option. +- The cluster option '--no-lvm-storage' was removed in favor of the new option + '--enabled-disk-templates'. +- On instance creation, disk templates no longer need to be specified + with '-t'. The default disk template will be taken from the list of + enabled disk templates. +- The monitoring daemon is now running as root, in order to be able to collect + information only available to root (such as the state of Xen instances). +- The ConfD client is now IPv6 compatible. +- File and shared file storage is no longer dis/enabled at configure time, + but using the option '--enabled-disk-templates' at cluster initialization and + modification. +- The default directories for file and shared file storage are not anymore + specified at configure time, but taken from the cluster's configuration. + They can be set at cluster initialization and modification with + '--file-storage-dir' and '--shared-file-storage-dir'. +- Cluster verification now includes stricter checks regarding the + default file and shared file storage directories. It now checks that + the directories are explicitely allowed in the 'file-storage-paths' file and + that the directories exist on all nodes. +- The list of allowed disk templates in the instance policy and the list + of cluster-wide enabled disk templates is now checked for consistency + on cluster or group modification. On cluster initialization, the ipolicy + disk templates are ensured to be a subset of the cluster-wide enabled + disk templates. + +New features +~~~~~~~~~~~~ + +- DRBD 8.4 support. Depending on the installed DRBD version, Ganeti now uses + the correct command syntax. It is possible to use different DRBD versions + on different nodes as long as they are compatible to each other. This + enables rolling upgrades of DRBD with no downtime. As permanent operation + of different DRBD versions within a node group is discouraged, + ``gnt-cluster verify`` will emit a warning if it detects such a situation. +- New "inst-status-xen" data collector for the monitoring daemon, providing + information about the state of the xen instances on the nodes. +- New "lv" data collector for the monitoring daemon, collecting data about the + logical volumes on the nodes, and pairing them with the name of the instances + they belong to. +- New "diskstats" data collector, collecting the data from /proc/diskstats and + presenting them over the monitoring daemon interface. +- The ConfD client is now IPv6 compatible. + +New dependencies +~~~~~~~~~~~~~~~~ +The following new dependencies have been added. + +Python + +- ``python-mock`` (http://www.voidspace.org.uk/python/mock/) is now a required + for the unit tests (and only used for testing). + +Haskell + +- ``hslogger`` (http://software.complete.org/hslogger) is now always + required, even if confd is not enabled. + +Since 2.9.0 rc3 +~~~~~~~~~~~~~~~ + +- Correctly start/stop luxid during gnt-cluster master-failover (inherited + from stable-2.8) +- Improved error messsages (inherited from stable-2.8) + + +Version 2.9.0 rc3 +----------------- + +*(Released Tue, 15 Oct 2013)* + +The third release candidate in the 2.9 series. Since 2.9.0 rc2: + +- in implicit configuration upgrade, match ipolicy with enabled disk templates +- improved harep documentation (inherited from stable-2.8) + + +Version 2.9.0 rc2 +----------------- + +*(Released Wed, 9 Oct 2013)* + +The second release candidate in the 2.9 series. Since 2.9.0 rc1: + +- Fix bug in cfgupgrade that led to failure when upgrading from 2.8 with + at least one DRBD instance. +- Fix bug in cfgupgrade that led to an invalid 2.8 configuration after + downgrading. + + +Version 2.9.0 rc1 +----------------- + +*(Released Tue, 1 Oct 2013)* + +The first release candidate in the 2.9 series. Since 2.9.0 beta1: + +- various bug fixes +- update of the documentation, in particular installation instructions +- merging of LD_* constants into DT_* constants +- python style changes to be compatible with newer versions of pylint + + +Version 2.9.0 beta1 +------------------- + +*(Released Thu, 29 Aug 2013)* + +This was the first beta release of the 2.9 series. All important changes +are listed in the latest 2.9 entry. + + +Version 2.8.3 +------------- + +*(Released Thu, 12 Dec 2013)* + +- Fixed Luxi daemon socket permissions after master-failover +- Improve IP version detection code directly checking for colons rather than + passing the family from the cluster object +- Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks + opportunistically anymore (Issue 622) +- Allow link local IPv6 gateways (Issue 624) +- Fix error printing (Issue 616) +- Fix a bug in InstanceSetParams concerning names: in case no name is passed in + disk modifications, keep the old one. If name=none then set disk name to + None. +- Update build_chroot script to work with the latest hackage packages +- Add a packet number limit to "fping" in master-ip-setup (Issue 630) +- Fix evacuation out of drained node (Issue 615) +- Add default file_driver if missing (Issue 571) +- Fix job error message after unclean master shutdown (Issue 618) +- Lock group(s) when creating instances (Issue 621) +- SetDiskID() before accepting an instance (Issue 633) +- Allow the ext template disks to receive arbitrary parameters, both at creation + time and while being modified +- Xen handle domain shutdown (future proofing cherry-pick) +- Refactor reading live data in htools (future proofing cherry-pick) + + +Version 2.8.2 +------------- + +*(Released Thu, 07 Nov 2013)* + +- DRBD: ensure peers are UpToDate for dual-primary +- Improve error message for replace-disks +- More dependency checks at configure time +- Placate warnings on ganeti.outils_unittest.py + + +Version 2.8.1 +------------- + +*(Released Thu, 17 Oct 2013)* + +- Correctly start/stop luxid during gnt-cluster master-failover +- Don't attempt IPv6 ssh in case of IPv4 cluster (Issue 595) +- Fix path for the job queue serial file +- Improved harep man page +- Minor documentation improvements + + +Version 2.8.0 +------------- + +*(Released Mon, 30 Sep 2013)* + +Incompatible/important changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Instance policy can contain multiple instance specs, as described in + the “Constrained instance sizes” section of :doc:`Partitioned Ganeti + `. As a consequence, it's not possible to partially change + or override instance specs. Bounding specs (min and max) can be specified as a + whole using the new option ``--ipolicy-bounds-specs``, while standard + specs use the new option ``--ipolicy-std-specs``. +- The output of the info command of gnt-cluster, gnt-group, gnt-node, + gnt-instance is a valid YAML object. +- hail now honors network restrictions when allocating nodes. This led to an + update of the IAllocator protocol. See the IAllocator documentation for + details. +- confd now only answers static configuration request over the network. luxid + was extracted, listens on the local LUXI socket and responds to live queries. + This allows finer grained permissions if using separate users. + +New features +~~~~~~~~~~~~ + +- The :doc:`Remote API ` daemon now supports a command line flag + to always require authentication, ``--require-authentication``. It can + be specified in ``$sysconfdir/default/ganeti``. +- A new cluster attribute 'enabled_disk_templates' is introduced. It will + be used to manage the disk templates to be used by instances in the cluster. + Initially, it will be set to a list that includes plain, drbd, if they were + enabled by specifying a volume group name, and file and sharedfile, if those + were enabled at configure time. Additionally, it will include all disk + templates that are currently used by instances. The order of disk templates + will be based on Ganeti's history of supporting them. In the future, the + first entry of the list will be used as a default disk template on instance + creation. +- ``cfgupgrade`` now supports a ``--downgrade`` option to bring the + configuration back to the previous stable version. +- Disk templates in group ipolicy can be restored to the default value. +- Initial support for diskless instances and virtual clusters in QA. +- More QA and unit tests for instance policies. +- Every opcode now contains a reason trail (visible through ``gnt-job info``) + describing why the opcode itself was executed. +- The monitoring daemon is now available. It allows users to query the cluster + for obtaining information about the status of the system. The daemon is only + responsible for providing the information over the network: the actual data + gathering is performed by data collectors (currently, only the DRBD status + collector is available). +- In order to help developers work on Ganeti, a new script + (``devel/build_chroot``) is provided, for building a chroot that contains all + the required development libraries and tools for compiling Ganeti on a Debian + Squeeze system. +- A new tool, ``harep``, for performing self-repair and recreation of instances + in Ganeti has been added. +- Split queries are enabled for tags, network, exports, cluster info, groups, + jobs, nodes. +- New command ``show-ispecs-cmd`` for ``gnt-cluster`` and ``gnt-group``. + It prints the command line to set the current policies, to ease + changing them. +- Add the ``vnet_hdr`` HV parameter for KVM, to control whether the tap + devices for KVM virtio-net interfaces will get created with VNET_HDR + (IFF_VNET_HDR) support. If set to false, it disables offloading on the + virtio-net interfaces, which prevents host kernel tainting and log + flooding, when dealing with broken or malicious virtio-net drivers. + It's set to true by default. +- Instance failover now supports a ``--cleanup`` parameter for fixing previous + failures. +- Support 'viridian' parameter in Xen HVM +- Support DSA SSH keys in bootstrap +- To simplify the work of packaging frameworks that want to add the needed users + and groups in a split-user setup themselves, at build time three files in + ``doc/users`` will be generated. The ``groups`` files contains, one per line, + the groups to be generated, the ``users`` file contains, one per line, the + users to be generated, optionally followed by their primary group, where + important. The ``groupmemberships`` file contains, one per line, additional + user-group membership relations that need to be established. The syntax of + these files will remain stable in all future versions. + + +New dependencies +~~~~~~~~~~~~~~~~ +The following new dependencies have been added: + +For Haskell: +- The ``curl`` library is not optional anymore for compiling the Haskell code. +- ``snap-server`` library (if monitoring is enabled). + +For Python: +- The minimum Python version needed to run Ganeti is now 2.6. +- ``yaml`` library (only for running the QA). + +Since 2.8.0 rc3 +~~~~~~~~~~~~~~~ +- Perform proper cleanup on termination of Haskell daemons +- Fix corner-case in handling of remaining retry time + + +Version 2.8.0 rc3 +----------------- + +*(Released Tue, 17 Sep 2013)* + +- To simplify the work of packaging frameworks that want to add the needed users + and groups in a split-user setup themselves, at build time three files in + ``doc/users`` will be generated. The ``groups`` files contains, one per line, + the groups to be generated, the ``users`` file contains, one per line, the + users to be generated, optionally followed by their primary group, where + important. The ``groupmemberships`` file contains, one per line, additional + user-group membership relations that need to be established. The syntax of + these files will remain stable in all future versions. +- Add a default to file-driver when unspecified over RAPI (Issue 571) +- Mark the DSA host pubkey as optional, and remove it during config downgrade + (Issue 560) +- Some documentation fixes + + +Version 2.8.0 rc2 +----------------- + +*(Released Tue, 27 Aug 2013)* + +The second release candidate of the 2.8 series. Since 2.8.0. rc1: + +- Support 'viridian' parameter in Xen HVM (Issue 233) +- Include VCS version in ``gnt-cluster version`` +- Support DSA SSH keys in bootstrap (Issue 338) +- Fix batch creation of instances +- Use FQDN to check master node status (Issue 551) +- Make the DRBD collector more failure-resilient + + +Version 2.8.0 rc1 ----------------- -*(unreleased)* +*(Released Fri, 2 Aug 2013)* + +The first release candidate of the 2.8 series. Since 2.8.0 beta1: + +- Fix upgrading/downgrading from 2.7 +- Increase maximum RAPI message size +- Documentation updates +- Split ``confd`` between ``luxid`` and ``confd`` +- Merge 2.7 series up to the 2.7.1 release +- Allow the ``modify_etc_hosts`` option to be changed +- Add better debugging for ``luxid`` queries +- Expose bulk parameter for GetJobs in RAPI client +- Expose missing ``network`` fields in RAPI +- Add some ``cluster verify`` tests +- Some unittest fixes +- Fix a malfunction in ``hspace``'s tiered allocation +- Fix query compatibility between haskell and python implementations +- Add the ``vnet_hdr`` HV parameter for KVM +- Add ``--cleanup`` to instance failover +- Change the connected groups format in ``gnt-network info`` output; it + was previously displayed as a raw list by mistake. (Merged from 2.7) + + +Version 2.8.0 beta1 +------------------- + +*(Released Mon, 24 Jun 2013)* + +This was the first beta release of the 2.8 series. All important changes +are listed in the latest 2.8 entry. + + +Version 2.7.2 +------------- + +*(Released Thu, 26 Sep 2013)* + +- Change the connected groups format in ``gnt-network info`` output; it + was previously displayed as a raw list by mistake +- Check disk template in right dict when copying +- Support multi-instance allocs without iallocator +- Fix some errors in the documentation +- Fix formatting of tuple in an error message + + +Version 2.7.1 +------------- + +*(Released Thu, 25 Jul 2013)* + +- Add logrotate functionality in daemon-util +- Add logrotate example file +- Add missing fields to network queries over rapi +- Fix network object timestamps +- Add support for querying network timestamps +- Fix a typo in the example crontab +- Fix a documentation typo + + +Version 2.7.0 +------------- + +*(Released Thu, 04 Jul 2013)* Incompatible/important changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -110,7 +651,28 @@ Misc changes - The functionality for allocating multiple instances at once has been overhauled and is now also available through :doc:`RAPI `. -Since rc1: +There are no significant changes from version 2.7.0~rc3. + + +Version 2.7.0 rc3 +----------------- + +*(Released Tue, 25 Jun 2013)* + +- Fix permissions on the confd query socket (Issue 477) +- Fix permissions on the job archive dir (Issue 498) +- Fix handling of an internal exception in replace-disks (Issue 472) +- Fix gnt-node info handling of shortened names (Issue 497) +- Fix gnt-instance grow-disk when wiping is enabled +- Documentation improvements, and support for newer pandoc +- Fix hspace honoring ipolicy for disks (Issue 484) +- Improve handling of the ``kvm_extra`` HV parameter + + +Version 2.7.0 rc2 +----------------- + +*(Released Fri, 24 May 2013)* - ``devel/upload`` now works when ``/var/run`` on the target nodes is a symlink. @@ -123,6 +685,7 @@ Since rc1: - Removing the master IP address doesn't fail if the address has been already removed. - Fix ownership of the OS log dir +- Workaround missing SO_PEERCRED constant (Issue 191) Version 2.7.0 rc1