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