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