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