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