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