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