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