Allow IPv6 for vnc_bind_address (#1257)
[ganeti-github.git] / NEWS
1 News
2 ====
3
4
5 Version 2.18.0 alpha1
6 ---------------------
7
8 *(unreleased)*
9
10
11 Version 2.17.0 beta1
12 --------------------
13
14 *(Released Mon, 22 Feb 2016)*
15
16 Incompatible/important changes
17 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18
19 - The IAllocator protocol has been extended by a new ``hv_state`` parameter.
20   This new parameter is used to estimate the amount of memory utilized by
21   the node. It replaces ``reserved_mem`` on hypervisors other than ``xen-pvm``
22   and ``xen-hvm`` because ``reserved_mem`` was reported incorrectly on them.
23   If this ``hv_state`` parameter is not presented in an iallocator input, the
24   old ``reserved_mem`` will be used.
25 - Tools now log into a separate log file ``tools.log``. Also, each log
26   message of tools is now properly labelled with the name of the tool
27   that submitted the message.
28 - The options ``--debug`` and ``--verbose`` of ``gnt-cluster
29   renew-crypto`` and ``gnt-node {add,remove,modify}`` now (also) control the
30   log level of the SSH calls to all nodes.
31
32 New features
33 ~~~~~~~~~~~~
34
35 - There is a new daemon, the :doc:`Ganeti Maintenance Daemon <design-repaird>`,
36   that coordinates all maintenance operations on a cluster, i.e. rebalancing,
37   activate disks, ERROR_down handling and node repairs actions.
38 - ``htools`` support memory over-commitment now. Look at
39   :doc:`Memory Over Commitment <design-memory-over-commitment>` for the
40   details.
41 - ``hbal`` has a new option ``--avoid-disk-moves *factor*`` that allows disk
42   moves only if the gain in the cluster metrics is ``*factor*`` times higher
43   than with no disk moves.
44 - ``hcheck`` reports the level of redundancy for each node group as a new ouput
45   parameter, see :doc:`N+M Redundancy <design-n-m-redundancy>`.
46
47
48 Version 2.16.0 rc1
49 ------------------
50
51 *(Released Thu, 18 Feb 2016)*
52
53 Incompatible/important changes
54 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55
56 - The IAllocator protocol has been extended by a new ``allocate-secondary``
57   request type. Currently, this new request type is only used when in disk
58   conversion to DRBD no secondary node is specified. As long as this new
59   feature is not used, a third-party IAllocator not aware of this extension can
60   be continued to be used.
61 - ``htools`` now also take into account N+1 redundancy for plain and shared
62   storage. To obtain the old behavior, add the ``--no-capacity-checks`` option.
63 - ``hail`` now tries to keep the overall cluster balanced; in particular it
64   now prefers more empty groups over groups that are internally more balanced.
65 - The option ``--no-node-setup`` of ``gnt-node add`` is disabled.
66   Instead, the cluster configuration parameter ``modify_ssh_setup`` is
67   used to determine whether or not to manipulate the SSH setup of a new
68   node.
69 - Timeouts for communication with luxid have been increased. As a consequence,
70   Ganeti tools communicating (directly or indirectly) with luxid also time out
71   later. Please increase all timeouts for higher level tools interacting with
72   Ganeti accordingly.
73
74 New features
75 ~~~~~~~~~~~~
76
77 - ``hbal`` can now be made aware of common causes of failures (for
78   nodes). Look at ``hbal`` man page's LOCATION TAGS section for more details.
79 - ``hbal`` can now be made aware of desired location for instances. Look
80   at ``hbal`` man page's DESIRED LOCATION TAGS section for more details.
81 - Secret parameters are now readacted in job files
82
83 New dependencies
84 ~~~~~~~~~~~~~~~~
85
86 - Using the metadata daemon now requires the presence of the 'setcap' utility.
87   On Debian-based systems, it is available as a part of the 'libcap2-bin'
88   package.
89
90 Changes since beta2
91 ~~~~~~~~~~~~~~~~~~~
92 - On group verify, only flush to group nodes
93
94
95 Version 2.16.0 beta2
96 --------------------
97
98 *(Released Tue, 2 Feb 2016)*
99
100 This was the second beta release of the 2.16 series. All important changes
101 are listed in the latest 2.16 entry.
102
103
104 Changes since beta1
105 ~~~~~~~~~~~~~~~~~~~
106 - Do not add a new Inotify watchers on timer
107 - Set block buffering for UDSServer
108 - Fix failover in case the source node is offline
109 - Add a parameter to ignore groups in capacity checks
110 - Make hspace correctly handle --independent-groups
111 - Accept BoringSSL as a known good ssl library
112 - Make CommitTemporaryIPs call out to WConfD
113 - Fix requested instance desired location tags in IAllocator
114 - monitor: Use hvinfo in QMP methods
115 - KVM: Work around QEMU commit 48f364dd
116 - KVM: Introduce scsi_controller_type and kvm_pci_reservations hvparams
117 - Improvements in SSH key handling
118 - Do not generate the ganeti_pub_keys file with --no-ssh-init
119 - Support force option for deactivate disks on RAPI
120 - Add a --dry-run option to htools
121 - Extended logging to improve traceability
122 - Many documentation improvements and cleanups
123 - Performance optimizations on larger clusters
124 - Various QA and testing improvements
125
126 Fixes inherited from 2.15 branch:
127
128 - Metad: ignore instances that have no communication NIC
129 - For queries, take the correct base address of an IP block
130 - Fix computation in network blocks
131 - Use bulk-adding of keys in renew-crypto
132 - Introduce bulk-adding of SSH keys
133 - Handle SSH key distribution on auto promotion
134 - Do not remove authorized key of node itself
135 - Support force option for deactivate disks on RAPI
136 - renew-crypto: use bulk-removal of SSH keys
137 - Bulk-removal of SSH keys
138 - Catch IOError of SSH files when removing node
139 - Fix renew-crypto on one-node-cluster
140 - Increase timeout of RPC adding/removing keys
141 - After TestNodeModify, fix the pool of master candidates
142
143 Fixes inherited from 2.14 branch:
144
145 - bdev: Allow userspace-only disk templates
146 - Export disk's userspace URI to OS scripts
147 - Fix instance failover in case of DTS_EXT_MIRROR
148 - Set node tags in iallocator htools backend
149 - Fix faulty iallocator type check
150 - Allow disk attachment to diskless instances
151 - Allow disk attachment with external storage
152
153 Fixes inherited from 2.13 branch:
154
155 - Improve xl socat migrations
156 - Renew-crypto: stop daemons on master node first
157 - Extend timeout for gnt-cluster renew-crypto
158
159 Fixes inherited from 2.12 branch:
160
161 - Accept timeout errors when luxi down
162 - Fix disabling of user shutdown reporting
163 - gnt-node add: password auth is only one method
164 - Fix inconsistency in python and haskell objects
165 - Increase default disk size of burnin to 1G
166 - Only search for Python-2 interpreters
167 - Handle Xen 4.3 states better
168 - Return the correct error code in the post-upgrade script
169 - Make openssl refrain from DH altogether
170 - Fix upgrades of instances with missing creation time
171 - Check for healthy majority on master failover with voting
172 - Pass arguments to correct daemons during master-failover
173
174 Fixes inherited from 2.11 branch:
175
176 - At IAlloc backend guess state from admin state
177 - Fix default for --default-iallocator-params
178
179 Fixes inherited from 2.10 branch:
180
181 - Make htools tolerate missing "dtotal" and "dfree" on luxi
182 - KVM: explicitly configure routed NICs late
183
184 Fixes inherited from the 2.9 branch:
185
186 - Security patch for CVE-2015-7944 RAPI Vulnerable to DoS via SSL renegotiation
187 - Security patch for CVE-2015-7945 Leak DRBD secret via RAPI
188 - replace-disks: fix --ignore-ipolicy
189
190
191 Version 2.16.0 beta1
192 --------------------
193
194 *(Released Tue, 28 Jul 2015)*
195
196 This was the first beta release of the 2.16 series. All important changes
197 are listed in the latest 2.16 entry.
198
199
200 Version 2.15.2
201 --------------
202
203 *(Released Wed, 16 Dec 2015)*
204
205 Important changes and security notes
206 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
207
208 Security release.
209
210 CVE-2015-7944
211
212 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
213 implementation is vulnerable to DoS attacks via client-initiated SSL
214 parameter renegotiation. While the interface is not meant to be exposed
215 publicly, due to the fact that it binds to all interfaces, we believe
216 some users might be exposing it unintentionally and are vulnerable. A
217 DoS attack can consume resources meant for Ganeti daemons and instances
218 running on the master node, making both perform badly.
219
220 Fixes are not feasible due to the OpenSSL Python library not exposing
221 functionality needed to disable client-side renegotiation. Instead, we
222 offer instructions on how to control RAPI's exposure, along with info
223 on how RAPI can be setup alongside an HTTPS proxy in case users still
224 want or need to expose the RAPI interface. The instructions are
225 outlined in Ganeti's security document: doc/html/security.html
226
227 CVE-2015-7945
228
229 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
230 results after an instance information job reveals the secret. With the
231 DRBD secret, access to the local cluster network, and ARP poisoning,
232 an attacker can impersonate a Ganeti node and clone the disks of a
233 DRBD-based instance. While an attacker with access to the cluster
234 network is already capable of accessing any data written as DRBD
235 traffic is unencrypted, having the secret expedites the process and
236 allows access to the entire disk.
237
238 Fixes contained in this release prevent the secret from being exposed
239 via the RAPI. The DRBD secret can be changed by converting an instance
240 to plain and back to DRBD, generating a new secret, but redundancy will
241 be lost until the process completes.
242 Since attackers with node access are capable of accessing some and
243 potentially all data even without the secret, we do not recommend that
244 the secret be changed for existing instances.
245
246 Minor changes
247 ~~~~~~~~~~~~~
248
249 - Allow disk aittachment to diskless instances
250 - Reduce memory footprint: Compute lock allocation strictly
251 - Calculate correct affected nodes set in InstanceChangeGroup
252   (Issue 1144)
253 - Reduce memory footprint: Don't keep input for error messages
254 - Use bulk-adding of keys in renew-crypto
255 - Reduce memory footprint: Send answers strictly
256 - Reduce memory footprint: Store keys as ByteStrings
257 - Reduce memory footprint: Encode UUIDs as ByteStrings
258 - Do not retry all requests after connection timeouts to prevent
259   repeated job submission
260 - Fix reason trails of expanding opcodes
261 - Make lockConfig call retryable
262 - Extend timeout for gnt-cluster renew-crypto
263 - Return the correct error code in the post-upgrade script
264 - Make OpenSSL refrain from DH altogether
265 - Fix faulty iallocator type check
266 - Improve cfgupgrade output in case of errors
267 - Fix upgrades of instances with missing creation time
268 - Support force option for deactivate disks on RAPI
269 - Make htools tolerate missing "dtotal" and "dfree" on luxi
270 - Fix default for --default-iallocator-params
271 - Renew-crypto: stop daemons on master node first
272 - Don't warn about broken SSH setup of offline nodes (Issue 1131)
273 - Fix computation in network blocks
274 - At IAlloc backend guess state from admin state
275 - Set node tags in iallocator htools backend
276 - Only search for Python-2 interpreters
277 - Handle Xen 4.3 states better
278 - Improve xl socat migrations
279
280
281 Version 2.15.1
282 --------------
283
284 *(Released Mon, 7 Sep 2015)*
285
286 New features
287 ~~~~~~~~~~~~
288
289 - The ext template now allows userspace-only disks to be used
290
291 Bugfixes
292 ~~~~~~~~
293
294 - Fixed the silently broken 'gnt-instance replace-disks --ignore-ipolicy'
295   command.
296 - User shutdown reporting can now be disabled on Xen using the
297   '--user-shutdown' flag.
298 - Remove falsely reported communication NIC error messages on instance start.
299 - Fix 'gnt-node migrate' behavior when no instances are present on a node.
300 - Fix the multi-allocation functionality for non-DRBD instances.
301
302
303 Version 2.15.0
304 --------------
305
306 *(Released Wed, 29 Jul 2015)*
307
308 Incompatible/important changes
309 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
310
311 - In order to improve allocation efficiency when using DRBD, the cluster
312   metric now takes the total reserved memory into account. A consequence
313   of this change is that the best possible cluster metric is no longer 0.
314   htools(1) interprets minimal cluster scores to be offsets of the theoretical
315   lower bound, so only users interpreting the cluster score directly should
316   be affected.
317 - This release contains a fix for the problem that different encodings in
318   SSL certificates can break RPC communication (issue 1094). The fix makes
319   it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
320   after the cluster is fully upgraded to 2.14.1
321
322 New features
323 ~~~~~~~~~~~~
324
325 - On dedicated clusters, hail will now favour allocations filling up
326   nodes efficiently over balanced allocations.
327
328 New dependencies
329 ~~~~~~~~~~~~~~~~
330
331 - The indirect dependency on Haskell package 'case-insensitive' is now
332   explicit.
333
334
335 Version 2.15.0 rc1
336 ------------------
337
338 *(Released Wed, 17 Jun 2015)*
339
340 This was the first release candidate in the 2.15 series. All important
341 changes are listed in the latest 2.15 entry.
342
343 Known issues:
344 ~~~~~~~~~~~~~
345
346 - Issue 1094: differences in encodings in SSL certificates due to
347   different OpenSSL versions can result in rendering a cluster
348   uncommunicative after a master-failover.
349
350
351 Version 2.15.0 beta1
352 --------------------
353
354 *(Released Thu, 30 Apr 2015)*
355
356 This was the second beta release in the 2.15 series. All important changes
357 are listed in the latest 2.15 entry.
358
359
360 Version 2.14.2
361 --------------
362
363 *(Released Tue, 15 Dec 2015)*
364
365 Important changes and security notes
366 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
367
368 Security release.
369
370 CVE-2015-7944
371
372 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
373 implementation is vulnerable to DoS attacks via client-initiated SSL
374 parameter renegotiation. While the interface is not meant to be exposed
375 publicly, due to the fact that it binds to all interfaces, we believe
376 some users might be exposing it unintentionally and are vulnerable. A
377 DoS attack can consume resources meant for Ganeti daemons and instances
378 running on the master node, making both perform badly.
379
380 Fixes are not feasible due to the OpenSSL Python library not exposing
381 functionality needed to disable client-side renegotiation. Instead, we
382 offer instructions on how to control RAPI's exposure, along with info
383 on how RAPI can be setup alongside an HTTPS proxy in case users still
384 want or need to expose the RAPI interface. The instructions are
385 outlined in Ganeti's security document: doc/html/security.html
386
387 CVE-2015-7945
388
389 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
390 results after an instance information job reveals the secret. With the
391 DRBD secret, access to the local cluster network, and ARP poisoning,
392 an attacker can impersonate a Ganeti node and clone the disks of a
393 DRBD-based instance. While an attacker with access to the cluster
394 network is already capable of accessing any data written as DRBD
395 traffic is unencrypted, having the secret expedites the process and
396 allows access to the entire disk.
397
398 Fixes contained in this release prevent the secret from being exposed
399 via the RAPI. The DRBD secret can be changed by converting an instance
400 to plain and back to DRBD, generating a new secret, but redundancy will
401 be lost until the process completes.
402 Since attackers with node access are capable of accessing some and
403 potentially all data even without the secret, we do not recommend that
404 the secret be changed for existing instances.
405
406 Minor changes
407 ~~~~~~~~~~~~~
408
409 - Allow disk attachment to diskless instances
410 - Calculate correct affected nodes set in InstanceChangeGroup
411   (Issue 1144)
412 - Do not retry all requests after connection timeouts to prevent
413   repeated job submission
414 - Fix reason trails of expanding opcodes
415 - Make lockConfig call retryable
416 - Extend timeout for gnt-cluster renew-crypto
417 - Return the correct error code in the post-upgrade script
418 - Make OpenSSL refrain from DH altogether
419 - Fix faulty iallocator type check
420 - Improve cfgupgrade output in case of errors
421 - Fix upgrades of instances with missing creation time
422 - Make htools tolerate missing "dtotal" and "dfree" on luxi
423 - Fix default for --default-iallocator-params
424 - Renew-crypto: stop daemons on master node first
425 - Don't warn about broken SSH setup of offline nodes (Issue 1131)
426 - At IAlloc backend guess state from admin state
427 - Set node tags in iallocator htools backend
428 - Only search for Python-2 interpreters
429 - Handle Xen 4.3 states better
430 - Improve xl socat migrations
431 - replace-disks: fix --ignore-ipolicy
432 - Fix disabling of user shutdown reporting
433 - Allow userspace-only disk templates
434 - Fix instance failover in case of DTS_EXT_MIRROR
435 - Fix operations on empty nodes by accepting allocation of 0 jobs
436 - Fix instance multi allocation for non-DRBD disks
437 - Redistribute master key on downgrade
438 - Allow more failover options when using the --no-disk-moves flag
439
440
441 Version 2.14.1
442 --------------
443
444 *(Released Fri, 10 Jul 2015)*
445
446 Incompatible/important changes
447 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
448
449 - The SSH security changes reduced the number of nodes which can SSH into
450   other nodes. Unfortunately enough, the Ganeti implementation of migration
451   for the xl stack of Xen required SSH to be able to migrate the instance,
452   leading to a situation where full movement of an instance around the cluster
453   was not possible. This version fixes the issue by using socat to transfer
454   instance data. While socat is less secure than SSH, it is about as secure as
455   xm migrations, and occurs over the secondary network if present. As a
456   consequence of this change, Xen instance migrations using xl cannot occur
457   between nodes running 2.14.0 and 2.14.1.
458 - This release contains a fix for the problem that different encodings in
459   SSL certificates can break RPC communication (issue 1094). The fix makes
460   it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
461   after the cluster is fully upgraded to 2.14.1
462
463 Other Changes
464 ~~~~~~~~~~~~~
465
466 - The ``htools`` now properly work also on shared-storage clusters.
467 - Instance moves now work properly also for the plain disk template.
468 - Filter-evaluation for run-time data filter was fixed (issue 1100).
469 - Various improvements to the documentation have been added.
470
471
472 Version 2.14.0
473 --------------
474
475 *(Released Tue, 2 Jun 2015)*
476
477 New features
478 ~~~~~~~~~~~~
479
480 - The build system now enforces external Haskell dependencies to lie in
481   a supported range as declared by our new ganeti.cabal file.
482 - Basic support for instance reservations has been added. Instance addition
483   supports a --forthcoming option telling Ganeti to only reserve the resources
484   but not create the actual instance. The instance can later be created with
485   by passing the --commit option to the instance addition command.
486 - Node tags starting with htools:nlocation: now have a special meaning to htools(1).
487   They control between which nodes migration is possible, e.g., during hypervisor
488   upgrades. See hbal(1) for details.
489 - The node-allocation lock as been removed for good, thus speeding up parallel
490   instance allocation and creation.
491 - The external storage interface has been extended by optional ``open``
492   and ``close`` scripts.
493
494 New dependencies
495 ~~~~~~~~~~~~~~~~
496
497 - Building the Haskell part of Ganeti now requires Cabal and cabal-install.
498
499 Known issues
500 ~~~~~~~~~~~~
501
502 - Under certain conditions instance doesn't get unpaused after live
503   migration (issue #1050)
504
505 Since 2.14.0 rc1
506 ~~~~~~~~~~~~~~~~
507
508 - The call to the IAllocator in 'gnt-node evacuate' has been fixed.
509 - In opportunistic locking, only ask for those node resource locks where
510   the node lock is held.
511 - Lock requests are repeatable now; this avoids failure of a job in a
512   race condition with a signal sent to the job.
513 - Various improvements to the QA.
514
515
516 Version 2.14.0 rc2
517 ------------------
518
519 *(Released Tue, 19 May 2015)*
520
521 This was the second release candidate in the 2.14 series. All important
522 changes are listed in the 2.14.0 entry.
523
524 Since 2.14.0 rc1
525 ~~~~~~~~~~~~~~~~
526
527 - private parameters are now properly exported to instance create scripts
528 - unnecessary config unlocks and upgrades have been removed, improving
529   performance, in particular of cluster verification
530 - some rarely occuring file-descriptor leaks have been fixed
531 - The checks for orphan and lost volumes have been fixed to also work
532   correctly when multiple volume groups are used.
533
534
535 Version 2.14.0 rc1
536 ------------------
537
538 *(Released Wed, 29 Apr 2015)*
539
540 This was the first release candidate in the 2.14 series. All important
541 changes are listed in the latest 2.14 entry.
542
543 Since 2.14.0 beta2
544 ~~~~~~~~~~~~~~~~~~
545
546 The following issue has been fixed:
547
548 - A race condition where a badly timed kill of WConfD could lead to
549   an incorrect configuration.
550
551 Fixes inherited from the 2.12 branch:
552
553 - Upgrade from old versions (2.5 and 2.6) was failing (issues 1070, 1019).
554 - gnt-network info outputs wrong external reservations (issue 1068)
555 - Refuse to demote master from master capability (issue 1023)
556
557 Fixes inherited from the 2.13 branch:
558
559 - bugs related to ssh-key handling of master candidate (issues 1045, 1046, 1047)
560
561
562 Version 2.14.0 beta2
563 --------------------
564
565 *(Released Thu, 26 Mar 2015)*
566
567 This was the second beta release in the 2.14 series. All important changes
568 are listed in the latest 2.14 entry.
569
570 Since 2.14.0 beta1
571 ~~~~~~~~~~~~~~~~~~
572
573 The following issues have been fixed:
574
575 - Issue 1018: Cluster init (and possibly other jobs) occasionally fail to start
576
577 The extension of the external storage interface was not present in 2.14.0 beta1.
578
579
580 Version 2.14.0 beta1
581 --------------------
582
583 *(Released Fri, 13 Feb 2015)*
584
585 This was the first beta release of the 2.14 series. All important changes
586 are listed in the latest 2.14 entry.
587
588
589 Version 2.13.3
590 --------------
591
592 *(Released Mon, 14 Dec 2015)*
593
594 Important changes and security notes
595 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
596
597 Security release.
598
599 CVE-2015-7944
600
601 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
602 implementation is vulnerable to DoS attacks via client-initiated SSL
603 parameter renegotiation. While the interface is not meant to be exposed
604 publicly, due to the fact that it binds to all interfaces, we believe
605 some users might be exposing it unintentionally and are vulnerable. A
606 DoS attack can consume resources meant for Ganeti daemons and instances
607 running on the master node, making both perform badly.
608
609 Fixes are not feasible due to the OpenSSL Python library not exposing
610 functionality needed to disable client-side renegotiation. Instead, we
611 offer instructions on how to control RAPI's exposure, along with info
612 on how RAPI can be setup alongside an HTTPS proxy in case users still
613 want or need to expose the RAPI interface. The instructions are
614 outlined in Ganeti's security document: doc/html/security.html
615
616 CVE-2015-7945
617
618 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
619 results after an instance information job reveals the secret. With the
620 DRBD secret, access to the local cluster network, and ARP poisoning,
621 an attacker can impersonate a Ganeti node and clone the disks of a
622 DRBD-based instance. While an attacker with access to the cluster
623 network is already capable of accessing any data written as DRBD
624 traffic is unencrypted, having the secret expedites the process and
625 allows access to the entire disk.
626
627 Fixes contained in this release prevent the secret from being exposed
628 via the RAPI. The DRBD secret can be changed by converting an instance
629 to plain and back to DRBD, generating a new secret, but redundancy will
630 be lost until the process completes.
631 Since attackers with node access are capable of accessing some and
632 potentially all data even without the secret, we do not recommend that
633 the secret be changed for existing instances.
634
635 Minor changes
636 ~~~~~~~~~~~~~
637
638 - Calculate correct affected nodes set in InstanceChangeGroup
639   (Issue 1144)
640 - Do not retry all requests after connection timeouts to prevent
641   repeated job submission
642 - Fix reason trails of expanding opcodes
643 - Make lockConfig call retryable
644 - Extend timeout for gnt-cluster renew-crypto
645 - Return the correct error code in the post-upgrade script
646 - Make OpenSSL refrain from DH altogether
647 - Fix upgrades of instances with missing creation time
648 - Make htools tolerate missing "dtotal" and "dfree" on luxi
649 - Fix default for --default-iallocator-params
650 - Renew-crypto: stop daemons on master node first
651 - Don't warn about broken SSH setup of offline nodes (Issue 1131)
652 - At IAlloc backend guess state from admin state
653 - Only search for Python-2 interpreters
654 - Handle Xen 4.3 states better
655 - Improve xl socat migrations
656 - replace-disks: fix --ignore-ipolicy
657 - Fix disabling of user shutdown reporting
658 - Fix operations on empty nodes by accepting allocation of 0 jobs
659 - Fix instance multi allocation for non-DRBD disks
660 - Redistribute master key on downgrade
661 - Allow more failover options when using the --no-disk-moves flag
662
663
664 Version 2.13.2
665 --------------
666
667 *(Released Mon, 13 Jul 2015)*
668
669 Incompatible/important changes
670 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
671
672 - This release contains a fix for the problem that different encodings in
673   SSL certificates can break RPC communication (issue 1094). The fix makes
674   it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
675   after the cluster is fully upgraded to 2.13.2
676
677 Other fixes and known issues
678 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
679
680 Inherited from 2.12:
681
682 - Fixed Issue #1115: Race between starting WConfD and updating the config
683 - Fixed Issue #1114: Binding RAPI to a specific IP makes the watcher
684   restart the RAPI
685 - Fixed Issue #1100: Filter-evaluation for run-time data filter
686 - Better handling of the "crashed" Xen state
687 - The watcher can be instructed to skip disk verification
688 - Reduce amount of logging on successful requests
689 - Prevent multiple communication NICs being created for instances
690 - The ``htools`` now properly work also on shared-storage clusters
691 - Instance moves now work properly also for the plain disk template
692 - Various improvements to the documentation have been added
693
694 Known issues:
695 - Issue #1104: gnt-backup: dh key too small
696
697
698 Version 2.13.1
699 --------------
700
701 *(Released Tue, 16 Jun 2015)*
702
703 Incompatible/important changes
704 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
705
706 - The SSH security changes reduced the number of nodes which can SSH into
707   other nodes. Unfortunately enough, the Ganeti implementation of migration
708   for the xl stack of Xen required SSH to be able to migrate the instance,
709   leading to a situation where full movement of an instance around the cluster
710   was not possible. This version fixes the issue by using socat to transfer
711   instance data. While socat is less secure than SSH, it is about as secure as
712   xm migrations, and occurs over the secondary network if present. As a
713   consequence of this change, Xen instance migrations using xl cannot occur
714   between nodes running 2.13.0 and 2.13.1.
715
716 Other fixes and known issues
717 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
718
719 Inherited from 2.12:
720
721 - Fixed Issue #1082: RAPI is unresponsive after master-failover
722 - Fixed Issue #1083: Cluster verify reports existing instance disks on
723   non-default VGs as missing
724 - Fixed Issue #1101: Modifying the storage directory for the shared-file disk
725   template doesn't work
726 - Fixed a possible file descriptor leak when forking jobs
727 - Fixed missing private parameters in the environment for OS scripts
728 - Fixed a performance regression when handling configuration
729   (only upgrade it if it changes)
730 - Adapt for compilation with GHC7.8 (compiles with warnings;
731   cherrypicked from 2.14)
732
733 Known issues:
734 - Issue #1094: Mismatch in SSL encodings breaks RPC communication
735 - Issue #1104: Export fails: key is too small
736
737
738 Version 2.13.0
739 --------------
740
741 *(Released Tue, 28 Apr 2015)*
742
743 Incompatible/important changes
744 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
745
746 - Ganeti now internally retries the instance creation opcode if opportunistic
747   locking did not acquire nodes with enough free resources. The internal retry
748   will not use opportunistic locking. In particular, instance creation, even
749   if opportunistic locking is set, will never fail with ECODE_TEMP_NORES.
750 - The handling of SSH security had undergone a significant change. From
751   this version on, each node has an individual SSH key pair instead of
752   sharing one with all nodes of the cluster. From now on, we also
753   restrict SSH access to master candidates. This means that only master
754   candidates can ssh into other cluster nodes and all
755   non-master-candidates cannot. Refer to the UPGRADE notes
756   for further instructions on the creation and distribution of the keys.
757 - Ganeti now checks hypervisor version compatibility before trying an instance
758   migration. It errors out if the versions are not compatible. Add the option
759   --ignore-hvversions to restore the old behavior of only warning.
760 - Node tags starting with htools:migration: or htools:allowmigration: now have
761   a special meaning to htools(1). See hbal(1) for details.
762 - The LXC hypervisor code has been repaired and improved. Instances cannot be
763   migrated and cannot have more than one disk, but should otherwise work as with
764   other hypervisors. OS script changes should not be necessary. LXC version
765   1.0.0 or higher required.
766
767 New features
768 ~~~~~~~~~~~~
769
770 - A new job filter rules system allows to define iptables-like rules for the
771   job scheduler, making it easier to (soft-)drain the job queue, perform
772   maintenance, and rate-limit selected job types. See gnt-filter(8) for
773   details.
774 - Ganeti jobs can now be ad-hoc rate limited via the reason trail.
775   For a set of jobs queued with "--reason=rate-limit:n:label", the job
776   scheduler ensures that not more than n will be scheduled to run at the same
777   time. See ganeti(7), section "Options", for details.
778 - The monitoring daemon has now variable sleep times for the data
779   collectors. This currently means that the granularity of cpu-avg-load
780   can be configured.
781 - The 'gnt-cluster verify' command now has the option
782   '--verify-ssh-clutter', which verifies whether Ganeti (accidentally)
783   cluttered up the 'authorized_keys' file.
784 - Instance disks can now be converted from one disk template to another for many
785   different template combinations. When available, more efficient conversions
786   will be used, otherwise the disks are simply copied over.
787
788 New dependencies
789 ~~~~~~~~~~~~~~~~
790
791 - The monitoring daemon uses the PSQueue library. Be sure to install it
792   if you use Mond.
793 - The formerly optional regex-pcre is now an unconditional dependency because
794   the new job filter rules have regular expressions as a core feature.
795
796 Since 2.13.0 rc1
797 ~~~~~~~~~~~~~~~~~~
798
799 The following issues have been fixed:
800
801 - Bugs related to ssh-key handling of master candidates (issues 1045,
802   1046, 1047)
803
804 Fixes inherited from the 2.12 branch:
805
806 - Upgrade from old versions (2.5 and 2.6) was failing (issues 1070, 1019).
807 - gnt-network info outputs wrong external reservations (issue 1068)
808 - Refuse to demote master from master capability (issue 1023)
809
810
811 Version 2.13.0 rc1
812 ------------------
813
814 *(Released Wed, 25 Mar 2015)*
815
816 This was the first release candidate of the 2.13 series.
817 All important changes are listed in the latest 2.13 entry.
818
819 Since 2.13.0 beta1
820 ~~~~~~~~~~~~~~~~~~
821
822 The following issues have been fixed:
823
824 - Issue 1018: Cluster init (and possibly other jobs) occasionally fail to start
825
826
827 Version 2.13.0 beta1
828 --------------------
829
830 *(Released Wed, 14 Jan 2015)*
831
832 This was the first beta release of the 2.13 series. All important changes
833 are listed in the latest 2.13 entry.
834
835
836 Version 2.12.6
837 --------------
838
839 *(Released Mon, 14 Dec 2015)*
840
841 Important changes and security notes
842 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
843
844 Security release.
845
846 CVE-2015-7944
847
848 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
849 implementation is vulnerable to DoS attacks via client-initiated SSL
850 parameter renegotiation. While the interface is not meant to be exposed
851 publicly, due to the fact that it binds to all interfaces, we believe
852 some users might be exposing it unintentionally and are vulnerable. A
853 DoS attack can consume resources meant for Ganeti daemons and instances
854 running on the master node, making both perform badly.
855
856 Fixes are not feasible due to the OpenSSL Python library not exposing
857 functionality needed to disable client-side renegotiation. Instead, we
858 offer instructions on how to control RAPI's exposure, along with info
859 on how RAPI can be setup alongside an HTTPS proxy in case users still
860 want or need to expose the RAPI interface. The instructions are
861 outlined in Ganeti's security document: doc/html/security.html
862
863 CVE-2015-7945
864
865 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
866 results after an instance information job reveals the secret. With the
867 DRBD secret, access to the local cluster network, and ARP poisoning,
868 an attacker can impersonate a Ganeti node and clone the disks of a
869 DRBD-based instance. While an attacker with access to the cluster
870 network is already capable of accessing any data written as DRBD
871 traffic is unencrypted, having the secret expedites the process and
872 allows access to the entire disk.
873
874 Fixes contained in this release prevent the secret from being exposed
875 via the RAPI. The DRBD secret can be changed by converting an instance
876 to plain and back to DRBD, generating a new secret, but redundancy will
877 be lost until the process completes.
878 Since attackers with node access are capable of accessing some and
879 potentially all data even without the secret, we do not recommend that
880 the secret be changed for existing instances.
881
882 Minor changes
883 ~~~~~~~~~~~~~
884
885 - Calculate correct affected nodes set in InstanceChangeGroup
886   (Issue 1144)
887 - Do not retry all requests after connection timeouts to prevent
888   repeated job submission
889 - Fix reason trails of expanding opcodes
890 - Make lockConfig call retryable
891 - Return the correct error code in the post-upgrade script
892 - Make OpenSSL refrain from DH altogether
893 - Fix upgrades of instances with missing creation time
894 - Make htools tolerate missing "dtotal" and "dfree" on luxi
895 - Fix default for --default-iallocator-params
896 - At IAlloc backend guess state from admin state
897 - Only search for Python-2 interpreters
898 - Handle Xen 4.3 states better
899 - replace-disks: fix --ignore-ipolicy
900 - Fix disabling of user shutdown reporting
901 - Fix operations on empty nodes by accepting allocation of 0 jobs
902 - Fix instance multi allocation for non-DRBD disks
903 - Allow more failover options when using the --no-disk-moves flag
904
905
906 Version 2.12.5
907 --------------
908
909 *(Released Mon, 13 Jul 2015)*
910
911 Incompatible/important changes
912 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
913
914 - This release contains a fix for the problem that different encodings in
915   SSL certificates can break RPC communication (issue 1094). The fix makes
916   it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
917   after the cluster is fully upgraded to 2.12.5.
918
919 Fixed and improvements
920 ~~~~~~~~~~~~~~~~~~~~~~
921
922 - Fixed Issue #1030: GlusterFS support breaks at upgrade to 2.12 -
923   switches back to shared-file
924 - Fixed Issue #1094 (see the notice in Incompatible/important changes):
925   Differences in encodings of SSL certificates can render a cluster
926   uncommunicative after a master-failover
927 - Fixed Issue #1098: Support for ECDSA SSH keys
928 - Fixed Issue #1100: Filter-evaluation for run-time data filter
929 - Fixed Issue #1101: Modifying the storage directory for the shared-file
930   disk template doesn't work
931 - Fixed Issue #1108: Spurious "NIC name already used" errors during
932   instance creation
933 - Fixed Issue #1114: Binding RAPI to a specific IP makes the watcher
934   restart the RAPI
935 - Fixed Issue #1115: Race between starting WConfD and updating the config
936 - Better handling of the "crashed" Xen state
937 - The ``htools`` now properly work also on shared-storage clusters
938 - Various improvements to the documentation have been added
939
940 Inherited from the 2.11 branch:
941
942 - Fixed Issue #1113: Reduce amount of logging on successful requests
943
944 Known issues
945 ~~~~~~~~~~~~
946
947 - Issue #1104: gnt-backup: dh key too small
948
949
950 Version 2.12.4
951 --------------
952
953 *(Released Tue, 12 May 2015)*
954
955 - Fixed Issue #1082: RAPI is unresponsive after master-failover
956 - Fixed Issue #1083: Cluster verify reports existing instance disks on
957   non-default VGs as missing
958 - Fixed a possible file descriptor leak when forking jobs
959 - Fixed missing private parameters in the environment for OS scripts
960 - Fixed a performance regression when handling configuration
961   (only upgrade it if it changes)
962 - Adapt for compilation with GHC7.8 (compiles with warnings;
963   cherrypicked from 2.14)
964
965 Known issues
966 ~~~~~~~~~~~~
967
968 Pending since 2.12.2:
969
970 - Under certain conditions instance doesn't get unpaused after live
971   migration (issue #1050)
972 - GlusterFS support breaks at upgrade to 2.12 - switches back to
973   shared-file (issue #1030)
974
975
976 Version 2.12.3
977 --------------
978
979 *(Released Wed, 29 Apr 2015)*
980
981 - Fixed Issue #1019: upgrade from 2.6.2 to 2.12 fails. cfgupgrade
982   doesn't migrate the config.data file properly
983 - Fixed Issue 1023: Master master-capable option bug
984 - Fixed Issue 1068: gnt-network info outputs wrong external reservations
985 - Fixed Issue 1070: Upgrade of Ganeti 2.5.2 to 2.12.0 fails due to
986   missing UUIDs for disks
987 - Fixed Issue 1073: ssconf_hvparams_* not distributed with ssconf
988
989 Inherited from the 2.11 branch:
990
991 - Fixed Issue 1032: Renew-crypto --new-node-certificates sometimes does not
992   complete.
993   The operation 'gnt-cluster renew-crypto --new-node-certificates' is
994   now more robust against intermitten reachability errors. Nodes that
995   are temporarily not reachable, are contacted with several retries.
996   Nodes which are marked as offline are omitted right away.
997
998 Inherited from the 2.10 branch:
999
1000 - Fixed Issue 1057: master-failover succeeds, but IP remains assigned to
1001   old master
1002 - Fixed Issue 1058: Python's os.minor() does not support devices with
1003   high minor numbers
1004 - Fixed Issue 1059: Luxid fails if DNS returns an IPv6 address that does
1005   not reverse resolve
1006
1007 Known issues
1008 ~~~~~~~~~~~~
1009
1010 Pending since 2.12.2:
1011
1012 - GHC 7.8 introduced some incompatible changes, so currently Ganeti
1013   2.12. doesn't compile on GHC 7.8
1014 - Under certain conditions instance doesn't get unpaused after live
1015   migration (issue #1050)
1016 - GlusterFS support breaks at upgrade to 2.12 - switches back to
1017   shared-file (issue #1030)
1018
1019
1020 Version 2.12.2
1021 --------------
1022
1023 *(Released Wed, 25 Mar 2015)*
1024
1025 - Support for the lens Haskell library up to version 4.7 (issue #1028)
1026 - SSH keys are now distributed only to master and master candidates
1027   (issue #377)
1028 - Improved performance for operations that frequently read the
1029   cluster configuration
1030 - Improved robustness of spawning job processes that occasionally caused
1031   newly-started jobs to timeout
1032 - Fixed race condition during cluster verify which occasionally caused
1033   it to fail
1034
1035 Inherited from the 2.11 branch:
1036
1037 - Fix failing automatic glusterfs mounts (issue #984)
1038 - Fix watcher failing to read its status file after an upgrade
1039   (issue #1022)
1040 - Improve Xen instance state handling, in particular of somewhat exotic
1041   transitional states
1042
1043 Inherited from the 2.10 branch:
1044
1045 - Fix failing to change a diskless drbd instance to plain
1046   (issue #1036)
1047 - Fixed issues with auto-upgrades from pre-2.6
1048   (hv_state_static and disk_state_static)
1049 - Fix memory leak in the monitoring daemon
1050
1051 Inherited from the 2.9 branch:
1052
1053 - Fix file descriptor leak in Confd client
1054
1055 Known issues
1056 ~~~~~~~~~~~~
1057
1058 - GHC 7.8 introduced some incompatible changes, so currently Ganeti
1059   2.12. doesn't compile on GHC 7.8
1060 - Under certain conditions instance doesn't get unpaused after live
1061   migration (issue #1050)
1062 - GlusterFS support breaks at upgrade to 2.12 - switches back to
1063   shared-file (issue #1030)
1064
1065
1066 Version 2.12.1
1067 --------------
1068
1069 *(Released Wed, 14 Jan 2015)*
1070
1071 - Fix users under which the wconfd and metad daemons run (issue #976)
1072 - Clean up stale livelock files (issue #865)
1073 - Fix setting up the metadata daemon's network interface for Xen
1074 - Make watcher identify itself on disk activation
1075 - Add "ignore-ipolicy" option to gnt-instance grow-disk
1076 - Check disk size ipolicy during "gnt-instance grow-disk" (issue #995)
1077
1078 Inherited from the 2.11 branch:
1079
1080 - Fix counting votes when doing master failover (issue #962)
1081 - Fix broken haskell dependencies (issues #758 and #912)
1082 - Check if IPv6 is used directly when running SSH (issue #892)
1083
1084 Inherited from the 2.10 branch:
1085
1086 - Fix typo in gnt_cluster output (issue #1015)
1087 - Use the Python path detected at configure time in the top-level Python
1088   scripts.
1089 - Fix check for sphinx-build from python2-sphinx
1090 - Properly check if an instance exists in 'gnt-instance console'
1091
1092
1093 Version 2.12.0
1094 --------------
1095
1096 *(Released Fri, 10 Oct 2014)*
1097
1098 Incompatible/important changes
1099 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1100
1101 - Ganeti is now distributed under the 2-clause BSD license.
1102   See the COPYING file.
1103 - Do not use debug mode in production. Certain daemons will issue warnings
1104   when launched in debug mode. Some debug logging violates some of the new
1105   invariants in the system (see "New features"). The logging has been kept as
1106   it aids diagnostics and development.
1107
1108 New features
1109 ~~~~~~~~~~~~
1110
1111 - OS install script parameters now come in public, private and secret
1112   varieties:
1113
1114   - Public parameters are like all other parameters in Ganeti.
1115   - Ganeti will not log private and secret parameters, *unless* it is running
1116     in debug mode.
1117   - Ganeti will not save secret parameters to configuration. Secret parameters
1118     must be supplied every time you install, or reinstall, an instance.
1119   - Attempting to override public parameters with private or secret parameters
1120     results in an error. Similarly, you may not use secret parameters to
1121     override private parameters.
1122
1123 - The move-instance tool can now attempt to allocate an instance by using
1124   opportunistic locking when an iallocator is used.
1125 - The build system creates sample systemd unit files, available under
1126   doc/examples/systemd. These unit files allow systemd to natively
1127   manage and supervise all Ganeti processes.
1128 - Different types of compression can be applied during instance moves, including
1129   user-specified ones.
1130 - Ganeti jobs now run as separate processes. The jobs are coordinated by
1131   a new daemon "WConfd" that manages cluster's configuration and locks
1132   for individual jobs. A consequence is that more jobs can run in parallel;
1133   the number is run-time configurable, see "New features" entry
1134   of 2.11.0. To avoid luxid being overloaded with tracking running jobs, it
1135   backs of and only occasionally, in a sequential way, checks if jobs have
1136   finished and schedules new ones. In this way, luxid keeps responsive under
1137   high cluster load. The limit as when to start backing of is also run-time
1138   configurable.
1139 - The metadata daemon is now optionally available, as part of the
1140   partial implementation of the OS-installs design. It allows pass
1141   information to OS install scripts or to instances.
1142   It is also possible to run Ganeti without the daemon, if desired.
1143 - Detection of user shutdown of instances has been implemented for Xen
1144   as well.
1145
1146 New dependencies
1147 ~~~~~~~~~~~~~~~~
1148
1149 - The KVM CPU pinning no longer uses the affinity python package, but psutil
1150   instead. The package is still optional and needed only if the feature is to
1151   be used.
1152
1153 Incomplete features
1154 ~~~~~~~~~~~~~~~~~~~
1155
1156 The following issues are related to features which are not completely
1157 implemented in 2.12:
1158
1159 - Issue 885: Network hotplugging on KVM sometimes makes an instance
1160   unresponsive
1161 - Issues 708 and 602: The secret parameters are currently still written
1162   to disk in the job queue.
1163 - Setting up the metadata network interface under Xen isn't fully
1164   implemented yet.
1165
1166 Known issues
1167 ~~~~~~~~~~~~
1168
1169 - *Wrong UDP checksums in DHCP network packets:*
1170   If an instance communicates with the metadata daemon and uses DHCP to
1171   obtain its IP address on the provided virtual network interface,
1172   it can happen that UDP packets have a wrong checksum, due to
1173   a bug in virtio. See for example https://bugs.launchpad.net/bugs/930962
1174
1175   Ganeti works around this bug by disabling the UDP checksums on the way
1176   from a host to instances (only on the special metadata communication
1177   network interface) using the ethtool command. Therefore if using
1178   the metadata daemon the host nodes should have this tool available.
1179 - The metadata daemon is run as root in the split-user mode, to be able
1180   to bind to port 80.
1181   This should be improved in future versions, see issue #949.
1182
1183 Since 2.12.0 rc2
1184 ~~~~~~~~~~~~~~~~
1185
1186 The following issues have been fixed:
1187
1188 - Fixed passing additional parameters to RecreateInstanceDisks over
1189   RAPI.
1190 - Fixed the permissions of WConfd when running in the split-user mode.
1191   As WConfd takes over the previous master daemon to manage the
1192   configuration, it currently runs under the masterd user.
1193 - Fixed the permissions of the metadata daemon  wn running in the
1194   split-user mode (see Known issues).
1195 - Watcher now properly adds a reason trail entry when initiating disk
1196   checks.
1197 - Fixed removing KVM parameters introduced in 2.12 when downgrading a
1198   cluster to 2.11: "migration_caps", "disk_aio" and "virtio_net_queues".
1199 - Improved retrying of RPC calls that fail due to network errors.
1200
1201
1202 Version 2.12.0 rc2
1203 ------------------
1204
1205 *(Released Mon, 22 Sep 2014)*
1206
1207 This was the second release candidate of the 2.12 series.
1208 All important changes are listed in the latest 2.12 entry.
1209
1210 Since 2.12.0 rc1
1211 ~~~~~~~~~~~~~~~~
1212
1213 The following issues have been fixed:
1214
1215 - Watcher now checks if WConfd is running and functional.
1216 - Watcher now properly adds reason trail entries.
1217 - Fixed NIC options in Xen's config files.
1218
1219 Inherited from the 2.10 branch:
1220
1221 - Fixed handling of the --online option
1222 - Add warning against hvparam changes with live migrations, which might
1223   lead to dangerous situations for instances.
1224 - Only the LVs in the configured VG are checked during cluster verify.
1225
1226
1227 Version 2.12.0 rc1
1228 ------------------
1229
1230 *(Released Wed, 20 Aug 2014)*
1231
1232 This was the first release candidate of the 2.12 series.
1233 All important changes are listed in the latest 2.12 entry.
1234
1235 Since 2.12.0 beta1
1236 ~~~~~~~~~~~~~~~~~~
1237
1238 The following issues have been fixed:
1239
1240 - Issue 881: Handle communication errors in mcpu
1241 - Issue 883: WConfd leaks memory for some long operations
1242 - Issue 884: Under heavy load the IAllocator fails with a "missing
1243   instance" error
1244
1245 Inherited from the 2.10 branch:
1246
1247 - Improve the recognition of Xen domU states
1248 - Automatic upgrades:
1249   - Create the config backup archive in a safe way
1250   - On upgrades, check for upgrades to resume first
1251   - Pause watcher during upgrade
1252 - Allow instance disks to be added with --no-wait-for-sync
1253
1254
1255 Version 2.12.0 beta1
1256 --------------------
1257
1258 *(Released Mon, 21 Jul 2014)*
1259
1260 This was the first beta release of the 2.12 series. All important changes
1261 are listed in the latest 2.12 entry.
1262
1263
1264 Version 2.11.8
1265 --------------
1266
1267 *(Released Mon, 14 Dec 2015)*
1268
1269 Important changes and security notes
1270 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1271
1272 Security release.
1273
1274 CVE-2015-7944
1275
1276 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
1277 implementation is vulnerable to DoS attacks via client-initiated SSL
1278 parameter renegotiation. While the interface is not meant to be exposed
1279 publicly, due to the fact that it binds to all interfaces, we believe
1280 some users might be exposing it unintentionally and are vulnerable. A
1281 DoS attack can consume resources meant for Ganeti daemons and instances
1282 running on the master node, making both perform badly.
1283
1284 Fixes are not feasible due to the OpenSSL Python library not exposing
1285 functionality needed to disable client-side renegotiation. Instead, we
1286 offer instructions on how to control RAPI's exposure, along with info
1287 on how RAPI can be setup alongside an HTTPS proxy in case users still
1288 want or need to expose the RAPI interface. The instructions are
1289 outlined in Ganeti's security document: doc/html/security.html
1290
1291 CVE-2015-7945
1292
1293 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
1294 results after an instance information job reveals the secret. With the
1295 DRBD secret, access to the local cluster network, and ARP poisoning,
1296 an attacker can impersonate a Ganeti node and clone the disks of a
1297 DRBD-based instance. While an attacker with access to the cluster
1298 network is already capable of accessing any data written as DRBD
1299 traffic is unencrypted, having the secret expedites the process and
1300 allows access to the entire disk.
1301
1302 Fixes contained in this release prevent the secret from being exposed
1303 via the RAPI. The DRBD secret can be changed by converting an instance
1304 to plain and back to DRBD, generating a new secret, but redundancy will
1305 be lost until the process completes.
1306 Since attackers with node access are capable of accessing some and
1307 potentially all data even without the secret, we do not recommend that
1308 the secret be changed for existing instances.
1309
1310 Minor changes
1311 ~~~~~~~~~~~~~
1312
1313 - Make htools tolerate missing "dtotal" and "dfree" on luxi
1314 - Fix default for --default-iallocator-params
1315 - At IAlloc backend guess state from admin state
1316 - replace-disks: fix --ignore-ipolicy
1317 - Fix instance multi allocation for non-DRBD disks
1318 - Trigger renew-crypto on downgrade to 2.11
1319 - Downgrade log-message for rereading job
1320 - Downgrade log-level for successful requests
1321 - Check for gnt-cluster before running gnt-cluster upgrade
1322
1323
1324 Version 2.11.7
1325 --------------
1326
1327 *(Released Fri, 17 Apr 2015)*
1328
1329 - The operation 'gnt-cluster renew-crypto --new-node-certificates' is
1330   now more robust against intermitten reachability errors. Nodes that
1331   are temporarily not reachable, are contacted with several retries.
1332   Nodes which are marked as offline are omitted right away.
1333
1334
1335 Version 2.11.6
1336 --------------
1337
1338 *(Released Mon, 22 Sep 2014)*
1339
1340 - Ganeti is now distributed under the 2-clause BSD license.
1341   See the COPYING file.
1342 - Fix userspace access checks.
1343 - Various documentation fixes have been added.
1344
1345 Inherited from the 2.10 branch:
1346
1347 - The --online option now works as documented.
1348 - The watcher is paused during cluster upgrades; also, upgrade
1349   checks for upgrades to resume first.
1350 - Instance disks can be added with --no-wait-for-sync.
1351
1352
1353 Version 2.11.5
1354 --------------
1355
1356 *(Released Thu, 7 Aug 2014)*
1357
1358 Inherited from the 2.10 branch:
1359
1360 Important security release. In 2.10.0, the
1361 'gnt-cluster upgrade' command was introduced. Before
1362 performing an upgrade, the configuration directory of
1363 the cluster is backed up. Unfortunately, the archive was
1364 written with permissions that make it possible for
1365 non-privileged users to read the archive and thus have
1366 access to cluster and RAPI keys. After this release,
1367 the archive will be created with privileged access only.
1368
1369 We strongly advise you to restrict the permissions of
1370 previously created archives. The archives are found in
1371 /var/lib/ganeti*.tar (unless otherwise configured with
1372 --localstatedir or --with-backup-dir).
1373
1374 If you suspect that non-privileged users have accessed
1375 your archives already, we advise you to renew the
1376 cluster's crypto keys using 'gnt-cluster renew-crypto'
1377 and to reset the RAPI credentials by editing
1378 /var/lib/ganeti/rapi_users (respectively under a
1379 different path if configured differently with
1380 --localstatedir).
1381
1382 Other changes included in this release:
1383
1384 - Fix handling of Xen instance states.
1385 - Fix NIC configuration with absent NIC VLAN
1386 - Adapt relative path expansion in PATH to new environment
1387 - Exclude archived jobs from configuration backups
1388 - Fix RAPI for split query setup
1389 - Allow disk hot-remove even with chroot or SM
1390
1391 Inherited from the 2.9 branch:
1392
1393 - Make htools tolerate missing 'spfree' on luxi
1394
1395
1396 Version 2.11.4
1397 --------------
1398
1399 *(Released Thu, 31 Jul 2014)*
1400
1401 - Improved documentation of the instance shutdown behavior.
1402
1403 Inherited from the 2.10 branch:
1404
1405 - KVM: fix NIC configuration with absent NIC VLAN (Issue 893)
1406 - Adapt relative path expansion in PATH to new environment
1407 - Exclude archived jobs from configuration backup
1408 - Expose early_release for ReplaceInstanceDisks
1409 - Add backup directory for configuration backups for upgrades
1410 - Fix BlockdevSnapshot in case of non lvm-based disk
1411 - Improve RAPI error handling for queries in non-existing items
1412 - Allow disk hot-remove even with chroot or SM
1413 - Remove superflous loop in instance queries (Issue 875)
1414
1415 Inherited from the 2.9 branch:
1416
1417 - Make ganeti-cleaner switch to save working directory (Issue 880)
1418
1419
1420 Version 2.11.3
1421 --------------
1422
1423 *(Released Wed, 9 Jul 2014)*
1424
1425 - Readd nodes to their previous node group
1426 - Remove old-style gnt-network connect
1427
1428 Inherited from the 2.10 branch:
1429
1430 - Make network_vlan an optional OpParam
1431 - hspace: support --accept-existing-errors
1432 - Make hspace support --independent-groups
1433 - Add a modifier for a group's allocation policy
1434 - Export VLAN nicparam to NIC configuration scripts
1435 - Fix gnt-network client to accept vlan info
1436 - Support disk hotplug with userspace access
1437
1438 Inherited from the 2.9 branch:
1439
1440 - Make htools tolerate missing "spfree" on luxi
1441 - Move the design for query splitting to the implemented list
1442 - Add tests for DRBD setups with empty first resource
1443
1444 Inherited from the 2.8 branch:
1445
1446 - DRBD parser: consume initial empty resource lines
1447
1448
1449 Version 2.11.2
1450 --------------
1451
1452 *(Released Fri, 13 Jun 2014)*
1453
1454 - Improvements to KVM wrt to the kvmd and instance shutdown behavior.
1455   WARNING: In contrast to our standard policy, this bug fix update
1456   introduces new parameters to the configuration. This means in
1457   particular that after an upgrade from 2.11.0 or 2.11.1, 'cfgupgrade'
1458   needs to be run, either manually or explicitly by running
1459   'gnt-cluster upgrade --to 2.11.2' (which requires that they
1460   had configured the cluster with --enable-versionfull).
1461   This also means, that it is not easily possible to downgrade from
1462   2.11.2 to 2.11.1 or 2.11.0. The only way is to go back to 2.10 and
1463   back.
1464
1465 Inherited from the 2.10 branch:
1466
1467 - Check for SSL encoding inconsistencies
1468 - Check drbd helper only in VM capable nodes
1469 - Improvements in statistics utils
1470
1471 Inherited from the 2.9 branch:
1472
1473 - check-man-warnings: use C.UTF-8 and set LC_ALL
1474
1475
1476 Version 2.11.1
1477 --------------
1478
1479 *(Released Wed, 14 May 2014)*
1480
1481 - Add design-node-security.rst to docinput
1482 - kvm: use a dedicated QMP socket for kvmd
1483
1484 Inherited from the 2.10 branch:
1485
1486 - Set correct Ganeti version on setup commands
1487 - Add a utility to combine shell commands
1488 - Add design doc for performance tests
1489 - Fix failed DRBD disk creation cleanup
1490 - Hooking up verification for shared file storage
1491 - Fix --shared-file-storage-dir option of gnt-cluster modify
1492 - Clarify default setting of 'metavg'
1493 - Fix invocation of GetCommandOutput in QA
1494 - Clean up RunWithLocks
1495 - Add an exception-trapping thread class
1496 - Wait for delay to provide interruption information
1497 - Add an expected block option to RunWithLocks
1498 - Track if a QA test was blocked by locks
1499 - Add a RunWithLocks QA utility function
1500 - Add restricted migration
1501 - Add an example for node evacuation
1502 - Add a test for parsing version strings
1503 - Tests for parallel job execution
1504 - Fail in replace-disks if attaching disks fails
1505 - Fix passing of ispecs in cluster init during QA
1506 - Move QAThreadGroup to qa_job_utils.py
1507 - Extract GetJobStatuses and use an unified version
1508 - Run disk template specific tests only if possible
1509
1510 Inherited from the 2.9 branch:
1511
1512 - If Automake version > 1.11, force serial tests
1513 - KVM: set IFF_ONE_QUEUE on created tap interfaces
1514 - Add configure option to pass GHC flags
1515
1516
1517 Version 2.11.0
1518 --------------
1519
1520 *(Released Fri, 25 Apr 2014)*
1521
1522 Incompatible/important changes
1523 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1524
1525 - ``gnt-node list`` no longer shows disk space information for shared file
1526   disk templates because it is not a node attribute. (For example, if you have
1527   both the file and shared file disk templates enabled, ``gnt-node list`` now
1528   only shows information about the file disk template.)
1529 - The shared file disk template is now in the new 'sharedfile' storage type.
1530   As a result, ``gnt-node list-storage -t file`` now only shows information
1531   about the file disk template and you may use ``gnt-node list-storage -t
1532   sharedfile`` to query storage information for the shared file disk template.
1533 - Over luxi, syntactially incorrect queries are now rejected as a whole;
1534   before, a 'SumbmitManyJobs' request was partially executed, if the outer
1535   structure of the request was syntactically correct. As the luxi protocol
1536   is internal (external applications are expected to use RAPI), the impact
1537   of this incompatible change should be limited.
1538 - Queries for nodes, instances, groups, backups and networks are now
1539   exclusively done via the luxi daemon. Legacy python code was removed,
1540   as well as the --enable-split-queries configuration option.
1541 - Orphan volumes errors are demoted to warnings and no longer affect the exit
1542   code of ``gnt-cluster verify``.
1543 - RPC security got enhanced by using different client SSL certificates
1544   for each node. In this context 'gnt-cluster renew-crypto' got a new
1545   option '--new-node-certificates', which renews the client
1546   certificates of all nodes. After a cluster upgrade from pre-2.11, run
1547   this to create client certificates and activate this feature.
1548
1549 New features
1550 ~~~~~~~~~~~~
1551
1552 - Instance moves, backups and imports can now use compression to transfer the
1553   instance data.
1554 - Node groups can be configured to use an SSH port different than the
1555   default 22.
1556 - Added experimental support for Gluster distributed file storage as the
1557   ``gluster`` disk template under the new ``sharedfile`` storage type through
1558   automatic management of per-node FUSE mount points. You can configure the
1559   mount point location at ``gnt-cluster init`` time by using the new
1560   ``--gluster-storage-dir`` switch.
1561 - Job scheduling is now handled by luxid, and the maximal number of jobs running
1562   in parallel is a run-time parameter of the cluster.
1563 - A new tool for planning dynamic power management, called ``hsqueeze``, has
1564   been added. It suggests nodes to power up or down and corresponding instance
1565   moves.
1566
1567 New dependencies
1568 ~~~~~~~~~~~~~~~~
1569
1570 The following new dependencies have been added:
1571
1572 For Haskell:
1573
1574 - ``zlib`` library (http://hackage.haskell.org/package/base64-bytestring)
1575
1576 - ``base64-bytestring`` library (http://hackage.haskell.org/package/zlib),
1577   at least version 1.0.0.0
1578
1579 - ``lifted-base`` library (http://hackage.haskell.org/package/lifted-base)
1580
1581 - ``lens`` library (http://hackage.haskell.org/package/lens)
1582
1583 Since 2.11.0 rc1
1584 ~~~~~~~~~~~~~~~~
1585
1586 - Fix Xen instance state
1587
1588 Inherited from the 2.10 branch:
1589
1590 - Fix conflict between virtio + spice or soundhw
1591 - Fix bitarray ops wrt PCI slots
1592 - Allow releases scheduled 5 days in advance
1593 - Make watcher submit queries low priority
1594 - Fix specification of TIDiskParams
1595 - Add unittests for instance modify parameter renaming
1596 - Add renaming of instance custom params
1597 - Add RAPI symmetry tests for groups
1598 - Extend RAPI symmetry tests with RAPI-only aliases
1599 - Add test for group custom parameter renaming
1600 - Add renaming of group custom ndparams, ipolicy, diskparams
1601 - Add the RAPI symmetry test for nodes
1602 - Add aliases for nodes
1603 - Allow choice of HTTP method for modification
1604 - Add cluster RAPI symmetry test
1605 - Fix failing cluster query test
1606 - Add aliases for cluster parameters
1607 - Add support for value aliases to RAPI
1608 - Provide tests for GET/PUT symmetry
1609 - Sort imports
1610 - Also consider filter fields for deciding if using live data
1611 - Document the python-fdsend dependency
1612 - Verify configuration version number before parsing
1613 - KVM: use running HVPs to calc blockdev options
1614 - KVM: reserve a PCI slot for the SCSI controller
1615 - Check for LVM-based verification results only when enabled
1616 - Fix "existing" typos
1617 - Fix output of gnt-instance info after migration
1618 - Warn in UPGRADE about not tar'ing exported insts
1619 - Fix non-running test and remove custom_nicparams rename
1620 - Account for NODE_RES lock in opportunistic locking
1621 - Fix request flooding of noded during disk sync
1622
1623 Inherited from the 2.9 branch:
1624
1625 - Make watcher submit queries low priority
1626 - Fix failing gnt-node list-drbd command
1627 - Update installation guide wrt to DRBD version
1628 - Fix list-drbd QA test
1629 - Add messages about skipped QA disk template tests
1630 - Allow QA asserts to produce more messages
1631 - Set exclusion tags correctly in requested instance
1632 - Export extractExTags and updateExclTags
1633 - Document spindles in the hbal man page
1634 - Sample logrotate conf breaks permissions with split users
1635 - Fix 'gnt-cluster' and 'gnt-node list-storage' outputs
1636
1637 Inherited from the 2.8 branch:
1638
1639 - Add reason parameter to RAPI client functions
1640 - Include qa/patch in Makefile
1641 - Handle empty patches better
1642 - Move message formatting functions to separate file
1643 - Add optional ordering of QA patch files
1644 - Allow multiple QA patches
1645 - Refactor current patching code
1646
1647
1648 Version 2.11.0 rc1
1649 ------------------
1650
1651 *(Released Thu, 20 Mar 2014)*
1652
1653 This was the first RC release of the 2.11 series. Since 2.11.0 beta1:
1654
1655 - Convert int to float when checking config. consistency
1656 - Rename compression option in gnt-backup export
1657
1658 Inherited from the 2.9 branch:
1659
1660 - Fix error introduced during merge
1661 - gnt-cluster copyfile: accept relative paths
1662
1663 Inherited from the 2.8 branch:
1664
1665 - Improve RAPI detection of the watcher
1666 - Add patching QA configuration files on buildbots
1667 - Enable a timeout for instance shutdown
1668 - Allow KVM commands to have a timeout
1669 - Allow xen commands to have a timeout
1670 - Fix wrong docstring
1671
1672
1673 Version 2.11.0 beta1
1674 --------------------
1675
1676 *(Released Wed, 5 Mar 2014)*
1677
1678 This was the first beta release of the 2.11 series. All important changes
1679 are listed in the latest 2.11 entry.
1680
1681
1682 Version 2.10.8
1683 --------------
1684
1685 *(Released Fri, 11 Dec 2015)*
1686
1687 Important changes and security notes
1688 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1689
1690 Security release.
1691
1692 CVE-2015-7944
1693
1694 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
1695 implementation is vulnerable to DoS attacks via client-initiated SSL
1696 parameter renegotiation. While the interface is not meant to be exposed
1697 publicly, due to the fact that it binds to all interfaces, we believe
1698 some users might be exposing it unintentionally and are vulnerable. A
1699 DoS attack can consume resources meant for Ganeti daemons and instances
1700 running on the master node, making both perform badly.
1701
1702 Fixes are not feasible due to the OpenSSL Python library not exposing
1703 functionality needed to disable client-side renegotiation. Instead, we
1704 offer instructions on how to control RAPI's exposure, along with info
1705 on how RAPI can be setup alongside an HTTPS proxy in case users still
1706 want or need to expose the RAPI interface. The instructions are
1707 outlined in Ganeti's security document: doc/html/security.html
1708
1709 CVE-2015-7945
1710
1711 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
1712 results after an instance information job reveals the secret. With the
1713 DRBD secret, access to the local cluster network, and ARP poisoning,
1714 an attacker can impersonate a Ganeti node and clone the disks of a
1715 DRBD-based instance. While an attacker with access to the cluster
1716 network is already capable of accessing any data written as DRBD
1717 traffic is unencrypted, having the secret expedites the process and
1718 allows access to the entire disk.
1719
1720 Fixes contained in this release prevent the secret from being exposed
1721 via the RAPI. The DRBD secret can be changed by converting an instance
1722 to plain and back to DRBD, generating a new secret, but redundancy will
1723 be lost until the process completes.
1724 Since attackers with node access are capable of accessing some and
1725 potentially all data even without the secret, we do not recommend that
1726 the secret be changed for existing instances.
1727
1728 Minor changes
1729 ~~~~~~~~~~~~~
1730
1731 - Make htools tolerate missing "dtotal" and "dfree" on luxi
1732 - At IAlloc backend guess state from admin state
1733 - replace-disks: fix --ignore-ipolicy
1734 - Fix instance multi allocation for non-DRBD disks
1735 - Check for gnt-cluster before running gnt-cluster upgrade
1736 - Work around a Python os.minor bug
1737 - Add IP-related checks after master-failover
1738 - Pass correct backend params in move-instance
1739 - Allow plain/DRBD conversions regardless of lack of disks
1740 - Fix MonD collector thunk leak
1741 - Stop MonD when removing a node from a cluster
1742 - Finalize backup only if successful
1743 - Fix file descriptor leak in Confd Client
1744 - Auto-upgrade hv_state_static and disk_state_static
1745 - Do not hardcode the Python path in CLI tools
1746 - Use the Python interpreter from ENV
1747 - ganeti.daemon: fix daemon mode with GnuTLS >= 3.3 (Issues 961, 964)
1748 - Ganeti.Daemon: always install SIGHUP handler (Issue 755)
1749 - Fix DRBD version check for non VM capable nodes
1750 - Fix handling of the --online option
1751 - Add warning against hvparam changes with live migrations
1752 - Only verify LVs in configured VG during cluster verify
1753 - Fix network info in case of multi NIC instances
1754 - On upgrades, check for upgrades to resume first
1755 - Pause watcher during upgrade
1756 - Allow instance disks to be added with --no-wait-for-sync
1757
1758
1759 Version 2.10.7
1760 --------------
1761
1762 *(Released Thu, 7 Aug 2014)*
1763
1764 Important security release. In 2.10.0, the
1765 'gnt-cluster upgrade' command was introduced. Before
1766 performing an upgrade, the configuration directory of
1767 the cluster is backed up. Unfortunately, the archive was
1768 written with permissions that make it possible for
1769 non-privileged users to read the archive and thus have
1770 access to cluster and RAPI keys. After this release,
1771 the archive will be created with privileged access only.
1772
1773 We strongly advise you to restrict the permissions of
1774 previously created archives. The archives are found in
1775 /var/lib/ganeti*.tar (unless otherwise configured with
1776 --localstatedir or --with-backup-dir).
1777
1778 If you suspect that non-privileged users have accessed
1779 your archives already, we advise you to renew the
1780 cluster's crypto keys using 'gnt-cluster renew-crypto'
1781 and to reset the RAPI credentials by editing
1782 /var/lib/ganeti/rapi_users (respectively under a
1783 different path if configured differently with
1784 --localstatedir).
1785
1786 Other changes included in this release:
1787
1788 - Fix handling of Xen instance states.
1789 - Fix NIC configuration with absent NIC VLAN
1790 - Adapt relative path expansion in PATH to new environment
1791 - Exclude archived jobs from configuration backups
1792 - Fix RAPI for split query setup
1793 - Allow disk hot-remove even with chroot or SM
1794
1795 Inherited from the 2.9 branch:
1796
1797 - Make htools tolerate missing 'spfree' on luxi
1798
1799
1800 Version 2.10.6
1801 --------------
1802
1803 *(Released Mon, 30 Jun 2014)*
1804
1805 - Make Ganeti tolerant towards differnt openssl library
1806   version on different nodes (issue 853).
1807 - Allow hspace to make useful predictions in multi-group
1808   clusters with one group overfull (isse 861).
1809 - Various gnt-network related fixes.
1810 - Fix disk hotplug with userspace access.
1811 - Various documentation errors fixed.
1812
1813
1814 Version 2.10.5
1815 --------------
1816
1817 *(Released Mon, 2 Jun 2014)*
1818
1819 - Two new options have been added to gnt-group evacuate.
1820   The 'sequential' option forces all the evacuation steps to
1821   be carried out sequentially, thus avoiding congestion on a
1822   slow link between node groups. The 'force-failover' option
1823   disallows migrations and forces failovers to be used instead.
1824   In this way evacuation to a group with vastly differnet
1825   hypervisor is possible.
1826 - In tiered allocation, when looking for ways on how to shrink
1827   an instance, the canoncial path is tried first, i.e., in each
1828   step reduce on the resource most placements are blocked on. Only
1829   if no smaller fitting instance can be found shrinking a single
1830   resource till fit is tried.
1831 - For finding the placement of an instance, the duplicate computations
1832   in the computation of the various cluster scores are computed only
1833   once. This significantly improves the performance of hspace for DRBD
1834   on large clusters; for other clusters, a slight performance decrease
1835   might occur. Moreover, due to the changed order, floating point
1836   number inaccuracies accumulate differently, thus resulting in different
1837   cluster scores. It has been verified that the effect of these different
1838   roundings is less than 1e-12.
1839 - network queries fixed with respect to instances
1840 - relax too strict prerequisite in LUClusterSetParams for DRBD helpers
1841 - VArious improvements to QA and build-time tests
1842
1843
1844 Version 2.10.4
1845 --------------
1846
1847 *(Released Thu, 15 May 2014)*
1848
1849 - Support restricted migration in hbal
1850 - Fix for the --shared-file-storage-dir of gnt-cluster modify (issue 811)
1851 - Fail in replace-disks if attaching disks fails (issue 814)
1852 - Set IFF_ONE_QUEUE on created tap interfaces for KVM
1853 - Small fixes and enhancements in the build system
1854 - Various documentation fixes (e.g. issue 810)
1855
1856
1857 Version 2.10.3
1858 --------------
1859
1860 *(Released Wed, 16 Apr 2014)*
1861
1862 - Fix filtering of pending jobs with -o id (issue 778)
1863 - Make RAPI API calls more symmetric (issue 770)
1864 - Make parsing of old cluster configuration more robust (issue 783)
1865 - Fix wrong output of gnt-instance info after migrations
1866 - Fix reserved PCI slots for KVM hotplugging
1867 - Use runtime hypervisor parameters to calculate bockdevice options for KVM
1868 - Fix high node daemon load during disk sync if the sync is paused manually
1869   (issue 792)
1870 - Improve opportunistic locking during instance creation (issue 791)
1871
1872 Inherited from the 2.9 branch:
1873
1874 - Make watcher submit queries low priority (issue 772)
1875 - Add reason parameter to RAPI client functions (issue 776)
1876 - Fix failing gnt-node list-drbd command (issue 777)
1877 - Properly display fake job locks in gnt-debug.
1878 - small fixes in documentation
1879
1880
1881 Version 2.10.2
1882 --------------
1883
1884 *(Released Mon, 24 Mar 2014)*
1885
1886 - Fix conflict between virtio + spice or soundhw (issue 757)
1887 - accept relative paths in gnt-cluster copyfile (issue 754)
1888 - Introduce shutdown timeout for 'xm shutdown' command
1889 - Improve RAPI detection of the watcher (issue 752)
1890
1891
1892 Version 2.10.1
1893 --------------
1894
1895 *(Released Wed, 5 Mar 2014)*
1896
1897 - Fix incorrect invocation of hooks on offline nodes (issue 742)
1898 - Fix incorrect exit code of gnt-cluster verify in certain circumstances
1899   (issue 744)
1900
1901 Inherited from the 2.9 branch:
1902
1903 - Fix overflow problem in hbal that caused it to break when waiting for
1904   jobs for more than 10 minutes (issue 717)
1905 - Make hbal properly handle non-LVM storage
1906 - Properly export and import NIC parameters, and do so in a backwards
1907   compatible way (issue 716)
1908 - Fix net-common script in case of routed mode (issue 728)
1909 - Improve documentation (issues 724, 730)
1910
1911
1912 Version 2.10.0
1913 --------------
1914
1915 *(Released Thu, 20 Feb 2014)*
1916
1917 Incompatible/important changes
1918 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1919
1920 - Adding disks with 'gnt-instance modify' now waits for the disks to sync per
1921   default. Specify --no-wait-for-sync to override this behavior.
1922 - The Ganeti python code now adheres to a private-module layout. In particular,
1923   the module 'ganeti' is no longer in the python search path.
1924 - On instance allocation, the iallocator now considers non-LVM storage
1925   properly. In particular, actual file storage space information is used
1926   when allocating space for a file/sharedfile instance.
1927 - When disabling disk templates cluster-wide, the cluster now first
1928   checks whether there are instances still using those templates.
1929 - 'gnt-node list-storage' now also reports storage information about
1930   file-based storage types.
1931 - In case of non drbd instances, export \*_SECONDARY environment variables
1932   as empty strings (and not "None") during 'instance-migrate' related hooks.
1933
1934 New features
1935 ~~~~~~~~~~~~
1936
1937 - KVM hypervisors can now access RBD storage directly without having to
1938   go through a block device.
1939 - A new command 'gnt-cluster upgrade' was added that automates the upgrade
1940   procedure between two Ganeti versions that are both 2.10 or higher.
1941 - The move-instance command can now change disk templates when moving
1942   instances, and does not require any node placement options to be
1943   specified if the destination cluster has a default iallocator.
1944 - Users can now change the soundhw and cpuid settings for XEN hypervisors.
1945 - Hail and hbal now have the (optional) capability of accessing average CPU
1946   load information through the monitoring deamon, and to use it to dynamically
1947   adapt the allocation of instances.
1948 - Hotplug support. Introduce new option '--hotplug' to ``gnt-instance modify``
1949   so that disk and NIC modifications take effect without the need of actual
1950   reboot. There are a couple of constrains currently for this feature:
1951
1952    - only KVM hypervisor (versions >= 1.0) supports it,
1953    - one can not (yet) hotplug a disk using userspace access mode for RBD
1954    - in case of a downgrade instances should suffer a reboot in order to
1955      be migratable (due to core change of runtime files)
1956    - ``python-fdsend`` is required for NIC hotplugging.
1957
1958 Misc changes
1959 ~~~~~~~~~~~~
1960
1961 - A new test framework for logical units was introduced and the test
1962   coverage for logical units was improved significantly.
1963 - Opcodes are entirely generated from Haskell using the tool 'hs2py' and
1964   the module 'src/Ganeti/OpCodes.hs'.
1965 - Constants are also generated from Haskell using the tool
1966   'hs2py-constants' and the module 'src/Ganeti/Constants.hs', with the
1967   exception of socket related constants, which require changing the
1968   cluster configuration file, and HVS related constants, because they
1969   are part of a port of instance queries to Haskell.  As a result, these
1970   changes will be part of the next release of Ganeti.
1971
1972 New dependencies
1973 ~~~~~~~~~~~~~~~~
1974
1975 The following new dependencies have been added/updated.
1976
1977 Python
1978
1979 - The version requirements for ``python-mock`` have increased to at least
1980   version 1.0.1. It is still used for testing only.
1981 - ``python-fdsend`` (https://gitorious.org/python-fdsend) is optional
1982   but required for KVM NIC hotplugging to work.
1983
1984 Since 2.10.0 rc3
1985 ~~~~~~~~~~~~~~~~
1986
1987 - Fix integer overflow problem in hbal
1988
1989
1990 Version 2.10.0 rc3
1991 ------------------
1992
1993 *(Released Wed, 12 Feb 2014)*
1994
1995 This was the third RC release of the 2.10 series. Since 2.10.0 rc2:
1996
1997 - Improved hotplug robustness
1998 - Start Ganeti daemons after ensure-dirs during upgrade
1999 - Documentation improvements
2000
2001 Inherited from the 2.9 branch:
2002
2003 - Fix the RAPI instances-multi-alloc call
2004 - assign unique filenames to file-based disks
2005 - gracefully handle degraded non-diskless instances with 0 disks (issue 697)
2006 - noded now runs with its specified group, which is the default group,
2007   defaulting to root (issue 707)
2008 - make using UUIDs to identify nodes in gnt-node consistently possible
2009   (issue 703)
2010
2011
2012 Version 2.10.0 rc2
2013 ------------------
2014
2015 *(Released Fri, 31 Jan 2014)*
2016
2017 This was the second RC release of the 2.10 series. Since 2.10.0 rc1:
2018
2019 - Documentation improvements
2020 - Run drbdsetup syncer only on network attach
2021 - Include target node in hooks nodes for migration
2022 - Fix configure dirs
2023 - Support post-upgrade hooks during cluster upgrades
2024
2025 Inherited from the 2.9 branch:
2026
2027 - Ensure that all the hypervisors exist in the config file (Issue 640)
2028 - Correctly recognise the role as master node (Issue 687)
2029 - configure: allow detection of Sphinx 1.2+ (Issue 502)
2030 - gnt-instance now honors the KVM path correctly (Issue 691)
2031
2032 Inherited from the 2.8 branch:
2033
2034 - Change the list separator for the usb_devices parameter from comma to space.
2035   Commas could not work because they are already the hypervisor option
2036   separator (Issue 649)
2037 - Add support for blktap2 file-driver (Issue 638)
2038 - Add network tag definitions to the haskell codebase (Issue 641)
2039 - Fix RAPI network tag handling
2040 - Add the network tags to the tags searched by gnt-cluster search-tags
2041 - Fix caching bug preventing jobs from being cancelled
2042 - Start-master/stop-master was always failing if ConfD was disabled. (Issue 685)
2043
2044
2045 Version 2.10.0 rc1
2046 ------------------
2047
2048 *(Released Tue, 17 Dec 2013)*
2049
2050 This was the first RC release of the 2.10 series. Since 2.10.0 beta1:
2051
2052 - All known issues in 2.10.0 beta1 have been resolved (see changes from
2053   the 2.8 branch).
2054 - Improve handling of KVM runtime files from earlier Ganeti versions
2055 - Documentation fixes
2056
2057 Inherited from the 2.9 branch:
2058
2059 - use custom KVM path if set for version checking
2060 - SingleNotifyPipeCondition: don't share pollers
2061
2062 Inherited from the 2.8 branch:
2063
2064 - Fixed Luxi daemon socket permissions after master-failover
2065 - Improve IP version detection code directly checking for colons rather than
2066   passing the family from the cluster object
2067 - Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
2068   opportunistically anymore (Issue 622)
2069 - Allow link local IPv6 gateways (Issue 624)
2070 - Fix error printing (Issue 616)
2071 - Fix a bug in InstanceSetParams concerning names: in case no name is passed in
2072   disk modifications, keep the old one. If name=none then set disk name to
2073   None.
2074 - Update build_chroot script to work with the latest hackage packages
2075 - Add a packet number limit to "fping" in master-ip-setup (Issue 630)
2076 - Fix evacuation out of drained node (Issue 615)
2077 - Add default file_driver if missing (Issue 571)
2078 - Fix job error message after unclean master shutdown (Issue 618)
2079 - Lock group(s) when creating instances (Issue 621)
2080 - SetDiskID() before accepting an instance (Issue 633)
2081 - Allow the ext template disks to receive arbitrary parameters, both at creation
2082   time and while being modified
2083 - Xen handle domain shutdown (future proofing cherry-pick)
2084 - Refactor reading live data in htools (future proofing cherry-pick)
2085
2086
2087 Version 2.10.0 beta1
2088 --------------------
2089
2090 *(Released Wed, 27 Nov 2013)*
2091
2092 This was the first beta release of the 2.10 series. All important changes
2093 are listed in the latest 2.10 entry.
2094
2095 Known issues
2096 ~~~~~~~~~~~~
2097
2098 The following issues are known to be present in the beta and will be fixed
2099 before rc1.
2100
2101 - Issue 477: Wrong permissions for confd LUXI socket
2102 - Issue 621: Instance related opcodes do not aquire network/group locks
2103 - Issue 622: Assertion Error: Node locks differ from node resource locks
2104 - Issue 623: IPv6 Masterd <-> Luxid communication error
2105
2106
2107 Version 2.9.7
2108 -------------
2109
2110 *(Released Fri, 11 Dec 2015)*
2111
2112 Important changes and security notes
2113 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2114
2115 Security release.
2116
2117 CVE-2015-7944
2118
2119 Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
2120 implementation is vulnerable to DoS attacks via client-initiated SSL
2121 parameter renegotiation. While the interface is not meant to be exposed
2122 publicly, due to the fact that it binds to all interfaces, we believe
2123 some users might be exposing it unintentionally and are vulnerable. A
2124 DoS attack can consume resources meant for Ganeti daemons and instances
2125 running on the master node, making both perform badly.
2126
2127 Fixes are not feasible due to the OpenSSL Python library not exposing
2128 functionality needed to disable client-side renegotiation. Instead, we
2129 offer instructions on how to control RAPI's exposure, along with info
2130 on how RAPI can be setup alongside an HTTPS proxy in case users still
2131 want or need to expose the RAPI interface. The instructions are
2132 outlined in Ganeti's security document: doc/html/security.html
2133
2134 CVE-2015-7945
2135
2136 Ganeti leaks the DRBD secret through the RAPI interface. Examining job
2137 results after an instance information job reveals the secret. With the
2138 DRBD secret, access to the local cluster network, and ARP poisoning,
2139 an attacker can impersonate a Ganeti node and clone the disks of a
2140 DRBD-based instance. While an attacker with access to the cluster
2141 network is already capable of accessing any data written as DRBD
2142 traffic is unencrypted, having the secret expedites the process and
2143 allows access to the entire disk.
2144
2145 Fixes contained in this release prevent the secret from being exposed
2146 via the RAPI. The DRBD secret can be changed by converting an instance
2147 to plain and back to DRBD, generating a new secret, but redundancy will
2148 be lost until the process completes.
2149 Since attackers with node access are capable of accessing some and
2150 potentially all data even without the secret, we do not recommend that
2151 the secret be changed for existing instances.
2152
2153 Minor changes
2154 ~~~~~~~~~~~~~
2155
2156 - gnt-instance replace-disks no longer crashes when --ignore-policy is
2157   passed to it
2158 - Stop MonD when removing a node from a cluster
2159 - Fix file descriptor leak in Confd client
2160 - Always install SIGHUP handler for Haskell daemons (Issue 755)
2161 - Make ganeti-cleaner switch to a safe working directory (Issue 880)
2162 - Make htools tolerate missing "spfree" on Luxi
2163 - DRBD parser: consume initial empty resource lines (Issue 869)
2164 - KVM: set IFF_ONE_QUEUE on created tap interfaces
2165 - Set exclusion tags correctly in requested instance
2166
2167
2168 Version 2.9.6
2169 -------------
2170
2171 *(Released Mon, 7 Apr 2014)*
2172
2173 - Improve RAPI detection of the watcher (Issue 752)
2174 - gnt-cluster copyfile: accept relative paths (Issue 754)
2175 - Make watcher submit queries low priority (Issue 772)
2176 - Add reason parameter to RAPI client functions (Issue 776)
2177 - Fix failing gnt-node list-drbd command (Issue 777)
2178 - Properly display fake job locks in gnt-debug.
2179 - Enable timeout for instance shutdown
2180 - small fixes in documentation
2181
2182
2183 Version 2.9.5
2184 -------------
2185
2186 *(Released Tue, 25 Feb 2014)*
2187
2188 - Fix overflow problem in hbal that caused it to break when waiting for
2189   jobs for more than 10 minutes (issue 717)
2190 - Make hbal properly handle non-LVM storage
2191 - Properly export and import NIC parameters, and do so in a backwards
2192   compatible way (issue 716)
2193 - Fix net-common script in case of routed mode (issue 728)
2194 - Improve documentation (issues 724, 730)
2195
2196
2197 Version 2.9.4
2198 -------------
2199
2200 *(Released Mon, 10 Feb 2014)*
2201
2202 - Fix the RAPI instances-multi-alloc call
2203 - assign unique filenames to file-based disks
2204 - gracefully handle degraded non-diskless instances with 0 disks (issue 697)
2205 - noded now runs with its specified group, which is the default group,
2206   defaulting to root (issue 707)
2207 - make using UUIDs to identify nodes in gnt-node consistently possible
2208   (issue 703)
2209
2210
2211 Version 2.9.3
2212 -------------
2213
2214 *(Released Mon, 27 Jan 2014)*
2215
2216 - Ensure that all the hypervisors exist in the config file (Issue 640)
2217 - Correctly recognise the role as master node (Issue 687)
2218 - configure: allow detection of Sphinx 1.2+ (Issue 502)
2219 - gnt-instance now honors the KVM path correctly (Issue 691)
2220
2221 Inherited from the 2.8 branch:
2222
2223 - Change the list separator for the usb_devices parameter from comma to space.
2224   Commas could not work because they are already the hypervisor option
2225   separator (Issue 649)
2226 - Add support for blktap2 file-driver (Issue 638)
2227 - Add network tag definitions to the haskell codebase (Issue 641)
2228 - Fix RAPI network tag handling
2229 - Add the network tags to the tags searched by gnt-cluster search-tags
2230 - Fix caching bug preventing jobs from being cancelled
2231 - Start-master/stop-master was always failing if ConfD was disabled. (Issue 685)
2232
2233
2234 Version 2.9.2
2235 -------------
2236
2237 *(Released Fri, 13 Dec 2013)*
2238
2239 - use custom KVM path if set for version checking
2240 - SingleNotifyPipeCondition: don't share pollers
2241
2242 Inherited from the 2.8 branch:
2243
2244 - Fixed Luxi daemon socket permissions after master-failover
2245 - Improve IP version detection code directly checking for colons rather than
2246   passing the family from the cluster object
2247 - Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
2248   opportunistically anymore (Issue 622)
2249 - Allow link local IPv6 gateways (Issue 624)
2250 - Fix error printing (Issue 616)
2251 - Fix a bug in InstanceSetParams concerning names: in case no name is passed in
2252   disk modifications, keep the old one. If name=none then set disk name to
2253   None.
2254 - Update build_chroot script to work with the latest hackage packages
2255 - Add a packet number limit to "fping" in master-ip-setup (Issue 630)
2256 - Fix evacuation out of drained node (Issue 615)
2257 - Add default file_driver if missing (Issue 571)
2258 - Fix job error message after unclean master shutdown (Issue 618)
2259 - Lock group(s) when creating instances (Issue 621)
2260 - SetDiskID() before accepting an instance (Issue 633)
2261 - Allow the ext template disks to receive arbitrary parameters, both at creation
2262   time and while being modified
2263 - Xen handle domain shutdown (future proofing cherry-pick)
2264 - Refactor reading live data in htools (future proofing cherry-pick)
2265
2266
2267 Version 2.9.1
2268 -------------
2269
2270 *(Released Wed, 13 Nov 2013)*
2271
2272 - fix bug, that kept nodes offline when readding
2273 - when verifying DRBD versions, ignore unavailable nodes
2274 - fix bug that made the console unavailable on kvm in split-user
2275   setup (issue 608)
2276 - DRBD: ensure peers are UpToDate for dual-primary (inherited 2.8.2)
2277
2278
2279 Version 2.9.0
2280 -------------
2281
2282 *(Released Tue, 5 Nov 2013)*
2283
2284 Incompatible/important changes
2285 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2286
2287 - hroller now also plans for capacity to move non-redundant instances off
2288   any node to be rebooted; the old behavior of completely ignoring any
2289   non-redundant instances can be restored by adding the --ignore-non-redundant
2290   option.
2291 - The cluster option '--no-lvm-storage' was removed in favor of the new option
2292   '--enabled-disk-templates'.
2293 - On instance creation, disk templates no longer need to be specified
2294   with '-t'. The default disk template will be taken from the list of
2295   enabled disk templates.
2296 - The monitoring daemon is now running as root, in order to be able to collect
2297   information only available to root (such as the state of Xen instances).
2298 - The ConfD client is now IPv6 compatible.
2299 - File and shared file storage is no longer dis/enabled at configure time,
2300   but using the option '--enabled-disk-templates' at cluster initialization and
2301   modification.
2302 - The default directories for file and shared file storage are not anymore
2303   specified at configure time, but taken from the cluster's configuration.
2304   They can be set at cluster initialization and modification with
2305   '--file-storage-dir' and '--shared-file-storage-dir'.
2306 - Cluster verification now includes stricter checks regarding the
2307   default file and shared file storage directories. It now checks that
2308   the directories are explicitely allowed in the 'file-storage-paths' file and
2309   that the directories exist on all nodes.
2310 - The list of allowed disk templates in the instance policy and the list
2311   of cluster-wide enabled disk templates is now checked for consistency
2312   on cluster or group modification. On cluster initialization, the ipolicy
2313   disk templates are ensured to be a subset of the cluster-wide enabled
2314   disk templates.
2315
2316 New features
2317 ~~~~~~~~~~~~
2318
2319 - DRBD 8.4 support. Depending on the installed DRBD version, Ganeti now uses
2320   the correct command syntax. It is possible to use different DRBD versions
2321   on different nodes as long as they are compatible to each other. This
2322   enables rolling upgrades of DRBD with no downtime. As permanent operation
2323   of different DRBD versions within a node group is discouraged,
2324   ``gnt-cluster verify`` will emit a warning if it detects such a situation.
2325 - New "inst-status-xen" data collector for the monitoring daemon, providing
2326   information about the state of the xen instances on the nodes.
2327 - New "lv" data collector for the monitoring daemon, collecting data about the
2328   logical volumes on the nodes, and pairing them with the name of the instances
2329   they belong to.
2330 - New "diskstats" data collector, collecting the data from /proc/diskstats and
2331   presenting them over the monitoring daemon interface.
2332 - The ConfD client is now IPv6 compatible.
2333
2334 New dependencies
2335 ~~~~~~~~~~~~~~~~
2336 The following new dependencies have been added.
2337
2338 Python
2339
2340 - ``python-mock`` (http://www.voidspace.org.uk/python/mock/) is now a required
2341   for the unit tests (and only used for testing).
2342
2343 Haskell
2344
2345 - ``hslogger`` (http://software.complete.org/hslogger) is now always
2346   required, even if confd is not enabled.
2347
2348 Since 2.9.0 rc3
2349 ~~~~~~~~~~~~~~~
2350
2351 - Correctly start/stop luxid during gnt-cluster master-failover (inherited
2352   from stable-2.8)
2353 - Improved error messsages (inherited from stable-2.8)
2354
2355
2356 Version 2.9.0 rc3
2357 -----------------
2358
2359 *(Released Tue, 15 Oct 2013)*
2360
2361 The third release candidate in the 2.9 series. Since 2.9.0 rc2:
2362
2363 - in implicit configuration upgrade, match ipolicy with enabled disk templates
2364 - improved harep documentation (inherited from stable-2.8)
2365
2366
2367 Version 2.9.0 rc2
2368 -----------------
2369
2370 *(Released Wed, 9 Oct 2013)*
2371
2372 The second release candidate in the 2.9 series. Since 2.9.0 rc1:
2373
2374 - Fix bug in cfgupgrade that led to failure when upgrading from 2.8 with
2375   at least one DRBD instance.
2376 - Fix bug in cfgupgrade that led to an invalid 2.8 configuration after
2377   downgrading.
2378
2379
2380 Version 2.9.0 rc1
2381 -----------------
2382
2383 *(Released Tue, 1 Oct 2013)*
2384
2385 The first release candidate in the 2.9 series. Since 2.9.0 beta1:
2386
2387 - various bug fixes
2388 - update of the documentation, in particular installation instructions
2389 - merging of LD_* constants into DT_* constants
2390 - python style changes to be compatible with newer versions of pylint
2391
2392
2393 Version 2.9.0 beta1
2394 -------------------
2395
2396 *(Released Thu, 29 Aug 2013)*
2397
2398 This was the first beta release of the 2.9 series. All important changes
2399 are listed in the latest 2.9 entry.
2400
2401
2402 Version 2.8.4
2403 -------------
2404
2405 *(Released Thu, 23 Jan 2014)*
2406
2407 - Change the list separator for the usb_devices parameter from comma to space.
2408   Commas could not work because they are already the hypervisor option
2409   separator (Issue 649)
2410 - Add support for blktap2 file-driver (Issue 638)
2411 - Add network tag definitions to the haskell codebase (Issue 641)
2412 - Fix RAPI network tag handling
2413 - Add the network tags to the tags searched by gnt-cluster search-tags
2414 - Fix caching bug preventing jobs from being cancelled
2415 - Start-master/stop-master was always failing if ConfD was disabled. (Issue 685)
2416
2417
2418 Version 2.8.3
2419 -------------
2420
2421 *(Released Thu, 12 Dec 2013)*
2422
2423 - Fixed Luxi daemon socket permissions after master-failover
2424 - Improve IP version detection code directly checking for colons rather than
2425   passing the family from the cluster object
2426 - Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
2427   opportunistically anymore (Issue 622)
2428 - Allow link local IPv6 gateways (Issue 624)
2429 - Fix error printing (Issue 616)
2430 - Fix a bug in InstanceSetParams concerning names: in case no name is passed in
2431   disk modifications, keep the old one. If name=none then set disk name to
2432   None.
2433 - Update build_chroot script to work with the latest hackage packages
2434 - Add a packet number limit to "fping" in master-ip-setup (Issue 630)
2435 - Fix evacuation out of drained node (Issue 615)
2436 - Add default file_driver if missing (Issue 571)
2437 - Fix job error message after unclean master shutdown (Issue 618)
2438 - Lock group(s) when creating instances (Issue 621)
2439 - SetDiskID() before accepting an instance (Issue 633)
2440 - Allow the ext template disks to receive arbitrary parameters, both at creation
2441   time and while being modified
2442 - Xen handle domain shutdown (future proofing cherry-pick)
2443 - Refactor reading live data in htools (future proofing cherry-pick)
2444
2445
2446 Version 2.8.2
2447 -------------
2448
2449 *(Released Thu, 07 Nov 2013)*
2450
2451 - DRBD: ensure peers are UpToDate for dual-primary
2452 - Improve error message for replace-disks
2453 - More dependency checks at configure time
2454 - Placate warnings on ganeti.outils_unittest.py
2455
2456
2457 Version 2.8.1
2458 -------------
2459
2460 *(Released Thu, 17 Oct 2013)*
2461
2462 - Correctly start/stop luxid during gnt-cluster master-failover
2463 - Don't attempt IPv6 ssh in case of IPv4 cluster (Issue 595)
2464 - Fix path for the job queue serial file
2465 - Improved harep man page
2466 - Minor documentation improvements
2467
2468
2469 Version 2.8.0
2470 -------------
2471
2472 *(Released Mon, 30 Sep 2013)*
2473
2474 Incompatible/important changes
2475 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2476
2477 - Instance policy can contain multiple instance specs, as described in
2478   the “Constrained instance sizes” section of :doc:`Partitioned Ganeti
2479   <design-partitioned>`. As a consequence, it's not possible to partially change
2480   or override instance specs. Bounding specs (min and max) can be specified as a
2481   whole using the new option ``--ipolicy-bounds-specs``, while standard
2482   specs use the new option ``--ipolicy-std-specs``.
2483 - The output of the info command of gnt-cluster, gnt-group, gnt-node,
2484   gnt-instance is a valid YAML object.
2485 - hail now honors network restrictions when allocating nodes. This led to an
2486   update of the IAllocator protocol. See the IAllocator documentation for
2487   details.
2488 - confd now only answers static configuration request over the network. luxid
2489   was extracted, listens on the local LUXI socket and responds to live queries.
2490   This allows finer grained permissions if using separate users.
2491
2492 New features
2493 ~~~~~~~~~~~~
2494
2495 - The :doc:`Remote API <rapi>` daemon now supports a command line flag
2496   to always require authentication, ``--require-authentication``. It can
2497   be specified in ``$sysconfdir/default/ganeti``.
2498 - A new cluster attribute 'enabled_disk_templates' is introduced. It will
2499   be used to manage the disk templates to be used by instances in the cluster.
2500   Initially, it will be set to a list that includes plain, drbd, if they were
2501   enabled by specifying a volume group name, and file and sharedfile, if those
2502   were enabled at configure time. Additionally, it will include all disk
2503   templates that are currently used by instances. The order of disk templates
2504   will be based on Ganeti's history of supporting them. In the future, the
2505   first entry of the list will be used as a default disk template on instance
2506   creation.
2507 - ``cfgupgrade`` now supports a ``--downgrade`` option to bring the
2508   configuration back to the previous stable version.
2509 - Disk templates in group ipolicy can be restored to the default value.
2510 - Initial support for diskless instances and virtual clusters in QA.
2511 - More QA and unit tests for instance policies.
2512 - Every opcode now contains a reason trail (visible through ``gnt-job info``)
2513   describing why the opcode itself was executed.
2514 - The monitoring daemon is now available. It allows users to query the cluster
2515   for obtaining information about the status of the system. The daemon is only
2516   responsible for providing the information over the network: the actual data
2517   gathering is performed by data collectors (currently, only the DRBD status
2518   collector is available).
2519 - In order to help developers work on Ganeti, a new script
2520   (``devel/build_chroot``) is provided, for building a chroot that contains all
2521   the required development libraries and tools for compiling Ganeti on a Debian
2522   Squeeze system.
2523 - A new tool, ``harep``, for performing self-repair and recreation of instances
2524   in Ganeti has been added.
2525 - Split queries are enabled for tags, network, exports, cluster info, groups,
2526   jobs, nodes.
2527 - New command ``show-ispecs-cmd`` for ``gnt-cluster`` and ``gnt-group``.
2528   It prints the command line to set the current policies, to ease
2529   changing them.
2530 - Add the ``vnet_hdr`` HV parameter for KVM, to control whether the tap
2531   devices for KVM virtio-net interfaces will get created with VNET_HDR
2532   (IFF_VNET_HDR) support. If set to false, it disables offloading on the
2533   virtio-net interfaces, which prevents host kernel tainting and log
2534   flooding, when dealing with broken or malicious virtio-net drivers.
2535   It's set to true by default.
2536 - Instance failover now supports a ``--cleanup`` parameter for fixing previous
2537   failures.
2538 - Support 'viridian' parameter in Xen HVM
2539 - Support DSA SSH keys in bootstrap
2540 - To simplify the work of packaging frameworks that want to add the needed users
2541   and groups in a split-user setup themselves, at build time three files in
2542   ``doc/users`` will be generated. The ``groups`` files contains, one per line,
2543   the groups to be generated, the ``users`` file contains, one per line, the
2544   users to be generated, optionally followed by their primary group, where
2545   important. The ``groupmemberships`` file contains, one per line, additional
2546   user-group membership relations that need to be established. The syntax of
2547   these files will remain stable in all future versions.
2548
2549
2550 New dependencies
2551 ~~~~~~~~~~~~~~~~
2552 The following new dependencies have been added:
2553
2554 For Haskell:
2555 - The ``curl`` library is not optional anymore for compiling the Haskell code.
2556 - ``snap-server`` library (if monitoring is enabled).
2557
2558 For Python:
2559 - The minimum Python version needed to run Ganeti is now 2.6.
2560 - ``yaml`` library (only for running the QA).
2561
2562 Since 2.8.0 rc3
2563 ~~~~~~~~~~~~~~~
2564 - Perform proper cleanup on termination of Haskell daemons
2565 - Fix corner-case in handling of remaining retry time
2566
2567
2568 Version 2.8.0 rc3
2569 -----------------
2570
2571 *(Released Tue, 17 Sep 2013)*
2572
2573 - To simplify the work of packaging frameworks that want to add the needed users
2574   and groups in a split-user setup themselves, at build time three files in
2575   ``doc/users`` will be generated. The ``groups`` files contains, one per line,
2576   the groups to be generated, the ``users`` file contains, one per line, the
2577   users to be generated, optionally followed by their primary group, where
2578   important. The ``groupmemberships`` file contains, one per line, additional
2579   user-group membership relations that need to be established. The syntax of
2580   these files will remain stable in all future versions.
2581 - Add a default to file-driver when unspecified over RAPI (Issue 571)
2582 - Mark the DSA host pubkey as optional, and remove it during config downgrade
2583   (Issue 560)
2584 - Some documentation fixes
2585
2586
2587 Version 2.8.0 rc2
2588 -----------------
2589
2590 *(Released Tue, 27 Aug 2013)*
2591
2592 The second release candidate of the 2.8 series. Since 2.8.0. rc1:
2593
2594 - Support 'viridian' parameter in Xen HVM (Issue 233)
2595 - Include VCS version in ``gnt-cluster version``
2596 - Support DSA SSH keys in bootstrap (Issue 338)
2597 - Fix batch creation of instances
2598 - Use FQDN to check master node status (Issue 551)
2599 - Make the DRBD collector more failure-resilient
2600
2601
2602 Version 2.8.0 rc1
2603 -----------------
2604
2605 *(Released Fri, 2 Aug 2013)*
2606
2607 The first release candidate of the 2.8 series. Since 2.8.0 beta1:
2608
2609 - Fix upgrading/downgrading from 2.7
2610 - Increase maximum RAPI message size
2611 - Documentation updates
2612 - Split ``confd`` between ``luxid`` and ``confd``
2613 - Merge 2.7 series up to the 2.7.1 release
2614 - Allow the ``modify_etc_hosts`` option to be changed
2615 - Add better debugging for ``luxid`` queries
2616 - Expose bulk parameter for GetJobs in RAPI client
2617 - Expose missing ``network`` fields in RAPI
2618 - Add some ``cluster verify`` tests
2619 - Some unittest fixes
2620 - Fix a malfunction in ``hspace``'s tiered allocation
2621 - Fix query compatibility between haskell and python implementations
2622 - Add the ``vnet_hdr`` HV parameter for KVM
2623 - Add ``--cleanup`` to instance failover
2624 - Change the connected groups format in ``gnt-network info`` output; it
2625   was previously displayed as a raw list by mistake. (Merged from 2.7)
2626
2627
2628 Version 2.8.0 beta1
2629 -------------------
2630
2631 *(Released Mon, 24 Jun 2013)*
2632
2633 This was the first beta release of the 2.8 series. All important changes
2634 are listed in the latest 2.8 entry.
2635
2636
2637 Version 2.7.2
2638 -------------
2639
2640 *(Released Thu, 26 Sep 2013)*
2641
2642 - Change the connected groups format in ``gnt-network info`` output; it
2643   was previously displayed as a raw list by mistake
2644 - Check disk template in right dict when copying
2645 - Support multi-instance allocs without iallocator
2646 - Fix some errors in the documentation
2647 - Fix formatting of tuple in an error message
2648
2649
2650 Version 2.7.1
2651 -------------
2652
2653 *(Released Thu, 25 Jul 2013)*
2654
2655 - Add logrotate functionality in daemon-util
2656 - Add logrotate example file
2657 - Add missing fields to network queries over rapi
2658 - Fix network object timestamps
2659 - Add support for querying network timestamps
2660 - Fix a typo in the example crontab
2661 - Fix a documentation typo
2662
2663
2664 Version 2.7.0
2665 -------------
2666
2667 *(Released Thu, 04 Jul 2013)*
2668
2669 Incompatible/important changes
2670 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2671
2672 - Instance policies for disk size were documented to be on a per-disk
2673   basis, but hail applied them to the sum of all disks. This has been
2674   fixed.
2675 - ``hbal`` will now exit with status 0 if, during job execution over
2676   LUXI, early exit has been requested and all jobs are successful;
2677   before, exit status 1 was used, which cannot be differentiated from
2678   "job error" case
2679 - Compatibility with newer versions of rbd has been fixed
2680 - ``gnt-instance batch-create`` has been changed to use the bulk create
2681   opcode from Ganeti. This lead to incompatible changes in the format of
2682   the JSON file. It's now not a custom dict anymore but a dict
2683   compatible with the ``OpInstanceCreate`` opcode.
2684 - Parent directories for file storage need to be listed in
2685   ``$sysconfdir/ganeti/file-storage-paths`` now. ``cfgupgrade`` will
2686   write the file automatically based on old configuration values, but it
2687   can not distribute it across all nodes and the file contents should be
2688   verified. Use ``gnt-cluster copyfile
2689   $sysconfdir/ganeti/file-storage-paths`` once the cluster has been
2690   upgraded. The reason for requiring this list of paths now is that
2691   before it would have been possible to inject new paths via RPC,
2692   allowing files to be created in arbitrary locations. The RPC protocol
2693   is protected using SSL/X.509 certificates, but as a design principle
2694   Ganeti does not permit arbitrary paths to be passed.
2695 - The parsing of the variants file for OSes (see
2696   :manpage:`ganeti-os-interface(7)`) has been slightly changed: now empty
2697   lines and comment lines (starting with ``#``) are ignored for better
2698   readability.
2699 - The ``setup-ssh`` tool added in Ganeti 2.2 has been replaced and is no
2700   longer available. ``gnt-node add`` now invokes a new tool on the
2701   destination node, named ``prepare-node-join``, to configure the SSH
2702   daemon. Paramiko is no longer necessary to configure nodes' SSH
2703   daemons via ``gnt-node add``.
2704 - Draining (``gnt-cluster queue drain``) and un-draining the job queue
2705   (``gnt-cluster queue undrain``) now affects all nodes in a cluster and
2706   the flag is not reset after a master failover.
2707 - Python 2.4 has *not* been tested with this release. Using 2.6 or above
2708   is recommended. 2.6 will be mandatory from the 2.8 series.
2709
2710
2711 New features
2712 ~~~~~~~~~~~~
2713
2714 - New network management functionality to support automatic allocation
2715   of IP addresses and managing of network parameters. See
2716   :manpage:`gnt-network(8)` for more details.
2717 - New external storage backend, to allow managing arbitrary storage
2718   systems external to the cluster. See
2719   :manpage:`ganeti-extstorage-interface(7)`.
2720 - New ``exclusive-storage`` node parameter added, restricted to
2721   nodegroup level. When it's set to true, physical disks are assigned in
2722   an exclusive fashion to instances, as documented in :doc:`Partitioned
2723   Ganeti <design-partitioned>`.  Currently, only instances using the
2724   ``plain`` disk template are supported.
2725 - The KVM hypervisor has been updated with many new hypervisor
2726   parameters, including a generic one for passing arbitrary command line
2727   values. See a complete list in :manpage:`gnt-instance(8)`. It is now
2728   compatible up to qemu 1.4.
2729 - A new tool, called ``mon-collector``, is the stand-alone executor of
2730   the data collectors for a monitoring system. As of this version, it
2731   just includes the DRBD data collector, that can be executed by calling
2732   ``mon-collector`` using the ``drbd`` parameter. See
2733   :manpage:`mon-collector(7)`.
2734 - A new user option, :pyeval:`rapi.RAPI_ACCESS_READ`, has been added
2735   for RAPI users. It allows granting permissions to query for
2736   information to a specific user without giving
2737   :pyeval:`rapi.RAPI_ACCESS_WRITE` permissions.
2738 - A new tool named ``node-cleanup`` has been added. It cleans remains of
2739   a cluster from a machine by stopping all daemons, removing
2740   certificates and ssconf files. Unless the ``--no-backup`` option is
2741   given, copies of the certificates are made.
2742 - Instance creations now support the use of opportunistic locking,
2743   potentially speeding up the (parallel) creation of multiple instances.
2744   This feature is currently only available via the :doc:`RAPI
2745   <rapi>` interface and when an instance allocator is used. If the
2746   ``opportunistic_locking`` parameter is set the opcode will try to
2747   acquire as many locks as possible, but will not wait for any locks
2748   held by other opcodes. If not enough resources can be found to
2749   allocate the instance, the temporary error code
2750   :pyeval:`errors.ECODE_TEMP_NORES` is returned. The operation can be
2751   retried thereafter, with or without opportunistic locking.
2752 - New experimental linux-ha resource scripts.
2753 - Restricted-commands support: ganeti can now be asked (via command line
2754   or rapi) to perform commands on a node. These are passed via ganeti
2755   RPC rather than ssh. This functionality is restricted to commands
2756   specified on the ``$sysconfdir/ganeti/restricted-commands`` for security
2757   reasons. The file is not copied automatically.
2758
2759
2760 Misc changes
2761 ~~~~~~~~~~~~
2762
2763 - Diskless instances are now externally mirrored (Issue 237). This for
2764   now has only been tested in conjunction with explicit target nodes for
2765   migration/failover.
2766 - Queries not needing locks or RPC access to the node can now be
2767   performed by the confd daemon, making them independent from jobs, and
2768   thus faster to execute. This is selectable at configure time.
2769 - The functionality for allocating multiple instances at once has been
2770   overhauled and is now also available through :doc:`RAPI <rapi>`.
2771
2772 There are no significant changes from version 2.7.0~rc3.
2773
2774
2775 Version 2.7.0 rc3
2776 -----------------
2777
2778 *(Released Tue, 25 Jun 2013)*
2779
2780 - Fix permissions on the confd query socket (Issue 477)
2781 - Fix permissions on the job archive dir (Issue 498)
2782 - Fix handling of an internal exception in replace-disks (Issue 472)
2783 - Fix gnt-node info handling of shortened names (Issue 497)
2784 - Fix gnt-instance grow-disk when wiping is enabled
2785 - Documentation improvements, and support for newer pandoc
2786 - Fix hspace honoring ipolicy for disks (Issue 484)
2787 - Improve handling of the ``kvm_extra`` HV parameter
2788
2789
2790 Version 2.7.0 rc2
2791 -----------------
2792
2793 *(Released Fri, 24 May 2013)*
2794
2795 - ``devel/upload`` now works when ``/var/run`` on the target nodes is a
2796   symlink.
2797 - Disks added through ``gnt-instance modify`` or created through
2798   ``gnt-instance recreate-disks`` are wiped, if the
2799   ``prealloc_wipe_disks`` flag is set.
2800 - If wiping newly created disks fails, the disks are removed. Also,
2801   partial failures in creating disks through ``gnt-instance modify``
2802   triggers a cleanup of the partially-created disks.
2803 - Removing the master IP address doesn't fail if the address has been
2804   already removed.
2805 - Fix ownership of the OS log dir
2806 - Workaround missing SO_PEERCRED constant (Issue 191)
2807
2808
2809 Version 2.7.0 rc1
2810 -----------------
2811
2812 *(Released Fri, 3 May 2013)*
2813
2814 This was the first release candidate of the 2.7 series. Since beta3:
2815
2816 - Fix kvm compatibility with qemu 1.4 (Issue 389)
2817 - Documentation updates (admin guide, upgrade notes, install
2818   instructions) (Issue 372)
2819 - Fix gnt-group list nodes and instances count (Issue 436)
2820 - Fix compilation without non-mandatory libraries (Issue 441)
2821 - Fix xen-hvm hypervisor forcing nics to type 'ioemu' (Issue 247)
2822 - Make confd logging more verbose at INFO level (Issue 435)
2823 - Improve "networks" documentation in :manpage:`gnt-instance(8)`
2824 - Fix failure path for instance storage type conversion (Issue 229)
2825 - Update htools text backend documentation
2826 - Improve the renew-crypto section of :manpage:`gnt-cluster(8)`
2827 - Disable inter-cluster instance move for file-based instances, because
2828   it is dependant on instance export, which is not supported for
2829   file-based instances. (Issue 414)
2830 - Fix gnt-job crashes on non-ascii characters (Issue 427)
2831 - Fix volume group checks on non-vm-capable nodes (Issue 432)
2832
2833
2834 Version 2.7.0 beta3
2835 -------------------
2836
2837 *(Released Mon, 22 Apr 2013)*
2838
2839 This was the third beta release of the 2.7 series. Since beta2:
2840
2841 - Fix hail to verify disk instance policies on a per-disk basis (Issue 418).
2842 - Fix data loss on wrong usage of ``gnt-instance move``
2843 - Properly export errors in confd-based job queries
2844 - Add ``users-setup`` tool
2845 - Fix iallocator protocol to report 0 as a disk size for diskless
2846   instances. This avoids hail breaking when a diskless instance is
2847   present.
2848 - Fix job queue directory permission problem that made confd job queries
2849   fail. This requires running an ``ensure-dirs --full-run`` on upgrade
2850   for access to archived jobs (Issue 406).
2851 - Limit the sizes of networks supported by ``gnt-network`` to something
2852   between a ``/16`` and a ``/30`` to prevent memory bloat and crashes.
2853 - Fix bugs in instance disk template conversion
2854 - Fix GHC 7 compatibility
2855 - Fix ``burnin`` install path (Issue 426).
2856 - Allow very small disk grows (Issue 347).
2857 - Fix a ``ganeti-noded`` memory bloat introduced in 2.5, by making sure
2858   that noded doesn't import masterd code (Issue 419).
2859 - Make sure the default metavg at cluster init is the same as the vg, if
2860   unspecified (Issue 358).
2861 - Fix cleanup of partially created disks (part of Issue 416)
2862
2863
2864 Version 2.7.0 beta2
2865 -------------------
2866
2867 *(Released Tue, 2 Apr 2013)*
2868
2869 This was the second beta release of the 2.7 series. Since beta1:
2870
2871 - Networks no longer have a "type" slot, since this information was
2872   unused in Ganeti: instead of it tags should be used.
2873 - The rapi client now has a ``target_node`` option to MigrateInstance.
2874 - Fix early exit return code for hbal (Issue 386).
2875 - Fix ``gnt-instance migrate/failover -n`` (Issue 396).
2876 - Fix ``rbd showmapped`` output parsing (Issue 312).
2877 - Networks are now referenced indexed by UUID, rather than name. This
2878   will require running cfgupgrade, from 2.7.0beta1, if networks are in
2879   use.
2880 - The OS environment now includes network information.
2881 - Deleting of a network is now disallowed if any instance nic is using
2882   it, to prevent dangling references.
2883 - External storage is now documented in man pages.
2884 - The exclusive_storage flag can now only be set at nodegroup level.
2885 - Hbal can now submit an explicit priority with its jobs.
2886 - Many network related locking fixes.
2887 - Bump up the required pylint version to 0.25.1.
2888 - Fix the ``no_remember`` option in RAPI client.
2889 - Many ipolicy related tests, qa, and fixes.
2890 - Many documentation improvements and fixes.
2891 - Fix building with ``--disable-file-storage``.
2892 - Fix ``-q`` option in htools, which was broken if passed more than
2893   once.
2894 - Some haskell/python interaction improvements and fixes.
2895 - Fix iallocator in case of missing LVM storage.
2896 - Fix confd config load in case of ``--no-lvm-storage``.
2897 - The confd/query functionality is now mentioned in the security
2898   documentation.
2899
2900
2901 Version 2.7.0 beta1
2902 -------------------
2903
2904 *(Released Wed, 6 Feb 2013)*
2905
2906 This was the first beta release of the 2.7 series. All important changes
2907 are listed in the latest 2.7 entry.
2908
2909
2910 Version 2.6.2
2911 -------------
2912
2913 *(Released Fri, 21 Dec 2012)*
2914
2915 Important behaviour change: hbal won't rebalance anymore instances which
2916 have the ``auto_balance`` attribute set to false. This was the intention
2917 all along, but until now it only skipped those from the N+1 memory
2918 reservation (DRBD-specific).
2919
2920 A significant number of bug fixes in this release:
2921
2922 - Fixed disk adoption interaction with ipolicy checks.
2923 - Fixed networking issues when instances are started, stopped or
2924   migrated, by forcing the tap device's MAC prefix to "fe" (issue 217).
2925 - Fixed the warning in cluster verify for shared storage instances not
2926   being redundant.
2927 - Fixed removal of storage directory on shared file storage (issue 262).
2928 - Fixed validation of LVM volume group name in OpClusterSetParams
2929   (``gnt-cluster modify``) (issue 285).
2930 - Fixed runtime memory increases (``gnt-instance modify -m``).
2931 - Fixed live migration under Xen's ``xl`` mode.
2932 - Fixed ``gnt-instance console`` with ``xl``.
2933 - Fixed building with newer Haskell compiler/libraries.
2934 - Fixed PID file writing in Haskell daemons (confd); this prevents
2935   restart issues if confd was launched manually (outside of
2936   ``daemon-util``) while another copy of it was running
2937 - Fixed a type error when doing live migrations with KVM (issue 297) and
2938   the error messages for failing migrations have been improved.
2939 - Fixed opcode validation for the out-of-band commands (``gnt-node
2940   power``).
2941 - Fixed a type error when unsetting OS hypervisor parameters (issue
2942   311); now it's possible to unset all OS-specific hypervisor
2943   parameters.
2944 - Fixed the ``dry-run`` mode for many operations: verification of
2945   results was over-zealous but didn't take into account the ``dry-run``
2946   operation, resulting in "wrong" failures.
2947 - Fixed bash completion in ``gnt-job list`` when the job queue has
2948   hundreds of entries; especially with older ``bash`` versions, this
2949   results in significant CPU usage.
2950
2951 And lastly, a few other improvements have been made:
2952
2953 - Added option to force master-failover without voting (issue 282).
2954 - Clarified error message on lock conflict (issue 287).
2955 - Logging of newly submitted jobs has been improved (issue 290).
2956 - Hostname checks have been made uniform between instance rename and
2957   create (issue 291).
2958 - The ``--submit`` option is now supported by ``gnt-debug delay``.
2959 - Shutting down the master daemon by sending SIGTERM now stops it from
2960   processing jobs waiting for locks; instead, those jobs will be started
2961   once again after the master daemon is started the next time (issue
2962   296).
2963 - Support for Xen's ``xl`` program has been improved (besides the fixes
2964   above).
2965 - Reduced logging noise in the Haskell confd daemon (only show one log
2966   entry for each config reload, instead of two).
2967 - Several man page updates and typo fixes.
2968
2969
2970 Version 2.6.1
2971 -------------
2972
2973 *(Released Fri, 12 Oct 2012)*
2974
2975 A small bugfix release. Among the bugs fixed:
2976
2977 - Fixed double use of ``PRIORITY_OPT`` in ``gnt-node migrate``, that
2978   made the command unusable.
2979 - Commands that issue many jobs don't fail anymore just because some jobs
2980   take so long that other jobs are archived.
2981 - Failures during ``gnt-instance reinstall`` are reflected by the exit
2982   status.
2983 - Issue 190 fixed. Check for DRBD in cluster verify is enabled only when
2984   DRBD is enabled.
2985 - When ``always_failover`` is set, ``--allow-failover`` is not required
2986   in migrate commands anymore.
2987 - ``bash_completion`` works even if extglob is disabled.
2988 - Fixed bug with locks that made failover for RDB-based instances fail.
2989 - Fixed bug in non-mirrored instance allocation that made Ganeti choose
2990   a random node instead of one based on the allocator metric.
2991 - Support for newer versions of pylint and pep8.
2992 - Hail doesn't fail anymore when trying to add an instance of type
2993   ``file``, ``sharedfile`` or ``rbd``.
2994 - Added new Makefile target to rebuild the whole distribution, so that
2995   all files are included.
2996
2997
2998 Version 2.6.0
2999 -------------
3000
3001 *(Released Fri, 27 Jul 2012)*
3002
3003
3004 .. attention:: The ``LUXI`` protocol has been made more consistent
3005    regarding its handling of command arguments. This, however, leads to
3006    incompatibility issues with previous versions. Please ensure that you
3007    restart Ganeti daemons soon after the upgrade, otherwise most
3008    ``LUXI`` calls (job submission, setting/resetting the drain flag,
3009    pausing/resuming the watcher, cancelling and archiving jobs, querying
3010    the cluster configuration) will fail.
3011
3012
3013 New features
3014 ~~~~~~~~~~~~
3015
3016 Instance run status
3017 +++++++++++++++++++
3018
3019 The current ``admin_up`` field, which used to denote whether an instance
3020 should be running or not, has been removed. Instead, ``admin_state`` is
3021 introduced, with 3 possible values -- ``up``, ``down`` and ``offline``.
3022
3023 The rational behind this is that an instance being “down” can have
3024 different meanings:
3025
3026 - it could be down during a reboot
3027 - it could be temporarily be down for a reinstall
3028 - or it could be down because it is deprecated and kept just for its
3029   disk
3030
3031 The previous Boolean state was making it difficult to do capacity
3032 calculations: should Ganeti reserve memory for a down instance? Now, the
3033 tri-state field makes it clear:
3034
3035 - in ``up`` and ``down`` state, all resources are reserved for the
3036   instance, and it can be at any time brought up if it is down
3037 - in ``offline`` state, only disk space is reserved for it, but not
3038   memory or CPUs
3039
3040 The field can have an extra use: since the transition between ``up`` and
3041 ``down`` and vice-versus is done via ``gnt-instance start/stop``, but
3042 transition between ``offline`` and ``down`` is done via ``gnt-instance
3043 modify``, it is possible to given different rights to users. For
3044 example, owners of an instance could be allowed to start/stop it, but
3045 not transition it out of the offline state.
3046
3047 Instance policies and specs
3048 +++++++++++++++++++++++++++
3049
3050 In previous Ganeti versions, an instance creation request was not
3051 limited on the minimum size and on the maximum size just by the cluster
3052 resources. As such, any policy could be implemented only in third-party
3053 clients (RAPI clients, or shell wrappers over ``gnt-*``
3054 tools). Furthermore, calculating cluster capacity via ``hspace`` again
3055 required external input with regards to instance sizes.
3056
3057 In order to improve these workflows and to allow for example better
3058 per-node group differentiation, we introduced instance specs, which
3059 allow declaring:
3060
3061 - minimum instance disk size, disk count, memory size, cpu count
3062 - maximum values for the above metrics
3063 - and “standard” values (used in ``hspace`` to calculate the standard
3064   sized instances)
3065
3066 The minimum/maximum values can be also customised at node-group level,
3067 for example allowing more powerful hardware to support bigger instance
3068 memory sizes.
3069
3070 Beside the instance specs, there are a few other settings belonging to
3071 the instance policy framework. It is possible now to customise, per
3072 cluster and node-group:
3073
3074 - the list of allowed disk templates
3075 - the maximum ratio of VCPUs per PCPUs (to control CPU oversubscription)
3076 - the maximum ratio of instance to spindles (see below for more
3077   information) for local storage
3078
3079 All these together should allow all tools that talk to Ganeti to know
3080 what are the ranges of allowed values for instances and the
3081 over-subscription that is allowed.
3082
3083 For the VCPU/PCPU ratio, we already have the VCPU configuration from the
3084 instance configuration, and the physical CPU configuration from the
3085 node. For the spindle ratios however, we didn't track before these
3086 values, so new parameters have been added:
3087
3088 - a new node parameter ``spindle_count``, defaults to 1, customisable at
3089   node group or node level
3090 - at new backend parameter (for instances), ``spindle_use`` defaults to 1
3091
3092 Note that spindles in this context doesn't need to mean actual
3093 mechanical hard-drives; it's just a relative number for both the node
3094 I/O capacity and instance I/O consumption.
3095
3096 Instance migration behaviour
3097 ++++++++++++++++++++++++++++
3098
3099 While live-migration is in general desirable over failover, it is
3100 possible that for some workloads it is actually worse, due to the
3101 variable time of the “suspend” phase during live migration.
3102
3103 To allow the tools to work consistently over such instances (without
3104 having to hard-code instance names), a new backend parameter
3105 ``always_failover`` has been added to control the migration/failover
3106 behaviour. When set to True, all migration requests for an instance will
3107 instead fall-back to failover.
3108
3109 Instance memory ballooning
3110 ++++++++++++++++++++++++++
3111
3112 Initial support for memory ballooning has been added. The memory for an
3113 instance is no longer fixed (backend parameter ``memory``), but instead
3114 can vary between minimum and maximum values (backend parameters
3115 ``minmem`` and ``maxmem``). Currently we only change an instance's
3116 memory when:
3117
3118 - live migrating or failing over and instance and the target node
3119   doesn't have enough memory
3120 - user requests changing the memory via ``gnt-instance modify
3121   --runtime-memory``
3122
3123 Instance CPU pinning
3124 ++++++++++++++++++++
3125
3126 In order to control the use of specific CPUs by instance, support for
3127 controlling CPU pinning has been added for the Xen, HVM and LXC
3128 hypervisors. This is controlled by a new hypervisor parameter
3129 ``cpu_mask``; details about possible values for this are in the
3130 :manpage:`gnt-instance(8)`. Note that use of the most specific (precise
3131 VCPU-to-CPU mapping) form will work well only when all nodes in your
3132 cluster have the same amount of CPUs.
3133
3134 Disk parameters
3135 +++++++++++++++
3136
3137 Another area in which Ganeti was not customisable were the parameters
3138 used for storage configuration, e.g. how many stripes to use for LVM,
3139 DRBD resync configuration, etc.
3140
3141 To improve this area, we've added disks parameters, which are
3142 customisable at cluster and node group level, and which allow to
3143 specify various parameters for disks (DRBD has the most parameters
3144 currently), for example:
3145
3146 - DRBD resync algorithm and parameters (e.g. speed)
3147 - the default VG for meta-data volumes for DRBD
3148 - number of stripes for LVM (plain disk template)
3149 - the RBD pool
3150
3151 These parameters can be modified via ``gnt-cluster modify -D …`` and
3152 ``gnt-group modify -D …``, and are used at either instance creation (in
3153 case of LVM stripes, for example) or at disk “activation” time
3154 (e.g. resync speed).
3155
3156 Rados block device support
3157 ++++++++++++++++++++++++++
3158
3159 A Rados (http://ceph.com/wiki/Rbd) storage backend has been added,
3160 denoted by the ``rbd`` disk template type. This is considered
3161 experimental, feedback is welcome. For details on configuring it, see
3162 the :doc:`install` document and the :manpage:`gnt-cluster(8)` man page.
3163
3164 Master IP setup
3165 +++++++++++++++
3166
3167 The existing master IP functionality works well only in simple setups (a
3168 single network shared by all nodes); however, if nodes belong to
3169 different networks, then the ``/32`` setup and lack of routing
3170 information is not enough.
3171
3172 To allow the master IP to function well in more complex cases, the
3173 system was reworked as follows:
3174
3175 - a master IP netmask setting has been added
3176 - the master IP activation/turn-down code was moved from the node daemon
3177   to a separate script
3178 - whether to run the Ganeti-supplied master IP script or a user-supplied
3179   on is a ``gnt-cluster init`` setting
3180
3181 Details about the location of the standard and custom setup scripts are
3182 in the man page :manpage:`gnt-cluster(8)`; for information about the
3183 setup script protocol, look at the Ganeti-supplied script.
3184
3185 SPICE support
3186 +++++++++++++
3187
3188 The `SPICE <http://www.linux-kvm.org/page/SPICE>`_ support has been
3189 improved.
3190
3191 It is now possible to use TLS-protected connections, and when renewing
3192 or changing the cluster certificates (via ``gnt-cluster renew-crypto``,
3193 it is now possible to specify spice or spice CA certificates. Also, it
3194 is possible to configure a password for SPICE sessions via the
3195 hypervisor parameter ``spice_password_file``.
3196
3197 There are also new parameters to control the compression and streaming
3198 options (e.g. ``spice_image_compression``, ``spice_streaming_video``,
3199 etc.). For details, see the man page :manpage:`gnt-instance(8)` and look
3200 for the spice parameters.
3201
3202 Lastly, it is now possible to see the SPICE connection information via
3203 ``gnt-instance console``.
3204
3205 OVF converter
3206 +++++++++++++
3207
3208 A new tool (``tools/ovfconverter``) has been added that supports
3209 conversion between Ganeti and the `Open Virtualization Format
3210 <http://en.wikipedia.org/wiki/Open_Virtualization_Format>`_ (both to and
3211 from).
3212
3213 This relies on the ``qemu-img`` tool to convert the disk formats, so the
3214 actual compatibility with other virtualization solutions depends on it.
3215
3216 Confd daemon changes
3217 ++++++++++++++++++++
3218
3219 The configuration query daemon (``ganeti-confd``) is now optional, and
3220 has been rewritten in Haskell; whether to use the daemon at all, use the
3221 Python (default) or the Haskell version is selectable at configure time
3222 via the ``--enable-confd`` parameter, which can take one of the
3223 ``haskell``, ``python`` or ``no`` values. If not used, disabling the
3224 daemon will result in a smaller footprint; for larger systems, we
3225 welcome feedback on the Haskell version which might become the default
3226 in future versions.
3227
3228 If you want to use ``gnt-node list-drbd`` you need to have the Haskell
3229 daemon running. The Python version doesn't implement the new call.
3230
3231
3232 User interface changes
3233 ~~~~~~~~~~~~~~~~~~~~~~
3234
3235 We have replaced the ``--disks`` option of ``gnt-instance
3236 replace-disks`` with a more flexible ``--disk`` option, which allows
3237 adding and removing disks at arbitrary indices (Issue 188). Furthermore,
3238 disk size and mode can be changed upon recreation (via ``gnt-instance
3239 recreate-disks``, which accepts the same ``--disk`` option).
3240
3241 As many people are used to a ``show`` command, we have added that as an
3242 alias to ``info`` on all ``gnt-*`` commands.
3243
3244 The ``gnt-instance grow-disk`` command has a new mode in which it can
3245 accept the target size of the disk, instead of the delta; this can be
3246 more safe since two runs in absolute mode will be idempotent, and
3247 sometimes it's also easier to specify the desired size directly.
3248
3249 Also the handling of instances with regard to offline secondaries has
3250 been improved. Instance operations should not fail because one of it's
3251 secondary nodes is offline, even though it's safe to proceed.
3252
3253 A new command ``list-drbd`` has been added to the ``gnt-node`` script to
3254 support debugging of DRBD issues on nodes. It provides a mapping of DRBD
3255 minors to instance name.
3256
3257 API changes
3258 ~~~~~~~~~~~
3259
3260 RAPI coverage has improved, with (for example) new resources for
3261 recreate-disks, node power-cycle, etc.
3262
3263 Compatibility
3264 ~~~~~~~~~~~~~
3265
3266 There is partial support for ``xl`` in the Xen hypervisor; feedback is
3267 welcome.
3268
3269 Python 2.7 is better supported, and after Ganeti 2.6 we will investigate
3270 whether to still support Python 2.4 or move to Python 2.6 as minimum
3271 required version.
3272
3273 Support for Fedora has been slightly improved; the provided example
3274 init.d script should work better on it and the INSTALL file should
3275 document the needed dependencies.
3276
3277 Internal changes
3278 ~~~~~~~~~~~~~~~~
3279
3280 The deprecated ``QueryLocks`` LUXI request has been removed. Use
3281 ``Query(what=QR_LOCK, ...)`` instead.
3282
3283 The LUXI requests :pyeval:`luxi.REQ_QUERY_JOBS`,
3284 :pyeval:`luxi.REQ_QUERY_INSTANCES`, :pyeval:`luxi.REQ_QUERY_NODES`,
3285 :pyeval:`luxi.REQ_QUERY_GROUPS`, :pyeval:`luxi.REQ_QUERY_EXPORTS` and
3286 :pyeval:`luxi.REQ_QUERY_TAGS` are deprecated and will be removed in a
3287 future version. :pyeval:`luxi.REQ_QUERY` should be used instead.
3288
3289 RAPI client: ``CertificateError`` now derives from
3290 ``GanetiApiError``. This should make it more easy to handle Ganeti
3291 errors.
3292
3293 Deprecation warnings due to PyCrypto/paramiko import in
3294 ``tools/setup-ssh`` have been silenced, as usually they are safe; please
3295 make sure to run an up-to-date paramiko version, if you use this tool.
3296
3297 The QA scripts now depend on Python 2.5 or above (the main code base
3298 still works with Python 2.4).
3299
3300 The configuration file (``config.data``) is now written without
3301 indentation for performance reasons; if you want to edit it, it can be
3302 re-formatted via ``tools/fmtjson``.
3303
3304 A number of bugs has been fixed in the cluster merge tool.
3305
3306 ``x509`` certification verification (used in import-export) has been
3307 changed to allow the same clock skew as permitted by the cluster
3308 verification. This will remove some rare but hard to diagnose errors in
3309 import-export.
3310
3311
3312 Version 2.6.0 rc4
3313 -----------------
3314
3315 *(Released Thu, 19 Jul 2012)*
3316
3317 Very few changes from rc4 to the final release, only bugfixes:
3318
3319 - integrated fixes from release 2.5.2 (fix general boot flag for KVM
3320   instance, fix CDROM booting for KVM instances)
3321 - fixed node group modification of node parameters
3322 - fixed issue in LUClusterVerifyGroup with multi-group clusters
3323 - fixed generation of bash completion to ensure a stable ordering
3324 - fixed a few typos
3325
3326
3327 Version 2.6.0 rc3
3328 -----------------
3329
3330 *(Released Fri, 13 Jul 2012)*
3331
3332 Third release candidate for 2.6. The following changes were done from
3333 rc3 to rc4:
3334
3335 - Fixed ``UpgradeConfig`` w.r.t. to disk parameters on disk objects.
3336 - Fixed an inconsistency in the LUXI protocol with the provided
3337   arguments (NOT backwards compatible)
3338 - Fixed a bug with node groups ipolicy where ``min`` was greater than
3339   the cluster ``std`` value
3340 - Implemented a new ``gnt-node list-drbd`` call to list DRBD minors for
3341   easier instance debugging on nodes (requires ``hconfd`` to work)
3342
3343
3344 Version 2.6.0 rc2
3345 -----------------
3346
3347 *(Released Tue, 03 Jul 2012)*
3348
3349 Second release candidate for 2.6. The following changes were done from
3350 rc2 to rc3:
3351
3352 - Fixed ``gnt-cluster verify`` regarding ``master-ip-script`` on non
3353   master candidates
3354 - Fixed a RAPI regression on missing beparams/memory
3355 - Fixed redistribution of files on offline nodes
3356 - Added possibility to run activate-disks even though secondaries are
3357   offline. With this change it relaxes also the strictness on some other
3358   commands which use activate disks internally:
3359   * ``gnt-instance start|reboot|rename|backup|export``
3360 - Made it possible to remove safely an instance if its secondaries are
3361   offline
3362 - Made it possible to reinstall even though secondaries are offline
3363
3364
3365 Version 2.6.0 rc1
3366 -----------------
3367
3368 *(Released Mon, 25 Jun 2012)*
3369
3370 First release candidate for 2.6. The following changes were done from
3371 rc1 to rc2:
3372
3373 - Fixed bugs with disk parameters and ``rbd`` templates as well as
3374   ``instance_os_add``
3375 - Made ``gnt-instance modify`` more consistent regarding new NIC/Disk
3376   behaviour. It supports now the modify operation
3377 - ``hcheck`` implemented to analyze cluster health and possibility of
3378   improving health by rebalance
3379 - ``hbal`` has been improved in dealing with split instances
3380
3381
3382 Version 2.6.0 beta2
3383 -------------------
3384
3385 *(Released Mon, 11 Jun 2012)*
3386
3387 Second beta release of 2.6. The following changes were done from beta2
3388 to rc1:
3389
3390 - Fixed ``daemon-util`` with non-root user models
3391 - Fixed creation of plain instances with ``--no-wait-for-sync``
3392 - Fix wrong iv_names when running ``cfgupgrade``
3393 - Export more information in RAPI group queries
3394 - Fixed bug when changing instance network interfaces
3395 - Extended burnin to do NIC changes
3396 - query: Added ``<``, ``>``, ``<=``, ``>=`` comparison operators
3397 - Changed default for DRBD barriers
3398 - Fixed DRBD error reporting for syncer rate
3399 - Verify the options on disk parameters
3400
3401 And of course various fixes to documentation and improved unittests and
3402 QA.
3403
3404
3405 Version 2.6.0 beta1
3406 -------------------
3407
3408 *(Released Wed, 23 May 2012)*
3409
3410 First beta release of 2.6. The following changes were done from beta1 to
3411 beta2:
3412
3413 - integrated patch for distributions without ``start-stop-daemon``
3414 - adapted example init.d script to work on Fedora
3415 - fixed log handling in Haskell daemons
3416 - adapted checks in the watcher for pycurl linked against libnss
3417 - add partial support for ``xl`` instead of ``xm`` for Xen
3418 - fixed a type issue in cluster verification
3419 - fixed ssconf handling in the Haskell code (was breaking confd in IPv6
3420   clusters)
3421
3422 Plus integrated fixes from the 2.5 branch:
3423
3424 - fixed ``kvm-ifup`` to use ``/bin/bash``
3425 - fixed parallel build failures
3426 - KVM live migration when using a custom keymap
3427
3428
3429 Version 2.5.2
3430 -------------
3431
3432 *(Released Tue, 24 Jul 2012)*
3433
3434 A small bugfix release, with no new features:
3435
3436 - fixed bash-isms in kvm-ifup, for compatibility with systems which use a
3437   different default shell (e.g. Debian, Ubuntu)
3438 - fixed KVM startup and live migration with a custom keymap (fixes Issue
3439   243 and Debian bug #650664)
3440 - fixed compatibility with KVM versions that don't support multiple boot
3441   devices (fixes Issue 230 and Debian bug #624256)
3442
3443 Additionally, a few fixes were done to the build system (fixed parallel
3444 build failures) and to the unittests (fixed race condition in test for
3445 FileID functions, and the default enable/disable mode for QA test is now
3446 customisable).
3447
3448
3449 Version 2.5.1
3450 -------------
3451
3452 *(Released Fri, 11 May 2012)*
3453
3454 A small bugfix release.
3455
3456 The main issues solved are on the topic of compatibility with newer LVM
3457 releases:
3458
3459 - fixed parsing of ``lv_attr`` field
3460 - adapted to new ``vgreduce --removemissing`` behaviour where sometimes
3461   the ``--force`` flag is needed
3462
3463 Also on the topic of compatibility, ``tools/lvmstrap`` has been changed
3464 to accept kernel 3.x too (was hardcoded to 2.6.*).
3465
3466 A regression present in 2.5.0 that broke handling (in the gnt-* scripts)
3467 of hook results and that also made display of other errors suboptimal
3468 was fixed; the code behaves now like 2.4 and earlier.
3469
3470 Another change in 2.5, the cleanup of the OS scripts environment, is too
3471 aggressive: it removed even the ``PATH`` variable, which requires the OS
3472 scripts to *always* need to export it. Since this is a bit too strict,
3473 we now export a minimal PATH, the same that we export for hooks.
3474
3475 The fix for issue 201 (Preserve bridge MTU in KVM ifup script) was
3476 integrated into this release.
3477
3478 Finally, a few other miscellaneous changes were done (no new features,
3479 just small improvements):
3480
3481 - Fix ``gnt-group --help`` display
3482 - Fix hardcoded Xen kernel path
3483 - Fix grow-disk handling of invalid units
3484 - Update synopsis for ``gnt-cluster repair-disk-sizes``
3485 - Accept both PUT and POST in noded (makes future upgrade to 2.6 easier)
3486
3487
3488 Version 2.5.0
3489 -------------
3490
3491 *(Released Thu, 12 Apr 2012)*
3492
3493 Incompatible/important changes and bugfixes
3494 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3495
3496 - The default of the ``/2/instances/[instance_name]/rename`` RAPI
3497   resource's ``ip_check`` parameter changed from ``True`` to ``False``
3498   to match the underlying LUXI interface.
3499 - The ``/2/nodes/[node_name]/evacuate`` RAPI resource was changed to use
3500   body parameters, see :doc:`RAPI documentation <rapi>`. The server does
3501   not maintain backwards-compatibility as the underlying operation
3502   changed in an incompatible way. The RAPI client can talk to old
3503   servers, but it needs to be told so as the return value changed.
3504 - When creating file-based instances via RAPI, the ``file_driver``
3505   parameter no longer defaults to ``loop`` and must be specified.
3506 - The deprecated ``bridge`` NIC parameter is no longer supported. Use
3507   ``link`` instead.
3508 - Support for the undocumented and deprecated RAPI instance creation
3509   request format version 0 has been dropped. Use version 1, supported
3510   since Ganeti 2.1.3 and :doc:`documented <rapi>`, instead.
3511 - Pyparsing 1.4.6 or above is required, see :doc:`installation
3512   documentation <install>`.
3513 - The "cluster-verify" hooks are now executed per group by the
3514   ``OP_CLUSTER_VERIFY_GROUP`` opcode. This maintains the same behavior
3515   if you just run ``gnt-cluster verify``, which generates one opcode per
3516   group.
3517 - The environment as passed to the OS scripts is cleared, and thus no
3518   environment variables defined in the node daemon's environment will be
3519   inherited by the scripts.
3520 - The :doc:`iallocator <iallocator>` mode ``multi-evacuate`` has been
3521   deprecated.
3522 - :doc:`New iallocator modes <design-multi-reloc>` have been added to
3523   support operations involving multiple node groups.
3524 - Offline nodes are ignored when failing over an instance.
3525 - Support for KVM version 1.0, which changed the version reporting format
3526   from 3 to 2 digits.
3527 - TCP/IP ports used by DRBD disks are returned to a pool upon instance
3528   removal.
3529 - ``Makefile`` is now compatible with Automake 1.11.2
3530 - Includes all bugfixes made in the 2.4 series
3531
3532 New features
3533 ~~~~~~~~~~~~
3534
3535 - The ganeti-htools project has been merged into the ganeti-core source
3536   tree and will be built as part of Ganeti (see :doc:`install-quick`).
3537 - Implemented support for :doc:`shared storage <design-shared-storage>`.
3538 - Add support for disks larger than 2 TB in ``lvmstrap`` by supporting
3539   GPT-style partition tables (requires `parted
3540   <http://www.gnu.org/s/parted/>`_).
3541 - Added support for floppy drive and 2nd CD-ROM drive in KVM hypervisor.
3542 - Allowed adding tags on instance creation.
3543 - Export instance tags to hooks (``INSTANCE_TAGS``, see :doc:`hooks`)
3544 - Allow instances to be started in a paused state, enabling the user to
3545   see the complete console output on boot using the console.
3546 - Added new hypervisor flag to control default reboot behaviour
3547   (``reboot_behavior``).
3548 - Added support for KVM keymaps (hypervisor parameter ``keymap``).
3549 - Improved out-of-band management support:
3550
3551   - Added ``gnt-node health`` command reporting the health status of
3552     nodes.
3553   - Added ``gnt-node power`` command to manage power status of nodes.
3554   - Added command for emergency power-off (EPO), ``gnt-cluster epo``.
3555
3556 - Instance migration can fall back to failover if instance is not
3557   running.
3558 - Filters can be used when listing nodes, instances, groups and locks;
3559   see :manpage:`ganeti(7)` manpage.
3560 - Added post-execution status as variables to :doc:`hooks <hooks>`
3561   environment.
3562 - Instance tags are exported/imported together with the instance.
3563 - When given an explicit job ID, ``gnt-job info`` will work for archived
3564   jobs.
3565 - Jobs can define dependencies on other jobs (not yet supported via
3566   RAPI or command line, but used by internal commands and usable via
3567   LUXI).
3568
3569   - Lock monitor (``gnt-debug locks``) shows jobs waiting for
3570     dependencies.
3571
3572 - Instance failover is now available as a RAPI resource
3573   (``/2/instances/[instance_name]/failover``).
3574 - ``gnt-instance info`` defaults to static information if primary node
3575   is offline.
3576 - Opcodes have a new ``comment`` attribute.
3577 - Added basic SPICE support to KVM hypervisor.
3578 - ``tools/ganeti-listrunner`` allows passing of arguments to executable.
3579
3580 Node group improvements
3581 ~~~~~~~~~~~~~~~~~~~~~~~
3582
3583 - ``gnt-cluster verify`` has been modified to check groups separately,
3584   thereby improving performance.
3585 - Node group support has been added to ``gnt-cluster verify-disks``,
3586   which now operates per node group.
3587 - Watcher has been changed to work better with node groups.
3588
3589   - One process and state file per node group.
3590   - Slow watcher in one group doesn't block other group's watcher.
3591
3592 - Added new command, ``gnt-group evacuate``, to move all instances in a
3593   node group to other groups.
3594 - Added ``gnt-instance change-group`` to move an instance to another
3595   node group.
3596 - ``gnt-cluster command`` and ``gnt-cluster copyfile`` now support
3597   per-group operations.
3598 - Node groups can be tagged.
3599 - Some operations switch from an exclusive to a shared lock as soon as
3600   possible.
3601 - Instance's primary and secondary nodes' groups are now available as
3602   query fields (``pnode.group``, ``pnode.group.uuid``, ``snodes.group``
3603   and ``snodes.group.uuid``).
3604
3605 Misc
3606 ~~~~
3607
3608 - Numerous updates to documentation and manpages.
3609
3610   - :doc:`RAPI <rapi>` documentation now has detailed parameter
3611     descriptions.
3612   - Some opcode/job results are now also documented, see :doc:`RAPI
3613     <rapi>`.
3614
3615 - A lockset's internal lock is now also visible in lock monitor.
3616 - Log messages from job queue workers now contain information about the
3617   opcode they're processing.
3618 - ``gnt-instance console`` no longer requires the instance lock.
3619 - A short delay when waiting for job changes reduces the number of LUXI
3620   requests significantly.
3621 - DRBD metadata volumes are overwritten with zeros during disk creation.
3622 - Out-of-band commands no longer acquire the cluster lock in exclusive
3623   mode.
3624 - ``devel/upload`` now uses correct permissions for directories.
3625
3626
3627 Version 2.5.0 rc6
3628 -----------------
3629
3630 *(Released Fri, 23 Mar 2012)*
3631
3632 This was the sixth release candidate of the 2.5 series.
3633
3634
3635 Version 2.5.0 rc5
3636 -----------------
3637
3638 *(Released Mon, 9 Jan 2012)*
3639
3640 This was the fifth release candidate of the 2.5 series.
3641
3642
3643 Version 2.5.0 rc4
3644 -----------------
3645
3646 *(Released Thu, 27 Oct 2011)*
3647
3648 This was the fourth release candidate of the 2.5 series.
3649
3650
3651 Version 2.5.0 rc3
3652 -----------------
3653
3654 *(Released Wed, 26 Oct 2011)*
3655
3656 This was the third release candidate of the 2.5 series.
3657
3658
3659 Version 2.5.0 rc2
3660 -----------------
3661
3662 *(Released Tue, 18 Oct 2011)*
3663
3664 This was the second release candidate of the 2.5 series.
3665
3666
3667 Version 2.5.0 rc1
3668 -----------------
3669
3670 *(Released Tue, 4 Oct 2011)*
3671
3672 This was the first release candidate of the 2.5 series.
3673
3674
3675 Version 2.5.0 beta3
3676 -------------------
3677
3678 *(Released Wed, 31 Aug 2011)*
3679
3680 This was the third beta release of the 2.5 series.
3681
3682
3683 Version 2.5.0 beta2
3684 -------------------
3685
3686 *(Released Mon, 22 Aug 2011)*
3687
3688 This was the second beta release of the 2.5 series.
3689
3690
3691 Version 2.5.0 beta1
3692 -------------------
3693
3694 *(Released Fri, 12 Aug 2011)*
3695
3696 This was the first beta release of the 2.5 series.
3697
3698
3699 Version 2.4.5
3700 -------------
3701
3702 *(Released Thu, 27 Oct 2011)*
3703
3704 - Fixed bug when parsing command line parameter values ending in
3705   backslash
3706 - Fixed assertion error after unclean master shutdown
3707 - Disable HTTP client pool for RPC, significantly reducing memory usage
3708   of master daemon
3709 - Fixed queue archive creation with wrong permissions
3710
3711
3712 Version 2.4.4
3713 -------------
3714
3715 *(Released Tue, 23 Aug 2011)*
3716
3717 Small bug-fixes:
3718
3719 - Fixed documentation for importing with ``--src-dir`` option
3720 - Fixed a bug in ``ensure-dirs`` with queue/archive permissions
3721 - Fixed a parsing issue with DRBD 8.3.11 in the Linux kernel
3722
3723
3724 Version 2.4.3
3725 -------------
3726
3727 *(Released Fri, 5 Aug 2011)*
3728
3729 Many bug-fixes and a few small features:
3730
3731 - Fixed argument order in ``ReserveLV`` and ``ReserveMAC`` which caused
3732   issues when you tried to add an instance with two MAC addresses in one
3733   request
3734 - KVM: fixed per-instance stored UID value
3735 - KVM: configure bridged NICs at migration start
3736 - KVM: Fix a bug where instance will not start with never KVM versions
3737   (>= 0.14)
3738 - Added OS search path to ``gnt-cluster info``
3739 - Fixed an issue with ``file_storage_dir`` where you were forced to
3740   provide an absolute path, but the documentation states it is a
3741   relative path, the documentation was right
3742 - Added a new parameter to instance stop/start called ``--no-remember``
3743   that will make the state change to not be remembered
3744 - Implemented ``no_remember`` at RAPI level
3745 - Improved the documentation
3746 - Node evacuation: don't call IAllocator if node is already empty
3747 - Fixed bug in DRBD8 replace disks on current nodes
3748 - Fixed bug in recreate-disks for DRBD instances
3749 - Moved assertion checking locks in ``gnt-instance replace-disks``
3750   causing it to abort with not owning the right locks for some situation
3751 - Job queue: Fixed potential race condition when cancelling queued jobs
3752 - Fixed off-by-one bug in job serial generation
3753 - ``gnt-node volumes``: Fix instance names
3754 - Fixed aliases in bash completion
3755 - Fixed a bug in reopening log files after being sent a SIGHUP
3756 - Added a flag to burnin to allow specifying VCPU count
3757 - Bugfixes to non-root Ganeti configuration
3758
3759
3760 Version 2.4.2
3761 -------------
3762
3763 *(Released Thu, 12 May 2011)*
3764
3765 Many bug-fixes and a few new small features:
3766
3767 - Fixed a bug related to log opening failures
3768 - Fixed a bug in instance listing with orphan instances
3769 - Fixed a bug which prevented resetting the cluster-level node parameter
3770   ``oob_program`` to the default
3771 - Many fixes related to the ``cluster-merge`` tool
3772 - Fixed a race condition in the lock monitor, which caused failures
3773   during (at least) creation of many instances in parallel
3774 - Improved output for gnt-job info
3775 - Removed the quiet flag on some ssh calls which prevented debugging
3776   failures
3777 - Improved the N+1 failure messages in cluster verify by actually
3778   showing the memory values (needed and available)
3779 - Increased lock attempt timeouts so that when executing long operations
3780   (e.g. DRBD replace-disks) other jobs do not enter 'blocking acquire'
3781   too early and thus prevent the use of the 'fair' mechanism
3782 - Changed instance query data (``gnt-instance info``) to not acquire
3783   locks unless needed, thus allowing its use on locked instance if only
3784   static information is asked for
3785 - Improved behaviour with filesystems that do not support rename on an
3786   opened file
3787 - Fixed the behaviour of ``prealloc_wipe_disks`` cluster parameter which
3788   kept locks on all nodes during the wipe, which is unneeded
3789 - Fixed ``gnt-watcher`` handling of errors during hooks execution
3790 - Fixed bug in ``prealloc_wipe_disks`` with small disk sizes (less than
3791   10GiB) which caused the wipe to fail right at the end in some cases
3792 - Fixed master IP activation when doing master failover with no-voting
3793 - Fixed bug in ``gnt-node add --readd`` which allowed the re-adding of
3794   the master node itself
3795 - Fixed potential data-loss in under disk full conditions, where Ganeti
3796   wouldn't check correctly the return code and would consider
3797   partially-written files 'correct'
3798 - Fixed bug related to multiple VGs and DRBD disk replacing
3799 - Added new disk parameter ``metavg`` that allows placement of the meta
3800   device for DRBD in a different volume group
3801 - Fixed error handling in the node daemon when the system libc doesn't
3802   have major number 6 (i.e. if ``libc.so.6`` is not the actual libc)
3803 - Fixed lock release during replace-disks, which kept cluster-wide locks
3804   when doing disk replaces with an iallocator script
3805 - Added check for missing bridges in cluster verify
3806 - Handle EPIPE errors while writing to the terminal better, so that
3807   piping the output to e.g. ``less`` doesn't cause a backtrace
3808 - Fixed rare case where a ^C during Luxi calls could have been
3809   interpreted as server errors, instead of simply terminating
3810 - Fixed a race condition in LUGroupAssignNodes (``gnt-group
3811   assign-nodes``)
3812 - Added a few more parameters to the KVM hypervisor, allowing a second
3813   CDROM, custom disk type for CDROMs and a floppy image
3814 - Removed redundant message in instance rename when the name is given
3815   already as a FQDN
3816 - Added option to ``gnt-instance recreate-disks`` to allow creating the
3817   disks on new nodes, allowing recreation when the original instance
3818   nodes are completely gone
3819 - Added option when converting disk templates to DRBD to skip waiting
3820   for the resync, in order to make the instance available sooner
3821 - Added two new variables to the OS scripts environment (containing the
3822   instance's nodes)
3823 - Made the root_path and optional parameter for the xen-pvm hypervisor,
3824   to allow use of ``pvgrub`` as bootloader
3825 - Changed the instance memory modifications to only check out-of-memory
3826   conditions on memory increases, and turned the secondary node warnings
3827   into errors (they can still be overridden via ``--force``)
3828 - Fixed the handling of a corner case when the Python installation gets
3829   corrupted (e.g. a bad disk) while ganeti-noded is running and we try
3830   to execute a command that doesn't exist
3831 - Fixed a bug in ``gnt-instance move`` (LUInstanceMove) when the primary
3832   node of the instance returned failures during instance shutdown; this
3833   adds the option ``--ignore-consistency`` to gnt-instance move
3834
3835 And as usual, various improvements to the error messages, documentation
3836 and man pages.
3837
3838
3839 Version 2.4.1
3840 -------------
3841
3842 *(Released Wed, 09 Mar 2011)*
3843
3844 Emergency bug-fix release. ``tools/cfgupgrade`` was broken and overwrote
3845 the RAPI users file if run twice (even with ``--dry-run``).
3846
3847 The release fixes that bug (nothing else changed).
3848
3849
3850 Version 2.4.0
3851 -------------
3852
3853 *(Released Mon, 07 Mar 2011)*
3854
3855 Final 2.4.0 release. Just a few small fixes:
3856
3857 - Fixed RAPI node evacuate
3858 - Fixed the kvm-ifup script
3859 - Fixed internal error handling for special job cases
3860 - Updated man page to specify the escaping feature for options
3861
3862
3863 Version 2.4.0 rc3
3864 -----------------
3865
3866 *(Released Mon, 28 Feb 2011)*
3867
3868 A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
3869 that this feature wiped the disks of the wrong instance, leading to loss
3870 of data.
3871
3872 Other changes:
3873
3874 - Fixed title of query field containing instance name
3875 - Expanded the glossary in the documentation
3876 - Fixed one unittest (internal issue)
3877
3878
3879 Version 2.4.0 rc2
3880 -----------------
3881
3882 *(Released Mon, 21 Feb 2011)*
3883
3884 A number of bug fixes plus just a couple functionality changes.
3885
3886 On the user-visible side, the ``gnt-* list`` command output has changed
3887 with respect to "special" field states. The current rc1 style of display
3888 can be re-enabled by passing a new ``--verbose`` (``-v``) flag, but in
3889 the default output mode special fields states are displayed as follows:
3890
3891 - Offline resource: ``*``
3892 - Unavailable/not applicable: ``-``
3893 - Data missing (RPC failure): ``?``
3894 - Unknown field: ``??``
3895
3896 Another user-visible change is the addition of ``--force-join`` to
3897 ``gnt-node add``.
3898
3899 As for bug fixes:
3900
3901 - ``tools/cluster-merge`` has seen many fixes and is now enabled again
3902 - Fixed regression in RAPI/instance reinstall where all parameters were
3903   required (instead of optional)
3904 - Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
3905 - Fixed iallocator usage (offline nodes were not considered offline)
3906 - Fixed ``gnt-node list`` with respect to non-vm_capable nodes
3907 - Fixed hypervisor and OS parameter validation with respect to
3908   non-vm_capable nodes
3909 - Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
3910   cosmetic)
3911 - Fixed ``tools/listrunner`` with respect to agent-based usage
3912
3913
3914 Version 2.4.0 rc1
3915 -----------------
3916
3917 *(Released Fri,  4 Feb 2011)*
3918
3919 Many changes and fixes since the beta1 release. While there were some
3920 internal changes, the code has been mostly stabilised for the RC
3921 release.
3922
3923 Note: the dumb allocator was removed in this release, as it was not kept
3924 up-to-date with the IAllocator protocol changes. It is recommended to
3925 use the ``hail`` command from the ganeti-htools package.
3926
3927 Note: the 2.4 and up versions of Ganeti are not compatible with the
3928 0.2.x branch of ganeti-htools. You need to upgrade to
3929 ganeti-htools-0.3.0 (or later).
3930
3931 Regressions fixed from 2.3
3932 ~~~~~~~~~~~~~~~~~~~~~~~~~~
3933
3934 - Fixed the ``gnt-cluster verify-disks`` command
3935 - Made ``gnt-cluster verify-disks`` work in parallel (as opposed to
3936   serially on nodes)
3937 - Fixed disk adoption breakage
3938 - Fixed wrong headers in instance listing for field aliases
3939
3940 Other bugs fixed
3941 ~~~~~~~~~~~~~~~~
3942
3943 - Fixed corner case in KVM handling of NICs
3944 - Fixed many cases of wrong handling of non-vm_capable nodes
3945 - Fixed a bug where a missing instance symlink was not possible to
3946   recreate with any ``gnt-*`` command (now ``gnt-instance
3947   activate-disks`` does it)
3948 - Fixed the volume group name as reported by ``gnt-cluster
3949   verify-disks``
3950 - Increased timeouts for the import-export code, hopefully leading to
3951   fewer aborts due network or instance timeouts
3952 - Fixed bug in ``gnt-node list-storage``
3953 - Fixed bug where not all daemons were started on cluster
3954   initialisation, but only at the first watcher run
3955 - Fixed many bugs in the OOB implementation
3956 - Fixed watcher behaviour in presence of instances with offline
3957   secondaries
3958 - Fixed instance list output for instances running on the wrong node
3959 - a few fixes to the cluster-merge tool, but it still cannot merge
3960   multi-node groups (currently it is not recommended to use this tool)
3961
3962
3963 Improvements
3964 ~~~~~~~~~~~~
3965
3966 - Improved network configuration for the KVM hypervisor
3967 - Added e1000 as a supported NIC for Xen-HVM
3968 - Improved the lvmstrap tool to also be able to use partitions, as
3969   opposed to full disks
3970 - Improved speed of disk wiping (the cluster parameter
3971   ``prealloc_wipe_disks``, so that it has a low impact on the total time
3972   of instance creations
3973 - Added documentation for the OS parameters
3974 - Changed ``gnt-instance deactivate-disks`` so that it can work if the
3975   hypervisor is not responding
3976 - Added display of blacklisted and hidden OS information in
3977   ``gnt-cluster info``
3978 - Extended ``gnt-cluster verify`` to also validate hypervisor, backend,
3979   NIC and node parameters, which might create problems with currently
3980   invalid (but undetected) configuration files, but prevents validation
3981   failures when unrelated parameters are modified
3982 - Changed cluster initialisation to wait for the master daemon to become
3983   available
3984 - Expanded the RAPI interface:
3985
3986   - Added config redistribution resource
3987   - Added activation/deactivation of instance disks
3988   - Added export of console information
3989
3990 - Implemented log file reopening on SIGHUP, which allows using
3991   logrotate(8) for the Ganeti log files
3992 - Added a basic OOB helper script as an example
3993
3994
3995 Version 2.4.0 beta1
3996 -------------------
3997
3998 *(Released Fri, 14 Jan 2011)*
3999
4000 User-visible
4001 ~~~~~~~~~~~~
4002
4003 - Fixed timezone issues when formatting timestamps
4004 - Added support for node groups, available via ``gnt-group`` and other
4005   commands
4006 - Added out-of-band framework and management, see :doc:`design
4007   document <design-oob>`
4008 - Removed support for roman numbers from ``gnt-node list`` and
4009   ``gnt-instance list``.
4010 - Allowed modification of master network interface via ``gnt-cluster
4011   modify --master-netdev``