8 *(Released Wed, 16 Dec 2015)*
10 Important changes and security notes
11 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
18 implementation is vulnerable to DoS attacks via client-initiated SSL
19 parameter renegotiation. While the interface is not meant to be exposed
20 publicly, due to the fact that it binds to all interfaces, we believe
21 some users might be exposing it unintentionally and are vulnerable. A
22 DoS attack can consume resources meant for Ganeti daemons and instances
23 running on the master node, making both perform badly.
25 Fixes are not feasible due to the OpenSSL Python library not exposing
26 functionality needed to disable client-side renegotiation. Instead, we
27 offer instructions on how to control RAPI's exposure, along with info
28 on how RAPI can be setup alongside an HTTPS proxy in case users still
29 want or need to expose the RAPI interface. The instructions are
30 outlined in Ganeti's security document: doc/html/security.html
34 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
35 results after an instance information job reveals the secret. With the
36 DRBD secret, access to the local cluster network, and ARP poisoning,
37 an attacker can impersonate a Ganeti node and clone the disks of a
38 DRBD-based instance. While an attacker with access to the cluster
39 network is already capable of accessing any data written as DRBD
40 traffic is unencrypted, having the secret expedites the process and
41 allows access to the entire disk.
43 Fixes contained in this release prevent the secret from being exposed
44 via the RAPI. The DRBD secret can be changed by converting an instance
45 to plain and back to DRBD, generating a new secret, but redundancy will
46 be lost until the process completes.
47 Since attackers with node access are capable of accessing some and
48 potentially all data even without the secret, we do not recommend that
49 the secret be changed for existing instances.
54 - Allow disk aittachment to diskless instances
55 - Reduce memory footprint: Compute lock allocation strictly
56 - Calculate correct affected nodes set in InstanceChangeGroup
58 - Reduce memory footprint: Don't keep input for error messages
59 - Use bulk-adding of keys in renew-crypto
60 - Reduce memory footprint: Send answers strictly
61 - Reduce memory footprint: Store keys as ByteStrings
62 - Reduce memory footprint: Encode UUIDs as ByteStrings
63 - Do not retry all requests after connection timeouts to prevent
64 repeated job submission
65 - Fix reason trails of expanding opcodes
66 - Make lockConfig call retryable
67 - Extend timeout for gnt-cluster renew-crypto
68 - Return the correct error code in the post-upgrade script
69 - Make OpenSSL refrain from DH altogether
70 - Fix faulty iallocator type check
71 - Improve cfgupgrade output in case of errors
72 - Fix upgrades of instances with missing creation time
73 - Support force option for deactivate disks on RAPI
74 - Make htools tolerate missing "dtotal" and "dfree" on luxi
75 - Fix default for --default-iallocator-params
76 - Renew-crypto: stop daemons on master node first
77 - Don't warn about broken SSH setup of offline nodes (Issue 1131)
78 - Fix computation in network blocks
79 - At IAlloc backend guess state from admin state
80 - Set node tags in iallocator htools backend
81 - Only search for Python-2 interpreters
82 - Handle Xen 4.3 states better
83 - Improve xl socat migrations
89 *(Released Mon, 7 Sep 2015)*
94 - The ext template now allows userspace-only disks to be used
99 - Fixed the silently broken 'gnt-instance replace-disks --ignore-ipolicy'
101 - User shutdown reporting can now be disabled on Xen using the
102 '--user-shutdown' flag.
103 - Remove falsely reported communication NIC error messages on instance start.
104 - Fix 'gnt-node migrate' behavior when no instances are present on a node.
105 - Fix the multi-allocation functionality for non-DRBD instances.
111 *(Released Wed, 29 Jul 2015)*
113 Incompatible/important changes
114 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 - In order to improve allocation efficiency when using DRBD, the cluster
117 metric now takes the total reserved memory into account. A consequence
118 of this change is that the best possible cluster metric is no longer 0.
119 htools(1) interprets minimal cluster scores to be offsets of the theoretical
120 lower bound, so only users interpreting the cluster score directly should
122 - This release contains a fix for the problem that different encodings in
123 SSL certificates can break RPC communication (issue 1094). The fix makes
124 it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
125 after the cluster is fully upgraded to 2.14.1
130 - On dedicated clusters, hail will now favour allocations filling up
131 nodes efficiently over balanced allocations.
136 - The indirect dependency on Haskell package 'case-insensitive' is now
143 *(Released Wed, 17 Jun 2015)*
145 This was the first release candidate in the 2.15 series. All important
146 changes are listed in the latest 2.15 entry.
151 - Issue 1094: differences in encodings in SSL certificates due to
152 different OpenSSL versions can result in rendering a cluster
153 uncommunicative after a master-failover.
159 *(Released Thu, 30 Apr 2015)*
161 This was the second beta release in the 2.15 series. All important changes
162 are listed in the latest 2.15 entry.
168 *(Released Tue, 15 Dec 2015)*
170 Important changes and security notes
171 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
177 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
178 implementation is vulnerable to DoS attacks via client-initiated SSL
179 parameter renegotiation. While the interface is not meant to be exposed
180 publicly, due to the fact that it binds to all interfaces, we believe
181 some users might be exposing it unintentionally and are vulnerable. A
182 DoS attack can consume resources meant for Ganeti daemons and instances
183 running on the master node, making both perform badly.
185 Fixes are not feasible due to the OpenSSL Python library not exposing
186 functionality needed to disable client-side renegotiation. Instead, we
187 offer instructions on how to control RAPI's exposure, along with info
188 on how RAPI can be setup alongside an HTTPS proxy in case users still
189 want or need to expose the RAPI interface. The instructions are
190 outlined in Ganeti's security document: doc/html/security.html
194 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
195 results after an instance information job reveals the secret. With the
196 DRBD secret, access to the local cluster network, and ARP poisoning,
197 an attacker can impersonate a Ganeti node and clone the disks of a
198 DRBD-based instance. While an attacker with access to the cluster
199 network is already capable of accessing any data written as DRBD
200 traffic is unencrypted, having the secret expedites the process and
201 allows access to the entire disk.
203 Fixes contained in this release prevent the secret from being exposed
204 via the RAPI. The DRBD secret can be changed by converting an instance
205 to plain and back to DRBD, generating a new secret, but redundancy will
206 be lost until the process completes.
207 Since attackers with node access are capable of accessing some and
208 potentially all data even without the secret, we do not recommend that
209 the secret be changed for existing instances.
214 - Allow disk attachment to diskless instances
215 - Calculate correct affected nodes set in InstanceChangeGroup
217 - Do not retry all requests after connection timeouts to prevent
218 repeated job submission
219 - Fix reason trails of expanding opcodes
220 - Make lockConfig call retryable
221 - Extend timeout for gnt-cluster renew-crypto
222 - Return the correct error code in the post-upgrade script
223 - Make OpenSSL refrain from DH altogether
224 - Fix faulty iallocator type check
225 - Improve cfgupgrade output in case of errors
226 - Fix upgrades of instances with missing creation time
227 - Make htools tolerate missing "dtotal" and "dfree" on luxi
228 - Fix default for --default-iallocator-params
229 - Renew-crypto: stop daemons on master node first
230 - Don't warn about broken SSH setup of offline nodes (Issue 1131)
231 - At IAlloc backend guess state from admin state
232 - Set node tags in iallocator htools backend
233 - Only search for Python-2 interpreters
234 - Handle Xen 4.3 states better
235 - Improve xl socat migrations
236 - replace-disks: fix --ignore-ipolicy
237 - Fix disabling of user shutdown reporting
238 - Allow userspace-only disk templates
239 - Fix instance failover in case of DTS_EXT_MIRROR
240 - Fix operations on empty nodes by accepting allocation of 0 jobs
241 - Fix instance multi allocation for non-DRBD disks
242 - Redistribute master key on downgrade
243 - Allow more failover options when using the --no-disk-moves flag
249 *(Released Fri, 10 Jul 2015)*
251 Incompatible/important changes
252 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
254 - The SSH security changes reduced the number of nodes which can SSH into
255 other nodes. Unfortunately enough, the Ganeti implementation of migration
256 for the xl stack of Xen required SSH to be able to migrate the instance,
257 leading to a situation where full movement of an instance around the cluster
258 was not possible. This version fixes the issue by using socat to transfer
259 instance data. While socat is less secure than SSH, it is about as secure as
260 xm migrations, and occurs over the secondary network if present. As a
261 consequence of this change, Xen instance migrations using xl cannot occur
262 between nodes running 2.14.0 and 2.14.1.
263 - This release contains a fix for the problem that different encodings in
264 SSL certificates can break RPC communication (issue 1094). The fix makes
265 it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
266 after the cluster is fully upgraded to 2.14.1
271 - The ``htools`` now properly work also on shared-storage clusters.
272 - Instance moves now work properly also for the plain disk template.
273 - Filter-evaluation for run-time data filter was fixed (issue 1100).
274 - Various improvements to the documentation have been added.
280 *(Released Tue, 2 Jun 2015)*
285 - The build system now enforces external Haskell dependencies to lie in
286 a supported range as declared by our new ganeti.cabal file.
287 - Basic support for instance reservations has been added. Instance addition
288 supports a --forthcoming option telling Ganeti to only reserve the resources
289 but not create the actual instance. The instance can later be created with
290 by passing the --commit option to the instance addition command.
291 - Node tags starting with htools:nlocation: now have a special meaning to htools(1).
292 They control between which nodes migration is possible, e.g., during hypervisor
293 upgrades. See hbal(1) for details.
294 - The node-allocation lock as been removed for good, thus speeding up parallel
295 instance allocation and creation.
296 - The external storage interface has been extended by optional ``open``
297 and ``close`` scripts.
302 - Building the Haskell part of Ganeti now requires Cabal and cabal-install.
307 - Under certain conditions instance doesn't get unpaused after live
308 migration (issue #1050)
313 - The call to the IAllocator in 'gnt-node evacuate' has been fixed.
314 - In opportunistic locking, only ask for those node resource locks where
315 the node lock is held.
316 - Lock requests are repeatable now; this avoids failure of a job in a
317 race condition with a signal sent to the job.
318 - Various improvements to the QA.
324 *(Released Tue, 19 May 2015)*
326 This was the second release candidate in the 2.14 series. All important
327 changes are listed in the 2.14.0 entry.
332 - private parameters are now properly exported to instance create scripts
333 - unnecessary config unlocks and upgrades have been removed, improving
334 performance, in particular of cluster verification
335 - some rarely occuring file-descriptor leaks have been fixed
336 - The checks for orphan and lost volumes have been fixed to also work
337 correctly when multiple volume groups are used.
343 *(Released Wed, 29 Apr 2015)*
345 This was the first release candidate in the 2.14 series. All important
346 changes are listed in the latest 2.14 entry.
351 The following issue has been fixed:
353 - A race condition where a badly timed kill of WConfD could lead to
354 an incorrect configuration.
356 Fixes inherited from the 2.12 branch:
358 - Upgrade from old versions (2.5 and 2.6) was failing (issues 1070, 1019).
359 - gnt-network info outputs wrong external reservations (issue 1068)
360 - Refuse to demote master from master capability (issue 1023)
362 Fixes inherited from the 2.13 branch:
364 - bugs related to ssh-key handling of master candidate (issues 1045, 1046, 1047)
370 *(Released Thu, 26 Mar 2015)*
372 This was the second beta release in the 2.14 series. All important changes
373 are listed in the latest 2.14 entry.
378 The following issues have been fixed:
380 - Issue 1018: Cluster init (and possibly other jobs) occasionally fail to start
382 The extension of the external storage interface was not present in 2.14.0 beta1.
388 *(Released Fri, 13 Feb 2015)*
390 This was the first beta release of the 2.14 series. All important changes
391 are listed in the latest 2.14 entry.
397 *(Released Mon, 14 Dec 2015)*
399 Important changes and security notes
400 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
406 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
407 implementation is vulnerable to DoS attacks via client-initiated SSL
408 parameter renegotiation. While the interface is not meant to be exposed
409 publicly, due to the fact that it binds to all interfaces, we believe
410 some users might be exposing it unintentionally and are vulnerable. A
411 DoS attack can consume resources meant for Ganeti daemons and instances
412 running on the master node, making both perform badly.
414 Fixes are not feasible due to the OpenSSL Python library not exposing
415 functionality needed to disable client-side renegotiation. Instead, we
416 offer instructions on how to control RAPI's exposure, along with info
417 on how RAPI can be setup alongside an HTTPS proxy in case users still
418 want or need to expose the RAPI interface. The instructions are
419 outlined in Ganeti's security document: doc/html/security.html
423 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
424 results after an instance information job reveals the secret. With the
425 DRBD secret, access to the local cluster network, and ARP poisoning,
426 an attacker can impersonate a Ganeti node and clone the disks of a
427 DRBD-based instance. While an attacker with access to the cluster
428 network is already capable of accessing any data written as DRBD
429 traffic is unencrypted, having the secret expedites the process and
430 allows access to the entire disk.
432 Fixes contained in this release prevent the secret from being exposed
433 via the RAPI. The DRBD secret can be changed by converting an instance
434 to plain and back to DRBD, generating a new secret, but redundancy will
435 be lost until the process completes.
436 Since attackers with node access are capable of accessing some and
437 potentially all data even without the secret, we do not recommend that
438 the secret be changed for existing instances.
443 - Calculate correct affected nodes set in InstanceChangeGroup
445 - Do not retry all requests after connection timeouts to prevent
446 repeated job submission
447 - Fix reason trails of expanding opcodes
448 - Make lockConfig call retryable
449 - Extend timeout for gnt-cluster renew-crypto
450 - Return the correct error code in the post-upgrade script
451 - Make OpenSSL refrain from DH altogether
452 - Fix upgrades of instances with missing creation time
453 - Make htools tolerate missing "dtotal" and "dfree" on luxi
454 - Fix default for --default-iallocator-params
455 - Renew-crypto: stop daemons on master node first
456 - Don't warn about broken SSH setup of offline nodes (Issue 1131)
457 - At IAlloc backend guess state from admin state
458 - Only search for Python-2 interpreters
459 - Handle Xen 4.3 states better
460 - Improve xl socat migrations
461 - replace-disks: fix --ignore-ipolicy
462 - Fix disabling of user shutdown reporting
463 - Fix operations on empty nodes by accepting allocation of 0 jobs
464 - Fix instance multi allocation for non-DRBD disks
465 - Redistribute master key on downgrade
466 - Allow more failover options when using the --no-disk-moves flag
472 *(Released Mon, 13 Jul 2015)*
474 Incompatible/important changes
475 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
477 - This release contains a fix for the problem that different encodings in
478 SSL certificates can break RPC communication (issue 1094). The fix makes
479 it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
480 after the cluster is fully upgraded to 2.13.2
482 Other fixes and known issues
483 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
487 - Fixed Issue #1115: Race between starting WConfD and updating the config
488 - Fixed Issue #1114: Binding RAPI to a specific IP makes the watcher
490 - Fixed Issue #1100: Filter-evaluation for run-time data filter
491 - Better handling of the "crashed" Xen state
492 - The watcher can be instructed to skip disk verification
493 - Reduce amount of logging on successful requests
494 - Prevent multiple communication NICs being created for instances
495 - The ``htools`` now properly work also on shared-storage clusters
496 - Instance moves now work properly also for the plain disk template
497 - Various improvements to the documentation have been added
500 - Issue #1104: gnt-backup: dh key too small
506 *(Released Tue, 16 Jun 2015)*
508 Incompatible/important changes
509 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
511 - The SSH security changes reduced the number of nodes which can SSH into
512 other nodes. Unfortunately enough, the Ganeti implementation of migration
513 for the xl stack of Xen required SSH to be able to migrate the instance,
514 leading to a situation where full movement of an instance around the cluster
515 was not possible. This version fixes the issue by using socat to transfer
516 instance data. While socat is less secure than SSH, it is about as secure as
517 xm migrations, and occurs over the secondary network if present. As a
518 consequence of this change, Xen instance migrations using xl cannot occur
519 between nodes running 2.13.0 and 2.13.1.
521 Other fixes and known issues
522 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 - Fixed Issue #1082: RAPI is unresponsive after master-failover
527 - Fixed Issue #1083: Cluster verify reports existing instance disks on
528 non-default VGs as missing
529 - Fixed Issue #1101: Modifying the storage directory for the shared-file disk
530 template doesn't work
531 - Fixed a possible file descriptor leak when forking jobs
532 - Fixed missing private parameters in the environment for OS scripts
533 - Fixed a performance regression when handling configuration
534 (only upgrade it if it changes)
535 - Adapt for compilation with GHC7.8 (compiles with warnings;
536 cherrypicked from 2.14)
539 - Issue #1094: Mismatch in SSL encodings breaks RPC communication
540 - Issue #1104: Export fails: key is too small
546 *(Released Tue, 28 Apr 2015)*
548 Incompatible/important changes
549 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
551 - Ganeti now internally retries the instance creation opcode if opportunistic
552 locking did not acquire nodes with enough free resources. The internal retry
553 will not use opportunistic locking. In particular, instance creation, even
554 if opportunistic locking is set, will never fail with ECODE_TEMP_NORES.
555 - The handling of SSH security had undergone a significant change. From
556 this version on, each node has an individual SSH key pair instead of
557 sharing one with all nodes of the cluster. From now on, we also
558 restrict SSH access to master candidates. This means that only master
559 candidates can ssh into other cluster nodes and all
560 non-master-candidates cannot. Refer to the UPGRADE notes
561 for further instructions on the creation and distribution of the keys.
562 - Ganeti now checks hypervisor version compatibility before trying an instance
563 migration. It errors out if the versions are not compatible. Add the option
564 --ignore-hvversions to restore the old behavior of only warning.
565 - Node tags starting with htools:migration: or htools:allowmigration: now have
566 a special meaning to htools(1). See hbal(1) for details.
567 - The LXC hypervisor code has been repaired and improved. Instances cannot be
568 migrated and cannot have more than one disk, but should otherwise work as with
569 other hypervisors. OS script changes should not be necessary. LXC version
570 1.0.0 or higher required.
575 - A new job filter rules system allows to define iptables-like rules for the
576 job scheduler, making it easier to (soft-)drain the job queue, perform
577 maintenance, and rate-limit selected job types. See gnt-filter(8) for
579 - Ganeti jobs can now be ad-hoc rate limited via the reason trail.
580 For a set of jobs queued with "--reason=rate-limit:n:label", the job
581 scheduler ensures that not more than n will be scheduled to run at the same
582 time. See ganeti(7), section "Options", for details.
583 - The monitoring daemon has now variable sleep times for the data
584 collectors. This currently means that the granularity of cpu-avg-load
586 - The 'gnt-cluster verify' command now has the option
587 '--verify-ssh-clutter', which verifies whether Ganeti (accidentally)
588 cluttered up the 'authorized_keys' file.
589 - Instance disks can now be converted from one disk template to another for many
590 different template combinations. When available, more efficient conversions
591 will be used, otherwise the disks are simply copied over.
596 - The monitoring daemon uses the PSQueue library. Be sure to install it
598 - The formerly optional regex-pcre is now an unconditional dependency because
599 the new job filter rules have regular expressions as a core feature.
604 The following issues have been fixed:
606 - Bugs related to ssh-key handling of master candidates (issues 1045,
609 Fixes inherited from the 2.12 branch:
611 - Upgrade from old versions (2.5 and 2.6) was failing (issues 1070, 1019).
612 - gnt-network info outputs wrong external reservations (issue 1068)
613 - Refuse to demote master from master capability (issue 1023)
619 *(Released Wed, 25 Mar 2015)*
621 This was the first release candidate of the 2.13 series.
622 All important changes are listed in the latest 2.13 entry.
627 The following issues have been fixed:
629 - Issue 1018: Cluster init (and possibly other jobs) occasionally fail to start
635 *(Released Wed, 14 Jan 2015)*
637 This was the first beta release of the 2.13 series. All important changes
638 are listed in the latest 2.13 entry.
644 *(Released Mon, 14 Dec 2015)*
646 Important changes and security notes
647 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
653 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
654 implementation is vulnerable to DoS attacks via client-initiated SSL
655 parameter renegotiation. While the interface is not meant to be exposed
656 publicly, due to the fact that it binds to all interfaces, we believe
657 some users might be exposing it unintentionally and are vulnerable. A
658 DoS attack can consume resources meant for Ganeti daemons and instances
659 running on the master node, making both perform badly.
661 Fixes are not feasible due to the OpenSSL Python library not exposing
662 functionality needed to disable client-side renegotiation. Instead, we
663 offer instructions on how to control RAPI's exposure, along with info
664 on how RAPI can be setup alongside an HTTPS proxy in case users still
665 want or need to expose the RAPI interface. The instructions are
666 outlined in Ganeti's security document: doc/html/security.html
670 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
671 results after an instance information job reveals the secret. With the
672 DRBD secret, access to the local cluster network, and ARP poisoning,
673 an attacker can impersonate a Ganeti node and clone the disks of a
674 DRBD-based instance. While an attacker with access to the cluster
675 network is already capable of accessing any data written as DRBD
676 traffic is unencrypted, having the secret expedites the process and
677 allows access to the entire disk.
679 Fixes contained in this release prevent the secret from being exposed
680 via the RAPI. The DRBD secret can be changed by converting an instance
681 to plain and back to DRBD, generating a new secret, but redundancy will
682 be lost until the process completes.
683 Since attackers with node access are capable of accessing some and
684 potentially all data even without the secret, we do not recommend that
685 the secret be changed for existing instances.
690 - Calculate correct affected nodes set in InstanceChangeGroup
692 - Do not retry all requests after connection timeouts to prevent
693 repeated job submission
694 - Fix reason trails of expanding opcodes
695 - Make lockConfig call retryable
696 - Return the correct error code in the post-upgrade script
697 - Make OpenSSL refrain from DH altogether
698 - Fix upgrades of instances with missing creation time
699 - Make htools tolerate missing "dtotal" and "dfree" on luxi
700 - Fix default for --default-iallocator-params
701 - At IAlloc backend guess state from admin state
702 - Only search for Python-2 interpreters
703 - Handle Xen 4.3 states better
704 - replace-disks: fix --ignore-ipolicy
705 - Fix disabling of user shutdown reporting
706 - Fix operations on empty nodes by accepting allocation of 0 jobs
707 - Fix instance multi allocation for non-DRBD disks
708 - Allow more failover options when using the --no-disk-moves flag
714 *(Released Mon, 13 Jul 2015)*
716 Incompatible/important changes
717 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
719 - This release contains a fix for the problem that different encodings in
720 SSL certificates can break RPC communication (issue 1094). The fix makes
721 it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
722 after the cluster is fully upgraded to 2.12.5.
724 Fixed and improvements
725 ~~~~~~~~~~~~~~~~~~~~~~
727 - Fixed Issue #1030: GlusterFS support breaks at upgrade to 2.12 -
728 switches back to shared-file
729 - Fixed Issue #1094 (see the notice in Incompatible/important changes):
730 Differences in encodings of SSL certificates can render a cluster
731 uncommunicative after a master-failover
732 - Fixed Issue #1098: Support for ECDSA SSH keys
733 - Fixed Issue #1100: Filter-evaluation for run-time data filter
734 - Fixed Issue #1101: Modifying the storage directory for the shared-file
735 disk template doesn't work
736 - Fixed Issue #1108: Spurious "NIC name already used" errors during
738 - Fixed Issue #1114: Binding RAPI to a specific IP makes the watcher
740 - Fixed Issue #1115: Race between starting WConfD and updating the config
741 - Better handling of the "crashed" Xen state
742 - The ``htools`` now properly work also on shared-storage clusters
743 - Various improvements to the documentation have been added
745 Inherited from the 2.11 branch:
747 - Fixed Issue #1113: Reduce amount of logging on successful requests
752 - Issue #1104: gnt-backup: dh key too small
758 *(Released Tue, 12 May 2015)*
760 - Fixed Issue #1082: RAPI is unresponsive after master-failover
761 - Fixed Issue #1083: Cluster verify reports existing instance disks on
762 non-default VGs as missing
763 - Fixed a possible file descriptor leak when forking jobs
764 - Fixed missing private parameters in the environment for OS scripts
765 - Fixed a performance regression when handling configuration
766 (only upgrade it if it changes)
767 - Adapt for compilation with GHC7.8 (compiles with warnings;
768 cherrypicked from 2.14)
773 Pending since 2.12.2:
775 - Under certain conditions instance doesn't get unpaused after live
776 migration (issue #1050)
777 - GlusterFS support breaks at upgrade to 2.12 - switches back to
778 shared-file (issue #1030)
784 *(Released Wed, 29 Apr 2015)*
786 - Fixed Issue #1019: upgrade from 2.6.2 to 2.12 fails. cfgupgrade
787 doesn't migrate the config.data file properly
788 - Fixed Issue 1023: Master master-capable option bug
789 - Fixed Issue 1068: gnt-network info outputs wrong external reservations
790 - Fixed Issue 1070: Upgrade of Ganeti 2.5.2 to 2.12.0 fails due to
791 missing UUIDs for disks
792 - Fixed Issue 1073: ssconf_hvparams_* not distributed with ssconf
794 Inherited from the 2.11 branch:
796 - Fixed Issue 1032: Renew-crypto --new-node-certificates sometimes does not
798 The operation 'gnt-cluster renew-crypto --new-node-certificates' is
799 now more robust against intermitten reachability errors. Nodes that
800 are temporarily not reachable, are contacted with several retries.
801 Nodes which are marked as offline are omitted right away.
803 Inherited from the 2.10 branch:
805 - Fixed Issue 1057: master-failover succeeds, but IP remains assigned to
807 - Fixed Issue 1058: Python's os.minor() does not support devices with
809 - Fixed Issue 1059: Luxid fails if DNS returns an IPv6 address that does
815 Pending since 2.12.2:
817 - GHC 7.8 introduced some incompatible changes, so currently Ganeti
818 2.12. doesn't compile on GHC 7.8
819 - Under certain conditions instance doesn't get unpaused after live
820 migration (issue #1050)
821 - GlusterFS support breaks at upgrade to 2.12 - switches back to
822 shared-file (issue #1030)
828 *(Released Wed, 25 Mar 2015)*
830 - Support for the lens Haskell library up to version 4.7 (issue #1028)
831 - SSH keys are now distributed only to master and master candidates
833 - Improved performance for operations that frequently read the
834 cluster configuration
835 - Improved robustness of spawning job processes that occasionally caused
836 newly-started jobs to timeout
837 - Fixed race condition during cluster verify which occasionally caused
840 Inherited from the 2.11 branch:
842 - Fix failing automatic glusterfs mounts (issue #984)
843 - Fix watcher failing to read its status file after an upgrade
845 - Improve Xen instance state handling, in particular of somewhat exotic
848 Inherited from the 2.10 branch:
850 - Fix failing to change a diskless drbd instance to plain
852 - Fixed issues with auto-upgrades from pre-2.6
853 (hv_state_static and disk_state_static)
854 - Fix memory leak in the monitoring daemon
856 Inherited from the 2.9 branch:
858 - Fix file descriptor leak in Confd client
863 - GHC 7.8 introduced some incompatible changes, so currently Ganeti
864 2.12. doesn't compile on GHC 7.8
865 - Under certain conditions instance doesn't get unpaused after live
866 migration (issue #1050)
867 - GlusterFS support breaks at upgrade to 2.12 - switches back to
868 shared-file (issue #1030)
874 *(Released Wed, 14 Jan 2015)*
876 - Fix users under which the wconfd and metad daemons run (issue #976)
877 - Clean up stale livelock files (issue #865)
878 - Fix setting up the metadata daemon's network interface for Xen
879 - Make watcher identify itself on disk activation
880 - Add "ignore-ipolicy" option to gnt-instance grow-disk
881 - Check disk size ipolicy during "gnt-instance grow-disk" (issue #995)
883 Inherited from the 2.11 branch:
885 - Fix counting votes when doing master failover (issue #962)
886 - Fix broken haskell dependencies (issues #758 and #912)
887 - Check if IPv6 is used directly when running SSH (issue #892)
889 Inherited from the 2.10 branch:
891 - Fix typo in gnt_cluster output (issue #1015)
892 - Use the Python path detected at configure time in the top-level Python
894 - Fix check for sphinx-build from python2-sphinx
895 - Properly check if an instance exists in 'gnt-instance console'
901 *(Released Fri, 10 Oct 2014)*
903 Incompatible/important changes
904 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
906 - Ganeti is now distributed under the 2-clause BSD license.
907 See the COPYING file.
908 - Do not use debug mode in production. Certain daemons will issue warnings
909 when launched in debug mode. Some debug logging violates some of the new
910 invariants in the system (see "New features"). The logging has been kept as
911 it aids diagnostics and development.
916 - OS install script parameters now come in public, private and secret
919 - Public parameters are like all other parameters in Ganeti.
920 - Ganeti will not log private and secret parameters, *unless* it is running
922 - Ganeti will not save secret parameters to configuration. Secret parameters
923 must be supplied every time you install, or reinstall, an instance.
924 - Attempting to override public parameters with private or secret parameters
925 results in an error. Similarly, you may not use secret parameters to
926 override private parameters.
928 - The move-instance tool can now attempt to allocate an instance by using
929 opportunistic locking when an iallocator is used.
930 - The build system creates sample systemd unit files, available under
931 doc/examples/systemd. These unit files allow systemd to natively
932 manage and supervise all Ganeti processes.
933 - Different types of compression can be applied during instance moves, including
935 - Ganeti jobs now run as separate processes. The jobs are coordinated by
936 a new daemon "WConfd" that manages cluster's configuration and locks
937 for individual jobs. A consequence is that more jobs can run in parallel;
938 the number is run-time configurable, see "New features" entry
939 of 2.11.0. To avoid luxid being overloaded with tracking running jobs, it
940 backs of and only occasionally, in a sequential way, checks if jobs have
941 finished and schedules new ones. In this way, luxid keeps responsive under
942 high cluster load. The limit as when to start backing of is also run-time
944 - The metadata daemon is now optionally available, as part of the
945 partial implementation of the OS-installs design. It allows pass
946 information to OS install scripts or to instances.
947 It is also possible to run Ganeti without the daemon, if desired.
948 - Detection of user shutdown of instances has been implemented for Xen
954 - The KVM CPU pinning no longer uses the affinity python package, but psutil
955 instead. The package is still optional and needed only if the feature is to
961 The following issues are related to features which are not completely
964 - Issue 885: Network hotplugging on KVM sometimes makes an instance
966 - Issues 708 and 602: The secret parameters are currently still written
967 to disk in the job queue.
968 - Setting up the metadata network interface under Xen isn't fully
974 - *Wrong UDP checksums in DHCP network packets:*
975 If an instance communicates with the metadata daemon and uses DHCP to
976 obtain its IP address on the provided virtual network interface,
977 it can happen that UDP packets have a wrong checksum, due to
978 a bug in virtio. See for example https://bugs.launchpad.net/bugs/930962
980 Ganeti works around this bug by disabling the UDP checksums on the way
981 from a host to instances (only on the special metadata communication
982 network interface) using the ethtool command. Therefore if using
983 the metadata daemon the host nodes should have this tool available.
984 - The metadata daemon is run as root in the split-user mode, to be able
986 This should be improved in future versions, see issue #949.
991 The following issues have been fixed:
993 - Fixed passing additional parameters to RecreateInstanceDisks over
995 - Fixed the permissions of WConfd when running in the split-user mode.
996 As WConfd takes over the previous master daemon to manage the
997 configuration, it currently runs under the masterd user.
998 - Fixed the permissions of the metadata daemon wn running in the
999 split-user mode (see Known issues).
1000 - Watcher now properly adds a reason trail entry when initiating disk
1002 - Fixed removing KVM parameters introduced in 2.12 when downgrading a
1003 cluster to 2.11: "migration_caps", "disk_aio" and "virtio_net_queues".
1004 - Improved retrying of RPC calls that fail due to network errors.
1010 *(Released Mon, 22 Sep 2014)*
1012 This was the second release candidate of the 2.12 series.
1013 All important changes are listed in the latest 2.12 entry.
1018 The following issues have been fixed:
1020 - Watcher now checks if WConfd is running and functional.
1021 - Watcher now properly adds reason trail entries.
1022 - Fixed NIC options in Xen's config files.
1024 Inherited from the 2.10 branch:
1026 - Fixed handling of the --online option
1027 - Add warning against hvparam changes with live migrations, which might
1028 lead to dangerous situations for instances.
1029 - Only the LVs in the configured VG are checked during cluster verify.
1035 *(Released Wed, 20 Aug 2014)*
1037 This was the first release candidate of the 2.12 series.
1038 All important changes are listed in the latest 2.12 entry.
1043 The following issues have been fixed:
1045 - Issue 881: Handle communication errors in mcpu
1046 - Issue 883: WConfd leaks memory for some long operations
1047 - Issue 884: Under heavy load the IAllocator fails with a "missing
1050 Inherited from the 2.10 branch:
1052 - Improve the recognition of Xen domU states
1053 - Automatic upgrades:
1054 - Create the config backup archive in a safe way
1055 - On upgrades, check for upgrades to resume first
1056 - Pause watcher during upgrade
1057 - Allow instance disks to be added with --no-wait-for-sync
1060 Version 2.12.0 beta1
1061 --------------------
1063 *(Released Mon, 21 Jul 2014)*
1065 This was the first beta release of the 2.12 series. All important changes
1066 are listed in the latest 2.12 entry.
1072 *(Released Mon, 14 Dec 2015)*
1074 Important changes and security notes
1075 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1081 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
1082 implementation is vulnerable to DoS attacks via client-initiated SSL
1083 parameter renegotiation. While the interface is not meant to be exposed
1084 publicly, due to the fact that it binds to all interfaces, we believe
1085 some users might be exposing it unintentionally and are vulnerable. A
1086 DoS attack can consume resources meant for Ganeti daemons and instances
1087 running on the master node, making both perform badly.
1089 Fixes are not feasible due to the OpenSSL Python library not exposing
1090 functionality needed to disable client-side renegotiation. Instead, we
1091 offer instructions on how to control RAPI's exposure, along with info
1092 on how RAPI can be setup alongside an HTTPS proxy in case users still
1093 want or need to expose the RAPI interface. The instructions are
1094 outlined in Ganeti's security document: doc/html/security.html
1098 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
1099 results after an instance information job reveals the secret. With the
1100 DRBD secret, access to the local cluster network, and ARP poisoning,
1101 an attacker can impersonate a Ganeti node and clone the disks of a
1102 DRBD-based instance. While an attacker with access to the cluster
1103 network is already capable of accessing any data written as DRBD
1104 traffic is unencrypted, having the secret expedites the process and
1105 allows access to the entire disk.
1107 Fixes contained in this release prevent the secret from being exposed
1108 via the RAPI. The DRBD secret can be changed by converting an instance
1109 to plain and back to DRBD, generating a new secret, but redundancy will
1110 be lost until the process completes.
1111 Since attackers with node access are capable of accessing some and
1112 potentially all data even without the secret, we do not recommend that
1113 the secret be changed for existing instances.
1118 - Make htools tolerate missing "dtotal" and "dfree" on luxi
1119 - Fix default for --default-iallocator-params
1120 - At IAlloc backend guess state from admin state
1121 - replace-disks: fix --ignore-ipolicy
1122 - Fix instance multi allocation for non-DRBD disks
1123 - Trigger renew-crypto on downgrade to 2.11
1124 - Downgrade log-message for rereading job
1125 - Downgrade log-level for successful requests
1126 - Check for gnt-cluster before running gnt-cluster upgrade
1132 *(Released Fri, 17 Apr 2015)*
1134 - The operation 'gnt-cluster renew-crypto --new-node-certificates' is
1135 now more robust against intermitten reachability errors. Nodes that
1136 are temporarily not reachable, are contacted with several retries.
1137 Nodes which are marked as offline are omitted right away.
1143 *(Released Mon, 22 Sep 2014)*
1145 - Ganeti is now distributed under the 2-clause BSD license.
1146 See the COPYING file.
1147 - Fix userspace access checks.
1148 - Various documentation fixes have been added.
1150 Inherited from the 2.10 branch:
1152 - The --online option now works as documented.
1153 - The watcher is paused during cluster upgrades; also, upgrade
1154 checks for upgrades to resume first.
1155 - Instance disks can be added with --no-wait-for-sync.
1161 *(Released Thu, 7 Aug 2014)*
1163 Inherited from the 2.10 branch:
1165 Important security release. In 2.10.0, the
1166 'gnt-cluster upgrade' command was introduced. Before
1167 performing an upgrade, the configuration directory of
1168 the cluster is backed up. Unfortunately, the archive was
1169 written with permissions that make it possible for
1170 non-privileged users to read the archive and thus have
1171 access to cluster and RAPI keys. After this release,
1172 the archive will be created with privileged access only.
1174 We strongly advise you to restrict the permissions of
1175 previously created archives. The archives are found in
1176 /var/lib/ganeti*.tar (unless otherwise configured with
1177 --localstatedir or --with-backup-dir).
1179 If you suspect that non-privileged users have accessed
1180 your archives already, we advise you to renew the
1181 cluster's crypto keys using 'gnt-cluster renew-crypto'
1182 and to reset the RAPI credentials by editing
1183 /var/lib/ganeti/rapi_users (respectively under a
1184 different path if configured differently with
1187 Other changes included in this release:
1189 - Fix handling of Xen instance states.
1190 - Fix NIC configuration with absent NIC VLAN
1191 - Adapt relative path expansion in PATH to new environment
1192 - Exclude archived jobs from configuration backups
1193 - Fix RAPI for split query setup
1194 - Allow disk hot-remove even with chroot or SM
1196 Inherited from the 2.9 branch:
1198 - Make htools tolerate missing 'spfree' on luxi
1204 *(Released Thu, 31 Jul 2014)*
1206 - Improved documentation of the instance shutdown behavior.
1208 Inherited from the 2.10 branch:
1210 - KVM: fix NIC configuration with absent NIC VLAN (Issue 893)
1211 - Adapt relative path expansion in PATH to new environment
1212 - Exclude archived jobs from configuration backup
1213 - Expose early_release for ReplaceInstanceDisks
1214 - Add backup directory for configuration backups for upgrades
1215 - Fix BlockdevSnapshot in case of non lvm-based disk
1216 - Improve RAPI error handling for queries in non-existing items
1217 - Allow disk hot-remove even with chroot or SM
1218 - Remove superflous loop in instance queries (Issue 875)
1220 Inherited from the 2.9 branch:
1222 - Make ganeti-cleaner switch to save working directory (Issue 880)
1228 *(Released Wed, 9 Jul 2014)*
1230 - Readd nodes to their previous node group
1231 - Remove old-style gnt-network connect
1233 Inherited from the 2.10 branch:
1235 - Make network_vlan an optional OpParam
1236 - hspace: support --accept-existing-errors
1237 - Make hspace support --independent-groups
1238 - Add a modifier for a group's allocation policy
1239 - Export VLAN nicparam to NIC configuration scripts
1240 - Fix gnt-network client to accept vlan info
1241 - Support disk hotplug with userspace access
1243 Inherited from the 2.9 branch:
1245 - Make htools tolerate missing "spfree" on luxi
1246 - Move the design for query splitting to the implemented list
1247 - Add tests for DRBD setups with empty first resource
1249 Inherited from the 2.8 branch:
1251 - DRBD parser: consume initial empty resource lines
1257 *(Released Fri, 13 Jun 2014)*
1259 - Improvements to KVM wrt to the kvmd and instance shutdown behavior.
1260 WARNING: In contrast to our standard policy, this bug fix update
1261 introduces new parameters to the configuration. This means in
1262 particular that after an upgrade from 2.11.0 or 2.11.1, 'cfgupgrade'
1263 needs to be run, either manually or explicitly by running
1264 'gnt-cluster upgrade --to 2.11.2' (which requires that they
1265 had configured the cluster with --enable-versionfull).
1266 This also means, that it is not easily possible to downgrade from
1267 2.11.2 to 2.11.1 or 2.11.0. The only way is to go back to 2.10 and
1270 Inherited from the 2.10 branch:
1272 - Check for SSL encoding inconsistencies
1273 - Check drbd helper only in VM capable nodes
1274 - Improvements in statistics utils
1276 Inherited from the 2.9 branch:
1278 - check-man-warnings: use C.UTF-8 and set LC_ALL
1284 *(Released Wed, 14 May 2014)*
1286 - Add design-node-security.rst to docinput
1287 - kvm: use a dedicated QMP socket for kvmd
1289 Inherited from the 2.10 branch:
1291 - Set correct Ganeti version on setup commands
1292 - Add a utility to combine shell commands
1293 - Add design doc for performance tests
1294 - Fix failed DRBD disk creation cleanup
1295 - Hooking up verification for shared file storage
1296 - Fix --shared-file-storage-dir option of gnt-cluster modify
1297 - Clarify default setting of 'metavg'
1298 - Fix invocation of GetCommandOutput in QA
1299 - Clean up RunWithLocks
1300 - Add an exception-trapping thread class
1301 - Wait for delay to provide interruption information
1302 - Add an expected block option to RunWithLocks
1303 - Track if a QA test was blocked by locks
1304 - Add a RunWithLocks QA utility function
1305 - Add restricted migration
1306 - Add an example for node evacuation
1307 - Add a test for parsing version strings
1308 - Tests for parallel job execution
1309 - Fail in replace-disks if attaching disks fails
1310 - Fix passing of ispecs in cluster init during QA
1311 - Move QAThreadGroup to qa_job_utils.py
1312 - Extract GetJobStatuses and use an unified version
1313 - Run disk template specific tests only if possible
1315 Inherited from the 2.9 branch:
1317 - If Automake version > 1.11, force serial tests
1318 - KVM: set IFF_ONE_QUEUE on created tap interfaces
1319 - Add configure option to pass GHC flags
1325 *(Released Fri, 25 Apr 2014)*
1327 Incompatible/important changes
1328 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1330 - ``gnt-node list`` no longer shows disk space information for shared file
1331 disk templates because it is not a node attribute. (For example, if you have
1332 both the file and shared file disk templates enabled, ``gnt-node list`` now
1333 only shows information about the file disk template.)
1334 - The shared file disk template is now in the new 'sharedfile' storage type.
1335 As a result, ``gnt-node list-storage -t file`` now only shows information
1336 about the file disk template and you may use ``gnt-node list-storage -t
1337 sharedfile`` to query storage information for the shared file disk template.
1338 - Over luxi, syntactially incorrect queries are now rejected as a whole;
1339 before, a 'SumbmitManyJobs' request was partially executed, if the outer
1340 structure of the request was syntactically correct. As the luxi protocol
1341 is internal (external applications are expected to use RAPI), the impact
1342 of this incompatible change should be limited.
1343 - Queries for nodes, instances, groups, backups and networks are now
1344 exclusively done via the luxi daemon. Legacy python code was removed,
1345 as well as the --enable-split-queries configuration option.
1346 - Orphan volumes errors are demoted to warnings and no longer affect the exit
1347 code of ``gnt-cluster verify``.
1348 - RPC security got enhanced by using different client SSL certificates
1349 for each node. In this context 'gnt-cluster renew-crypto' got a new
1350 option '--renew-node-certificates', which renews the client
1351 certificates of all nodes. After a cluster upgrade from pre-2.11, run
1352 this to create client certificates and activate this feature.
1357 - Instance moves, backups and imports can now use compression to transfer the
1359 - Node groups can be configured to use an SSH port different than the
1361 - Added experimental support for Gluster distributed file storage as the
1362 ``gluster`` disk template under the new ``sharedfile`` storage type through
1363 automatic management of per-node FUSE mount points. You can configure the
1364 mount point location at ``gnt-cluster init`` time by using the new
1365 ``--gluster-storage-dir`` switch.
1366 - Job scheduling is now handled by luxid, and the maximal number of jobs running
1367 in parallel is a run-time parameter of the cluster.
1368 - A new tool for planning dynamic power management, called ``hsqueeze``, has
1369 been added. It suggests nodes to power up or down and corresponding instance
1375 The following new dependencies have been added:
1379 - ``zlib`` library (http://hackage.haskell.org/package/base64-bytestring)
1381 - ``base64-bytestring`` library (http://hackage.haskell.org/package/zlib),
1382 at least version 1.0.0.0
1384 - ``lifted-base`` library (http://hackage.haskell.org/package/lifted-base)
1386 - ``lens`` library (http://hackage.haskell.org/package/lens)
1391 - Fix Xen instance state
1393 Inherited from the 2.10 branch:
1395 - Fix conflict between virtio + spice or soundhw
1396 - Fix bitarray ops wrt PCI slots
1397 - Allow releases scheduled 5 days in advance
1398 - Make watcher submit queries low priority
1399 - Fix specification of TIDiskParams
1400 - Add unittests for instance modify parameter renaming
1401 - Add renaming of instance custom params
1402 - Add RAPI symmetry tests for groups
1403 - Extend RAPI symmetry tests with RAPI-only aliases
1404 - Add test for group custom parameter renaming
1405 - Add renaming of group custom ndparams, ipolicy, diskparams
1406 - Add the RAPI symmetry test for nodes
1407 - Add aliases for nodes
1408 - Allow choice of HTTP method for modification
1409 - Add cluster RAPI symmetry test
1410 - Fix failing cluster query test
1411 - Add aliases for cluster parameters
1412 - Add support for value aliases to RAPI
1413 - Provide tests for GET/PUT symmetry
1415 - Also consider filter fields for deciding if using live data
1416 - Document the python-fdsend dependency
1417 - Verify configuration version number before parsing
1418 - KVM: use running HVPs to calc blockdev options
1419 - KVM: reserve a PCI slot for the SCSI controller
1420 - Check for LVM-based verification results only when enabled
1421 - Fix "existing" typos
1422 - Fix output of gnt-instance info after migration
1423 - Warn in UPGRADE about not tar'ing exported insts
1424 - Fix non-running test and remove custom_nicparams rename
1425 - Account for NODE_RES lock in opportunistic locking
1426 - Fix request flooding of noded during disk sync
1428 Inherited from the 2.9 branch:
1430 - Make watcher submit queries low priority
1431 - Fix failing gnt-node list-drbd command
1432 - Update installation guide wrt to DRBD version
1433 - Fix list-drbd QA test
1434 - Add messages about skipped QA disk template tests
1435 - Allow QA asserts to produce more messages
1436 - Set exclusion tags correctly in requested instance
1437 - Export extractExTags and updateExclTags
1438 - Document spindles in the hbal man page
1439 - Sample logrotate conf breaks permissions with split users
1440 - Fix 'gnt-cluster' and 'gnt-node list-storage' outputs
1442 Inherited from the 2.8 branch:
1444 - Add reason parameter to RAPI client functions
1445 - Include qa/patch in Makefile
1446 - Handle empty patches better
1447 - Move message formatting functions to separate file
1448 - Add optional ordering of QA patch files
1449 - Allow multiple QA patches
1450 - Refactor current patching code
1456 *(Released Thu, 20 Mar 2014)*
1458 This was the first RC release of the 2.11 series. Since 2.11.0 beta1:
1460 - Convert int to float when checking config. consistency
1461 - Rename compression option in gnt-backup export
1463 Inherited from the 2.9 branch:
1465 - Fix error introduced during merge
1466 - gnt-cluster copyfile: accept relative paths
1468 Inherited from the 2.8 branch:
1470 - Improve RAPI detection of the watcher
1471 - Add patching QA configuration files on buildbots
1472 - Enable a timeout for instance shutdown
1473 - Allow KVM commands to have a timeout
1474 - Allow xen commands to have a timeout
1475 - Fix wrong docstring
1478 Version 2.11.0 beta1
1479 --------------------
1481 *(Released Wed, 5 Mar 2014)*
1483 This was the first beta release of the 2.11 series. All important changes
1484 are listed in the latest 2.11 entry.
1490 *(Released Fri, 11 Dec 2015)*
1492 Important changes and security notes
1493 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1499 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
1500 implementation is vulnerable to DoS attacks via client-initiated SSL
1501 parameter renegotiation. While the interface is not meant to be exposed
1502 publicly, due to the fact that it binds to all interfaces, we believe
1503 some users might be exposing it unintentionally and are vulnerable. A
1504 DoS attack can consume resources meant for Ganeti daemons and instances
1505 running on the master node, making both perform badly.
1507 Fixes are not feasible due to the OpenSSL Python library not exposing
1508 functionality needed to disable client-side renegotiation. Instead, we
1509 offer instructions on how to control RAPI's exposure, along with info
1510 on how RAPI can be setup alongside an HTTPS proxy in case users still
1511 want or need to expose the RAPI interface. The instructions are
1512 outlined in Ganeti's security document: doc/html/security.html
1516 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
1517 results after an instance information job reveals the secret. With the
1518 DRBD secret, access to the local cluster network, and ARP poisoning,
1519 an attacker can impersonate a Ganeti node and clone the disks of a
1520 DRBD-based instance. While an attacker with access to the cluster
1521 network is already capable of accessing any data written as DRBD
1522 traffic is unencrypted, having the secret expedites the process and
1523 allows access to the entire disk.
1525 Fixes contained in this release prevent the secret from being exposed
1526 via the RAPI. The DRBD secret can be changed by converting an instance
1527 to plain and back to DRBD, generating a new secret, but redundancy will
1528 be lost until the process completes.
1529 Since attackers with node access are capable of accessing some and
1530 potentially all data even without the secret, we do not recommend that
1531 the secret be changed for existing instances.
1536 - Make htools tolerate missing "dtotal" and "dfree" on luxi
1537 - At IAlloc backend guess state from admin state
1538 - replace-disks: fix --ignore-ipolicy
1539 - Fix instance multi allocation for non-DRBD disks
1540 - Check for gnt-cluster before running gnt-cluster upgrade
1541 - Work around a Python os.minor bug
1542 - Add IP-related checks after master-failover
1543 - Pass correct backend params in move-instance
1544 - Allow plain/DRBD conversions regardless of lack of disks
1545 - Fix MonD collector thunk leak
1546 - Stop MonD when removing a node from a cluster
1547 - Finalize backup only if successful
1548 - Fix file descriptor leak in Confd Client
1549 - Auto-upgrade hv_state_static and disk_state_static
1550 - Do not hardcode the Python path in CLI tools
1551 - Use the Python interpreter from ENV
1552 - ganeti.daemon: fix daemon mode with GnuTLS >= 3.3 (Issues 961, 964)
1553 - Ganeti.Daemon: always install SIGHUP handler (Issue 755)
1554 - Fix DRBD version check for non VM capable nodes
1555 - Fix handling of the --online option
1556 - Add warning against hvparam changes with live migrations
1557 - Only verify LVs in configured VG during cluster verify
1558 - Fix network info in case of multi NIC instances
1559 - On upgrades, check for upgrades to resume first
1560 - Pause watcher during upgrade
1561 - Allow instance disks to be added with --no-wait-for-sync
1567 *(Released Thu, 7 Aug 2014)*
1569 Important security release. In 2.10.0, the
1570 'gnt-cluster upgrade' command was introduced. Before
1571 performing an upgrade, the configuration directory of
1572 the cluster is backed up. Unfortunately, the archive was
1573 written with permissions that make it possible for
1574 non-privileged users to read the archive and thus have
1575 access to cluster and RAPI keys. After this release,
1576 the archive will be created with privileged access only.
1578 We strongly advise you to restrict the permissions of
1579 previously created archives. The archives are found in
1580 /var/lib/ganeti*.tar (unless otherwise configured with
1581 --localstatedir or --with-backup-dir).
1583 If you suspect that non-privileged users have accessed
1584 your archives already, we advise you to renew the
1585 cluster's crypto keys using 'gnt-cluster renew-crypto'
1586 and to reset the RAPI credentials by editing
1587 /var/lib/ganeti/rapi_users (respectively under a
1588 different path if configured differently with
1591 Other changes included in this release:
1593 - Fix handling of Xen instance states.
1594 - Fix NIC configuration with absent NIC VLAN
1595 - Adapt relative path expansion in PATH to new environment
1596 - Exclude archived jobs from configuration backups
1597 - Fix RAPI for split query setup
1598 - Allow disk hot-remove even with chroot or SM
1600 Inherited from the 2.9 branch:
1602 - Make htools tolerate missing 'spfree' on luxi
1608 *(Released Mon, 30 Jun 2014)*
1610 - Make Ganeti tolerant towards differnt openssl library
1611 version on different nodes (issue 853).
1612 - Allow hspace to make useful predictions in multi-group
1613 clusters with one group overfull (isse 861).
1614 - Various gnt-network related fixes.
1615 - Fix disk hotplug with userspace access.
1616 - Various documentation errors fixed.
1622 *(Released Mon, 2 Jun 2014)*
1624 - Two new options have been added to gnt-group evacuate.
1625 The 'sequential' option forces all the evacuation steps to
1626 be carried out sequentially, thus avoiding congestion on a
1627 slow link between node groups. The 'force-failover' option
1628 disallows migrations and forces failovers to be used instead.
1629 In this way evacuation to a group with vastly differnet
1630 hypervisor is possible.
1631 - In tiered allocation, when looking for ways on how to shrink
1632 an instance, the canoncial path is tried first, i.e., in each
1633 step reduce on the resource most placements are blocked on. Only
1634 if no smaller fitting instance can be found shrinking a single
1635 resource till fit is tried.
1636 - For finding the placement of an instance, the duplicate computations
1637 in the computation of the various cluster scores are computed only
1638 once. This significantly improves the performance of hspace for DRBD
1639 on large clusters; for other clusters, a slight performance decrease
1640 might occur. Moreover, due to the changed order, floating point
1641 number inaccuracies accumulate differently, thus resulting in different
1642 cluster scores. It has been verified that the effect of these different
1643 roundings is less than 1e-12.
1644 - network queries fixed with respect to instances
1645 - relax too strict prerequisite in LUClusterSetParams for DRBD helpers
1646 - VArious improvements to QA and build-time tests
1652 *(Released Thu, 15 May 2014)*
1654 - Support restricted migration in hbal
1655 - Fix for the --shared-file-storage-dir of gnt-cluster modify (issue 811)
1656 - Fail in replace-disks if attaching disks fails (issue 814)
1657 - Set IFF_ONE_QUEUE on created tap interfaces for KVM
1658 - Small fixes and enhancements in the build system
1659 - Various documentation fixes (e.g. issue 810)
1665 *(Released Wed, 16 Apr 2014)*
1667 - Fix filtering of pending jobs with -o id (issue 778)
1668 - Make RAPI API calls more symmetric (issue 770)
1669 - Make parsing of old cluster configuration more robust (issue 783)
1670 - Fix wrong output of gnt-instance info after migrations
1671 - Fix reserved PCI slots for KVM hotplugging
1672 - Use runtime hypervisor parameters to calculate bockdevice options for KVM
1673 - Fix high node daemon load during disk sync if the sync is paused manually
1675 - Improve opportunistic locking during instance creation (issue 791)
1677 Inherited from the 2.9 branch:
1679 - Make watcher submit queries low priority (issue 772)
1680 - Add reason parameter to RAPI client functions (issue 776)
1681 - Fix failing gnt-node list-drbd command (issue 777)
1682 - Properly display fake job locks in gnt-debug.
1683 - small fixes in documentation
1689 *(Released Mon, 24 Mar 2014)*
1691 - Fix conflict between virtio + spice or soundhw (issue 757)
1692 - accept relative paths in gnt-cluster copyfile (issue 754)
1693 - Introduce shutdown timeout for 'xm shutdown' command
1694 - Improve RAPI detection of the watcher (issue 752)
1700 *(Released Wed, 5 Mar 2014)*
1702 - Fix incorrect invocation of hooks on offline nodes (issue 742)
1703 - Fix incorrect exit code of gnt-cluster verify in certain circumstances
1706 Inherited from the 2.9 branch:
1708 - Fix overflow problem in hbal that caused it to break when waiting for
1709 jobs for more than 10 minutes (issue 717)
1710 - Make hbal properly handle non-LVM storage
1711 - Properly export and import NIC parameters, and do so in a backwards
1712 compatible way (issue 716)
1713 - Fix net-common script in case of routed mode (issue 728)
1714 - Improve documentation (issues 724, 730)
1720 *(Released Thu, 20 Feb 2014)*
1722 Incompatible/important changes
1723 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1725 - Adding disks with 'gnt-instance modify' now waits for the disks to sync per
1726 default. Specify --no-wait-for-sync to override this behavior.
1727 - The Ganeti python code now adheres to a private-module layout. In particular,
1728 the module 'ganeti' is no longer in the python search path.
1729 - On instance allocation, the iallocator now considers non-LVM storage
1730 properly. In particular, actual file storage space information is used
1731 when allocating space for a file/sharedfile instance.
1732 - When disabling disk templates cluster-wide, the cluster now first
1733 checks whether there are instances still using those templates.
1734 - 'gnt-node list-storage' now also reports storage information about
1735 file-based storage types.
1736 - In case of non drbd instances, export \*_SECONDARY environment variables
1737 as empty strings (and not "None") during 'instance-migrate' related hooks.
1742 - KVM hypervisors can now access RBD storage directly without having to
1743 go through a block device.
1744 - A new command 'gnt-cluster upgrade' was added that automates the upgrade
1745 procedure between two Ganeti versions that are both 2.10 or higher.
1746 - The move-instance command can now change disk templates when moving
1747 instances, and does not require any node placement options to be
1748 specified if the destination cluster has a default iallocator.
1749 - Users can now change the soundhw and cpuid settings for XEN hypervisors.
1750 - Hail and hbal now have the (optional) capability of accessing average CPU
1751 load information through the monitoring deamon, and to use it to dynamically
1752 adapt the allocation of instances.
1753 - Hotplug support. Introduce new option '--hotplug' to ``gnt-instance modify``
1754 so that disk and NIC modifications take effect without the need of actual
1755 reboot. There are a couple of constrains currently for this feature:
1757 - only KVM hypervisor (versions >= 1.0) supports it,
1758 - one can not (yet) hotplug a disk using userspace access mode for RBD
1759 - in case of a downgrade instances should suffer a reboot in order to
1760 be migratable (due to core change of runtime files)
1761 - ``python-fdsend`` is required for NIC hotplugging.
1766 - A new test framework for logical units was introduced and the test
1767 coverage for logical units was improved significantly.
1768 - Opcodes are entirely generated from Haskell using the tool 'hs2py' and
1769 the module 'src/Ganeti/OpCodes.hs'.
1770 - Constants are also generated from Haskell using the tool
1771 'hs2py-constants' and the module 'src/Ganeti/Constants.hs', with the
1772 exception of socket related constants, which require changing the
1773 cluster configuration file, and HVS related constants, because they
1774 are part of a port of instance queries to Haskell. As a result, these
1775 changes will be part of the next release of Ganeti.
1780 The following new dependencies have been added/updated.
1784 - The version requirements for ``python-mock`` have increased to at least
1785 version 1.0.1. It is still used for testing only.
1786 - ``python-fdsend`` (https://gitorious.org/python-fdsend) is optional
1787 but required for KVM NIC hotplugging to work.
1792 - Fix integer overflow problem in hbal
1798 *(Released Wed, 12 Feb 2014)*
1800 This was the third RC release of the 2.10 series. Since 2.10.0 rc2:
1802 - Improved hotplug robustness
1803 - Start Ganeti daemons after ensure-dirs during upgrade
1804 - Documentation improvements
1806 Inherited from the 2.9 branch:
1808 - Fix the RAPI instances-multi-alloc call
1809 - assign unique filenames to file-based disks
1810 - gracefully handle degraded non-diskless instances with 0 disks (issue 697)
1811 - noded now runs with its specified group, which is the default group,
1812 defaulting to root (issue 707)
1813 - make using UUIDs to identify nodes in gnt-node consistently possible
1820 *(Released Fri, 31 Jan 2014)*
1822 This was the second RC release of the 2.10 series. Since 2.10.0 rc1:
1824 - Documentation improvements
1825 - Run drbdsetup syncer only on network attach
1826 - Include target node in hooks nodes for migration
1827 - Fix configure dirs
1828 - Support post-upgrade hooks during cluster upgrades
1830 Inherited from the 2.9 branch:
1832 - Ensure that all the hypervisors exist in the config file (Issue 640)
1833 - Correctly recognise the role as master node (Issue 687)
1834 - configure: allow detection of Sphinx 1.2+ (Issue 502)
1835 - gnt-instance now honors the KVM path correctly (Issue 691)
1837 Inherited from the 2.8 branch:
1839 - Change the list separator for the usb_devices parameter from comma to space.
1840 Commas could not work because they are already the hypervisor option
1841 separator (Issue 649)
1842 - Add support for blktap2 file-driver (Issue 638)
1843 - Add network tag definitions to the haskell codebase (Issue 641)
1844 - Fix RAPI network tag handling
1845 - Add the network tags to the tags searched by gnt-cluster search-tags
1846 - Fix caching bug preventing jobs from being cancelled
1847 - Start-master/stop-master was always failing if ConfD was disabled. (Issue 685)
1853 *(Released Tue, 17 Dec 2013)*
1855 This was the first RC release of the 2.10 series. Since 2.10.0 beta1:
1857 - All known issues in 2.10.0 beta1 have been resolved (see changes from
1859 - Improve handling of KVM runtime files from earlier Ganeti versions
1860 - Documentation fixes
1862 Inherited from the 2.9 branch:
1864 - use custom KVM path if set for version checking
1865 - SingleNotifyPipeCondition: don't share pollers
1867 Inherited from the 2.8 branch:
1869 - Fixed Luxi daemon socket permissions after master-failover
1870 - Improve IP version detection code directly checking for colons rather than
1871 passing the family from the cluster object
1872 - Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
1873 opportunistically anymore (Issue 622)
1874 - Allow link local IPv6 gateways (Issue 624)
1875 - Fix error printing (Issue 616)
1876 - Fix a bug in InstanceSetParams concerning names: in case no name is passed in
1877 disk modifications, keep the old one. If name=none then set disk name to
1879 - Update build_chroot script to work with the latest hackage packages
1880 - Add a packet number limit to "fping" in master-ip-setup (Issue 630)
1881 - Fix evacuation out of drained node (Issue 615)
1882 - Add default file_driver if missing (Issue 571)
1883 - Fix job error message after unclean master shutdown (Issue 618)
1884 - Lock group(s) when creating instances (Issue 621)
1885 - SetDiskID() before accepting an instance (Issue 633)
1886 - Allow the ext template disks to receive arbitrary parameters, both at creation
1887 time and while being modified
1888 - Xen handle domain shutdown (future proofing cherry-pick)
1889 - Refactor reading live data in htools (future proofing cherry-pick)
1892 Version 2.10.0 beta1
1893 --------------------
1895 *(Released Wed, 27 Nov 2013)*
1897 This was the first beta release of the 2.10 series. All important changes
1898 are listed in the latest 2.10 entry.
1903 The following issues are known to be present in the beta and will be fixed
1906 - Issue 477: Wrong permissions for confd LUXI socket
1907 - Issue 621: Instance related opcodes do not aquire network/group locks
1908 - Issue 622: Assertion Error: Node locks differ from node resource locks
1909 - Issue 623: IPv6 Masterd <-> Luxid communication error
1915 *(Released Fri, 11 Dec 2015)*
1917 Important changes and security notes
1918 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1924 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
1925 implementation is vulnerable to DoS attacks via client-initiated SSL
1926 parameter renegotiation. While the interface is not meant to be exposed
1927 publicly, due to the fact that it binds to all interfaces, we believe
1928 some users might be exposing it unintentionally and are vulnerable. A
1929 DoS attack can consume resources meant for Ganeti daemons and instances
1930 running on the master node, making both perform badly.
1932 Fixes are not feasible due to the OpenSSL Python library not exposing
1933 functionality needed to disable client-side renegotiation. Instead, we
1934 offer instructions on how to control RAPI's exposure, along with info
1935 on how RAPI can be setup alongside an HTTPS proxy in case users still
1936 want or need to expose the RAPI interface. The instructions are
1937 outlined in Ganeti's security document: doc/html/security.html
1941 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
1942 results after an instance information job reveals the secret. With the
1943 DRBD secret, access to the local cluster network, and ARP poisoning,
1944 an attacker can impersonate a Ganeti node and clone the disks of a
1945 DRBD-based instance. While an attacker with access to the cluster
1946 network is already capable of accessing any data written as DRBD
1947 traffic is unencrypted, having the secret expedites the process and
1948 allows access to the entire disk.
1950 Fixes contained in this release prevent the secret from being exposed
1951 via the RAPI. The DRBD secret can be changed by converting an instance
1952 to plain and back to DRBD, generating a new secret, but redundancy will
1953 be lost until the process completes.
1954 Since attackers with node access are capable of accessing some and
1955 potentially all data even without the secret, we do not recommend that
1956 the secret be changed for existing instances.
1961 - gnt-instance replace-disks no longer crashes when --ignore-policy is
1963 - Stop MonD when removing a node from a cluster
1964 - Fix file descriptor leak in Confd client
1965 - Always install SIGHUP handler for Haskell daemons (Issue 755)
1966 - Make ganeti-cleaner switch to a safe working directory (Issue 880)
1967 - Make htools tolerate missing "spfree" on Luxi
1968 - DRBD parser: consume initial empty resource lines (Issue 869)
1969 - KVM: set IFF_ONE_QUEUE on created tap interfaces
1970 - Set exclusion tags correctly in requested instance
1976 *(Released Mon, 7 Apr 2014)*
1978 - Improve RAPI detection of the watcher (Issue 752)
1979 - gnt-cluster copyfile: accept relative paths (Issue 754)
1980 - Make watcher submit queries low priority (Issue 772)
1981 - Add reason parameter to RAPI client functions (Issue 776)
1982 - Fix failing gnt-node list-drbd command (Issue 777)
1983 - Properly display fake job locks in gnt-debug.
1984 - Enable timeout for instance shutdown
1985 - small fixes in documentation
1991 *(Released Tue, 25 Feb 2014)*
1993 - Fix overflow problem in hbal that caused it to break when waiting for
1994 jobs for more than 10 minutes (issue 717)
1995 - Make hbal properly handle non-LVM storage
1996 - Properly export and import NIC parameters, and do so in a backwards
1997 compatible way (issue 716)
1998 - Fix net-common script in case of routed mode (issue 728)
1999 - Improve documentation (issues 724, 730)
2005 *(Released Mon, 10 Feb 2014)*
2007 - Fix the RAPI instances-multi-alloc call
2008 - assign unique filenames to file-based disks
2009 - gracefully handle degraded non-diskless instances with 0 disks (issue 697)
2010 - noded now runs with its specified group, which is the default group,
2011 defaulting to root (issue 707)
2012 - make using UUIDs to identify nodes in gnt-node consistently possible
2019 *(Released Mon, 27 Jan 2014)*
2021 - Ensure that all the hypervisors exist in the config file (Issue 640)
2022 - Correctly recognise the role as master node (Issue 687)
2023 - configure: allow detection of Sphinx 1.2+ (Issue 502)
2024 - gnt-instance now honors the KVM path correctly (Issue 691)
2026 Inherited from the 2.8 branch:
2028 - Change the list separator for the usb_devices parameter from comma to space.
2029 Commas could not work because they are already the hypervisor option
2030 separator (Issue 649)
2031 - Add support for blktap2 file-driver (Issue 638)
2032 - Add network tag definitions to the haskell codebase (Issue 641)
2033 - Fix RAPI network tag handling
2034 - Add the network tags to the tags searched by gnt-cluster search-tags
2035 - Fix caching bug preventing jobs from being cancelled
2036 - Start-master/stop-master was always failing if ConfD was disabled. (Issue 685)
2042 *(Released Fri, 13 Dec 2013)*
2044 - use custom KVM path if set for version checking
2045 - SingleNotifyPipeCondition: don't share pollers
2047 Inherited from the 2.8 branch:
2049 - Fixed Luxi daemon socket permissions after master-failover
2050 - Improve IP version detection code directly checking for colons rather than
2051 passing the family from the cluster object
2052 - Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
2053 opportunistically anymore (Issue 622)
2054 - Allow link local IPv6 gateways (Issue 624)
2055 - Fix error printing (Issue 616)
2056 - Fix a bug in InstanceSetParams concerning names: in case no name is passed in
2057 disk modifications, keep the old one. If name=none then set disk name to
2059 - Update build_chroot script to work with the latest hackage packages
2060 - Add a packet number limit to "fping" in master-ip-setup (Issue 630)
2061 - Fix evacuation out of drained node (Issue 615)
2062 - Add default file_driver if missing (Issue 571)
2063 - Fix job error message after unclean master shutdown (Issue 618)
2064 - Lock group(s) when creating instances (Issue 621)
2065 - SetDiskID() before accepting an instance (Issue 633)
2066 - Allow the ext template disks to receive arbitrary parameters, both at creation
2067 time and while being modified
2068 - Xen handle domain shutdown (future proofing cherry-pick)
2069 - Refactor reading live data in htools (future proofing cherry-pick)
2075 *(Released Wed, 13 Nov 2013)*
2077 - fix bug, that kept nodes offline when readding
2078 - when verifying DRBD versions, ignore unavailable nodes
2079 - fix bug that made the console unavailable on kvm in split-user
2081 - DRBD: ensure peers are UpToDate for dual-primary (inherited 2.8.2)
2087 *(Released Tue, 5 Nov 2013)*
2089 Incompatible/important changes
2090 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2092 - hroller now also plans for capacity to move non-redundant instances off
2093 any node to be rebooted; the old behavior of completely ignoring any
2094 non-redundant instances can be restored by adding the --ignore-non-redundant
2096 - The cluster option '--no-lvm-storage' was removed in favor of the new option
2097 '--enabled-disk-templates'.
2098 - On instance creation, disk templates no longer need to be specified
2099 with '-t'. The default disk template will be taken from the list of
2100 enabled disk templates.
2101 - The monitoring daemon is now running as root, in order to be able to collect
2102 information only available to root (such as the state of Xen instances).
2103 - The ConfD client is now IPv6 compatible.
2104 - File and shared file storage is no longer dis/enabled at configure time,
2105 but using the option '--enabled-disk-templates' at cluster initialization and
2107 - The default directories for file and shared file storage are not anymore
2108 specified at configure time, but taken from the cluster's configuration.
2109 They can be set at cluster initialization and modification with
2110 '--file-storage-dir' and '--shared-file-storage-dir'.
2111 - Cluster verification now includes stricter checks regarding the
2112 default file and shared file storage directories. It now checks that
2113 the directories are explicitely allowed in the 'file-storage-paths' file and
2114 that the directories exist on all nodes.
2115 - The list of allowed disk templates in the instance policy and the list
2116 of cluster-wide enabled disk templates is now checked for consistency
2117 on cluster or group modification. On cluster initialization, the ipolicy
2118 disk templates are ensured to be a subset of the cluster-wide enabled
2124 - DRBD 8.4 support. Depending on the installed DRBD version, Ganeti now uses
2125 the correct command syntax. It is possible to use different DRBD versions
2126 on different nodes as long as they are compatible to each other. This
2127 enables rolling upgrades of DRBD with no downtime. As permanent operation
2128 of different DRBD versions within a node group is discouraged,
2129 ``gnt-cluster verify`` will emit a warning if it detects such a situation.
2130 - New "inst-status-xen" data collector for the monitoring daemon, providing
2131 information about the state of the xen instances on the nodes.
2132 - New "lv" data collector for the monitoring daemon, collecting data about the
2133 logical volumes on the nodes, and pairing them with the name of the instances
2135 - New "diskstats" data collector, collecting the data from /proc/diskstats and
2136 presenting them over the monitoring daemon interface.
2137 - The ConfD client is now IPv6 compatible.
2141 The following new dependencies have been added.
2145 - ``python-mock`` (http://www.voidspace.org.uk/python/mock/) is now a required
2146 for the unit tests (and only used for testing).
2150 - ``hslogger`` (http://software.complete.org/hslogger) is now always
2151 required, even if confd is not enabled.
2156 - Correctly start/stop luxid during gnt-cluster master-failover (inherited
2158 - Improved error messsages (inherited from stable-2.8)
2164 *(Released Tue, 15 Oct 2013)*
2166 The third release candidate in the 2.9 series. Since 2.9.0 rc2:
2168 - in implicit configuration upgrade, match ipolicy with enabled disk templates
2169 - improved harep documentation (inherited from stable-2.8)
2175 *(Released Wed, 9 Oct 2013)*
2177 The second release candidate in the 2.9 series. Since 2.9.0 rc1:
2179 - Fix bug in cfgupgrade that led to failure when upgrading from 2.8 with
2180 at least one DRBD instance.
2181 - Fix bug in cfgupgrade that led to an invalid 2.8 configuration after
2188 *(Released Tue, 1 Oct 2013)*
2190 The first release candidate in the 2.9 series. Since 2.9.0 beta1:
2193 - update of the documentation, in particular installation instructions
2194 - merging of LD_* constants into DT_* constants
2195 - python style changes to be compatible with newer versions of pylint
2201 *(Released Thu, 29 Aug 2013)*
2203 This was the first beta release of the 2.9 series. All important changes
2204 are listed in the latest 2.9 entry.
2210 *(Released Thu, 23 Jan 2014)*
2212 - Change the list separator for the usb_devices parameter from comma to space.
2213 Commas could not work because they are already the hypervisor option
2214 separator (Issue 649)
2215 - Add support for blktap2 file-driver (Issue 638)
2216 - Add network tag definitions to the haskell codebase (Issue 641)
2217 - Fix RAPI network tag handling
2218 - Add the network tags to the tags searched by gnt-cluster search-tags
2219 - Fix caching bug preventing jobs from being cancelled
2220 - Start-master/stop-master was always failing if ConfD was disabled. (Issue 685)
2226 *(Released Thu, 12 Dec 2013)*
2228 - Fixed Luxi daemon socket permissions after master-failover
2229 - Improve IP version detection code directly checking for colons rather than
2230 passing the family from the cluster object
2231 - Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
2232 opportunistically anymore (Issue 622)
2233 - Allow link local IPv6 gateways (Issue 624)
2234 - Fix error printing (Issue 616)
2235 - Fix a bug in InstanceSetParams concerning names: in case no name is passed in
2236 disk modifications, keep the old one. If name=none then set disk name to
2238 - Update build_chroot script to work with the latest hackage packages
2239 - Add a packet number limit to "fping" in master-ip-setup (Issue 630)
2240 - Fix evacuation out of drained node (Issue 615)
2241 - Add default file_driver if missing (Issue 571)
2242 - Fix job error message after unclean master shutdown (Issue 618)
2243 - Lock group(s) when creating instances (Issue 621)
2244 - SetDiskID() before accepting an instance (Issue 633)
2245 - Allow the ext template disks to receive arbitrary parameters, both at creation
2246 time and while being modified
2247 - Xen handle domain shutdown (future proofing cherry-pick)
2248 - Refactor reading live data in htools (future proofing cherry-pick)
2254 *(Released Thu, 07 Nov 2013)*
2256 - DRBD: ensure peers are UpToDate for dual-primary
2257 - Improve error message for replace-disks
2258 - More dependency checks at configure time
2259 - Placate warnings on ganeti.outils_unittest.py
2265 *(Released Thu, 17 Oct 2013)*
2267 - Correctly start/stop luxid during gnt-cluster master-failover
2268 - Don't attempt IPv6 ssh in case of IPv4 cluster (Issue 595)
2269 - Fix path for the job queue serial file
2270 - Improved harep man page
2271 - Minor documentation improvements
2277 *(Released Mon, 30 Sep 2013)*
2279 Incompatible/important changes
2280 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2282 - Instance policy can contain multiple instance specs, as described in
2283 the “Constrained instance sizes” section of :doc:`Partitioned Ganeti
2284 <design-partitioned>`. As a consequence, it's not possible to partially change
2285 or override instance specs. Bounding specs (min and max) can be specified as a
2286 whole using the new option ``--ipolicy-bounds-specs``, while standard
2287 specs use the new option ``--ipolicy-std-specs``.
2288 - The output of the info command of gnt-cluster, gnt-group, gnt-node,
2289 gnt-instance is a valid YAML object.
2290 - hail now honors network restrictions when allocating nodes. This led to an
2291 update of the IAllocator protocol. See the IAllocator documentation for
2293 - confd now only answers static configuration request over the network. luxid
2294 was extracted, listens on the local LUXI socket and responds to live queries.
2295 This allows finer grained permissions if using separate users.
2300 - The :doc:`Remote API <rapi>` daemon now supports a command line flag
2301 to always require authentication, ``--require-authentication``. It can
2302 be specified in ``$sysconfdir/default/ganeti``.
2303 - A new cluster attribute 'enabled_disk_templates' is introduced. It will
2304 be used to manage the disk templates to be used by instances in the cluster.
2305 Initially, it will be set to a list that includes plain, drbd, if they were
2306 enabled by specifying a volume group name, and file and sharedfile, if those
2307 were enabled at configure time. Additionally, it will include all disk
2308 templates that are currently used by instances. The order of disk templates
2309 will be based on Ganeti's history of supporting them. In the future, the
2310 first entry of the list will be used as a default disk template on instance
2312 - ``cfgupgrade`` now supports a ``--downgrade`` option to bring the
2313 configuration back to the previous stable version.
2314 - Disk templates in group ipolicy can be restored to the default value.
2315 - Initial support for diskless instances and virtual clusters in QA.
2316 - More QA and unit tests for instance policies.
2317 - Every opcode now contains a reason trail (visible through ``gnt-job info``)
2318 describing why the opcode itself was executed.
2319 - The monitoring daemon is now available. It allows users to query the cluster
2320 for obtaining information about the status of the system. The daemon is only
2321 responsible for providing the information over the network: the actual data
2322 gathering is performed by data collectors (currently, only the DRBD status
2323 collector is available).
2324 - In order to help developers work on Ganeti, a new script
2325 (``devel/build_chroot``) is provided, for building a chroot that contains all
2326 the required development libraries and tools for compiling Ganeti on a Debian
2328 - A new tool, ``harep``, for performing self-repair and recreation of instances
2329 in Ganeti has been added.
2330 - Split queries are enabled for tags, network, exports, cluster info, groups,
2332 - New command ``show-ispecs-cmd`` for ``gnt-cluster`` and ``gnt-group``.
2333 It prints the command line to set the current policies, to ease
2335 - Add the ``vnet_hdr`` HV parameter for KVM, to control whether the tap
2336 devices for KVM virtio-net interfaces will get created with VNET_HDR
2337 (IFF_VNET_HDR) support. If set to false, it disables offloading on the
2338 virtio-net interfaces, which prevents host kernel tainting and log
2339 flooding, when dealing with broken or malicious virtio-net drivers.
2340 It's set to true by default.
2341 - Instance failover now supports a ``--cleanup`` parameter for fixing previous
2343 - Support 'viridian' parameter in Xen HVM
2344 - Support DSA SSH keys in bootstrap
2345 - To simplify the work of packaging frameworks that want to add the needed users
2346 and groups in a split-user setup themselves, at build time three files in
2347 ``doc/users`` will be generated. The ``groups`` files contains, one per line,
2348 the groups to be generated, the ``users`` file contains, one per line, the
2349 users to be generated, optionally followed by their primary group, where
2350 important. The ``groupmemberships`` file contains, one per line, additional
2351 user-group membership relations that need to be established. The syntax of
2352 these files will remain stable in all future versions.
2357 The following new dependencies have been added:
2360 - The ``curl`` library is not optional anymore for compiling the Haskell code.
2361 - ``snap-server`` library (if monitoring is enabled).
2364 - The minimum Python version needed to run Ganeti is now 2.6.
2365 - ``yaml`` library (only for running the QA).
2369 - Perform proper cleanup on termination of Haskell daemons
2370 - Fix corner-case in handling of remaining retry time
2376 *(Released Tue, 17 Sep 2013)*
2378 - To simplify the work of packaging frameworks that want to add the needed users
2379 and groups in a split-user setup themselves, at build time three files in
2380 ``doc/users`` will be generated. The ``groups`` files contains, one per line,
2381 the groups to be generated, the ``users`` file contains, one per line, the
2382 users to be generated, optionally followed by their primary group, where
2383 important. The ``groupmemberships`` file contains, one per line, additional
2384 user-group membership relations that need to be established. The syntax of
2385 these files will remain stable in all future versions.
2386 - Add a default to file-driver when unspecified over RAPI (Issue 571)
2387 - Mark the DSA host pubkey as optional, and remove it during config downgrade
2389 - Some documentation fixes
2395 *(Released Tue, 27 Aug 2013)*
2397 The second release candidate of the 2.8 series. Since 2.8.0. rc1:
2399 - Support 'viridian' parameter in Xen HVM (Issue 233)
2400 - Include VCS version in ``gnt-cluster version``
2401 - Support DSA SSH keys in bootstrap (Issue 338)
2402 - Fix batch creation of instances
2403 - Use FQDN to check master node status (Issue 551)
2404 - Make the DRBD collector more failure-resilient
2410 *(Released Fri, 2 Aug 2013)*
2412 The first release candidate of the 2.8 series. Since 2.8.0 beta1:
2414 - Fix upgrading/downgrading from 2.7
2415 - Increase maximum RAPI message size
2416 - Documentation updates
2417 - Split ``confd`` between ``luxid`` and ``confd``
2418 - Merge 2.7 series up to the 2.7.1 release
2419 - Allow the ``modify_etc_hosts`` option to be changed
2420 - Add better debugging for ``luxid`` queries
2421 - Expose bulk parameter for GetJobs in RAPI client
2422 - Expose missing ``network`` fields in RAPI
2423 - Add some ``cluster verify`` tests
2424 - Some unittest fixes
2425 - Fix a malfunction in ``hspace``'s tiered allocation
2426 - Fix query compatibility between haskell and python implementations
2427 - Add the ``vnet_hdr`` HV parameter for KVM
2428 - Add ``--cleanup`` to instance failover
2429 - Change the connected groups format in ``gnt-network info`` output; it
2430 was previously displayed as a raw list by mistake. (Merged from 2.7)
2436 *(Released Mon, 24 Jun 2013)*
2438 This was the first beta release of the 2.8 series. All important changes
2439 are listed in the latest 2.8 entry.
2445 *(Released Thu, 26 Sep 2013)*
2447 - Change the connected groups format in ``gnt-network info`` output; it
2448 was previously displayed as a raw list by mistake
2449 - Check disk template in right dict when copying
2450 - Support multi-instance allocs without iallocator
2451 - Fix some errors in the documentation
2452 - Fix formatting of tuple in an error message
2458 *(Released Thu, 25 Jul 2013)*
2460 - Add logrotate functionality in daemon-util
2461 - Add logrotate example file
2462 - Add missing fields to network queries over rapi
2463 - Fix network object timestamps
2464 - Add support for querying network timestamps
2465 - Fix a typo in the example crontab
2466 - Fix a documentation typo
2472 *(Released Thu, 04 Jul 2013)*
2474 Incompatible/important changes
2475 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2477 - Instance policies for disk size were documented to be on a per-disk
2478 basis, but hail applied them to the sum of all disks. This has been
2480 - ``hbal`` will now exit with status 0 if, during job execution over
2481 LUXI, early exit has been requested and all jobs are successful;
2482 before, exit status 1 was used, which cannot be differentiated from
2484 - Compatibility with newer versions of rbd has been fixed
2485 - ``gnt-instance batch-create`` has been changed to use the bulk create
2486 opcode from Ganeti. This lead to incompatible changes in the format of
2487 the JSON file. It's now not a custom dict anymore but a dict
2488 compatible with the ``OpInstanceCreate`` opcode.
2489 - Parent directories for file storage need to be listed in
2490 ``$sysconfdir/ganeti/file-storage-paths`` now. ``cfgupgrade`` will
2491 write the file automatically based on old configuration values, but it
2492 can not distribute it across all nodes and the file contents should be
2493 verified. Use ``gnt-cluster copyfile
2494 $sysconfdir/ganeti/file-storage-paths`` once the cluster has been
2495 upgraded. The reason for requiring this list of paths now is that
2496 before it would have been possible to inject new paths via RPC,
2497 allowing files to be created in arbitrary locations. The RPC protocol
2498 is protected using SSL/X.509 certificates, but as a design principle
2499 Ganeti does not permit arbitrary paths to be passed.
2500 - The parsing of the variants file for OSes (see
2501 :manpage:`ganeti-os-interface(7)`) has been slightly changed: now empty
2502 lines and comment lines (starting with ``#``) are ignored for better
2504 - The ``setup-ssh`` tool added in Ganeti 2.2 has been replaced and is no
2505 longer available. ``gnt-node add`` now invokes a new tool on the
2506 destination node, named ``prepare-node-join``, to configure the SSH
2507 daemon. Paramiko is no longer necessary to configure nodes' SSH
2508 daemons via ``gnt-node add``.
2509 - Draining (``gnt-cluster queue drain``) and un-draining the job queue
2510 (``gnt-cluster queue undrain``) now affects all nodes in a cluster and
2511 the flag is not reset after a master failover.
2512 - Python 2.4 has *not* been tested with this release. Using 2.6 or above
2513 is recommended. 2.6 will be mandatory from the 2.8 series.
2519 - New network management functionality to support automatic allocation
2520 of IP addresses and managing of network parameters. See
2521 :manpage:`gnt-network(8)` for more details.
2522 - New external storage backend, to allow managing arbitrary storage
2523 systems external to the cluster. See
2524 :manpage:`ganeti-extstorage-interface(7)`.
2525 - New ``exclusive-storage`` node parameter added, restricted to
2526 nodegroup level. When it's set to true, physical disks are assigned in
2527 an exclusive fashion to instances, as documented in :doc:`Partitioned
2528 Ganeti <design-partitioned>`. Currently, only instances using the
2529 ``plain`` disk template are supported.
2530 - The KVM hypervisor has been updated with many new hypervisor
2531 parameters, including a generic one for passing arbitrary command line
2532 values. See a complete list in :manpage:`gnt-instance(8)`. It is now
2533 compatible up to qemu 1.4.
2534 - A new tool, called ``mon-collector``, is the stand-alone executor of
2535 the data collectors for a monitoring system. As of this version, it
2536 just includes the DRBD data collector, that can be executed by calling
2537 ``mon-collector`` using the ``drbd`` parameter. See
2538 :manpage:`mon-collector(7)`.
2539 - A new user option, :pyeval:`rapi.RAPI_ACCESS_READ`, has been added
2540 for RAPI users. It allows granting permissions to query for
2541 information to a specific user without giving
2542 :pyeval:`rapi.RAPI_ACCESS_WRITE` permissions.
2543 - A new tool named ``node-cleanup`` has been added. It cleans remains of
2544 a cluster from a machine by stopping all daemons, removing
2545 certificates and ssconf files. Unless the ``--no-backup`` option is
2546 given, copies of the certificates are made.
2547 - Instance creations now support the use of opportunistic locking,
2548 potentially speeding up the (parallel) creation of multiple instances.
2549 This feature is currently only available via the :doc:`RAPI
2550 <rapi>` interface and when an instance allocator is used. If the
2551 ``opportunistic_locking`` parameter is set the opcode will try to
2552 acquire as many locks as possible, but will not wait for any locks
2553 held by other opcodes. If not enough resources can be found to
2554 allocate the instance, the temporary error code
2555 :pyeval:`errors.ECODE_TEMP_NORES` is returned. The operation can be
2556 retried thereafter, with or without opportunistic locking.
2557 - New experimental linux-ha resource scripts.
2558 - Restricted-commands support: ganeti can now be asked (via command line
2559 or rapi) to perform commands on a node. These are passed via ganeti
2560 RPC rather than ssh. This functionality is restricted to commands
2561 specified on the ``$sysconfdir/ganeti/restricted-commands`` for security
2562 reasons. The file is not copied automatically.
2568 - Diskless instances are now externally mirrored (Issue 237). This for
2569 now has only been tested in conjunction with explicit target nodes for
2571 - Queries not needing locks or RPC access to the node can now be
2572 performed by the confd daemon, making them independent from jobs, and
2573 thus faster to execute. This is selectable at configure time.
2574 - The functionality for allocating multiple instances at once has been
2575 overhauled and is now also available through :doc:`RAPI <rapi>`.
2577 There are no significant changes from version 2.7.0~rc3.
2583 *(Released Tue, 25 Jun 2013)*
2585 - Fix permissions on the confd query socket (Issue 477)
2586 - Fix permissions on the job archive dir (Issue 498)
2587 - Fix handling of an internal exception in replace-disks (Issue 472)
2588 - Fix gnt-node info handling of shortened names (Issue 497)
2589 - Fix gnt-instance grow-disk when wiping is enabled
2590 - Documentation improvements, and support for newer pandoc
2591 - Fix hspace honoring ipolicy for disks (Issue 484)
2592 - Improve handling of the ``kvm_extra`` HV parameter
2598 *(Released Fri, 24 May 2013)*
2600 - ``devel/upload`` now works when ``/var/run`` on the target nodes is a
2602 - Disks added through ``gnt-instance modify`` or created through
2603 ``gnt-instance recreate-disks`` are wiped, if the
2604 ``prealloc_wipe_disks`` flag is set.
2605 - If wiping newly created disks fails, the disks are removed. Also,
2606 partial failures in creating disks through ``gnt-instance modify``
2607 triggers a cleanup of the partially-created disks.
2608 - Removing the master IP address doesn't fail if the address has been
2610 - Fix ownership of the OS log dir
2611 - Workaround missing SO_PEERCRED constant (Issue 191)
2617 *(Released Fri, 3 May 2013)*
2619 This was the first release candidate of the 2.7 series. Since beta3:
2621 - Fix kvm compatibility with qemu 1.4 (Issue 389)
2622 - Documentation updates (admin guide, upgrade notes, install
2623 instructions) (Issue 372)
2624 - Fix gnt-group list nodes and instances count (Issue 436)
2625 - Fix compilation without non-mandatory libraries (Issue 441)
2626 - Fix xen-hvm hypervisor forcing nics to type 'ioemu' (Issue 247)
2627 - Make confd logging more verbose at INFO level (Issue 435)
2628 - Improve "networks" documentation in :manpage:`gnt-instance(8)`
2629 - Fix failure path for instance storage type conversion (Issue 229)
2630 - Update htools text backend documentation
2631 - Improve the renew-crypto section of :manpage:`gnt-cluster(8)`
2632 - Disable inter-cluster instance move for file-based instances, because
2633 it is dependant on instance export, which is not supported for
2634 file-based instances. (Issue 414)
2635 - Fix gnt-job crashes on non-ascii characters (Issue 427)
2636 - Fix volume group checks on non-vm-capable nodes (Issue 432)
2642 *(Released Mon, 22 Apr 2013)*
2644 This was the third beta release of the 2.7 series. Since beta2:
2646 - Fix hail to verify disk instance policies on a per-disk basis (Issue 418).
2647 - Fix data loss on wrong usage of ``gnt-instance move``
2648 - Properly export errors in confd-based job queries
2649 - Add ``users-setup`` tool
2650 - Fix iallocator protocol to report 0 as a disk size for diskless
2651 instances. This avoids hail breaking when a diskless instance is
2653 - Fix job queue directory permission problem that made confd job queries
2654 fail. This requires running an ``ensure-dirs --full-run`` on upgrade
2655 for access to archived jobs (Issue 406).
2656 - Limit the sizes of networks supported by ``gnt-network`` to something
2657 between a ``/16`` and a ``/30`` to prevent memory bloat and crashes.
2658 - Fix bugs in instance disk template conversion
2659 - Fix GHC 7 compatibility
2660 - Fix ``burnin`` install path (Issue 426).
2661 - Allow very small disk grows (Issue 347).
2662 - Fix a ``ganeti-noded`` memory bloat introduced in 2.5, by making sure
2663 that noded doesn't import masterd code (Issue 419).
2664 - Make sure the default metavg at cluster init is the same as the vg, if
2665 unspecified (Issue 358).
2666 - Fix cleanup of partially created disks (part of Issue 416)
2672 *(Released Tue, 2 Apr 2013)*
2674 This was the second beta release of the 2.7 series. Since beta1:
2676 - Networks no longer have a "type" slot, since this information was
2677 unused in Ganeti: instead of it tags should be used.
2678 - The rapi client now has a ``target_node`` option to MigrateInstance.
2679 - Fix early exit return code for hbal (Issue 386).
2680 - Fix ``gnt-instance migrate/failover -n`` (Issue 396).
2681 - Fix ``rbd showmapped`` output parsing (Issue 312).
2682 - Networks are now referenced indexed by UUID, rather than name. This
2683 will require running cfgupgrade, from 2.7.0beta1, if networks are in
2685 - The OS environment now includes network information.
2686 - Deleting of a network is now disallowed if any instance nic is using
2687 it, to prevent dangling references.
2688 - External storage is now documented in man pages.
2689 - The exclusive_storage flag can now only be set at nodegroup level.
2690 - Hbal can now submit an explicit priority with its jobs.
2691 - Many network related locking fixes.
2692 - Bump up the required pylint version to 0.25.1.
2693 - Fix the ``no_remember`` option in RAPI client.
2694 - Many ipolicy related tests, qa, and fixes.
2695 - Many documentation improvements and fixes.
2696 - Fix building with ``--disable-file-storage``.
2697 - Fix ``-q`` option in htools, which was broken if passed more than
2699 - Some haskell/python interaction improvements and fixes.
2700 - Fix iallocator in case of missing LVM storage.
2701 - Fix confd config load in case of ``--no-lvm-storage``.
2702 - The confd/query functionality is now mentioned in the security
2709 *(Released Wed, 6 Feb 2013)*
2711 This was the first beta release of the 2.7 series. All important changes
2712 are listed in the latest 2.7 entry.
2718 *(Released Fri, 21 Dec 2012)*
2720 Important behaviour change: hbal won't rebalance anymore instances which
2721 have the ``auto_balance`` attribute set to false. This was the intention
2722 all along, but until now it only skipped those from the N+1 memory
2723 reservation (DRBD-specific).
2725 A significant number of bug fixes in this release:
2727 - Fixed disk adoption interaction with ipolicy checks.
2728 - Fixed networking issues when instances are started, stopped or
2729 migrated, by forcing the tap device's MAC prefix to "fe" (issue 217).
2730 - Fixed the warning in cluster verify for shared storage instances not
2732 - Fixed removal of storage directory on shared file storage (issue 262).
2733 - Fixed validation of LVM volume group name in OpClusterSetParams
2734 (``gnt-cluster modify``) (issue 285).
2735 - Fixed runtime memory increases (``gnt-instance modify -m``).
2736 - Fixed live migration under Xen's ``xl`` mode.
2737 - Fixed ``gnt-instance console`` with ``xl``.
2738 - Fixed building with newer Haskell compiler/libraries.
2739 - Fixed PID file writing in Haskell daemons (confd); this prevents
2740 restart issues if confd was launched manually (outside of
2741 ``daemon-util``) while another copy of it was running
2742 - Fixed a type error when doing live migrations with KVM (issue 297) and
2743 the error messages for failing migrations have been improved.
2744 - Fixed opcode validation for the out-of-band commands (``gnt-node
2746 - Fixed a type error when unsetting OS hypervisor parameters (issue
2747 311); now it's possible to unset all OS-specific hypervisor
2749 - Fixed the ``dry-run`` mode for many operations: verification of
2750 results was over-zealous but didn't take into account the ``dry-run``
2751 operation, resulting in "wrong" failures.
2752 - Fixed bash completion in ``gnt-job list`` when the job queue has
2753 hundreds of entries; especially with older ``bash`` versions, this
2754 results in significant CPU usage.
2756 And lastly, a few other improvements have been made:
2758 - Added option to force master-failover without voting (issue 282).
2759 - Clarified error message on lock conflict (issue 287).
2760 - Logging of newly submitted jobs has been improved (issue 290).
2761 - Hostname checks have been made uniform between instance rename and
2763 - The ``--submit`` option is now supported by ``gnt-debug delay``.
2764 - Shutting down the master daemon by sending SIGTERM now stops it from
2765 processing jobs waiting for locks; instead, those jobs will be started
2766 once again after the master daemon is started the next time (issue
2768 - Support for Xen's ``xl`` program has been improved (besides the fixes
2770 - Reduced logging noise in the Haskell confd daemon (only show one log
2771 entry for each config reload, instead of two).
2772 - Several man page updates and typo fixes.
2778 *(Released Fri, 12 Oct 2012)*
2780 A small bugfix release. Among the bugs fixed:
2782 - Fixed double use of ``PRIORITY_OPT`` in ``gnt-node migrate``, that
2783 made the command unusable.
2784 - Commands that issue many jobs don't fail anymore just because some jobs
2785 take so long that other jobs are archived.
2786 - Failures during ``gnt-instance reinstall`` are reflected by the exit
2788 - Issue 190 fixed. Check for DRBD in cluster verify is enabled only when
2790 - When ``always_failover`` is set, ``--allow-failover`` is not required
2791 in migrate commands anymore.
2792 - ``bash_completion`` works even if extglob is disabled.
2793 - Fixed bug with locks that made failover for RDB-based instances fail.
2794 - Fixed bug in non-mirrored instance allocation that made Ganeti choose
2795 a random node instead of one based on the allocator metric.
2796 - Support for newer versions of pylint and pep8.
2797 - Hail doesn't fail anymore when trying to add an instance of type
2798 ``file``, ``sharedfile`` or ``rbd``.
2799 - Added new Makefile target to rebuild the whole distribution, so that
2800 all files are included.
2806 *(Released Fri, 27 Jul 2012)*
2809 .. attention:: The ``LUXI`` protocol has been made more consistent
2810 regarding its handling of command arguments. This, however, leads to
2811 incompatibility issues with previous versions. Please ensure that you
2812 restart Ganeti daemons soon after the upgrade, otherwise most
2813 ``LUXI`` calls (job submission, setting/resetting the drain flag,
2814 pausing/resuming the watcher, cancelling and archiving jobs, querying
2815 the cluster configuration) will fail.
2824 The current ``admin_up`` field, which used to denote whether an instance
2825 should be running or not, has been removed. Instead, ``admin_state`` is
2826 introduced, with 3 possible values -- ``up``, ``down`` and ``offline``.
2828 The rational behind this is that an instance being “down” can have
2831 - it could be down during a reboot
2832 - it could be temporarily be down for a reinstall
2833 - or it could be down because it is deprecated and kept just for its
2836 The previous Boolean state was making it difficult to do capacity
2837 calculations: should Ganeti reserve memory for a down instance? Now, the
2838 tri-state field makes it clear:
2840 - in ``up`` and ``down`` state, all resources are reserved for the
2841 instance, and it can be at any time brought up if it is down
2842 - in ``offline`` state, only disk space is reserved for it, but not
2845 The field can have an extra use: since the transition between ``up`` and
2846 ``down`` and vice-versus is done via ``gnt-instance start/stop``, but
2847 transition between ``offline`` and ``down`` is done via ``gnt-instance
2848 modify``, it is possible to given different rights to users. For
2849 example, owners of an instance could be allowed to start/stop it, but
2850 not transition it out of the offline state.
2852 Instance policies and specs
2853 +++++++++++++++++++++++++++
2855 In previous Ganeti versions, an instance creation request was not
2856 limited on the minimum size and on the maximum size just by the cluster
2857 resources. As such, any policy could be implemented only in third-party
2858 clients (RAPI clients, or shell wrappers over ``gnt-*``
2859 tools). Furthermore, calculating cluster capacity via ``hspace`` again
2860 required external input with regards to instance sizes.
2862 In order to improve these workflows and to allow for example better
2863 per-node group differentiation, we introduced instance specs, which
2866 - minimum instance disk size, disk count, memory size, cpu count
2867 - maximum values for the above metrics
2868 - and “standard” values (used in ``hspace`` to calculate the standard
2871 The minimum/maximum values can be also customised at node-group level,
2872 for example allowing more powerful hardware to support bigger instance
2875 Beside the instance specs, there are a few other settings belonging to
2876 the instance policy framework. It is possible now to customise, per
2877 cluster and node-group:
2879 - the list of allowed disk templates
2880 - the maximum ratio of VCPUs per PCPUs (to control CPU oversubscription)
2881 - the maximum ratio of instance to spindles (see below for more
2882 information) for local storage
2884 All these together should allow all tools that talk to Ganeti to know
2885 what are the ranges of allowed values for instances and the
2886 over-subscription that is allowed.
2888 For the VCPU/PCPU ratio, we already have the VCPU configuration from the
2889 instance configuration, and the physical CPU configuration from the
2890 node. For the spindle ratios however, we didn't track before these
2891 values, so new parameters have been added:
2893 - a new node parameter ``spindle_count``, defaults to 1, customisable at
2894 node group or node level
2895 - at new backend parameter (for instances), ``spindle_use`` defaults to 1
2897 Note that spindles in this context doesn't need to mean actual
2898 mechanical hard-drives; it's just a relative number for both the node
2899 I/O capacity and instance I/O consumption.
2901 Instance migration behaviour
2902 ++++++++++++++++++++++++++++
2904 While live-migration is in general desirable over failover, it is
2905 possible that for some workloads it is actually worse, due to the
2906 variable time of the “suspend” phase during live migration.
2908 To allow the tools to work consistently over such instances (without
2909 having to hard-code instance names), a new backend parameter
2910 ``always_failover`` has been added to control the migration/failover
2911 behaviour. When set to True, all migration requests for an instance will
2912 instead fall-back to failover.
2914 Instance memory ballooning
2915 ++++++++++++++++++++++++++
2917 Initial support for memory ballooning has been added. The memory for an
2918 instance is no longer fixed (backend parameter ``memory``), but instead
2919 can vary between minimum and maximum values (backend parameters
2920 ``minmem`` and ``maxmem``). Currently we only change an instance's
2923 - live migrating or failing over and instance and the target node
2924 doesn't have enough memory
2925 - user requests changing the memory via ``gnt-instance modify
2928 Instance CPU pinning
2929 ++++++++++++++++++++
2931 In order to control the use of specific CPUs by instance, support for
2932 controlling CPU pinning has been added for the Xen, HVM and LXC
2933 hypervisors. This is controlled by a new hypervisor parameter
2934 ``cpu_mask``; details about possible values for this are in the
2935 :manpage:`gnt-instance(8)`. Note that use of the most specific (precise
2936 VCPU-to-CPU mapping) form will work well only when all nodes in your
2937 cluster have the same amount of CPUs.
2942 Another area in which Ganeti was not customisable were the parameters
2943 used for storage configuration, e.g. how many stripes to use for LVM,
2944 DRBD resync configuration, etc.
2946 To improve this area, we've added disks parameters, which are
2947 customisable at cluster and node group level, and which allow to
2948 specify various parameters for disks (DRBD has the most parameters
2949 currently), for example:
2951 - DRBD resync algorithm and parameters (e.g. speed)
2952 - the default VG for meta-data volumes for DRBD
2953 - number of stripes for LVM (plain disk template)
2956 These parameters can be modified via ``gnt-cluster modify -D …`` and
2957 ``gnt-group modify -D …``, and are used at either instance creation (in
2958 case of LVM stripes, for example) or at disk “activation” time
2959 (e.g. resync speed).
2961 Rados block device support
2962 ++++++++++++++++++++++++++
2964 A Rados (http://ceph.com/wiki/Rbd) storage backend has been added,
2965 denoted by the ``rbd`` disk template type. This is considered
2966 experimental, feedback is welcome. For details on configuring it, see
2967 the :doc:`install` document and the :manpage:`gnt-cluster(8)` man page.
2972 The existing master IP functionality works well only in simple setups (a
2973 single network shared by all nodes); however, if nodes belong to
2974 different networks, then the ``/32`` setup and lack of routing
2975 information is not enough.
2977 To allow the master IP to function well in more complex cases, the
2978 system was reworked as follows:
2980 - a master IP netmask setting has been added
2981 - the master IP activation/turn-down code was moved from the node daemon
2982 to a separate script
2983 - whether to run the Ganeti-supplied master IP script or a user-supplied
2984 on is a ``gnt-cluster init`` setting
2986 Details about the location of the standard and custom setup scripts are
2987 in the man page :manpage:`gnt-cluster(8)`; for information about the
2988 setup script protocol, look at the Ganeti-supplied script.
2993 The `SPICE <http://www.linux-kvm.org/page/SPICE>`_ support has been
2996 It is now possible to use TLS-protected connections, and when renewing
2997 or changing the cluster certificates (via ``gnt-cluster renew-crypto``,
2998 it is now possible to specify spice or spice CA certificates. Also, it
2999 is possible to configure a password for SPICE sessions via the
3000 hypervisor parameter ``spice_password_file``.
3002 There are also new parameters to control the compression and streaming
3003 options (e.g. ``spice_image_compression``, ``spice_streaming_video``,
3004 etc.). For details, see the man page :manpage:`gnt-instance(8)` and look
3005 for the spice parameters.
3007 Lastly, it is now possible to see the SPICE connection information via
3008 ``gnt-instance console``.
3013 A new tool (``tools/ovfconverter``) has been added that supports
3014 conversion between Ganeti and the `Open Virtualization Format
3015 <http://en.wikipedia.org/wiki/Open_Virtualization_Format>`_ (both to and
3018 This relies on the ``qemu-img`` tool to convert the disk formats, so the
3019 actual compatibility with other virtualization solutions depends on it.
3021 Confd daemon changes
3022 ++++++++++++++++++++
3024 The configuration query daemon (``ganeti-confd``) is now optional, and
3025 has been rewritten in Haskell; whether to use the daemon at all, use the
3026 Python (default) or the Haskell version is selectable at configure time
3027 via the ``--enable-confd`` parameter, which can take one of the
3028 ``haskell``, ``python`` or ``no`` values. If not used, disabling the
3029 daemon will result in a smaller footprint; for larger systems, we
3030 welcome feedback on the Haskell version which might become the default
3033 If you want to use ``gnt-node list-drbd`` you need to have the Haskell
3034 daemon running. The Python version doesn't implement the new call.
3037 User interface changes
3038 ~~~~~~~~~~~~~~~~~~~~~~
3040 We have replaced the ``--disks`` option of ``gnt-instance
3041 replace-disks`` with a more flexible ``--disk`` option, which allows
3042 adding and removing disks at arbitrary indices (Issue 188). Furthermore,
3043 disk size and mode can be changed upon recreation (via ``gnt-instance
3044 recreate-disks``, which accepts the same ``--disk`` option).
3046 As many people are used to a ``show`` command, we have added that as an
3047 alias to ``info`` on all ``gnt-*`` commands.
3049 The ``gnt-instance grow-disk`` command has a new mode in which it can
3050 accept the target size of the disk, instead of the delta; this can be
3051 more safe since two runs in absolute mode will be idempotent, and
3052 sometimes it's also easier to specify the desired size directly.
3054 Also the handling of instances with regard to offline secondaries has
3055 been improved. Instance operations should not fail because one of it's
3056 secondary nodes is offline, even though it's safe to proceed.
3058 A new command ``list-drbd`` has been added to the ``gnt-node`` script to
3059 support debugging of DRBD issues on nodes. It provides a mapping of DRBD
3060 minors to instance name.
3065 RAPI coverage has improved, with (for example) new resources for
3066 recreate-disks, node power-cycle, etc.
3071 There is partial support for ``xl`` in the Xen hypervisor; feedback is
3074 Python 2.7 is better supported, and after Ganeti 2.6 we will investigate
3075 whether to still support Python 2.4 or move to Python 2.6 as minimum
3078 Support for Fedora has been slightly improved; the provided example
3079 init.d script should work better on it and the INSTALL file should
3080 document the needed dependencies.
3085 The deprecated ``QueryLocks`` LUXI request has been removed. Use
3086 ``Query(what=QR_LOCK, ...)`` instead.
3088 The LUXI requests :pyeval:`luxi.REQ_QUERY_JOBS`,
3089 :pyeval:`luxi.REQ_QUERY_INSTANCES`, :pyeval:`luxi.REQ_QUERY_NODES`,
3090 :pyeval:`luxi.REQ_QUERY_GROUPS`, :pyeval:`luxi.REQ_QUERY_EXPORTS` and
3091 :pyeval:`luxi.REQ_QUERY_TAGS` are deprecated and will be removed in a
3092 future version. :pyeval:`luxi.REQ_QUERY` should be used instead.
3094 RAPI client: ``CertificateError`` now derives from
3095 ``GanetiApiError``. This should make it more easy to handle Ganeti
3098 Deprecation warnings due to PyCrypto/paramiko import in
3099 ``tools/setup-ssh`` have been silenced, as usually they are safe; please
3100 make sure to run an up-to-date paramiko version, if you use this tool.
3102 The QA scripts now depend on Python 2.5 or above (the main code base
3103 still works with Python 2.4).
3105 The configuration file (``config.data``) is now written without
3106 indentation for performance reasons; if you want to edit it, it can be
3107 re-formatted via ``tools/fmtjson``.
3109 A number of bugs has been fixed in the cluster merge tool.
3111 ``x509`` certification verification (used in import-export) has been
3112 changed to allow the same clock skew as permitted by the cluster
3113 verification. This will remove some rare but hard to diagnose errors in
3120 *(Released Thu, 19 Jul 2012)*
3122 Very few changes from rc4 to the final release, only bugfixes:
3124 - integrated fixes from release 2.5.2 (fix general boot flag for KVM
3125 instance, fix CDROM booting for KVM instances)
3126 - fixed node group modification of node parameters
3127 - fixed issue in LUClusterVerifyGroup with multi-group clusters
3128 - fixed generation of bash completion to ensure a stable ordering
3135 *(Released Fri, 13 Jul 2012)*
3137 Third release candidate for 2.6. The following changes were done from
3140 - Fixed ``UpgradeConfig`` w.r.t. to disk parameters on disk objects.
3141 - Fixed an inconsistency in the LUXI protocol with the provided
3142 arguments (NOT backwards compatible)
3143 - Fixed a bug with node groups ipolicy where ``min`` was greater than
3144 the cluster ``std`` value
3145 - Implemented a new ``gnt-node list-drbd`` call to list DRBD minors for
3146 easier instance debugging on nodes (requires ``hconfd`` to work)
3152 *(Released Tue, 03 Jul 2012)*
3154 Second release candidate for 2.6. The following changes were done from
3157 - Fixed ``gnt-cluster verify`` regarding ``master-ip-script`` on non
3159 - Fixed a RAPI regression on missing beparams/memory
3160 - Fixed redistribution of files on offline nodes
3161 - Added possibility to run activate-disks even though secondaries are
3162 offline. With this change it relaxes also the strictness on some other
3163 commands which use activate disks internally:
3164 * ``gnt-instance start|reboot|rename|backup|export``
3165 - Made it possible to remove safely an instance if its secondaries are
3167 - Made it possible to reinstall even though secondaries are offline
3173 *(Released Mon, 25 Jun 2012)*
3175 First release candidate for 2.6. The following changes were done from
3178 - Fixed bugs with disk parameters and ``rbd`` templates as well as
3180 - Made ``gnt-instance modify`` more consistent regarding new NIC/Disk
3181 behaviour. It supports now the modify operation
3182 - ``hcheck`` implemented to analyze cluster health and possibility of
3183 improving health by rebalance
3184 - ``hbal`` has been improved in dealing with split instances
3190 *(Released Mon, 11 Jun 2012)*
3192 Second beta release of 2.6. The following changes were done from beta2
3195 - Fixed ``daemon-util`` with non-root user models
3196 - Fixed creation of plain instances with ``--no-wait-for-sync``
3197 - Fix wrong iv_names when running ``cfgupgrade``
3198 - Export more information in RAPI group queries
3199 - Fixed bug when changing instance network interfaces
3200 - Extended burnin to do NIC changes
3201 - query: Added ``<``, ``>``, ``<=``, ``>=`` comparison operators
3202 - Changed default for DRBD barriers
3203 - Fixed DRBD error reporting for syncer rate
3204 - Verify the options on disk parameters
3206 And of course various fixes to documentation and improved unittests and
3213 *(Released Wed, 23 May 2012)*
3215 First beta release of 2.6. The following changes were done from beta1 to
3218 - integrated patch for distributions without ``start-stop-daemon``
3219 - adapted example init.d script to work on Fedora
3220 - fixed log handling in Haskell daemons
3221 - adapted checks in the watcher for pycurl linked against libnss
3222 - add partial support for ``xl`` instead of ``xm`` for Xen
3223 - fixed a type issue in cluster verification
3224 - fixed ssconf handling in the Haskell code (was breaking confd in IPv6
3227 Plus integrated fixes from the 2.5 branch:
3229 - fixed ``kvm-ifup`` to use ``/bin/bash``
3230 - fixed parallel build failures
3231 - KVM live migration when using a custom keymap
3237 *(Released Tue, 24 Jul 2012)*
3239 A small bugfix release, with no new features:
3241 - fixed bash-isms in kvm-ifup, for compatibility with systems which use a
3242 different default shell (e.g. Debian, Ubuntu)
3243 - fixed KVM startup and live migration with a custom keymap (fixes Issue
3244 243 and Debian bug #650664)
3245 - fixed compatibility with KVM versions that don't support multiple boot
3246 devices (fixes Issue 230 and Debian bug #624256)
3248 Additionally, a few fixes were done to the build system (fixed parallel
3249 build failures) and to the unittests (fixed race condition in test for
3250 FileID functions, and the default enable/disable mode for QA test is now
3257 *(Released Fri, 11 May 2012)*
3259 A small bugfix release.
3261 The main issues solved are on the topic of compatibility with newer LVM
3264 - fixed parsing of ``lv_attr`` field
3265 - adapted to new ``vgreduce --removemissing`` behaviour where sometimes
3266 the ``--force`` flag is needed
3268 Also on the topic of compatibility, ``tools/lvmstrap`` has been changed
3269 to accept kernel 3.x too (was hardcoded to 2.6.*).
3271 A regression present in 2.5.0 that broke handling (in the gnt-* scripts)
3272 of hook results and that also made display of other errors suboptimal
3273 was fixed; the code behaves now like 2.4 and earlier.
3275 Another change in 2.5, the cleanup of the OS scripts environment, is too
3276 aggressive: it removed even the ``PATH`` variable, which requires the OS
3277 scripts to *always* need to export it. Since this is a bit too strict,
3278 we now export a minimal PATH, the same that we export for hooks.
3280 The fix for issue 201 (Preserve bridge MTU in KVM ifup script) was
3281 integrated into this release.
3283 Finally, a few other miscellaneous changes were done (no new features,
3284 just small improvements):
3286 - Fix ``gnt-group --help`` display
3287 - Fix hardcoded Xen kernel path
3288 - Fix grow-disk handling of invalid units
3289 - Update synopsis for ``gnt-cluster repair-disk-sizes``
3290 - Accept both PUT and POST in noded (makes future upgrade to 2.6 easier)
3296 *(Released Thu, 12 Apr 2012)*
3298 Incompatible/important changes and bugfixes
3299 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3301 - The default of the ``/2/instances/[instance_name]/rename`` RAPI
3302 resource's ``ip_check`` parameter changed from ``True`` to ``False``
3303 to match the underlying LUXI interface.
3304 - The ``/2/nodes/[node_name]/evacuate`` RAPI resource was changed to use
3305 body parameters, see :doc:`RAPI documentation <rapi>`. The server does
3306 not maintain backwards-compatibility as the underlying operation
3307 changed in an incompatible way. The RAPI client can talk to old
3308 servers, but it needs to be told so as the return value changed.
3309 - When creating file-based instances via RAPI, the ``file_driver``
3310 parameter no longer defaults to ``loop`` and must be specified.
3311 - The deprecated ``bridge`` NIC parameter is no longer supported. Use
3313 - Support for the undocumented and deprecated RAPI instance creation
3314 request format version 0 has been dropped. Use version 1, supported
3315 since Ganeti 2.1.3 and :doc:`documented <rapi>`, instead.
3316 - Pyparsing 1.4.6 or above is required, see :doc:`installation
3317 documentation <install>`.
3318 - The "cluster-verify" hooks are now executed per group by the
3319 ``OP_CLUSTER_VERIFY_GROUP`` opcode. This maintains the same behavior
3320 if you just run ``gnt-cluster verify``, which generates one opcode per
3322 - The environment as passed to the OS scripts is cleared, and thus no
3323 environment variables defined in the node daemon's environment will be
3324 inherited by the scripts.
3325 - The :doc:`iallocator <iallocator>` mode ``multi-evacuate`` has been
3327 - :doc:`New iallocator modes <design-multi-reloc>` have been added to
3328 support operations involving multiple node groups.
3329 - Offline nodes are ignored when failing over an instance.
3330 - Support for KVM version 1.0, which changed the version reporting format
3332 - TCP/IP ports used by DRBD disks are returned to a pool upon instance
3334 - ``Makefile`` is now compatible with Automake 1.11.2
3335 - Includes all bugfixes made in the 2.4 series
3340 - The ganeti-htools project has been merged into the ganeti-core source
3341 tree and will be built as part of Ganeti (see :doc:`install-quick`).
3342 - Implemented support for :doc:`shared storage <design-shared-storage>`.
3343 - Add support for disks larger than 2 TB in ``lvmstrap`` by supporting
3344 GPT-style partition tables (requires `parted
3345 <http://www.gnu.org/s/parted/>`_).
3346 - Added support for floppy drive and 2nd CD-ROM drive in KVM hypervisor.
3347 - Allowed adding tags on instance creation.
3348 - Export instance tags to hooks (``INSTANCE_TAGS``, see :doc:`hooks`)
3349 - Allow instances to be started in a paused state, enabling the user to
3350 see the complete console output on boot using the console.
3351 - Added new hypervisor flag to control default reboot behaviour
3352 (``reboot_behavior``).
3353 - Added support for KVM keymaps (hypervisor parameter ``keymap``).
3354 - Improved out-of-band management support:
3356 - Added ``gnt-node health`` command reporting the health status of
3358 - Added ``gnt-node power`` command to manage power status of nodes.
3359 - Added command for emergency power-off (EPO), ``gnt-cluster epo``.
3361 - Instance migration can fall back to failover if instance is not
3363 - Filters can be used when listing nodes, instances, groups and locks;
3364 see :manpage:`ganeti(7)` manpage.
3365 - Added post-execution status as variables to :doc:`hooks <hooks>`
3367 - Instance tags are exported/imported together with the instance.
3368 - When given an explicit job ID, ``gnt-job info`` will work for archived
3370 - Jobs can define dependencies on other jobs (not yet supported via
3371 RAPI or command line, but used by internal commands and usable via
3374 - Lock monitor (``gnt-debug locks``) shows jobs waiting for
3377 - Instance failover is now available as a RAPI resource
3378 (``/2/instances/[instance_name]/failover``).
3379 - ``gnt-instance info`` defaults to static information if primary node
3381 - Opcodes have a new ``comment`` attribute.
3382 - Added basic SPICE support to KVM hypervisor.
3383 - ``tools/ganeti-listrunner`` allows passing of arguments to executable.
3385 Node group improvements
3386 ~~~~~~~~~~~~~~~~~~~~~~~
3388 - ``gnt-cluster verify`` has been modified to check groups separately,
3389 thereby improving performance.
3390 - Node group support has been added to ``gnt-cluster verify-disks``,
3391 which now operates per node group.
3392 - Watcher has been changed to work better with node groups.
3394 - One process and state file per node group.
3395 - Slow watcher in one group doesn't block other group's watcher.
3397 - Added new command, ``gnt-group evacuate``, to move all instances in a
3398 node group to other groups.
3399 - Added ``gnt-instance change-group`` to move an instance to another
3401 - ``gnt-cluster command`` and ``gnt-cluster copyfile`` now support
3402 per-group operations.
3403 - Node groups can be tagged.
3404 - Some operations switch from an exclusive to a shared lock as soon as
3406 - Instance's primary and secondary nodes' groups are now available as
3407 query fields (``pnode.group``, ``pnode.group.uuid``, ``snodes.group``
3408 and ``snodes.group.uuid``).
3413 - Numerous updates to documentation and manpages.
3415 - :doc:`RAPI <rapi>` documentation now has detailed parameter
3417 - Some opcode/job results are now also documented, see :doc:`RAPI
3420 - A lockset's internal lock is now also visible in lock monitor.
3421 - Log messages from job queue workers now contain information about the
3422 opcode they're processing.
3423 - ``gnt-instance console`` no longer requires the instance lock.
3424 - A short delay when waiting for job changes reduces the number of LUXI
3425 requests significantly.
3426 - DRBD metadata volumes are overwritten with zeros during disk creation.
3427 - Out-of-band commands no longer acquire the cluster lock in exclusive
3429 - ``devel/upload`` now uses correct permissions for directories.
3435 *(Released Fri, 23 Mar 2012)*
3437 This was the sixth release candidate of the 2.5 series.
3443 *(Released Mon, 9 Jan 2012)*
3445 This was the fifth release candidate of the 2.5 series.
3451 *(Released Thu, 27 Oct 2011)*
3453 This was the fourth release candidate of the 2.5 series.
3459 *(Released Wed, 26 Oct 2011)*
3461 This was the third release candidate of the 2.5 series.
3467 *(Released Tue, 18 Oct 2011)*
3469 This was the second release candidate of the 2.5 series.
3475 *(Released Tue, 4 Oct 2011)*
3477 This was the first release candidate of the 2.5 series.
3483 *(Released Wed, 31 Aug 2011)*
3485 This was the third beta release of the 2.5 series.
3491 *(Released Mon, 22 Aug 2011)*
3493 This was the second beta release of the 2.5 series.
3499 *(Released Fri, 12 Aug 2011)*
3501 This was the first beta release of the 2.5 series.
3507 *(Released Thu, 27 Oct 2011)*
3509 - Fixed bug when parsing command line parameter values ending in
3511 - Fixed assertion error after unclean master shutdown
3512 - Disable HTTP client pool for RPC, significantly reducing memory usage
3514 - Fixed queue archive creation with wrong permissions
3520 *(Released Tue, 23 Aug 2011)*
3524 - Fixed documentation for importing with ``--src-dir`` option
3525 - Fixed a bug in ``ensure-dirs`` with queue/archive permissions
3526 - Fixed a parsing issue with DRBD 8.3.11 in the Linux kernel
3532 *(Released Fri, 5 Aug 2011)*
3534 Many bug-fixes and a few small features:
3536 - Fixed argument order in ``ReserveLV`` and ``ReserveMAC`` which caused
3537 issues when you tried to add an instance with two MAC addresses in one
3539 - KVM: fixed per-instance stored UID value
3540 - KVM: configure bridged NICs at migration start
3541 - KVM: Fix a bug where instance will not start with never KVM versions
3543 - Added OS search path to ``gnt-cluster info``
3544 - Fixed an issue with ``file_storage_dir`` where you were forced to
3545 provide an absolute path, but the documentation states it is a
3546 relative path, the documentation was right
3547 - Added a new parameter to instance stop/start called ``--no-remember``
3548 that will make the state change to not be remembered
3549 - Implemented ``no_remember`` at RAPI level
3550 - Improved the documentation
3551 - Node evacuation: don't call IAllocator if node is already empty
3552 - Fixed bug in DRBD8 replace disks on current nodes
3553 - Fixed bug in recreate-disks for DRBD instances
3554 - Moved assertion checking locks in ``gnt-instance replace-disks``
3555 causing it to abort with not owning the right locks for some situation
3556 - Job queue: Fixed potential race condition when cancelling queued jobs
3557 - Fixed off-by-one bug in job serial generation
3558 - ``gnt-node volumes``: Fix instance names
3559 - Fixed aliases in bash completion
3560 - Fixed a bug in reopening log files after being sent a SIGHUP
3561 - Added a flag to burnin to allow specifying VCPU count
3562 - Bugfixes to non-root Ganeti configuration
3568 *(Released Thu, 12 May 2011)*
3570 Many bug-fixes and a few new small features:
3572 - Fixed a bug related to log opening failures
3573 - Fixed a bug in instance listing with orphan instances
3574 - Fixed a bug which prevented resetting the cluster-level node parameter
3575 ``oob_program`` to the default
3576 - Many fixes related to the ``cluster-merge`` tool
3577 - Fixed a race condition in the lock monitor, which caused failures
3578 during (at least) creation of many instances in parallel
3579 - Improved output for gnt-job info
3580 - Removed the quiet flag on some ssh calls which prevented debugging
3582 - Improved the N+1 failure messages in cluster verify by actually
3583 showing the memory values (needed and available)
3584 - Increased lock attempt timeouts so that when executing long operations
3585 (e.g. DRBD replace-disks) other jobs do not enter 'blocking acquire'
3586 too early and thus prevent the use of the 'fair' mechanism
3587 - Changed instance query data (``gnt-instance info``) to not acquire
3588 locks unless needed, thus allowing its use on locked instance if only
3589 static information is asked for
3590 - Improved behaviour with filesystems that do not support rename on an
3592 - Fixed the behaviour of ``prealloc_wipe_disks`` cluster parameter which
3593 kept locks on all nodes during the wipe, which is unneeded
3594 - Fixed ``gnt-watcher`` handling of errors during hooks execution
3595 - Fixed bug in ``prealloc_wipe_disks`` with small disk sizes (less than
3596 10GiB) which caused the wipe to fail right at the end in some cases
3597 - Fixed master IP activation when doing master failover with no-voting
3598 - Fixed bug in ``gnt-node add --readd`` which allowed the re-adding of
3599 the master node itself
3600 - Fixed potential data-loss in under disk full conditions, where Ganeti
3601 wouldn't check correctly the return code and would consider
3602 partially-written files 'correct'
3603 - Fixed bug related to multiple VGs and DRBD disk replacing
3604 - Added new disk parameter ``metavg`` that allows placement of the meta
3605 device for DRBD in a different volume group
3606 - Fixed error handling in the node daemon when the system libc doesn't
3607 have major number 6 (i.e. if ``libc.so.6`` is not the actual libc)
3608 - Fixed lock release during replace-disks, which kept cluster-wide locks
3609 when doing disk replaces with an iallocator script
3610 - Added check for missing bridges in cluster verify
3611 - Handle EPIPE errors while writing to the terminal better, so that
3612 piping the output to e.g. ``less`` doesn't cause a backtrace
3613 - Fixed rare case where a ^C during Luxi calls could have been
3614 interpreted as server errors, instead of simply terminating
3615 - Fixed a race condition in LUGroupAssignNodes (``gnt-group
3617 - Added a few more parameters to the KVM hypervisor, allowing a second
3618 CDROM, custom disk type for CDROMs and a floppy image
3619 - Removed redundant message in instance rename when the name is given
3621 - Added option to ``gnt-instance recreate-disks`` to allow creating the
3622 disks on new nodes, allowing recreation when the original instance
3623 nodes are completely gone
3624 - Added option when converting disk templates to DRBD to skip waiting
3625 for the resync, in order to make the instance available sooner
3626 - Added two new variables to the OS scripts environment (containing the
3628 - Made the root_path and optional parameter for the xen-pvm hypervisor,
3629 to allow use of ``pvgrub`` as bootloader
3630 - Changed the instance memory modifications to only check out-of-memory
3631 conditions on memory increases, and turned the secondary node warnings
3632 into errors (they can still be overridden via ``--force``)
3633 - Fixed the handling of a corner case when the Python installation gets
3634 corrupted (e.g. a bad disk) while ganeti-noded is running and we try
3635 to execute a command that doesn't exist
3636 - Fixed a bug in ``gnt-instance move`` (LUInstanceMove) when the primary
3637 node of the instance returned failures during instance shutdown; this
3638 adds the option ``--ignore-consistency`` to gnt-instance move
3640 And as usual, various improvements to the error messages, documentation
3647 *(Released Wed, 09 Mar 2011)*
3649 Emergency bug-fix release. ``tools/cfgupgrade`` was broken and overwrote
3650 the RAPI users file if run twice (even with ``--dry-run``).
3652 The release fixes that bug (nothing else changed).
3658 *(Released Mon, 07 Mar 2011)*
3660 Final 2.4.0 release. Just a few small fixes:
3662 - Fixed RAPI node evacuate
3663 - Fixed the kvm-ifup script
3664 - Fixed internal error handling for special job cases
3665 - Updated man page to specify the escaping feature for options
3671 *(Released Mon, 28 Feb 2011)*
3673 A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
3674 that this feature wiped the disks of the wrong instance, leading to loss
3679 - Fixed title of query field containing instance name
3680 - Expanded the glossary in the documentation
3681 - Fixed one unittest (internal issue)
3687 *(Released Mon, 21 Feb 2011)*
3689 A number of bug fixes plus just a couple functionality changes.
3691 On the user-visible side, the ``gnt-* list`` command output has changed
3692 with respect to "special" field states. The current rc1 style of display
3693 can be re-enabled by passing a new ``--verbose`` (``-v``) flag, but in
3694 the default output mode special fields states are displayed as follows:
3696 - Offline resource: ``*``
3697 - Unavailable/not applicable: ``-``
3698 - Data missing (RPC failure): ``?``
3699 - Unknown field: ``??``
3701 Another user-visible change is the addition of ``--force-join`` to
3706 - ``tools/cluster-merge`` has seen many fixes and is now enabled again
3707 - Fixed regression in RAPI/instance reinstall where all parameters were
3708 required (instead of optional)
3709 - Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
3710 - Fixed iallocator usage (offline nodes were not considered offline)
3711 - Fixed ``gnt-node list`` with respect to non-vm_capable nodes
3712 - Fixed hypervisor and OS parameter validation with respect to
3713 non-vm_capable nodes
3714 - Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
3716 - Fixed ``tools/listrunner`` with respect to agent-based usage
3722 *(Released Fri, 4 Feb 2011)*
3724 Many changes and fixes since the beta1 release. While there were some
3725 internal changes, the code has been mostly stabilised for the RC
3728 Note: the dumb allocator was removed in this release, as it was not kept
3729 up-to-date with the IAllocator protocol changes. It is recommended to
3730 use the ``hail`` command from the ganeti-htools package.
3732 Note: the 2.4 and up versions of Ganeti are not compatible with the
3733 0.2.x branch of ganeti-htools. You need to upgrade to
3734 ganeti-htools-0.3.0 (or later).
3736 Regressions fixed from 2.3
3737 ~~~~~~~~~~~~~~~~~~~~~~~~~~
3739 - Fixed the ``gnt-cluster verify-disks`` command
3740 - Made ``gnt-cluster verify-disks`` work in parallel (as opposed to
3742 - Fixed disk adoption breakage
3743 - Fixed wrong headers in instance listing for field aliases
3748 - Fixed corner case in KVM handling of NICs
3749 - Fixed many cases of wrong handling of non-vm_capable nodes
3750 - Fixed a bug where a missing instance symlink was not possible to
3751 recreate with any ``gnt-*`` command (now ``gnt-instance
3752 activate-disks`` does it)
3753 - Fixed the volume group name as reported by ``gnt-cluster
3755 - Increased timeouts for the import-export code, hopefully leading to
3756 fewer aborts due network or instance timeouts
3757 - Fixed bug in ``gnt-node list-storage``
3758 - Fixed bug where not all daemons were started on cluster
3759 initialisation, but only at the first watcher run
3760 - Fixed many bugs in the OOB implementation
3761 - Fixed watcher behaviour in presence of instances with offline
3763 - Fixed instance list output for instances running on the wrong node
3764 - a few fixes to the cluster-merge tool, but it still cannot merge
3765 multi-node groups (currently it is not recommended to use this tool)
3771 - Improved network configuration for the KVM hypervisor
3772 - Added e1000 as a supported NIC for Xen-HVM
3773 - Improved the lvmstrap tool to also be able to use partitions, as
3774 opposed to full disks
3775 - Improved speed of disk wiping (the cluster parameter
3776 ``prealloc_wipe_disks``, so that it has a low impact on the total time
3777 of instance creations
3778 - Added documentation for the OS parameters
3779 - Changed ``gnt-instance deactivate-disks`` so that it can work if the
3780 hypervisor is not responding
3781 - Added display of blacklisted and hidden OS information in
3782 ``gnt-cluster info``
3783 - Extended ``gnt-cluster verify`` to also validate hypervisor, backend,
3784 NIC and node parameters, which might create problems with currently
3785 invalid (but undetected) configuration files, but prevents validation
3786 failures when unrelated parameters are modified
3787 - Changed cluster initialisation to wait for the master daemon to become
3789 - Expanded the RAPI interface:
3791 - Added config redistribution resource
3792 - Added activation/deactivation of instance disks
3793 - Added export of console information
3795 - Implemented log file reopening on SIGHUP, which allows using
3796 logrotate(8) for the Ganeti log files
3797 - Added a basic OOB helper script as an example
3803 *(Released Fri, 14 Jan 2011)*
3808 - Fixed timezone issues when formatting timestamps
3809 - Added support for node groups, available via ``gnt-group`` and other
3811 - Added out-of-band framework and management, see :doc:`design
3812 document <design-oob>`
3813 - Removed support for roman numbers from ``gnt-node list`` and
3814 ``gnt-instance list``.
3815 - Allowed modification of master network interface via ``gnt-cluster
3816 modify --master-netdev``
3817 - Accept offline secondaries while shutting down instance disks
3818 - Added ``blockdev_prefix`` parameter to Xen PVM and HVM hypervisors
3819 - Added support for multiple LVM volume groups
3820 - Avoid sorting nodes for ``gnt-node list`` if specific nodes are
3822 - Added commands to list available fields:
3824 - ``gnt-node list-fields``
3825 - ``gnt-group list-fields``
3826 - ``gnt-instance list-fields``
3828 - Updated documentation and man pages
3833 - Moved ``rapi_users`` file into separate directory, now named
3834 ``.../ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
3836 - Added new tool for running commands on many machines,
3837 ``tools/ganeti-listrunner``
3838 - Implemented more verbose result in ``OpInstanceConsole`` opcode, also
3839 improving the ``gnt-instance console`` output
3840 - Allowed customisation of disk index separator at ``configure`` time
3841 - Export node group allocation policy to :doc:`iallocator <iallocator>`
3842 - Added support for non-partitioned md disks in ``lvmstrap``
3843 - Added script to gracefully power off KVM instances
3844 - Split ``utils`` module into smaller parts
3845 - Changed query operations to return more detailed information, e.g.
3846 whether an information is unavailable due to an offline node. To use
3847 this new functionality, the LUXI call ``Query`` must be used. Field
3848 information is now stored by the master daemon and can be retrieved
3849 using ``QueryFields``. Instances, nodes and groups can also be queried
3850 using the new opcodes ``OpQuery`` and ``OpQueryFields`` (not yet
3851 exposed via RAPI). The following commands make use of this
3852 infrastructure change:
3854 - ``gnt-group list``
3855 - ``gnt-group list-fields``
3857 - ``gnt-node list-fields``
3858 - ``gnt-instance list``
3859 - ``gnt-instance list-fields``
3860 - ``gnt-debug locks``
3865 - New RAPI resources (see :doc:`rapi`):
3869 - ``/2/groups/[group_name]``
3870 - ``/2/groups/[group_name]/assign-nodes``
3871 - ``/2/groups/[group_name]/modify``
3872 - ``/2/groups/[group_name]/rename``
3873 - ``/2/instances/[instance_name]/disk/[disk_index]/grow``
3877 - Implemented ``no_install`` for instance creation
3878 - Implemented OS parameters for instance reinstallation, allowing
3879 use of special settings on reinstallation (e.g. for preserving data)
3884 - Added IPv6 support in import/export
3885 - Pause DRBD synchronization while wiping disks on instance creation
3886 - Updated unittests and QA scripts
3887 - Improved network parameters passed to KVM
3888 - Converted man pages from docbook to reStructuredText
3894 *(Released Mon, 20 Dec 2010)*
3896 Released version 2.3.1~rc1 without any changes.
3902 *(Released Wed, 1 Dec 2010)*
3904 - impexpd: Disable OpenSSL compression in socat if possible (backport
3905 from master, commit e90739d625b, see :doc:`installation guide
3906 <install-quick>` for details)
3907 - Changed unittest coverage report to exclude test scripts
3908 - Added script to check version format
3914 *(Released Wed, 1 Dec 2010)*
3916 Released version 2.3.0~rc1 without any changes.
3922 *(Released Fri, 19 Nov 2010)*
3924 A number of bugfixes and documentation updates:
3926 - Update ganeti-os-interface documentation
3927 - Fixed a bug related to duplicate MACs or similar items which should be
3929 - Fix breakage in OS state modify
3930 - Reinstall instance: disallow offline secondaries (fixes bug related to
3931 OS changing but reinstall failing)
3932 - plus all the other fixes between 2.2.1 and 2.2.2
3938 *(Released Tue, 2 Nov 2010)*
3940 - Fixed clearing of the default iallocator using ``gnt-cluster modify``
3941 - Fixed master failover race with watcher
3942 - Fixed a bug in ``gnt-node modify`` which could lead to an inconsistent
3944 - Accept previously stopped instance for export with instance removal
3945 - Simplify and extend the environment variables for instance OS scripts
3946 - Added new node flags, ``master_capable`` and ``vm_capable``
3947 - Added optional instance disk wiping prior during allocation. This is a
3948 cluster-wide option and can be set/modified using
3949 ``gnt-cluster {init,modify} --prealloc-wipe-disks``.
3950 - Added IPv6 support, see :doc:`design document <design-2.3>` and
3951 :doc:`install-quick`
3952 - Added a new watcher option (``--ignore-pause``)
3953 - Added option to ignore offline node on instance start/stop
3954 (``--ignore-offline``)
3955 - Allow overriding OS parameters with ``gnt-instance reinstall``
3956 - Added ability to change node's secondary IP address using ``gnt-node
3958 - Implemented privilege separation for all daemons except
3959 ``ganeti-noded``, see ``configure`` options
3960 - Complain if an instance's disk is marked faulty in ``gnt-cluster
3962 - Implemented job priorities (see ``ganeti(7)`` manpage)
3963 - Ignore failures while shutting down instances during failover from
3965 - Exit daemon's bootstrap process only once daemon is ready
3966 - Export more information via ``LUInstanceQuery``/remote API
3967 - Improved documentation, QA and unittests
3968 - RAPI daemon now watches ``rapi_users`` all the time and doesn't need a
3969 restart if the file was created or changed
3970 - Added LUXI protocol version sent with each request and response,
3971 allowing detection of server/client mismatches
3972 - Moved the Python scripts among gnt-* and ganeti-* into modules
3973 - Moved all code related to setting up SSH to an external script,
3975 - Infrastructure changes for node group support in future versions
3981 *(Released Fri, 19 Nov 2010)*
3983 A few small bugs fixed, and some improvements to the build system:
3985 - Fix documentation regarding conversion to drbd
3986 - Fix validation of parameters in cluster modify (``gnt-cluster modify
3988 - Fix error handling in node modify with multiple changes
3989 - Allow remote imports without checked names
3995 *(Released Tue, 19 Oct 2010)*
3997 - Disable SSL session ID cache in RPC client
4003 *(Released Thu, 14 Oct 2010)*
4005 - Fix interaction between Curl/GnuTLS and the Python's HTTP server
4006 (thanks Apollon Oikonomopoulos!), finally allowing the use of Curl
4008 - Fix problems with interaction between Curl and Python's HTTP server,
4009 resulting in increased speed in many RPC calls
4010 - Improve our release script to prevent breakage with older aclocal and
4017 *(Released Thu, 7 Oct 2010)*