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