Update NEWS file for 2.8.2 release
[ganeti-github.git] / NEWS
1 News
2 ====
3
4
5 Version 2.8.2
6 -------------
7
8 *(Released Thu, 07 Nov 2013)*
9
10 - DRBD: ensure peers are UpToDate for dual-primary
11 - Improve error message for replace-disks
12 - More dependency checks at configure time
13 - Placate warnings on ganeti.outils_unittest.py
14
15
16 Version 2.8.1
17 -------------
18
19 *(Released Thu, 17 Oct 2013)*
20
21 - Correctly start/stop luxid during gnt-cluster master-failover
22 - Don't attempt IPv6 ssh in case of IPv4 cluster (Issue 595)
23 - Fix path for the job queue serial file
24 - Improved harep man page
25 - Minor documentation improvements
26
27
28 Version 2.8.0
29 -------------
30
31 *(Released Mon, 30 Sep 2013)*
32
33 Incompatible/important changes
34 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35
36 - Instance policy can contain multiple instance specs, as described in
37   the “Constrained instance sizes” section of :doc:`Partitioned Ganeti
38   <design-partitioned>`. As a consequence, it's not possible to partially change
39   or override instance specs. Bounding specs (min and max) can be specified as a
40   whole using the new option ``--ipolicy-bounds-specs``, while standard
41   specs use the new option ``--ipolicy-std-specs``.
42 - The output of the info command of gnt-cluster, gnt-group, gnt-node,
43   gnt-instance is a valid YAML object.
44 - hail now honors network restrictions when allocating nodes. This led to an
45   update of the IAllocator protocol. See the IAllocator documentation for
46   details.
47 - confd now only answers static configuration request over the network. luxid
48   was extracted, listens on the local LUXI socket and responds to live queries.
49   This allows finer grained permissions if using separate users.
50
51 New features
52 ~~~~~~~~~~~~
53
54 - The :doc:`Remote API <rapi>` daemon now supports a command line flag
55   to always require authentication, ``--require-authentication``. It can
56   be specified in ``$sysconfdir/default/ganeti``.
57 - A new cluster attribute 'enabled_disk_templates' is introduced. It will
58   be used to manage the disk templates to be used by instances in the cluster.
59   Initially, it will be set to a list that includes plain, drbd, if they were
60   enabled by specifying a volume group name, and file and sharedfile, if those
61   were enabled at configure time. Additionally, it will include all disk
62   templates that are currently used by instances. The order of disk templates
63   will be based on Ganeti's history of supporting them. In the future, the
64   first entry of the list will be used as a default disk template on instance
65   creation.
66 - ``cfgupgrade`` now supports a ``--downgrade`` option to bring the
67   configuration back to the previous stable version.
68 - Disk templates in group ipolicy can be restored to the default value.
69 - Initial support for diskless instances and virtual clusters in QA.
70 - More QA and unit tests for instance policies.
71 - Every opcode now contains a reason trail (visible through ``gnt-job info``)
72   describing why the opcode itself was executed.
73 - The monitoring daemon is now available. It allows users to query the cluster
74   for obtaining information about the status of the system. The daemon is only
75   responsible for providing the information over the network: the actual data
76   gathering is performed by data collectors (currently, only the DRBD status
77   collector is available).
78 - In order to help developers work on Ganeti, a new script
79   (``devel/build_chroot``) is provided, for building a chroot that contains all
80   the required development libraries and tools for compiling Ganeti on a Debian
81   Squeeze system.
82 - A new tool, ``harep``, for performing self-repair and recreation of instances
83   in Ganeti has been added.
84 - Split queries are enabled for tags, network, exports, cluster info, groups,
85   jobs, nodes.
86 - New command ``show-ispecs-cmd`` for ``gnt-cluster`` and ``gnt-group``.
87   It prints the command line to set the current policies, to ease
88   changing them.
89 - Add the ``vnet_hdr`` HV parameter for KVM, to control whether the tap
90   devices for KVM virtio-net interfaces will get created with VNET_HDR
91   (IFF_VNET_HDR) support. If set to false, it disables offloading on the
92   virtio-net interfaces, which prevents host kernel tainting and log
93   flooding, when dealing with broken or malicious virtio-net drivers.
94   It's set to true by default.
95 - Instance failover now supports a ``--cleanup`` parameter for fixing previous
96   failures.
97 - Support 'viridian' parameter in Xen HVM
98 - Support DSA SSH keys in bootstrap
99 - To simplify the work of packaging frameworks that want to add the needed users
100   and groups in a split-user setup themselves, at build time three files in
101   ``doc/users`` will be generated. The ``groups`` files contains, one per line,
102   the groups to be generated, the ``users`` file contains, one per line, the
103   users to be generated, optionally followed by their primary group, where
104   important. The ``groupmemberships`` file contains, one per line, additional
105   user-group membership relations that need to be established. The syntax of
106   these files will remain stable in all future versions.
107
108
109 New dependencies
110 ~~~~~~~~~~~~~~~~
111 The following new dependencies have been added:
112
113 For Haskell:
114 - The ``curl`` library is not optional anymore for compiling the Haskell code.
115 - ``snap-server`` library (if monitoring is enabled).
116
117 For Python:
118 - The minimum Python version needed to run Ganeti is now 2.6.
119 - ``yaml`` library (only for running the QA).
120
121 Since 2.8.0 rc3
122 ~~~~~~~~~~~~~~~
123 - Perform proper cleanup on termination of Haskell daemons
124 - Fix corner-case in handling of remaining retry time
125
126
127 Version 2.8.0 rc3
128 -----------------
129
130 *(Released Tue, 17 Sep 2013)*
131
132 - To simplify the work of packaging frameworks that want to add the needed users
133   and groups in a split-user setup themselves, at build time three files in
134   ``doc/users`` will be generated. The ``groups`` files contains, one per line,
135   the groups to be generated, the ``users`` file contains, one per line, the
136   users to be generated, optionally followed by their primary group, where
137   important. The ``groupmemberships`` file contains, one per line, additional
138   user-group membership relations that need to be established. The syntax of
139   these files will remain stable in all future versions.
140 - Add a default to file-driver when unspecified over RAPI (Issue 571)
141 - Mark the DSA host pubkey as optional, and remove it during config downgrade
142   (Issue 560)
143 - Some documentation fixes
144
145
146 Version 2.8.0 rc2
147 -----------------
148
149 *(Released Tue, 27 Aug 2013)*
150
151 The second release candidate of the 2.8 series. Since 2.8.0. rc1:
152
153 - Support 'viridian' parameter in Xen HVM (Issue 233)
154 - Include VCS version in ``gnt-cluster version``
155 - Support DSA SSH keys in bootstrap (Issue 338)
156 - Fix batch creation of instances
157 - Use FQDN to check master node status (Issue 551)
158 - Make the DRBD collector more failure-resilient
159
160
161 Version 2.8.0 rc1
162 -----------------
163
164 *(Released Fri, 2 Aug 2013)*
165
166 The first release candidate of the 2.8 series. Since 2.8.0 beta1:
167
168 - Fix upgrading/downgrading from 2.7
169 - Increase maximum RAPI message size
170 - Documentation updates
171 - Split ``confd`` between ``luxid`` and ``confd``
172 - Merge 2.7 series up to the 2.7.1 release
173 - Allow the ``modify_etc_hosts`` option to be changed
174 - Add better debugging for ``luxid`` queries
175 - Expose bulk parameter for GetJobs in RAPI client
176 - Expose missing ``network`` fields in RAPI
177 - Add some ``cluster verify`` tests
178 - Some unittest fixes
179 - Fix a malfunction in ``hspace``'s tiered allocation
180 - Fix query compatibility between haskell and python implementations
181 - Add the ``vnet_hdr`` HV parameter for KVM
182 - Add ``--cleanup`` to instance failover
183 - Change the connected groups format in ``gnt-network info`` output; it
184   was previously displayed as a raw list by mistake. (Merged from 2.7)
185
186
187 Version 2.8.0 beta1
188 -------------------
189
190 *(Released Mon, 24 Jun 2013)*
191
192 This was the first beta release of the 2.8 series. All important changes
193 are listed in the latest 2.8 entry.
194
195
196 Version 2.7.2
197 -------------
198
199 *(Released Thu, 26 Sep 2013)*
200
201 - Change the connected groups format in ``gnt-network info`` output; it
202   was previously displayed as a raw list by mistake
203 - Check disk template in right dict when copying
204 - Support multi-instance allocs without iallocator
205 - Fix some errors in the documentation
206 - Fix formatting of tuple in an error message
207
208
209 Version 2.7.1
210 -------------
211
212 *(Released Thu, 25 Jul 2013)*
213
214 - Add logrotate functionality in daemon-util
215 - Add logrotate example file
216 - Add missing fields to network queries over rapi
217 - Fix network object timestamps
218 - Add support for querying network timestamps
219 - Fix a typo in the example crontab
220 - Fix a documentation typo
221
222
223 Version 2.7.0
224 -------------
225
226 *(Released Thu, 04 Jul 2013)*
227
228 Incompatible/important changes
229 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
230
231 - Instance policies for disk size were documented to be on a per-disk
232   basis, but hail applied them to the sum of all disks. This has been
233   fixed.
234 - ``hbal`` will now exit with status 0 if, during job execution over
235   LUXI, early exit has been requested and all jobs are successful;
236   before, exit status 1 was used, which cannot be differentiated from
237   "job error" case
238 - Compatibility with newer versions of rbd has been fixed
239 - ``gnt-instance batch-create`` has been changed to use the bulk create
240   opcode from Ganeti. This lead to incompatible changes in the format of
241   the JSON file. It's now not a custom dict anymore but a dict
242   compatible with the ``OpInstanceCreate`` opcode.
243 - Parent directories for file storage need to be listed in
244   ``$sysconfdir/ganeti/file-storage-paths`` now. ``cfgupgrade`` will
245   write the file automatically based on old configuration values, but it
246   can not distribute it across all nodes and the file contents should be
247   verified. Use ``gnt-cluster copyfile
248   $sysconfdir/ganeti/file-storage-paths`` once the cluster has been
249   upgraded. The reason for requiring this list of paths now is that
250   before it would have been possible to inject new paths via RPC,
251   allowing files to be created in arbitrary locations. The RPC protocol
252   is protected using SSL/X.509 certificates, but as a design principle
253   Ganeti does not permit arbitrary paths to be passed.
254 - The parsing of the variants file for OSes (see
255   :manpage:`ganeti-os-interface(7)`) has been slightly changed: now empty
256   lines and comment lines (starting with ``#``) are ignored for better
257   readability.
258 - The ``setup-ssh`` tool added in Ganeti 2.2 has been replaced and is no
259   longer available. ``gnt-node add`` now invokes a new tool on the
260   destination node, named ``prepare-node-join``, to configure the SSH
261   daemon. Paramiko is no longer necessary to configure nodes' SSH
262   daemons via ``gnt-node add``.
263 - Draining (``gnt-cluster queue drain``) and un-draining the job queue
264   (``gnt-cluster queue undrain``) now affects all nodes in a cluster and
265   the flag is not reset after a master failover.
266 - Python 2.4 has *not* been tested with this release. Using 2.6 or above
267   is recommended. 2.6 will be mandatory from the 2.8 series.
268
269
270 New features
271 ~~~~~~~~~~~~
272
273 - New network management functionality to support automatic allocation
274   of IP addresses and managing of network parameters. See
275   :manpage:`gnt-network(8)` for more details.
276 - New external storage backend, to allow managing arbitrary storage
277   systems external to the cluster. See
278   :manpage:`ganeti-extstorage-interface(7)`.
279 - New ``exclusive-storage`` node parameter added, restricted to
280   nodegroup level. When it's set to true, physical disks are assigned in
281   an exclusive fashion to instances, as documented in :doc:`Partitioned
282   Ganeti <design-partitioned>`.  Currently, only instances using the
283   ``plain`` disk template are supported.
284 - The KVM hypervisor has been updated with many new hypervisor
285   parameters, including a generic one for passing arbitrary command line
286   values. See a complete list in :manpage:`gnt-instance(8)`. It is now
287   compatible up to qemu 1.4.
288 - A new tool, called ``mon-collector``, is the stand-alone executor of
289   the data collectors for a monitoring system. As of this version, it
290   just includes the DRBD data collector, that can be executed by calling
291   ``mon-collector`` using the ``drbd`` parameter. See
292   :manpage:`mon-collector(7)`.
293 - A new user option, :pyeval:`rapi.RAPI_ACCESS_READ`, has been added
294   for RAPI users. It allows granting permissions to query for
295   information to a specific user without giving
296   :pyeval:`rapi.RAPI_ACCESS_WRITE` permissions.
297 - A new tool named ``node-cleanup`` has been added. It cleans remains of
298   a cluster from a machine by stopping all daemons, removing
299   certificates and ssconf files. Unless the ``--no-backup`` option is
300   given, copies of the certificates are made.
301 - Instance creations now support the use of opportunistic locking,
302   potentially speeding up the (parallel) creation of multiple instances.
303   This feature is currently only available via the :doc:`RAPI
304   <rapi>` interface and when an instance allocator is used. If the
305   ``opportunistic_locking`` parameter is set the opcode will try to
306   acquire as many locks as possible, but will not wait for any locks
307   held by other opcodes. If not enough resources can be found to
308   allocate the instance, the temporary error code
309   :pyeval:`errors.ECODE_TEMP_NORES` is returned. The operation can be
310   retried thereafter, with or without opportunistic locking.
311 - New experimental linux-ha resource scripts.
312 - Restricted-commands support: ganeti can now be asked (via command line
313   or rapi) to perform commands on a node. These are passed via ganeti
314   RPC rather than ssh. This functionality is restricted to commands
315   specified on the ``$sysconfdir/ganeti/restricted-commands`` for security
316   reasons. The file is not copied automatically.
317
318
319 Misc changes
320 ~~~~~~~~~~~~
321
322 - Diskless instances are now externally mirrored (Issue 237). This for
323   now has only been tested in conjunction with explicit target nodes for
324   migration/failover.
325 - Queries not needing locks or RPC access to the node can now be
326   performed by the confd daemon, making them independent from jobs, and
327   thus faster to execute. This is selectable at configure time.
328 - The functionality for allocating multiple instances at once has been
329   overhauled and is now also available through :doc:`RAPI <rapi>`.
330
331 There are no significant changes from version 2.7.0~rc3.
332
333
334 Version 2.7.0 rc3
335 -----------------
336
337 *(Released Tue, 25 Jun 2013)*
338
339 - Fix permissions on the confd query socket (Issue 477)
340 - Fix permissions on the job archive dir (Issue 498)
341 - Fix handling of an internal exception in replace-disks (Issue 472)
342 - Fix gnt-node info handling of shortened names (Issue 497)
343 - Fix gnt-instance grow-disk when wiping is enabled
344 - Documentation improvements, and support for newer pandoc
345 - Fix hspace honoring ipolicy for disks (Issue 484)
346 - Improve handling of the ``kvm_extra`` HV parameter
347
348
349 Version 2.7.0 rc2
350 -----------------
351
352 *(Released Fri, 24 May 2013)*
353
354 - ``devel/upload`` now works when ``/var/run`` on the target nodes is a
355   symlink.
356 - Disks added through ``gnt-instance modify`` or created through
357   ``gnt-instance recreate-disks`` are wiped, if the
358   ``prealloc_wipe_disks`` flag is set.
359 - If wiping newly created disks fails, the disks are removed. Also,
360   partial failures in creating disks through ``gnt-instance modify``
361   triggers a cleanup of the partially-created disks.
362 - Removing the master IP address doesn't fail if the address has been
363   already removed.
364 - Fix ownership of the OS log dir
365 - Workaround missing SO_PEERCRED constant (Issue 191)
366
367
368 Version 2.7.0 rc1
369 -----------------
370
371 *(Released Fri, 3 May 2013)*
372
373 This was the first release candidate of the 2.7 series. Since beta3:
374
375 - Fix kvm compatibility with qemu 1.4 (Issue 389)
376 - Documentation updates (admin guide, upgrade notes, install
377   instructions) (Issue 372)
378 - Fix gnt-group list nodes and instances count (Issue 436)
379 - Fix compilation without non-mandatory libraries (Issue 441)
380 - Fix xen-hvm hypervisor forcing nics to type 'ioemu' (Issue 247)
381 - Make confd logging more verbose at INFO level (Issue 435)
382 - Improve "networks" documentation in :manpage:`gnt-instance(8)`
383 - Fix failure path for instance storage type conversion (Issue 229)
384 - Update htools text backend documentation
385 - Improve the renew-crypto section of :manpage:`gnt-cluster(8)`
386 - Disable inter-cluster instance move for file-based instances, because
387   it is dependant on instance export, which is not supported for
388   file-based instances. (Issue 414)
389 - Fix gnt-job crashes on non-ascii characters (Issue 427)
390 - Fix volume group checks on non-vm-capable nodes (Issue 432)
391
392
393 Version 2.7.0 beta3
394 -------------------
395
396 *(Released Mon, 22 Apr 2013)*
397
398 This was the third beta release of the 2.7 series. Since beta2:
399
400 - Fix hail to verify disk instance policies on a per-disk basis (Issue 418).
401 - Fix data loss on wrong usage of ``gnt-instance move``
402 - Properly export errors in confd-based job queries
403 - Add ``users-setup`` tool
404 - Fix iallocator protocol to report 0 as a disk size for diskless
405   instances. This avoids hail breaking when a diskless instance is
406   present.
407 - Fix job queue directory permission problem that made confd job queries
408   fail. This requires running an ``ensure-dirs --full-run`` on upgrade
409   for access to archived jobs (Issue 406).
410 - Limit the sizes of networks supported by ``gnt-network`` to something
411   between a ``/16`` and a ``/30`` to prevent memory bloat and crashes.
412 - Fix bugs in instance disk template conversion
413 - Fix GHC 7 compatibility
414 - Fix ``burnin`` install path (Issue 426).
415 - Allow very small disk grows (Issue 347).
416 - Fix a ``ganeti-noded`` memory bloat introduced in 2.5, by making sure
417   that noded doesn't import masterd code (Issue 419).
418 - Make sure the default metavg at cluster init is the same as the vg, if
419   unspecified (Issue 358).
420 - Fix cleanup of partially created disks (part of Issue 416)
421
422
423 Version 2.7.0 beta2
424 -------------------
425
426 *(Released Tue, 2 Apr 2013)*
427
428 This was the second beta release of the 2.7 series. Since beta1:
429
430 - Networks no longer have a "type" slot, since this information was
431   unused in Ganeti: instead of it tags should be used.
432 - The rapi client now has a ``target_node`` option to MigrateInstance.
433 - Fix early exit return code for hbal (Issue 386).
434 - Fix ``gnt-instance migrate/failover -n`` (Issue 396).
435 - Fix ``rbd showmapped`` output parsing (Issue 312).
436 - Networks are now referenced indexed by UUID, rather than name. This
437   will require running cfgupgrade, from 2.7.0beta1, if networks are in
438   use.
439 - The OS environment now includes network information.
440 - Deleting of a network is now disallowed if any instance nic is using
441   it, to prevent dangling references.
442 - External storage is now documented in man pages.
443 - The exclusive_storage flag can now only be set at nodegroup level.
444 - Hbal can now submit an explicit priority with its jobs.
445 - Many network related locking fixes.
446 - Bump up the required pylint version to 0.25.1.
447 - Fix the ``no_remember`` option in RAPI client.
448 - Many ipolicy related tests, qa, and fixes.
449 - Many documentation improvements and fixes.
450 - Fix building with ``--disable-file-storage``.
451 - Fix ``-q`` option in htools, which was broken if passed more than
452   once.
453 - Some haskell/python interaction improvements and fixes.
454 - Fix iallocator in case of missing LVM storage.
455 - Fix confd config load in case of ``--no-lvm-storage``.
456 - The confd/query functionality is now mentioned in the security
457   documentation.
458
459
460 Version 2.7.0 beta1
461 -------------------
462
463 *(Released Wed, 6 Feb 2013)*
464
465 This was the first beta release of the 2.7 series. All important changes
466 are listed in the latest 2.7 entry.
467
468
469 Version 2.6.2
470 -------------
471
472 *(Released Fri, 21 Dec 2012)*
473
474 Important behaviour change: hbal won't rebalance anymore instances which
475 have the ``auto_balance`` attribute set to false. This was the intention
476 all along, but until now it only skipped those from the N+1 memory
477 reservation (DRBD-specific).
478
479 A significant number of bug fixes in this release:
480
481 - Fixed disk adoption interaction with ipolicy checks.
482 - Fixed networking issues when instances are started, stopped or
483   migrated, by forcing the tap device's MAC prefix to "fe" (issue 217).
484 - Fixed the warning in cluster verify for shared storage instances not
485   being redundant.
486 - Fixed removal of storage directory on shared file storage (issue 262).
487 - Fixed validation of LVM volume group name in OpClusterSetParams
488   (``gnt-cluster modify``) (issue 285).
489 - Fixed runtime memory increases (``gnt-instance modify -m``).
490 - Fixed live migration under Xen's ``xl`` mode.
491 - Fixed ``gnt-instance console`` with ``xl``.
492 - Fixed building with newer Haskell compiler/libraries.
493 - Fixed PID file writing in Haskell daemons (confd); this prevents
494   restart issues if confd was launched manually (outside of
495   ``daemon-util``) while another copy of it was running
496 - Fixed a type error when doing live migrations with KVM (issue 297) and
497   the error messages for failing migrations have been improved.
498 - Fixed opcode validation for the out-of-band commands (``gnt-node
499   power``).
500 - Fixed a type error when unsetting OS hypervisor parameters (issue
501   311); now it's possible to unset all OS-specific hypervisor
502   parameters.
503 - Fixed the ``dry-run`` mode for many operations: verification of
504   results was over-zealous but didn't take into account the ``dry-run``
505   operation, resulting in "wrong" failures.
506 - Fixed bash completion in ``gnt-job list`` when the job queue has
507   hundreds of entries; especially with older ``bash`` versions, this
508   results in significant CPU usage.
509
510 And lastly, a few other improvements have been made:
511
512 - Added option to force master-failover without voting (issue 282).
513 - Clarified error message on lock conflict (issue 287).
514 - Logging of newly submitted jobs has been improved (issue 290).
515 - Hostname checks have been made uniform between instance rename and
516   create (issue 291).
517 - The ``--submit`` option is now supported by ``gnt-debug delay``.
518 - Shutting down the master daemon by sending SIGTERM now stops it from
519   processing jobs waiting for locks; instead, those jobs will be started
520   once again after the master daemon is started the next time (issue
521   296).
522 - Support for Xen's ``xl`` program has been improved (besides the fixes
523   above).
524 - Reduced logging noise in the Haskell confd daemon (only show one log
525   entry for each config reload, instead of two).
526 - Several man page updates and typo fixes.
527
528
529 Version 2.6.1
530 -------------
531
532 *(Released Fri, 12 Oct 2012)*
533
534 A small bugfix release. Among the bugs fixed:
535
536 - Fixed double use of ``PRIORITY_OPT`` in ``gnt-node migrate``, that
537   made the command unusable.
538 - Commands that issue many jobs don't fail anymore just because some jobs
539   take so long that other jobs are archived.
540 - Failures during ``gnt-instance reinstall`` are reflected by the exit
541   status.
542 - Issue 190 fixed. Check for DRBD in cluster verify is enabled only when
543   DRBD is enabled.
544 - When ``always_failover`` is set, ``--allow-failover`` is not required
545   in migrate commands anymore.
546 - ``bash_completion`` works even if extglob is disabled.
547 - Fixed bug with locks that made failover for RDB-based instances fail.
548 - Fixed bug in non-mirrored instance allocation that made Ganeti choose
549   a random node instead of one based on the allocator metric.
550 - Support for newer versions of pylint and pep8.
551 - Hail doesn't fail anymore when trying to add an instance of type
552   ``file``, ``sharedfile`` or ``rbd``.
553 - Added new Makefile target to rebuild the whole distribution, so that
554   all files are included.
555
556
557 Version 2.6.0
558 -------------
559
560 *(Released Fri, 27 Jul 2012)*
561
562
563 .. attention:: The ``LUXI`` protocol has been made more consistent
564    regarding its handling of command arguments. This, however, leads to
565    incompatibility issues with previous versions. Please ensure that you
566    restart Ganeti daemons soon after the upgrade, otherwise most
567    ``LUXI`` calls (job submission, setting/resetting the drain flag,
568    pausing/resuming the watcher, cancelling and archiving jobs, querying
569    the cluster configuration) will fail.
570
571
572 New features
573 ~~~~~~~~~~~~
574
575 Instance run status
576 +++++++++++++++++++
577
578 The current ``admin_up`` field, which used to denote whether an instance
579 should be running or not, has been removed. Instead, ``admin_state`` is
580 introduced, with 3 possible values -- ``up``, ``down`` and ``offline``.
581
582 The rational behind this is that an instance being “down” can have
583 different meanings:
584
585 - it could be down during a reboot
586 - it could be temporarily be down for a reinstall
587 - or it could be down because it is deprecated and kept just for its
588   disk
589
590 The previous Boolean state was making it difficult to do capacity
591 calculations: should Ganeti reserve memory for a down instance? Now, the
592 tri-state field makes it clear:
593
594 - in ``up`` and ``down`` state, all resources are reserved for the
595   instance, and it can be at any time brought up if it is down
596 - in ``offline`` state, only disk space is reserved for it, but not
597   memory or CPUs
598
599 The field can have an extra use: since the transition between ``up`` and
600 ``down`` and vice-versus is done via ``gnt-instance start/stop``, but
601 transition between ``offline`` and ``down`` is done via ``gnt-instance
602 modify``, it is possible to given different rights to users. For
603 example, owners of an instance could be allowed to start/stop it, but
604 not transition it out of the offline state.
605
606 Instance policies and specs
607 +++++++++++++++++++++++++++
608
609 In previous Ganeti versions, an instance creation request was not
610 limited on the minimum size and on the maximum size just by the cluster
611 resources. As such, any policy could be implemented only in third-party
612 clients (RAPI clients, or shell wrappers over ``gnt-*``
613 tools). Furthermore, calculating cluster capacity via ``hspace`` again
614 required external input with regards to instance sizes.
615
616 In order to improve these workflows and to allow for example better
617 per-node group differentiation, we introduced instance specs, which
618 allow declaring:
619
620 - minimum instance disk size, disk count, memory size, cpu count
621 - maximum values for the above metrics
622 - and “standard” values (used in ``hspace`` to calculate the standard
623   sized instances)
624
625 The minimum/maximum values can be also customised at node-group level,
626 for example allowing more powerful hardware to support bigger instance
627 memory sizes.
628
629 Beside the instance specs, there are a few other settings belonging to
630 the instance policy framework. It is possible now to customise, per
631 cluster and node-group:
632
633 - the list of allowed disk templates
634 - the maximum ratio of VCPUs per PCPUs (to control CPU oversubscription)
635 - the maximum ratio of instance to spindles (see below for more
636   information) for local storage
637
638 All these together should allow all tools that talk to Ganeti to know
639 what are the ranges of allowed values for instances and the
640 over-subscription that is allowed.
641
642 For the VCPU/PCPU ratio, we already have the VCPU configuration from the
643 instance configuration, and the physical CPU configuration from the
644 node. For the spindle ratios however, we didn't track before these
645 values, so new parameters have been added:
646
647 - a new node parameter ``spindle_count``, defaults to 1, customisable at
648   node group or node level
649 - at new backend parameter (for instances), ``spindle_use`` defaults to 1
650
651 Note that spindles in this context doesn't need to mean actual
652 mechanical hard-drives; it's just a relative number for both the node
653 I/O capacity and instance I/O consumption.
654
655 Instance migration behaviour
656 ++++++++++++++++++++++++++++
657
658 While live-migration is in general desirable over failover, it is
659 possible that for some workloads it is actually worse, due to the
660 variable time of the “suspend” phase during live migration.
661
662 To allow the tools to work consistently over such instances (without
663 having to hard-code instance names), a new backend parameter
664 ``always_failover`` has been added to control the migration/failover
665 behaviour. When set to True, all migration requests for an instance will
666 instead fall-back to failover.
667
668 Instance memory ballooning
669 ++++++++++++++++++++++++++
670
671 Initial support for memory ballooning has been added. The memory for an
672 instance is no longer fixed (backend parameter ``memory``), but instead
673 can vary between minimum and maximum values (backend parameters
674 ``minmem`` and ``maxmem``). Currently we only change an instance's
675 memory when:
676
677 - live migrating or failing over and instance and the target node
678   doesn't have enough memory
679 - user requests changing the memory via ``gnt-instance modify
680   --runtime-memory``
681
682 Instance CPU pinning
683 ++++++++++++++++++++
684
685 In order to control the use of specific CPUs by instance, support for
686 controlling CPU pinning has been added for the Xen, HVM and LXC
687 hypervisors. This is controlled by a new hypervisor parameter
688 ``cpu_mask``; details about possible values for this are in the
689 :manpage:`gnt-instance(8)`. Note that use of the most specific (precise
690 VCPU-to-CPU mapping) form will work well only when all nodes in your
691 cluster have the same amount of CPUs.
692
693 Disk parameters
694 +++++++++++++++
695
696 Another area in which Ganeti was not customisable were the parameters
697 used for storage configuration, e.g. how many stripes to use for LVM,
698 DRBD resync configuration, etc.
699
700 To improve this area, we've added disks parameters, which are
701 customisable at cluster and node group level, and which allow to
702 specify various parameters for disks (DRBD has the most parameters
703 currently), for example:
704
705 - DRBD resync algorithm and parameters (e.g. speed)
706 - the default VG for meta-data volumes for DRBD
707 - number of stripes for LVM (plain disk template)
708 - the RBD pool
709
710 These parameters can be modified via ``gnt-cluster modify -D …`` and
711 ``gnt-group modify -D …``, and are used at either instance creation (in
712 case of LVM stripes, for example) or at disk “activation” time
713 (e.g. resync speed).
714
715 Rados block device support
716 ++++++++++++++++++++++++++
717
718 A Rados (http://ceph.com/wiki/Rbd) storage backend has been added,
719 denoted by the ``rbd`` disk template type. This is considered
720 experimental, feedback is welcome. For details on configuring it, see
721 the :doc:`install` document and the :manpage:`gnt-cluster(8)` man page.
722
723 Master IP setup
724 +++++++++++++++
725
726 The existing master IP functionality works well only in simple setups (a
727 single network shared by all nodes); however, if nodes belong to
728 different networks, then the ``/32`` setup and lack of routing
729 information is not enough.
730
731 To allow the master IP to function well in more complex cases, the
732 system was reworked as follows:
733
734 - a master IP netmask setting has been added
735 - the master IP activation/turn-down code was moved from the node daemon
736   to a separate script
737 - whether to run the Ganeti-supplied master IP script or a user-supplied
738   on is a ``gnt-cluster init`` setting
739
740 Details about the location of the standard and custom setup scripts are
741 in the man page :manpage:`gnt-cluster(8)`; for information about the
742 setup script protocol, look at the Ganeti-supplied script.
743
744 SPICE support
745 +++++++++++++
746
747 The `SPICE <http://www.linux-kvm.org/page/SPICE>`_ support has been
748 improved.
749
750 It is now possible to use TLS-protected connections, and when renewing
751 or changing the cluster certificates (via ``gnt-cluster renew-crypto``,
752 it is now possible to specify spice or spice CA certificates. Also, it
753 is possible to configure a password for SPICE sessions via the
754 hypervisor parameter ``spice_password_file``.
755
756 There are also new parameters to control the compression and streaming
757 options (e.g. ``spice_image_compression``, ``spice_streaming_video``,
758 etc.). For details, see the man page :manpage:`gnt-instance(8)` and look
759 for the spice parameters.
760
761 Lastly, it is now possible to see the SPICE connection information via
762 ``gnt-instance console``.
763
764 OVF converter
765 +++++++++++++
766
767 A new tool (``tools/ovfconverter``) has been added that supports
768 conversion between Ganeti and the `Open Virtualization Format
769 <http://en.wikipedia.org/wiki/Open_Virtualization_Format>`_ (both to and
770 from).
771
772 This relies on the ``qemu-img`` tool to convert the disk formats, so the
773 actual compatibility with other virtualization solutions depends on it.
774
775 Confd daemon changes
776 ++++++++++++++++++++
777
778 The configuration query daemon (``ganeti-confd``) is now optional, and
779 has been rewritten in Haskell; whether to use the daemon at all, use the
780 Python (default) or the Haskell version is selectable at configure time
781 via the ``--enable-confd`` parameter, which can take one of the
782 ``haskell``, ``python`` or ``no`` values. If not used, disabling the
783 daemon will result in a smaller footprint; for larger systems, we
784 welcome feedback on the Haskell version which might become the default
785 in future versions.
786
787 If you want to use ``gnt-node list-drbd`` you need to have the Haskell
788 daemon running. The Python version doesn't implement the new call.
789
790
791 User interface changes
792 ~~~~~~~~~~~~~~~~~~~~~~
793
794 We have replaced the ``--disks`` option of ``gnt-instance
795 replace-disks`` with a more flexible ``--disk`` option, which allows
796 adding and removing disks at arbitrary indices (Issue 188). Furthermore,
797 disk size and mode can be changed upon recreation (via ``gnt-instance
798 recreate-disks``, which accepts the same ``--disk`` option).
799
800 As many people are used to a ``show`` command, we have added that as an
801 alias to ``info`` on all ``gnt-*`` commands.
802
803 The ``gnt-instance grow-disk`` command has a new mode in which it can
804 accept the target size of the disk, instead of the delta; this can be
805 more safe since two runs in absolute mode will be idempotent, and
806 sometimes it's also easier to specify the desired size directly.
807
808 Also the handling of instances with regard to offline secondaries has
809 been improved. Instance operations should not fail because one of it's
810 secondary nodes is offline, even though it's safe to proceed.
811
812 A new command ``list-drbd`` has been added to the ``gnt-node`` script to
813 support debugging of DRBD issues on nodes. It provides a mapping of DRBD
814 minors to instance name.
815
816 API changes
817 ~~~~~~~~~~~
818
819 RAPI coverage has improved, with (for example) new resources for
820 recreate-disks, node power-cycle, etc.
821
822 Compatibility
823 ~~~~~~~~~~~~~
824
825 There is partial support for ``xl`` in the Xen hypervisor; feedback is
826 welcome.
827
828 Python 2.7 is better supported, and after Ganeti 2.6 we will investigate
829 whether to still support Python 2.4 or move to Python 2.6 as minimum
830 required version.
831
832 Support for Fedora has been slightly improved; the provided example
833 init.d script should work better on it and the INSTALL file should
834 document the needed dependencies.
835
836 Internal changes
837 ~~~~~~~~~~~~~~~~
838
839 The deprecated ``QueryLocks`` LUXI request has been removed. Use
840 ``Query(what=QR_LOCK, ...)`` instead.
841
842 The LUXI requests :pyeval:`luxi.REQ_QUERY_JOBS`,
843 :pyeval:`luxi.REQ_QUERY_INSTANCES`, :pyeval:`luxi.REQ_QUERY_NODES`,
844 :pyeval:`luxi.REQ_QUERY_GROUPS`, :pyeval:`luxi.REQ_QUERY_EXPORTS` and
845 :pyeval:`luxi.REQ_QUERY_TAGS` are deprecated and will be removed in a
846 future version. :pyeval:`luxi.REQ_QUERY` should be used instead.
847
848 RAPI client: ``CertificateError`` now derives from
849 ``GanetiApiError``. This should make it more easy to handle Ganeti
850 errors.
851
852 Deprecation warnings due to PyCrypto/paramiko import in
853 ``tools/setup-ssh`` have been silenced, as usually they are safe; please
854 make sure to run an up-to-date paramiko version, if you use this tool.
855
856 The QA scripts now depend on Python 2.5 or above (the main code base
857 still works with Python 2.4).
858
859 The configuration file (``config.data``) is now written without
860 indentation for performance reasons; if you want to edit it, it can be
861 re-formatted via ``tools/fmtjson``.
862
863 A number of bugs has been fixed in the cluster merge tool.
864
865 ``x509`` certification verification (used in import-export) has been
866 changed to allow the same clock skew as permitted by the cluster
867 verification. This will remove some rare but hard to diagnose errors in
868 import-export.
869
870
871 Version 2.6.0 rc4
872 -----------------
873
874 *(Released Thu, 19 Jul 2012)*
875
876 Very few changes from rc4 to the final release, only bugfixes:
877
878 - integrated fixes from release 2.5.2 (fix general boot flag for KVM
879   instance, fix CDROM booting for KVM instances)
880 - fixed node group modification of node parameters
881 - fixed issue in LUClusterVerifyGroup with multi-group clusters
882 - fixed generation of bash completion to ensure a stable ordering
883 - fixed a few typos
884
885
886 Version 2.6.0 rc3
887 -----------------
888
889 *(Released Fri, 13 Jul 2012)*
890
891 Third release candidate for 2.6. The following changes were done from
892 rc3 to rc4:
893
894 - Fixed ``UpgradeConfig`` w.r.t. to disk parameters on disk objects.
895 - Fixed an inconsistency in the LUXI protocol with the provided
896   arguments (NOT backwards compatible)
897 - Fixed a bug with node groups ipolicy where ``min`` was greater than
898   the cluster ``std`` value
899 - Implemented a new ``gnt-node list-drbd`` call to list DRBD minors for
900   easier instance debugging on nodes (requires ``hconfd`` to work)
901
902
903 Version 2.6.0 rc2
904 -----------------
905
906 *(Released Tue, 03 Jul 2012)*
907
908 Second release candidate for 2.6. The following changes were done from
909 rc2 to rc3:
910
911 - Fixed ``gnt-cluster verify`` regarding ``master-ip-script`` on non
912   master candidates
913 - Fixed a RAPI regression on missing beparams/memory
914 - Fixed redistribution of files on offline nodes
915 - Added possibility to run activate-disks even though secondaries are
916   offline. With this change it relaxes also the strictness on some other
917   commands which use activate disks internally:
918   * ``gnt-instance start|reboot|rename|backup|export``
919 - Made it possible to remove safely an instance if its secondaries are
920   offline
921 - Made it possible to reinstall even though secondaries are offline
922
923
924 Version 2.6.0 rc1
925 -----------------
926
927 *(Released Mon, 25 Jun 2012)*
928
929 First release candidate for 2.6. The following changes were done from
930 rc1 to rc2:
931
932 - Fixed bugs with disk parameters and ``rbd`` templates as well as
933   ``instance_os_add``
934 - Made ``gnt-instance modify`` more consistent regarding new NIC/Disk
935   behaviour. It supports now the modify operation
936 - ``hcheck`` implemented to analyze cluster health and possibility of
937   improving health by rebalance
938 - ``hbal`` has been improved in dealing with split instances
939
940
941 Version 2.6.0 beta2
942 -------------------
943
944 *(Released Mon, 11 Jun 2012)*
945
946 Second beta release of 2.6. The following changes were done from beta2
947 to rc1:
948
949 - Fixed ``daemon-util`` with non-root user models
950 - Fixed creation of plain instances with ``--no-wait-for-sync``
951 - Fix wrong iv_names when running ``cfgupgrade``
952 - Export more information in RAPI group queries
953 - Fixed bug when changing instance network interfaces
954 - Extended burnin to do NIC changes
955 - query: Added ``<``, ``>``, ``<=``, ``>=`` comparison operators
956 - Changed default for DRBD barriers
957 - Fixed DRBD error reporting for syncer rate
958 - Verify the options on disk parameters
959
960 And of course various fixes to documentation and improved unittests and
961 QA.
962
963
964 Version 2.6.0 beta1
965 -------------------
966
967 *(Released Wed, 23 May 2012)*
968
969 First beta release of 2.6. The following changes were done from beta1 to
970 beta2:
971
972 - integrated patch for distributions without ``start-stop-daemon``
973 - adapted example init.d script to work on Fedora
974 - fixed log handling in Haskell daemons
975 - adapted checks in the watcher for pycurl linked against libnss
976 - add partial support for ``xl`` instead of ``xm`` for Xen
977 - fixed a type issue in cluster verification
978 - fixed ssconf handling in the Haskell code (was breaking confd in IPv6
979   clusters)
980
981 Plus integrated fixes from the 2.5 branch:
982
983 - fixed ``kvm-ifup`` to use ``/bin/bash``
984 - fixed parallel build failures
985 - KVM live migration when using a custom keymap
986
987
988 Version 2.5.2
989 -------------
990
991 *(Released Tue, 24 Jul 2012)*
992
993 A small bugfix release, with no new features:
994
995 - fixed bash-isms in kvm-ifup, for compatibility with systems which use a
996   different default shell (e.g. Debian, Ubuntu)
997 - fixed KVM startup and live migration with a custom keymap (fixes Issue
998   243 and Debian bug #650664)
999 - fixed compatibility with KVM versions that don't support multiple boot
1000   devices (fixes Issue 230 and Debian bug #624256)
1001
1002 Additionally, a few fixes were done to the build system (fixed parallel
1003 build failures) and to the unittests (fixed race condition in test for
1004 FileID functions, and the default enable/disable mode for QA test is now
1005 customisable).
1006
1007
1008 Version 2.5.1
1009 -------------
1010
1011 *(Released Fri, 11 May 2012)*
1012
1013 A small bugfix release.
1014
1015 The main issues solved are on the topic of compatibility with newer LVM
1016 releases:
1017
1018 - fixed parsing of ``lv_attr`` field
1019 - adapted to new ``vgreduce --removemissing`` behaviour where sometimes
1020   the ``--force`` flag is needed
1021
1022 Also on the topic of compatibility, ``tools/lvmstrap`` has been changed
1023 to accept kernel 3.x too (was hardcoded to 2.6.*).
1024
1025 A regression present in 2.5.0 that broke handling (in the gnt-* scripts)
1026 of hook results and that also made display of other errors suboptimal
1027 was fixed; the code behaves now like 2.4 and earlier.
1028
1029 Another change in 2.5, the cleanup of the OS scripts environment, is too
1030 aggressive: it removed even the ``PATH`` variable, which requires the OS
1031 scripts to *always* need to export it. Since this is a bit too strict,
1032 we now export a minimal PATH, the same that we export for hooks.
1033
1034 The fix for issue 201 (Preserve bridge MTU in KVM ifup script) was
1035 integrated into this release.
1036
1037 Finally, a few other miscellaneous changes were done (no new features,
1038 just small improvements):
1039
1040 - Fix ``gnt-group --help`` display
1041 - Fix hardcoded Xen kernel path
1042 - Fix grow-disk handling of invalid units
1043 - Update synopsis for ``gnt-cluster repair-disk-sizes``
1044 - Accept both PUT and POST in noded (makes future upgrade to 2.6 easier)
1045
1046
1047 Version 2.5.0
1048 -------------
1049
1050 *(Released Thu, 12 Apr 2012)*
1051
1052 Incompatible/important changes and bugfixes
1053 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1054
1055 - The default of the ``/2/instances/[instance_name]/rename`` RAPI
1056   resource's ``ip_check`` parameter changed from ``True`` to ``False``
1057   to match the underlying LUXI interface.
1058 - The ``/2/nodes/[node_name]/evacuate`` RAPI resource was changed to use
1059   body parameters, see :doc:`RAPI documentation <rapi>`. The server does
1060   not maintain backwards-compatibility as the underlying operation
1061   changed in an incompatible way. The RAPI client can talk to old
1062   servers, but it needs to be told so as the return value changed.
1063 - When creating file-based instances via RAPI, the ``file_driver``
1064   parameter no longer defaults to ``loop`` and must be specified.
1065 - The deprecated ``bridge`` NIC parameter is no longer supported. Use
1066   ``link`` instead.
1067 - Support for the undocumented and deprecated RAPI instance creation
1068   request format version 0 has been dropped. Use version 1, supported
1069   since Ganeti 2.1.3 and :doc:`documented <rapi>`, instead.
1070 - Pyparsing 1.4.6 or above is required, see :doc:`installation
1071   documentation <install>`.
1072 - The "cluster-verify" hooks are now executed per group by the
1073   ``OP_CLUSTER_VERIFY_GROUP`` opcode. This maintains the same behavior
1074   if you just run ``gnt-cluster verify``, which generates one opcode per
1075   group.
1076 - The environment as passed to the OS scripts is cleared, and thus no
1077   environment variables defined in the node daemon's environment will be
1078   inherited by the scripts.
1079 - The :doc:`iallocator <iallocator>` mode ``multi-evacuate`` has been
1080   deprecated.
1081 - :doc:`New iallocator modes <design-multi-reloc>` have been added to
1082   support operations involving multiple node groups.
1083 - Offline nodes are ignored when failing over an instance.
1084 - Support for KVM version 1.0, which changed the version reporting format
1085   from 3 to 2 digits.
1086 - TCP/IP ports used by DRBD disks are returned to a pool upon instance
1087   removal.
1088 - ``Makefile`` is now compatible with Automake 1.11.2
1089 - Includes all bugfixes made in the 2.4 series
1090
1091 New features
1092 ~~~~~~~~~~~~
1093
1094 - The ganeti-htools project has been merged into the ganeti-core source
1095   tree and will be built as part of Ganeti (see :doc:`install-quick`).
1096 - Implemented support for :doc:`shared storage <design-shared-storage>`.
1097 - Add support for disks larger than 2 TB in ``lvmstrap`` by supporting
1098   GPT-style partition tables (requires `parted
1099   <http://www.gnu.org/s/parted/>`_).
1100 - Added support for floppy drive and 2nd CD-ROM drive in KVM hypervisor.
1101 - Allowed adding tags on instance creation.
1102 - Export instance tags to hooks (``INSTANCE_TAGS``, see :doc:`hooks`)
1103 - Allow instances to be started in a paused state, enabling the user to
1104   see the complete console output on boot using the console.
1105 - Added new hypervisor flag to control default reboot behaviour
1106   (``reboot_behavior``).
1107 - Added support for KVM keymaps (hypervisor parameter ``keymap``).
1108 - Improved out-of-band management support:
1109
1110   - Added ``gnt-node health`` command reporting the health status of
1111     nodes.
1112   - Added ``gnt-node power`` command to manage power status of nodes.
1113   - Added command for emergency power-off (EPO), ``gnt-cluster epo``.
1114
1115 - Instance migration can fall back to failover if instance is not
1116   running.
1117 - Filters can be used when listing nodes, instances, groups and locks;
1118   see :manpage:`ganeti(7)` manpage.
1119 - Added post-execution status as variables to :doc:`hooks <hooks>`
1120   environment.
1121 - Instance tags are exported/imported together with the instance.
1122 - When given an explicit job ID, ``gnt-job info`` will work for archived
1123   jobs.
1124 - Jobs can define dependencies on other jobs (not yet supported via
1125   RAPI or command line, but used by internal commands and usable via
1126   LUXI).
1127
1128   - Lock monitor (``gnt-debug locks``) shows jobs waiting for
1129     dependencies.
1130
1131 - Instance failover is now available as a RAPI resource
1132   (``/2/instances/[instance_name]/failover``).
1133 - ``gnt-instance info`` defaults to static information if primary node
1134   is offline.
1135 - Opcodes have a new ``comment`` attribute.
1136 - Added basic SPICE support to KVM hypervisor.
1137 - ``tools/ganeti-listrunner`` allows passing of arguments to executable.
1138
1139 Node group improvements
1140 ~~~~~~~~~~~~~~~~~~~~~~~
1141
1142 - ``gnt-cluster verify`` has been modified to check groups separately,
1143   thereby improving performance.
1144 - Node group support has been added to ``gnt-cluster verify-disks``,
1145   which now operates per node group.
1146 - Watcher has been changed to work better with node groups.
1147
1148   - One process and state file per node group.
1149   - Slow watcher in one group doesn't block other group's watcher.
1150
1151 - Added new command, ``gnt-group evacuate``, to move all instances in a
1152   node group to other groups.
1153 - Added ``gnt-instance change-group`` to move an instance to another
1154   node group.
1155 - ``gnt-cluster command`` and ``gnt-cluster copyfile`` now support
1156   per-group operations.
1157 - Node groups can be tagged.
1158 - Some operations switch from an exclusive to a shared lock as soon as
1159   possible.
1160 - Instance's primary and secondary nodes' groups are now available as
1161   query fields (``pnode.group``, ``pnode.group.uuid``, ``snodes.group``
1162   and ``snodes.group.uuid``).
1163
1164 Misc
1165 ~~~~
1166
1167 - Numerous updates to documentation and manpages.
1168
1169   - :doc:`RAPI <rapi>` documentation now has detailed parameter
1170     descriptions.
1171   - Some opcode/job results are now also documented, see :doc:`RAPI
1172     <rapi>`.
1173
1174 - A lockset's internal lock is now also visible in lock monitor.
1175 - Log messages from job queue workers now contain information about the
1176   opcode they're processing.
1177 - ``gnt-instance console`` no longer requires the instance lock.
1178 - A short delay when waiting for job changes reduces the number of LUXI
1179   requests significantly.
1180 - DRBD metadata volumes are overwritten with zeros during disk creation.
1181 - Out-of-band commands no longer acquire the cluster lock in exclusive
1182   mode.
1183 - ``devel/upload`` now uses correct permissions for directories.
1184
1185
1186 Version 2.5.0 rc6
1187 -----------------
1188
1189 *(Released Fri, 23 Mar 2012)*
1190
1191 This was the sixth release candidate of the 2.5 series.
1192
1193
1194 Version 2.5.0 rc5
1195 -----------------
1196
1197 *(Released Mon, 9 Jan 2012)*
1198
1199 This was the fifth release candidate of the 2.5 series.
1200
1201
1202 Version 2.5.0 rc4
1203 -----------------
1204
1205 *(Released Thu, 27 Oct 2011)*
1206
1207 This was the fourth release candidate of the 2.5 series.
1208
1209
1210 Version 2.5.0 rc3
1211 -----------------
1212
1213 *(Released Wed, 26 Oct 2011)*
1214
1215 This was the third release candidate of the 2.5 series.
1216
1217
1218 Version 2.5.0 rc2
1219 -----------------
1220
1221 *(Released Tue, 18 Oct 2011)*
1222
1223 This was the second release candidate of the 2.5 series.
1224
1225
1226 Version 2.5.0 rc1
1227 -----------------
1228
1229 *(Released Tue, 4 Oct 2011)*
1230
1231 This was the first release candidate of the 2.5 series.
1232
1233
1234 Version 2.5.0 beta3
1235 -------------------
1236
1237 *(Released Wed, 31 Aug 2011)*
1238
1239 This was the third beta release of the 2.5 series.
1240
1241
1242 Version 2.5.0 beta2
1243 -------------------
1244
1245 *(Released Mon, 22 Aug 2011)*
1246
1247 This was the second beta release of the 2.5 series.
1248
1249
1250 Version 2.5.0 beta1
1251 -------------------
1252
1253 *(Released Fri, 12 Aug 2011)*
1254
1255 This was the first beta release of the 2.5 series.
1256
1257
1258 Version 2.4.5
1259 -------------
1260
1261 *(Released Thu, 27 Oct 2011)*
1262
1263 - Fixed bug when parsing command line parameter values ending in
1264   backslash
1265 - Fixed assertion error after unclean master shutdown
1266 - Disable HTTP client pool for RPC, significantly reducing memory usage
1267   of master daemon
1268 - Fixed queue archive creation with wrong permissions
1269
1270
1271 Version 2.4.4
1272 -------------
1273
1274 *(Released Tue, 23 Aug 2011)*
1275
1276 Small bug-fixes:
1277
1278 - Fixed documentation for importing with ``--src-dir`` option
1279 - Fixed a bug in ``ensure-dirs`` with queue/archive permissions
1280 - Fixed a parsing issue with DRBD 8.3.11 in the Linux kernel
1281
1282
1283 Version 2.4.3
1284 -------------
1285
1286 *(Released Fri, 5 Aug 2011)*
1287
1288 Many bug-fixes and a few small features:
1289
1290 - Fixed argument order in ``ReserveLV`` and ``ReserveMAC`` which caused
1291   issues when you tried to add an instance with two MAC addresses in one
1292   request
1293 - KVM: fixed per-instance stored UID value
1294 - KVM: configure bridged NICs at migration start
1295 - KVM: Fix a bug where instance will not start with never KVM versions
1296   (>= 0.14)
1297 - Added OS search path to ``gnt-cluster info``
1298 - Fixed an issue with ``file_storage_dir`` where you were forced to
1299   provide an absolute path, but the documentation states it is a
1300   relative path, the documentation was right
1301 - Added a new parameter to instance stop/start called ``--no-remember``
1302   that will make the state change to not be remembered
1303 - Implemented ``no_remember`` at RAPI level
1304 - Improved the documentation
1305 - Node evacuation: don't call IAllocator if node is already empty
1306 - Fixed bug in DRBD8 replace disks on current nodes
1307 - Fixed bug in recreate-disks for DRBD instances
1308 - Moved assertion checking locks in ``gnt-instance replace-disks``
1309   causing it to abort with not owning the right locks for some situation
1310 - Job queue: Fixed potential race condition when cancelling queued jobs
1311 - Fixed off-by-one bug in job serial generation
1312 - ``gnt-node volumes``: Fix instance names
1313 - Fixed aliases in bash completion
1314 - Fixed a bug in reopening log files after being sent a SIGHUP
1315 - Added a flag to burnin to allow specifying VCPU count
1316 - Bugfixes to non-root Ganeti configuration
1317
1318
1319 Version 2.4.2
1320 -------------
1321
1322 *(Released Thu, 12 May 2011)*
1323
1324 Many bug-fixes and a few new small features:
1325
1326 - Fixed a bug related to log opening failures
1327 - Fixed a bug in instance listing with orphan instances
1328 - Fixed a bug which prevented resetting the cluster-level node parameter
1329   ``oob_program`` to the default
1330 - Many fixes related to the ``cluster-merge`` tool
1331 - Fixed a race condition in the lock monitor, which caused failures
1332   during (at least) creation of many instances in parallel
1333 - Improved output for gnt-job info
1334 - Removed the quiet flag on some ssh calls which prevented debugging
1335   failures
1336 - Improved the N+1 failure messages in cluster verify by actually
1337   showing the memory values (needed and available)
1338 - Increased lock attempt timeouts so that when executing long operations
1339   (e.g. DRBD replace-disks) other jobs do not enter 'blocking acquire'
1340   too early and thus prevent the use of the 'fair' mechanism
1341 - Changed instance query data (``gnt-instance info``) to not acquire
1342   locks unless needed, thus allowing its use on locked instance if only
1343   static information is asked for
1344 - Improved behaviour with filesystems that do not support rename on an
1345   opened file
1346 - Fixed the behaviour of ``prealloc_wipe_disks`` cluster parameter which
1347   kept locks on all nodes during the wipe, which is unneeded
1348 - Fixed ``gnt-watcher`` handling of errors during hooks execution
1349 - Fixed bug in ``prealloc_wipe_disks`` with small disk sizes (less than
1350   10GiB) which caused the wipe to fail right at the end in some cases
1351 - Fixed master IP activation when doing master failover with no-voting
1352 - Fixed bug in ``gnt-node add --readd`` which allowed the re-adding of
1353   the master node itself
1354 - Fixed potential data-loss in under disk full conditions, where Ganeti
1355   wouldn't check correctly the return code and would consider
1356   partially-written files 'correct'
1357 - Fixed bug related to multiple VGs and DRBD disk replacing
1358 - Added new disk parameter ``metavg`` that allows placement of the meta
1359   device for DRBD in a different volume group
1360 - Fixed error handling in the node daemon when the system libc doesn't
1361   have major number 6 (i.e. if ``libc.so.6`` is not the actual libc)
1362 - Fixed lock release during replace-disks, which kept cluster-wide locks
1363   when doing disk replaces with an iallocator script
1364 - Added check for missing bridges in cluster verify
1365 - Handle EPIPE errors while writing to the terminal better, so that
1366   piping the output to e.g. ``less`` doesn't cause a backtrace
1367 - Fixed rare case where a ^C during Luxi calls could have been
1368   interpreted as server errors, instead of simply terminating
1369 - Fixed a race condition in LUGroupAssignNodes (``gnt-group
1370   assign-nodes``)
1371 - Added a few more parameters to the KVM hypervisor, allowing a second
1372   CDROM, custom disk type for CDROMs and a floppy image
1373 - Removed redundant message in instance rename when the name is given
1374   already as a FQDN
1375 - Added option to ``gnt-instance recreate-disks`` to allow creating the
1376   disks on new nodes, allowing recreation when the original instance
1377   nodes are completely gone
1378 - Added option when converting disk templates to DRBD to skip waiting
1379   for the resync, in order to make the instance available sooner
1380 - Added two new variables to the OS scripts environment (containing the
1381   instance's nodes)
1382 - Made the root_path and optional parameter for the xen-pvm hypervisor,
1383   to allow use of ``pvgrub`` as bootloader
1384 - Changed the instance memory modifications to only check out-of-memory
1385   conditions on memory increases, and turned the secondary node warnings
1386   into errors (they can still be overridden via ``--force``)
1387 - Fixed the handling of a corner case when the Python installation gets
1388   corrupted (e.g. a bad disk) while ganeti-noded is running and we try
1389   to execute a command that doesn't exist
1390 - Fixed a bug in ``gnt-instance move`` (LUInstanceMove) when the primary
1391   node of the instance returned failures during instance shutdown; this
1392   adds the option ``--ignore-consistency`` to gnt-instance move
1393
1394 And as usual, various improvements to the error messages, documentation
1395 and man pages.
1396
1397
1398 Version 2.4.1
1399 -------------
1400
1401 *(Released Wed, 09 Mar 2011)*
1402
1403 Emergency bug-fix release. ``tools/cfgupgrade`` was broken and overwrote
1404 the RAPI users file if run twice (even with ``--dry-run``).
1405
1406 The release fixes that bug (nothing else changed).
1407
1408
1409 Version 2.4.0
1410 -------------
1411
1412 *(Released Mon, 07 Mar 2011)*
1413
1414 Final 2.4.0 release. Just a few small fixes:
1415
1416 - Fixed RAPI node evacuate
1417 - Fixed the kvm-ifup script
1418 - Fixed internal error handling for special job cases
1419 - Updated man page to specify the escaping feature for options
1420
1421
1422 Version 2.4.0 rc3
1423 -----------------
1424
1425 *(Released Mon, 28 Feb 2011)*
1426
1427 A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
1428 that this feature wiped the disks of the wrong instance, leading to loss
1429 of data.
1430
1431 Other changes:
1432
1433 - Fixed title of query field containing instance name
1434 - Expanded the glossary in the documentation
1435 - Fixed one unittest (internal issue)
1436
1437
1438 Version 2.4.0 rc2
1439 -----------------
1440
1441 *(Released Mon, 21 Feb 2011)*
1442
1443 A number of bug fixes plus just a couple functionality changes.
1444
1445 On the user-visible side, the ``gnt-* list`` command output has changed
1446 with respect to "special" field states. The current rc1 style of display
1447 can be re-enabled by passing a new ``--verbose`` (``-v``) flag, but in
1448 the default output mode special fields states are displayed as follows:
1449
1450 - Offline resource: ``*``
1451 - Unavailable/not applicable: ``-``
1452 - Data missing (RPC failure): ``?``
1453 - Unknown field: ``??``
1454
1455 Another user-visible change is the addition of ``--force-join`` to
1456 ``gnt-node add``.
1457
1458 As for bug fixes:
1459
1460 - ``tools/cluster-merge`` has seen many fixes and is now enabled again
1461 - Fixed regression in RAPI/instance reinstall where all parameters were
1462   required (instead of optional)
1463 - Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
1464 - Fixed iallocator usage (offline nodes were not considered offline)
1465 - Fixed ``gnt-node list`` with respect to non-vm_capable nodes
1466 - Fixed hypervisor and OS parameter validation with respect to
1467   non-vm_capable nodes
1468 - Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
1469   cosmetic)
1470 - Fixed ``tools/listrunner`` with respect to agent-based usage
1471
1472
1473 Version 2.4.0 rc1
1474 -----------------
1475
1476 *(Released Fri,  4 Feb 2011)*
1477
1478 Many changes and fixes since the beta1 release. While there were some
1479 internal changes, the code has been mostly stabilised for the RC
1480 release.
1481
1482 Note: the dumb allocator was removed in this release, as it was not kept
1483 up-to-date with the IAllocator protocol changes. It is recommended to
1484 use the ``hail`` command from the ganeti-htools package.
1485
1486 Note: the 2.4 and up versions of Ganeti are not compatible with the
1487 0.2.x branch of ganeti-htools. You need to upgrade to
1488 ganeti-htools-0.3.0 (or later).
1489
1490 Regressions fixed from 2.3
1491 ~~~~~~~~~~~~~~~~~~~~~~~~~~
1492
1493 - Fixed the ``gnt-cluster verify-disks`` command
1494 - Made ``gnt-cluster verify-disks`` work in parallel (as opposed to
1495   serially on nodes)
1496 - Fixed disk adoption breakage
1497 - Fixed wrong headers in instance listing for field aliases
1498
1499 Other bugs fixed
1500 ~~~~~~~~~~~~~~~~
1501
1502 - Fixed corner case in KVM handling of NICs
1503 - Fixed many cases of wrong handling of non-vm_capable nodes
1504 - Fixed a bug where a missing instance symlink was not possible to
1505   recreate with any ``gnt-*`` command (now ``gnt-instance
1506   activate-disks`` does it)
1507 - Fixed the volume group name as reported by ``gnt-cluster
1508   verify-disks``
1509 - Increased timeouts for the import-export code, hopefully leading to
1510   fewer aborts due network or instance timeouts
1511 - Fixed bug in ``gnt-node list-storage``
1512 - Fixed bug where not all daemons were started on cluster
1513   initialisation, but only at the first watcher run
1514 - Fixed many bugs in the OOB implementation
1515 - Fixed watcher behaviour in presence of instances with offline
1516   secondaries
1517 - Fixed instance list output for instances running on the wrong node
1518 - a few fixes to the cluster-merge tool, but it still cannot merge
1519   multi-node groups (currently it is not recommended to use this tool)
1520
1521
1522 Improvements
1523 ~~~~~~~~~~~~
1524
1525 - Improved network configuration for the KVM hypervisor
1526 - Added e1000 as a supported NIC for Xen-HVM
1527 - Improved the lvmstrap tool to also be able to use partitions, as
1528   opposed to full disks
1529 - Improved speed of disk wiping (the cluster parameter
1530   ``prealloc_wipe_disks``, so that it has a low impact on the total time
1531   of instance creations
1532 - Added documentation for the OS parameters
1533 - Changed ``gnt-instance deactivate-disks`` so that it can work if the
1534   hypervisor is not responding
1535 - Added display of blacklisted and hidden OS information in
1536   ``gnt-cluster info``
1537 - Extended ``gnt-cluster verify`` to also validate hypervisor, backend,
1538   NIC and node parameters, which might create problems with currently
1539   invalid (but undetected) configuration files, but prevents validation
1540   failures when unrelated parameters are modified
1541 - Changed cluster initialisation to wait for the master daemon to become
1542   available
1543 - Expanded the RAPI interface:
1544
1545   - Added config redistribution resource
1546   - Added activation/deactivation of instance disks
1547   - Added export of console information
1548
1549 - Implemented log file reopening on SIGHUP, which allows using
1550   logrotate(8) for the Ganeti log files
1551 - Added a basic OOB helper script as an example
1552
1553
1554 Version 2.4.0 beta1
1555 -------------------
1556
1557 *(Released Fri, 14 Jan 2011)*
1558
1559 User-visible
1560 ~~~~~~~~~~~~
1561
1562 - Fixed timezone issues when formatting timestamps
1563 - Added support for node groups, available via ``gnt-group`` and other
1564   commands
1565 - Added out-of-band framework and management, see :doc:`design
1566   document <design-oob>`
1567 - Removed support for roman numbers from ``gnt-node list`` and
1568   ``gnt-instance list``.
1569 - Allowed modification of master network interface via ``gnt-cluster
1570   modify --master-netdev``
1571 - Accept offline secondaries while shutting down instance disks
1572 - Added ``blockdev_prefix`` parameter to Xen PVM and HVM hypervisors
1573 - Added support for multiple LVM volume groups
1574 - Avoid sorting nodes for ``gnt-node list`` if specific nodes are
1575   requested
1576 - Added commands to list available fields:
1577
1578   - ``gnt-node list-fields``
1579   - ``gnt-group list-fields``
1580   - ``gnt-instance list-fields``
1581
1582 - Updated documentation and man pages
1583
1584 Integration
1585 ~~~~~~~~~~~
1586
1587 - Moved ``rapi_users`` file into separate directory, now named
1588   ``.../ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
1589   symlink
1590 - Added new tool for running commands on many machines,
1591   ``tools/ganeti-listrunner``
1592 - Implemented more verbose result in ``OpInstanceConsole`` opcode, also
1593   improving the ``gnt-instance console`` output
1594 - Allowed customisation of disk index separator at ``configure`` time
1595 - Export node group allocation policy to :doc:`iallocator <iallocator>`
1596 - Added support for non-partitioned md disks in ``lvmstrap``
1597 - Added script to gracefully power off KVM instances
1598 - Split ``utils`` module into smaller parts
1599 - Changed query operations to return more detailed information, e.g.
1600   whether an information is unavailable due to an offline node. To use
1601   this new functionality, the LUXI call ``Query`` must be used. Field
1602   information is now stored by the master daemon and can be retrieved
1603   using ``QueryFields``. Instances, nodes and groups can also be queried
1604   using the new opcodes ``OpQuery`` and ``OpQueryFields`` (not yet
1605   exposed via RAPI). The following commands make use of this
1606   infrastructure change:
1607
1608   - ``gnt-group list``
1609   - ``gnt-group list-fields``
1610   - ``gnt-node list``
1611   - ``gnt-node list-fields``
1612   - ``gnt-instance list``
1613   - ``gnt-instance list-fields``
1614   - ``gnt-debug locks``
1615
1616 Remote API
1617 ~~~~~~~~~~
1618
1619 - New RAPI resources (see :doc:`rapi`):
1620
1621   - ``/2/modify``
1622   - ``/2/groups``
1623   - ``/2/groups/[group_name]``
1624   - ``/2/groups/[group_name]/assign-nodes``
1625   - ``/2/groups/[group_name]/modify``
1626   - ``/2/groups/[group_name]/rename``
1627   - ``/2/instances/[instance_name]/disk/[disk_index]/grow``
1628
1629 - RAPI changes:
1630
1631   - Implemented ``no_install`` for instance creation
1632   - Implemented OS parameters for instance reinstallation, allowing
1633     use of special settings on reinstallation (e.g. for preserving data)
1634
1635 Misc
1636 ~~~~
1637
1638 - Added IPv6 support in import/export
1639 - Pause DRBD synchronization while wiping disks on instance creation
1640 - Updated unittests and QA scripts
1641 - Improved network parameters passed to KVM
1642 - Converted man pages from docbook to reStructuredText
1643
1644
1645 Version 2.3.1
1646 -------------
1647
1648 *(Released Mon, 20 Dec 2010)*
1649
1650 Released version 2.3.1~rc1 without any changes.
1651
1652
1653 Version 2.3.1 rc1
1654 -----------------
1655
1656 *(Released Wed, 1 Dec 2010)*
1657
1658 - impexpd: Disable OpenSSL compression in socat if possible (backport
1659   from master, commit e90739d625b, see :doc:`installation guide
1660   <install-quick>` for details)
1661 - Changed unittest coverage report to exclude test scripts
1662 - Added script to check version format
1663
1664
1665 Version 2.3.0
1666 -------------
1667
1668 *(Released Wed, 1 Dec 2010)*
1669
1670 Released version 2.3.0~rc1 without any changes.
1671
1672
1673 Version 2.3.0 rc1
1674 -----------------
1675
1676 *(Released Fri, 19 Nov 2010)*
1677
1678 A number of bugfixes and documentation updates:
1679
1680 - Update ganeti-os-interface documentation
1681 - Fixed a bug related to duplicate MACs or similar items which should be
1682   unique
1683 - Fix breakage in OS state modify
1684 - Reinstall instance: disallow offline secondaries (fixes bug related to
1685   OS changing but reinstall failing)
1686 - plus all the other fixes between 2.2.1 and 2.2.2
1687
1688
1689 Version 2.3.0 rc0
1690 -----------------
1691
1692 *(Released Tue, 2 Nov 2010)*
1693
1694 - Fixed clearing of the default iallocator using ``gnt-cluster modify``
1695 - Fixed master failover race with watcher
1696 - Fixed a bug in ``gnt-node modify`` which could lead to an inconsistent
1697   configuration
1698 - Accept previously stopped instance for export with instance removal
1699 - Simplify and extend the environment variables for instance OS scripts
1700 - Added new node flags, ``master_capable`` and ``vm_capable``
1701 - Added optional instance disk wiping prior during allocation. This is a
1702   cluster-wide option and can be set/modified using
1703   ``gnt-cluster {init,modify} --prealloc-wipe-disks``.
1704 - Added IPv6 support, see :doc:`design document <design-2.3>` and
1705   :doc:`install-quick`
1706 - Added a new watcher option (``--ignore-pause``)
1707 - Added option to ignore offline node on instance start/stop
1708   (``--ignore-offline``)
1709 - Allow overriding OS parameters with ``gnt-instance reinstall``
1710 - Added ability to change node's secondary IP address using ``gnt-node
1711   modify``
1712 - Implemented privilege separation for all daemons except
1713   ``ganeti-noded``, see ``configure`` options
1714 - Complain if an instance's disk is marked faulty in ``gnt-cluster
1715   verify``
1716 - Implemented job priorities (see ``ganeti(7)`` manpage)
1717 - Ignore failures while shutting down instances during failover from
1718   offline node
1719 - Exit daemon's bootstrap process only once daemon is ready
1720 - Export more information via ``LUInstanceQuery``/remote API
1721 - Improved documentation, QA and unittests
1722 - RAPI daemon now watches ``rapi_users`` all the time and doesn't need a
1723   restart if the file was created or changed
1724 - Added LUXI protocol version sent with each request and response,
1725   allowing detection of server/client mismatches
1726 - Moved the Python scripts among gnt-* and ganeti-* into modules
1727 - Moved all code related to setting up SSH to an external script,
1728   ``setup-ssh``
1729 - Infrastructure changes for node group support in future versions
1730
1731
1732 Version 2.2.2
1733 -------------
1734
1735 *(Released Fri, 19 Nov 2010)*
1736
1737 A few small bugs fixed, and some improvements to the build system:
1738
1739 - Fix documentation regarding conversion to drbd
1740 - Fix validation of parameters in cluster modify (``gnt-cluster modify
1741   -B``)
1742 - Fix error handling in node modify with multiple changes
1743 - Allow remote imports without checked names
1744
1745
1746 Version 2.2.1
1747 -------------
1748
1749 *(Released Tue, 19 Oct 2010)*
1750
1751 - Disable SSL session ID cache in RPC client
1752
1753
1754 Version 2.2.1 rc1
1755 -----------------
1756
1757 *(Released Thu, 14 Oct 2010)*
1758
1759 - Fix interaction between Curl/GnuTLS and the Python's HTTP server
1760   (thanks Apollon Oikonomopoulos!), finally allowing the use of Curl
1761   with GnuTLS
1762 - Fix problems with interaction between Curl and Python's HTTP server,
1763   resulting in increased speed in many RPC calls
1764 - Improve our release script to prevent breakage with older aclocal and
1765   Python 2.6
1766
1767
1768 Version 2.2.1 rc0
1769 -----------------
1770
1771 *(Released Thu, 7 Oct 2010)*
1772
1773 - Fixed issue 125, replace hardcoded "xenvg" in ``gnt-cluster`` with
1774   value retrieved from master
1775 - Added support for blacklisted or hidden OS definitions
1776 - Added simple lock monitor (accessible via (``gnt-debug locks``)
1777 - Added support for -mem-path in KVM hypervisor abstraction layer
1778 - Allow overriding instance parameters in tool for inter-cluster
1779   instance moves (``tools/move-instance``)
1780 - Improved opcode summaries (e.g. in ``gnt-job list``)
1781 - Improve consistency of OS listing by sorting it
1782 - Documentation updates
1783
1784
1785 Version 2.2.0.1
1786 ---------------
1787
1788 *(Released Fri, 8 Oct 2010)*
1789
1790 - Rebuild with a newer autotools version, to fix python 2.6 compatibility
1791
1792
1793 Version 2.2.0
1794 -------------
1795
1796 *(Released Mon, 4 Oct 2010)*
1797
1798 - Fixed regression in ``gnt-instance rename``
1799
1800
1801 Version 2.2.0 rc2
1802 -----------------
1803
1804 *(Released Wed, 22 Sep 2010)*
1805
1806 - Fixed OS_VARIANT variable for OS scripts
1807 - Fixed cluster tag operations via RAPI
1808 - Made ``setup-ssh`` exit with non-zero code if an error occurred
1809 - Disabled RAPI CA checks in watcher
1810
1811
1812 Version 2.2.0 rc1
1813 -----------------
1814
1815 *(Released Mon, 23 Aug 2010)*
1816
1817 - Support DRBD versions of the format "a.b.c.d"
1818 - Updated manpages
1819 - Re-introduce support for usage from multiple threads in RAPI client
1820 - Instance renames and modify via RAPI
1821 - Work around race condition between processing and archival in job
1822   queue
1823 - Mark opcodes following failed one as failed, too
1824 - Job field ``lock_status`` was removed due to difficulties making it
1825   work with the changed job queue in Ganeti 2.2; a better way to monitor
1826   locks is expected for a later 2.2.x release
1827 - Fixed dry-run behaviour with many commands
1828 - Support ``ssh-agent`` again when adding nodes
1829 - Many additional bugfixes
1830
1831
1832 Version 2.2.0 rc0
1833 -----------------
1834
1835 *(Released Fri, 30 Jul 2010)*
1836
1837 Important change: the internal RPC mechanism between Ganeti nodes has
1838 changed from using a home-grown http library (based on the Python base
1839 libraries) to use the PycURL library. This requires that PycURL is
1840 installed on nodes. Please note that on Debian/Ubuntu, PycURL is linked
1841 against GnuTLS by default. cURL's support for GnuTLS had known issues
1842 before cURL 7.21.0 and we recommend using the latest cURL release or
1843 linking against OpenSSL. Most other distributions already link PycURL
1844 and cURL against OpenSSL. The command::
1845
1846   python -c 'import pycurl; print pycurl.version'
1847
1848 can be used to determine the libraries PycURL and cURL are linked
1849 against.
1850
1851 Other significant changes:
1852
1853 - Rewrote much of the internals of the job queue, in order to achieve
1854   better parallelism; this decouples job query operations from the job
1855   processing, and it should allow much nicer behaviour of the master
1856   daemon under load, and it also has uncovered some long-standing bugs
1857   related to the job serialisation (now fixed)
1858 - Added a default iallocator setting to the cluster parameters,
1859   eliminating the need to always pass nodes or an iallocator for
1860   operations that require selection of new node(s)
1861 - Added experimental support for the LXC virtualization method
1862 - Added support for OS parameters, which allows the installation of
1863   instances to pass parameter to OS scripts in order to customise the
1864   instance
1865 - Added a hypervisor parameter controlling the migration type (live or
1866   non-live), since hypervisors have various levels of reliability; this
1867   has renamed the 'live' parameter to 'mode'
1868 - Added a cluster parameter ``reserved_lvs`` that denotes reserved
1869   logical volumes, meaning that cluster verify will ignore them and not
1870   flag their presence as errors
1871 - The watcher will now reset the error count for failed instances after
1872   8 hours, thus allowing self-healing if the problem that caused the
1873   instances to be down/fail to start has cleared in the meantime
1874 - Added a cluster parameter ``drbd_usermode_helper`` that makes Ganeti
1875   check for, and warn, if the drbd module parameter ``usermode_helper``
1876   is not consistent with the cluster-wide setting; this is needed to
1877   make diagnose easier of failed drbd creations
1878 - Started adding base IPv6 support, but this is not yet
1879   enabled/available for use
1880 - Rename operations (cluster, instance) will now return the new name,
1881   which is especially useful if a short name was passed in
1882 - Added support for instance migration in RAPI
1883 - Added a tool to pre-configure nodes for the SSH setup, before joining
1884   them to the cluster; this will allow in the future a simplified model
1885   for node joining (but not yet fully enabled in 2.2); this needs the
1886   paramiko python library
1887 - Fixed handling of name-resolving errors
1888 - Fixed consistency of job results on the error path
1889 - Fixed master-failover race condition when executed multiple times in
1890   sequence
1891 - Fixed many bugs related to the job queue (mostly introduced during the
1892   2.2 development cycle, so not all are impacting 2.1)
1893 - Fixed instance migration with missing disk symlinks
1894 - Fixed handling of unknown jobs in ``gnt-job archive``
1895 - And many other small fixes/improvements
1896
1897 Internal changes:
1898
1899 - Enhanced both the unittest and the QA coverage
1900 - Switched the opcode validation to a generic model, and extended the
1901   validation to all opcode parameters
1902 - Changed more parts of the code that write shell scripts to use the
1903   same class for this
1904 - Switched the master daemon to use the asyncore library for the Luxi
1905   server endpoint
1906
1907
1908 Version 2.2.0 beta0
1909 -------------------
1910
1911 *(Released Thu, 17 Jun 2010)*
1912
1913 - Added tool (``move-instance``) and infrastructure to move instances
1914   between separate clusters (see :doc:`separate documentation
1915   <move-instance>` and :doc:`design document <design-2.2>`)
1916 - Added per-request RPC timeout
1917 - RAPI now requires a Content-Type header for requests with a body (e.g.
1918   ``PUT`` or ``POST``) which must be set to ``application/json`` (see
1919   :rfc:`2616` (HTTP/1.1), section 7.2.1)
1920 - ``ganeti-watcher`` attempts to restart ``ganeti-rapi`` if RAPI is not
1921   reachable
1922 - Implemented initial support for running Ganeti daemons as separate
1923   users, see configure-time flags ``--with-user-prefix`` and
1924   ``--with-group-prefix`` (only ``ganeti-rapi`` is supported at this
1925   time)
1926 - Instances can be removed after export (``gnt-backup export
1927   --remove-instance``)
1928 - Self-signed certificates generated by Ganeti now use a 2048 bit RSA
1929   key (instead of 1024 bit)
1930 - Added new cluster configuration file for cluster domain secret
1931 - Import/export now use SSL instead of SSH
1932 - Added support for showing estimated time when exporting an instance,
1933   see the ``ganeti-os-interface(7)`` manpage and look for
1934   ``EXP_SIZE_FD``
1935
1936
1937 Version 2.1.8
1938 -------------
1939
1940 *(Released Tue, 16 Nov 2010)*
1941
1942 Some more bugfixes. Unless critical bugs occur, this will be the last
1943 2.1 release:
1944
1945 - Fix case of MAC special-values
1946 - Fix mac checker regex
1947 - backend: Fix typo causing "out of range" error
1948 - Add missing --units in gnt-instance list man page
1949
1950
1951 Version 2.1.7
1952 -------------
1953
1954 *(Released Tue, 24 Aug 2010)*
1955
1956 Bugfixes only:
1957   - Don't ignore secondary node silently on non-mirrored disk templates
1958     (issue 113)
1959   - Fix --master-netdev arg name in gnt-cluster(8) (issue 114)
1960   - Fix usb_mouse parameter breaking with vnc_console (issue 109)
1961   - Properly document the usb_mouse parameter
1962   - Fix path in ganeti-rapi(8) (issue 116)
1963   - Adjust error message when the ganeti user's .ssh directory is
1964     missing
1965   - Add same-node-check when changing the disk template to drbd
1966
1967
1968 Version 2.1.6
1969 -------------
1970
1971 *(Released Fri, 16 Jul 2010)*
1972
1973 Bugfixes only:
1974   - Add an option to only select some reboot types during qa/burnin.
1975     (on some hypervisors consequent reboots are not supported)
1976   - Fix infrequent race condition in master failover. Sometimes the old
1977     master ip address would be still detected as up for a short time
1978     after it was removed, causing failover to fail.
1979   - Decrease mlockall warnings when the ctypes module is missing. On
1980     Python 2.4 we support running even if no ctypes module is installed,
1981     but we were too verbose about this issue.
1982   - Fix building on old distributions, on which man doesn't have a
1983     --warnings option.
1984   - Fix RAPI not to ignore the MAC address on instance creation
1985   - Implement the old instance creation format in the RAPI client.
1986
1987
1988 Version 2.1.5
1989 -------------
1990
1991 *(Released Thu, 01 Jul 2010)*
1992
1993 A small bugfix release:
1994   - Fix disk adoption: broken by strict --disk option checking in 2.1.4
1995   - Fix batch-create: broken in the whole 2.1 series due to a lookup on
1996     a non-existing option
1997   - Fix instance create: the --force-variant option was ignored
1998   - Improve pylint 0.21 compatibility and warnings with Python 2.6
1999   - Fix modify node storage with non-FQDN arguments
2000   - Fix RAPI client to authenticate under Python 2.6 when used
2001     for more than 5 requests needing authentication
2002   - Fix gnt-instance modify -t (storage) giving a wrong error message
2003     when converting a non-shutdown drbd instance to plain
2004
2005
2006 Version 2.1.4
2007 -------------
2008
2009 *(Released Fri, 18 Jun 2010)*
2010
2011 A small bugfix release:
2012
2013   - Fix live migration of KVM instances started with older Ganeti
2014     versions which had fewer hypervisor parameters
2015   - Fix gnt-instance grow-disk on down instances
2016   - Fix an error-reporting bug during instance migration
2017   - Better checking of the ``--net`` and ``--disk`` values, to avoid
2018     silently ignoring broken ones
2019   - Fix an RPC error reporting bug affecting, for example, RAPI client
2020     users
2021   - Fix bug triggered by different API version os-es on different nodes
2022   - Fix a bug in instance startup with custom hvparams: OS level
2023     parameters would fail to be applied.
2024   - Fix the RAPI client under Python 2.6 (but more work is needed to
2025     make it work completely well with OpenSSL)
2026   - Fix handling of errors when resolving names from DNS
2027
2028
2029 Version 2.1.3
2030 -------------
2031
2032 *(Released Thu, 3 Jun 2010)*
2033
2034 A medium sized development cycle. Some new features, and some
2035 fixes/small improvements/cleanups.
2036
2037 Significant features
2038 ~~~~~~~~~~~~~~~~~~~~
2039
2040 The node deamon now tries to mlock itself into memory, unless the
2041 ``--no-mlock`` flag is passed. It also doesn't fail if it can't write
2042 its logs, and falls back to console logging. This allows emergency
2043 features such as ``gnt-node powercycle`` to work even in the event of a
2044 broken node disk (tested offlining the disk hosting the node's
2045 filesystem and dropping its memory caches; don't try this at home)
2046
2047 KVM: add vhost-net acceleration support. It can be tested with a new
2048 enough version of the kernel and of qemu-kvm.
2049
2050 KVM: Add instance chrooting feature. If you use privilege dropping for
2051 your VMs you can also now force them to chroot to an empty directory,
2052 before starting the emulated guest.
2053
2054 KVM: Add maximum migration bandwith and maximum downtime tweaking
2055 support (requires a new-enough version of qemu-kvm).
2056
2057 Cluster verify will now warn if the master node doesn't have the master
2058 ip configured on it.
2059
2060 Add a new (incompatible) instance creation request format to RAPI which
2061 supports all parameters (previously only a subset was supported, and it
2062 wasn't possible to extend the old format to accomodate all the new
2063 features. The old format is still supported, and a client can check for
2064 this feature, before using it, by checking for its presence in the
2065 ``features`` RAPI resource.
2066
2067 Now with ancient latin support. Try it passing the ``--roman`` option to
2068 ``gnt-instance info``, ``gnt-cluster info`` or ``gnt-node list``
2069 (requires the python-roman module to be installed, in order to work).
2070
2071 Other changes
2072 ~~~~~~~~~~~~~
2073
2074 As usual many internal code refactorings, documentation updates, and
2075 such. Among others:
2076
2077   - Lots of improvements and cleanups to the experimental Remote API
2078     (RAPI) client library.
2079   - A new unit test suite for the core daemon libraries.
2080   - A fix to creating missing directories makes sure the umask is not
2081     applied anymore. This enforces the same directory permissions
2082     everywhere.
2083   - Better handling terminating daemons with ctrl+c (used when running
2084     them in debugging mode).
2085   - Fix a race condition in live migrating a KVM instance, when stat()
2086     on the old proc status file returned EINVAL, which is an unexpected
2087     value.
2088   - Fixed manpage checking with newer man and utf-8 charachters. But now
2089     you need the en_US.UTF-8 locale enabled to build Ganeti from git.
2090
2091
2092 Version 2.1.2.1
2093 ---------------
2094
2095 *(Released Fri, 7 May 2010)*
2096
2097 Fix a bug which prevented untagged KVM instances from starting.
2098
2099
2100 Version 2.1.2
2101 -------------
2102
2103 *(Released Fri, 7 May 2010)*
2104
2105 Another release with a long development cycle, during which many
2106 different features were added.
2107
2108 Significant features
2109 ~~~~~~~~~~~~~~~~~~~~
2110
2111 The KVM hypervisor now can run the individual instances as non-root, to
2112 reduce the impact of a VM being hijacked due to bugs in the
2113 hypervisor. It is possible to run all instances as a single (non-root)
2114 user, to manually specify a user for each instance, or to dynamically
2115 allocate a user out of a cluster-wide pool to each instance, with the
2116 guarantee that no two instances will run under the same user ID on any
2117 given node.
2118
2119 An experimental RAPI client library, that can be used standalone
2120 (without the other Ganeti libraries), is provided in the source tree as
2121 ``lib/rapi/client.py``. Note this client might change its interface in
2122 the future, as we iterate on its capabilities.
2123
2124 A new command, ``gnt-cluster renew-crypto`` has been added to easily
2125 replace the cluster's certificates and crypto keys. This might help in
2126 case they have been compromised, or have simply expired.
2127
2128 A new disk option for instance creation has been added that allows one
2129 to "adopt" currently existing logical volumes, with data
2130 preservation. This should allow easier migration to Ganeti from
2131 unmanaged (or managed via other software) instances.
2132
2133 Another disk improvement is the possibility to convert between redundant
2134 (DRBD) and plain (LVM) disk configuration for an instance. This should
2135 allow better scalability (starting with one node and growing the
2136 cluster, or shrinking a two-node cluster to one node).
2137
2138 A new feature that could help with automated node failovers has been
2139 implemented: if a node sees itself as offline (by querying the master
2140 candidates), it will try to shutdown (hard) all instances and any active
2141 DRBD devices. This reduces the risk of duplicate instances if an
2142 external script automatically failovers the instances on such nodes. To
2143 enable this, the cluster parameter ``maintain_node_health`` should be
2144 enabled; in the future this option (per the name) will enable other
2145 automatic maintenance features.
2146
2147 Instance export/import now will reuse the original instance
2148 specifications for all parameters; that means exporting an instance,
2149 deleting it and the importing it back should give an almost identical
2150 instance. Note that the default import behaviour has changed from
2151 before, where it created only one NIC; now it recreates the original
2152 number of NICs.
2153
2154 Cluster verify has added a few new checks: SSL certificates validity,
2155 /etc/hosts consistency across the cluster, etc.
2156
2157 Other changes
2158 ~~~~~~~~~~~~~
2159
2160 As usual, many internal changes were done, documentation fixes,
2161 etc. Among others:
2162
2163 - Fixed cluster initialization with disabled cluster storage (regression
2164   introduced in 2.1.1)
2165 - File-based storage supports growing the disks
2166 - Fixed behaviour of node role changes
2167 - Fixed cluster verify for some corner cases, plus a general rewrite of
2168   cluster verify to allow future extension with more checks
2169 - Fixed log spamming by watcher and node daemon (regression introduced
2170   in 2.1.1)
2171 - Fixed possible validation issues when changing the list of enabled
2172   hypervisors
2173 - Fixed cleanup of /etc/hosts during node removal
2174 - Fixed RAPI response for invalid methods
2175 - Fixed bug with hashed passwords in ``ganeti-rapi`` daemon
2176 - Multiple small improvements to the KVM hypervisor (VNC usage, booting
2177   from ide disks, etc.)
2178 - Allow OS changes without re-installation (to record a changed OS
2179   outside of Ganeti, or to allow OS renames)
2180 - Allow instance creation without OS installation (useful for example if
2181   the OS will be installed manually, or restored from a backup not in
2182   Ganeti format)
2183 - Implemented option to make cluster ``copyfile`` use the replication
2184   network
2185 - Added list of enabled hypervisors to ssconf (possibly useful for
2186   external scripts)
2187 - Added a new tool (``tools/cfgupgrade12``) that allows upgrading from
2188   1.2 clusters
2189 - A partial form of node re-IP is possible via node readd, which now
2190   allows changed node primary IP
2191 - Command line utilities now show an informational message if the job is
2192   waiting for a lock
2193 - The logs of the master daemon now show the PID/UID/GID of the
2194   connected client
2195
2196
2197 Version 2.1.1
2198 -------------
2199
2200 *(Released Fri, 12 Mar 2010)*
2201
2202 During the 2.1.0 long release candidate cycle, a lot of improvements and
2203 changes have accumulated with were released later as 2.1.1.
2204
2205 Major changes
2206 ~~~~~~~~~~~~~
2207
2208 The node evacuate command (``gnt-node evacuate``) was significantly
2209 rewritten, and as such the IAllocator protocol was changed - a new
2210 request type has been added. This unfortunate change during a stable
2211 series is designed to improve performance of node evacuations; on
2212 clusters with more than about five nodes and which are well-balanced,
2213 evacuation should proceed in parallel for all instances of the node
2214 being evacuated. As such, any existing IAllocator scripts need to be
2215 updated, otherwise the above command will fail due to the unknown
2216 request. The provided "dumb" allocator has not been updated; but the
2217 ganeti-htools package supports the new protocol since version 0.2.4.
2218
2219 Another important change is increased validation of node and instance
2220 names. This might create problems in special cases, if invalid host
2221 names are being used.
2222
2223 Also, a new layer of hypervisor parameters has been added, that sits at
2224 OS level between the cluster defaults and the instance ones. This allows
2225 customisation of virtualization parameters depending on the installed
2226 OS. For example instances with OS 'X' may have a different KVM kernel
2227 (or any other parameter) than the cluster defaults. This is intended to
2228 help managing a multiple OSes on the same cluster, without manual
2229 modification of each instance's parameters.
2230
2231 A tool for merging clusters, ``cluster-merge``, has been added in the
2232 tools sub-directory.
2233
2234 Bug fixes
2235 ~~~~~~~~~
2236
2237 - Improved the int/float conversions that should make the code more
2238   robust in face of errors from the node daemons
2239 - Fixed the remove node code in case of internal configuration errors
2240 - Fixed the node daemon behaviour in face of inconsistent queue
2241   directory (e.g. read-only file-system where we can't open the files
2242   read-write, etc.)
2243 - Fixed the behaviour of gnt-node modify for master candidate demotion;
2244   now it either aborts cleanly or, if given the new "auto_promote"
2245   parameter, will automatically promote other nodes as needed
2246 - Fixed compatibility with (unreleased yet) Python 2.6.5 that would
2247   completely prevent Ganeti from working
2248 - Fixed bug for instance export when not all disks were successfully
2249   exported
2250 - Fixed behaviour of node add when the new node is slow in starting up
2251   the node daemon
2252 - Fixed handling of signals in the LUXI client, which should improve
2253   behaviour of command-line scripts
2254 - Added checks for invalid node/instance names in the configuration (now
2255   flagged during cluster verify)
2256 - Fixed watcher behaviour for disk activation errors
2257 - Fixed two potentially endless loops in http library, which led to the
2258   RAPI daemon hanging and consuming 100% CPU in some cases
2259 - Fixed bug in RAPI daemon related to hashed passwords
2260 - Fixed bug for unintended qemu-level bridging of multi-NIC KVM
2261   instances
2262 - Enhanced compatibility with non-Debian OSes, but not using absolute
2263   path in some commands and allowing customisation of the ssh
2264   configuration directory
2265 - Fixed possible future issue with new Python versions by abiding to the
2266   proper use of ``__slots__`` attribute on classes
2267 - Added checks that should prevent directory traversal attacks
2268 - Many documentation fixes based on feedback from users
2269
2270 New features
2271 ~~~~~~~~~~~~
2272
2273 - Added an "early_release" more for instance replace disks and node
2274   evacuate, where we release locks earlier and thus allow higher
2275   parallelism within the cluster
2276 - Added watcher hooks, intended to allow the watcher to restart other
2277   daemons (e.g. from the ganeti-nbma project), but they can be used of
2278   course for any other purpose
2279 - Added a compile-time disable for DRBD barriers, to increase
2280   performance if the administrator trusts the power supply or the
2281   storage system to not lose writes
2282 - Added the option of using syslog for logging instead of, or in
2283   addition to, Ganeti's own log files
2284 - Removed boot restriction for paravirtual NICs for KVM, recent versions
2285   can indeed boot from a paravirtual NIC
2286 - Added a generic debug level for many operations; while this is not
2287   used widely yet, it allows one to pass the debug value all the way to
2288   the OS scripts
2289 - Enhanced the hooks environment for instance moves (failovers,
2290   migrations) where the primary/secondary nodes changed during the
2291   operation, by adding {NEW,OLD}_{PRIMARY,SECONDARY} vars
2292 - Enhanced data validations for many user-supplied values; one important
2293   item is the restrictions imposed on instance and node names, which
2294   might reject some (invalid) host names
2295 - Add a configure-time option to disable file-based storage, if it's not
2296   needed; this allows greater security separation between the master
2297   node and the other nodes from the point of view of the inter-node RPC
2298   protocol
2299 - Added user notification in interactive tools if job is waiting in the
2300   job queue or trying to acquire locks
2301 - Added log messages when a job is waiting for locks
2302 - Added filtering by node tags in instance operations which admit
2303   multiple instances (start, stop, reboot, reinstall)
2304 - Added a new tool for cluster mergers, ``cluster-merge``
2305 - Parameters from command line which are of the form ``a=b,c=d`` can now
2306   use backslash escapes to pass in values which contain commas,
2307   e.g. ``a=b\\c,d=e`` where the 'a' parameter would get the value
2308   ``b,c``
2309 - For KVM, the instance name is the first parameter passed to KVM, so
2310   that it's more visible in the process list
2311
2312
2313 Version 2.1.0
2314 -------------
2315
2316 *(Released Tue, 2 Mar 2010)*
2317
2318 Ganeti 2.1 brings many improvements with it. Major changes:
2319
2320 - Added infrastructure to ease automated disk repairs
2321 - Added new daemon to export configuration data in a cheaper way than
2322   using the remote API
2323 - Instance NICs can now be routed instead of being associated with a
2324   networking bridge
2325 - Improved job locking logic to reduce impact of jobs acquiring multiple
2326   locks waiting for other long-running jobs
2327
2328 In-depth implementation details can be found in the Ganeti 2.1 design
2329 document.
2330
2331 Details
2332 ~~~~~~~
2333
2334 - Added chroot hypervisor
2335 - Added more options to xen-hvm hypervisor (``kernel_path`` and
2336   ``device_model``)
2337 - Added more options to xen-pvm hypervisor (``use_bootloader``,
2338   ``bootloader_path`` and ``bootloader_args``)
2339 - Added the ``use_localtime`` option for the xen-hvm and kvm
2340   hypervisors, and the default value for this has changed to false (in
2341   2.0 xen-hvm always enabled it)
2342 - Added luxi call to submit multiple jobs in one go
2343 - Added cluster initialization option to not modify ``/etc/hosts``
2344   file on nodes
2345 - Added network interface parameters
2346 - Added dry run mode to some LUs
2347 - Added RAPI resources:
2348
2349   - ``/2/instances/[instance_name]/info``
2350   - ``/2/instances/[instance_name]/replace-disks``
2351   - ``/2/nodes/[node_name]/evacuate``
2352   - ``/2/nodes/[node_name]/migrate``
2353   - ``/2/nodes/[node_name]/role``
2354   - ``/2/nodes/[node_name]/storage``
2355   - ``/2/nodes/[node_name]/storage/modify``
2356   - ``/2/nodes/[node_name]/storage/repair``
2357
2358 - Added OpCodes to evacuate or migrate all instances on a node
2359 - Added new command to list storage elements on nodes (``gnt-node
2360   list-storage``) and modify them (``gnt-node modify-storage``)
2361 - Added new ssconf files with master candidate IP address
2362   (``ssconf_master_candidates_ips``), node primary IP address
2363   (``ssconf_node_primary_ips``) and node secondary IP address
2364   (``ssconf_node_secondary_ips``)
2365 - Added ``ganeti-confd`` and a client library to query the Ganeti
2366   configuration via UDP
2367 - Added ability to run hooks after cluster initialization and before
2368   cluster destruction
2369 - Added automatic mode for disk replace (``gnt-instance replace-disks
2370   --auto``)
2371 - Added ``gnt-instance recreate-disks`` to re-create (empty) disks
2372   after catastrophic data-loss
2373 - Added ``gnt-node repair-storage`` command to repair damaged LVM volume
2374   groups
2375 - Added ``gnt-instance move`` command to move instances
2376 - Added ``gnt-cluster watcher`` command to control watcher
2377 - Added ``gnt-node powercycle`` command to powercycle nodes
2378 - Added new job status field ``lock_status``
2379 - Added parseable error codes to cluster verification (``gnt-cluster
2380   verify --error-codes``) and made output less verbose (use
2381   ``--verbose`` to restore previous behaviour)
2382 - Added UUIDs to the main config entities (cluster, nodes, instances)
2383 - Added support for OS variants
2384 - Added support for hashed passwords in the Ganeti remote API users file
2385   (``rapi_users``)
2386 - Added option to specify maximum timeout on instance shutdown
2387 - Added ``--no-ssh-init`` option to ``gnt-cluster init``
2388 - Added new helper script to start and stop Ganeti daemons
2389   (``daemon-util``), with the intent to reduce the work necessary to
2390   adjust Ganeti for non-Debian distributions and to start/stop daemons
2391   from one place
2392 - Added more unittests
2393 - Fixed critical bug in ganeti-masterd startup
2394 - Removed the configure-time ``kvm-migration-port`` parameter, this is
2395   now customisable at the cluster level for both the KVM and Xen
2396   hypervisors using the new ``migration_port`` parameter
2397 - Pass ``INSTANCE_REINSTALL`` variable to OS installation script when
2398   reinstalling an instance
2399 - Allowed ``@`` in tag names
2400 - Migrated to Sphinx (http://sphinx.pocoo.org/) for documentation
2401 - Many documentation updates
2402 - Distribute hypervisor files on ``gnt-cluster redist-conf``
2403 - ``gnt-instance reinstall`` can now reinstall multiple instances
2404 - Updated many command line parameters
2405 - Introduced new OS API version 15
2406 - No longer support a default hypervisor
2407 - Treat virtual LVs as inexistent
2408 - Improved job locking logic to reduce lock contention
2409 - Match instance and node names case insensitively
2410 - Reimplemented bash completion script to be more complete
2411 - Improved burnin
2412
2413
2414 Version 2.0.6
2415 -------------
2416
2417 *(Released Thu, 4 Feb 2010)*
2418
2419 - Fix cleaner behaviour on nodes not in a cluster (Debian bug 568105)
2420 - Fix a string formatting bug
2421 - Improve safety of the code in some error paths
2422 - Improve data validation in the master of values returned from nodes
2423
2424
2425 Version 2.0.5
2426 -------------
2427
2428 *(Released Thu, 17 Dec 2009)*
2429
2430 - Fix security issue due to missing validation of iallocator names; this
2431   allows local and remote execution of arbitrary executables
2432 - Fix failure of gnt-node list during instance removal
2433 - Ship the RAPI documentation in the archive
2434
2435
2436 Version 2.0.4
2437 -------------
2438
2439 *(Released Wed, 30 Sep 2009)*
2440
2441 - Fixed many wrong messages
2442 - Fixed a few bugs related to the locking library
2443 - Fixed MAC checking at instance creation time
2444 - Fixed a DRBD parsing bug related to gaps in /proc/drbd
2445 - Fixed a few issues related to signal handling in both daemons and
2446   scripts
2447 - Fixed the example startup script provided
2448 - Fixed insserv dependencies in the example startup script (patch from
2449   Debian)
2450 - Fixed handling of drained nodes in the iallocator framework
2451 - Fixed handling of KERNEL_PATH parameter for xen-hvm (Debian bug
2452   #528618)
2453 - Fixed error related to invalid job IDs in job polling
2454 - Fixed job/opcode persistence on unclean master shutdown
2455 - Fixed handling of partial job processing after unclean master
2456   shutdown
2457 - Fixed error reporting from LUs, previously all errors were converted
2458   into execution errors
2459 - Fixed error reporting from burnin
2460 - Decreased significantly the memory usage of the job queue
2461 - Optimised slightly multi-job submission
2462 - Optimised slightly opcode loading
2463 - Backported the multi-job submit framework from the development
2464   branch; multi-instance start and stop should be faster
2465 - Added script to clean archived jobs after 21 days; this will reduce
2466   the size of the queue directory
2467 - Added some extra checks in disk size tracking
2468 - Added an example ethers hook script
2469 - Added a cluster parameter that prevents Ganeti from modifying of
2470   /etc/hosts
2471 - Added more node information to RAPI responses
2472 - Added a ``gnt-job watch`` command that allows following the ouput of a
2473   job
2474 - Added a bind-address option to ganeti-rapi
2475 - Added more checks to the configuration verify
2476 - Enhanced the burnin script such that some operations can be retried
2477   automatically
2478 - Converted instance reinstall to multi-instance model
2479
2480
2481 Version 2.0.3
2482 -------------
2483
2484 *(Released Fri, 7 Aug 2009)*
2485
2486 - Added ``--ignore-size`` to the ``gnt-instance activate-disks`` command
2487   to allow using the pre-2.0.2 behaviour in activation, if any existing
2488   instances have mismatched disk sizes in the configuration
2489 - Added ``gnt-cluster repair-disk-sizes`` command to check and update
2490   any configuration mismatches for disk sizes
2491 - Added ``gnt-master cluste-failover --no-voting`` to allow master
2492   failover to work on two-node clusters
2493 - Fixed the ``--net`` option of ``gnt-backup import``, which was
2494   unusable
2495 - Fixed detection of OS script errors in ``gnt-backup export``
2496 - Fixed exit code of ``gnt-backup export``
2497
2498
2499 Version 2.0.2
2500 -------------
2501
2502 *(Released Fri, 17 Jul 2009)*
2503
2504 - Added experimental support for stripped logical volumes; this should
2505   enhance performance but comes with a higher complexity in the block
2506   device handling; stripping is only enabled when passing
2507   ``--with-lvm-stripecount=N`` to ``configure``, but codepaths are
2508   affected even in the non-stripped mode
2509 - Improved resiliency against transient failures at the end of DRBD
2510   resyncs, and in general of DRBD resync checks
2511 - Fixed a couple of issues with exports and snapshot errors
2512 - Fixed a couple of issues in instance listing
2513 - Added display of the disk size in ``gnt-instance info``
2514 - Fixed checking for valid OSes in instance creation
2515 - Fixed handling of the "vcpus" parameter in instance listing and in
2516   general of invalid parameters
2517 - Fixed http server library, and thus RAPI, to handle invalid
2518   username/password combinations correctly; this means that now they
2519   report unauthorized for queries too, not only for modifications,
2520   allowing earlier detect of configuration problems
2521 - Added a new "role" node list field, equivalent to the master/master
2522   candidate/drained/offline flags combinations
2523 - Fixed cluster modify and changes of candidate pool size
2524 - Fixed cluster verify error messages for wrong files on regular nodes
2525 - Fixed a couple of issues with node demotion from master candidate role
2526 - Fixed node readd issues
2527 - Added non-interactive mode for ``ganeti-masterd --no-voting`` startup
2528 - Added a new ``--no-voting`` option for masterfailover to fix failover
2529   on two-nodes clusters when the former master node is unreachable
2530 - Added instance reinstall over RAPI
2531
2532
2533 Version 2.0.1
2534 -------------
2535
2536 *(Released Tue, 16 Jun 2009)*
2537
2538 - added ``-H``/``-B`` startup parameters to ``gnt-instance``, which will
2539   allow re-adding the start in single-user option (regression from 1.2)
2540 - the watcher writes the instance status to a file, to allow monitoring
2541   to report the instance status (from the master) based on cached
2542   results of the watcher's queries; while this can get stale if the
2543   watcher is being locked due to other work on the cluster, this is
2544   still an improvement
2545 - the watcher now also restarts the node daemon and the rapi daemon if
2546   they died
2547 - fixed the watcher to handle full and drained queue cases
2548 - hooks export more instance data in the environment, which helps if
2549   hook scripts need to take action based on the instance's properties
2550   (no longer need to query back into ganeti)
2551 - instance failovers when the instance is stopped do not check for free
2552   RAM, so that failing over a stopped instance is possible in low memory
2553   situations
2554 - rapi uses queries for tags instead of jobs (for less job traffic), and
2555   for cluster tags it won't talk to masterd at all but read them from
2556   ssconf
2557 - a couple of error handling fixes in RAPI
2558 - drbd handling: improved the error handling of inconsistent disks after
2559   resync to reduce the frequency of "there are some degraded disks for
2560   this instance" messages
2561 - fixed a bug in live migration when DRBD doesn't want to reconnect (the
2562   error handling path called a wrong function name)
2563
2564
2565 Version 2.0.0
2566 -------------
2567
2568 *(Released Wed, 27 May 2009)*
2569
2570 - no changes from rc5
2571
2572
2573 Version 2.0 rc5
2574 ---------------
2575
2576 *(Released Wed, 20 May 2009)*
2577
2578 - fix a couple of bugs (validation, argument checks)
2579 - fix ``gnt-cluster getmaster`` on non-master nodes (regression)
2580 - some small improvements to RAPI and IAllocator
2581 - make watcher automatically start the master daemon if down
2582
2583
2584 Version 2.0 rc4
2585 ---------------
2586
2587 *(Released Mon, 27 Apr 2009)*
2588
2589 - change the OS list to not require locks; this helps with big clusters
2590 - fix ``gnt-cluster verify`` and ``gnt-cluster verify-disks`` when the
2591   volume group is broken
2592 - ``gnt-instance info``, without any arguments, doesn't run for all
2593   instances anymore; either pass ``--all`` or pass the desired
2594   instances; this helps against mistakes on big clusters where listing
2595   the information for all instances takes a long time
2596 - miscellaneous doc and man pages fixes
2597
2598
2599 Version 2.0 rc3
2600 ---------------
2601
2602 *(Released Wed, 8 Apr 2009)*
2603
2604 - Change the internal locking model of some ``gnt-node`` commands, in
2605   order to reduce contention (and blocking of master daemon) when
2606   batching many creation/reinstall jobs
2607 - Fixes to Xen soft reboot
2608 - No longer build documentation at build time, instead distribute it in
2609   the archive, in order to reduce the need for the whole docbook/rst
2610   toolchains
2611
2612
2613 Version 2.0 rc2
2614 ---------------
2615
2616 *(Released Fri, 27 Mar 2009)*
2617
2618 - Now the cfgupgrade scripts works and can upgrade 1.2.7 clusters to 2.0
2619 - Fix watcher startup sequence, improves the behaviour of busy clusters
2620 - Some other fixes in ``gnt-cluster verify``, ``gnt-instance
2621   replace-disks``, ``gnt-instance add``, ``gnt-cluster queue``, KVM VNC
2622   bind address and other places
2623 - Some documentation fixes and updates
2624
2625
2626 Version 2.0 rc1
2627 ---------------
2628
2629 *(Released Mon, 2 Mar 2009)*
2630
2631 - More documentation updates, now all docs should be more-or-less
2632   up-to-date
2633 - A couple of small fixes (mixed hypervisor clusters, offline nodes,
2634   etc.)
2635 - Added a customizable HV_KERNEL_ARGS hypervisor parameter (for Xen PVM
2636   and KVM)
2637 - Fix an issue related to $libdir/run/ganeti and cluster creation
2638
2639
2640 Version 2.0 beta2
2641 -----------------
2642
2643 *(Released Thu, 19 Feb 2009)*
2644
2645 - Xen PVM and KVM have switched the default value for the instance root
2646   disk to the first partition on the first drive, instead of the whole
2647   drive; this means that the OS installation scripts must be changed
2648   accordingly
2649 - Man pages have been updated
2650 - RAPI has been switched by default to HTTPS, and the exported functions
2651   should all work correctly
2652 - RAPI v1 has been removed
2653 - Many improvements to the KVM hypervisor
2654 - Block device errors are now better reported
2655 - Many other bugfixes and small improvements
2656
2657
2658 Version 2.0 beta1
2659 -----------------
2660
2661 *(Released Mon, 26 Jan 2009)*
2662
2663 - Version 2 is a general rewrite of the code and therefore the
2664   differences are too many to list, see the design document for 2.0 in
2665   the ``doc/`` subdirectory for more details
2666 - In this beta version there is not yet a migration path from 1.2 (there
2667   will be one in the final 2.0 release)
2668 - A few significant changes are:
2669
2670   - all commands are executed by a daemon (``ganeti-masterd``) and the
2671     various ``gnt-*`` commands are just front-ends to it
2672   - all the commands are entered into, and executed from a job queue,
2673     see the ``gnt-job(8)`` manpage
2674   - the RAPI daemon supports read-write operations, secured by basic
2675     HTTP authentication on top of HTTPS
2676   - DRBD version 0.7 support has been removed, DRBD 8 is the only
2677     supported version (when migrating from Ganeti 1.2 to 2.0, you need
2678     to migrate to DRBD 8 first while still running Ganeti 1.2)
2679   - DRBD devices are using statically allocated minor numbers, which
2680     will be assigned to existing instances during the migration process
2681   - there is support for both Xen PVM and Xen HVM instances running on
2682     the same cluster
2683   - KVM virtualization is supported too
2684   - file-based storage has been implemented, which means that it is
2685     possible to run the cluster without LVM and DRBD storage, for
2686     example using a shared filesystem exported from shared storage (and
2687     still have live migration)
2688
2689
2690 Version 1.2.7
2691 -------------
2692
2693 *(Released Tue, 13 Jan 2009)*
2694
2695 - Change the default reboot type in ``gnt-instance reboot`` to "hard"
2696 - Reuse the old instance mac address by default on instance import, if
2697   the instance name is the same.
2698 - Handle situations in which the node info rpc returns incomplete
2699   results (issue 46)
2700 - Add checks for tcp/udp ports collisions in ``gnt-cluster verify``
2701 - Improved version of batcher:
2702
2703   - state file support
2704   - instance mac address support
2705   - support for HVM clusters/instances
2706
2707 - Add an option to show the number of cpu sockets and nodes in
2708   ``gnt-node list``
2709 - Support OSes that handle more than one version of the OS api (but do
2710   not change the current API in any other way)
2711 - Fix ``gnt-node migrate``
2712 - ``gnt-debug`` man page
2713 - Fixes various more typos and small issues
2714 - Increase disk resync maximum speed to 60MB/s (from 30MB/s)
2715
2716
2717 Version 1.2.6
2718 -------------
2719
2720 *(Released Wed, 24 Sep 2008)*
2721
2722 - new ``--hvm-nic-type`` and ``--hvm-disk-type`` flags to control the
2723   type of disk exported to fully virtualized instances.
2724 - provide access to the serial console of HVM instances
2725 - instance auto_balance flag, set by default. If turned off it will
2726   avoid warnings on cluster verify if there is not enough memory to fail
2727   over an instance. in the future it will prevent automatically failing
2728   it over when we will support that.
2729 - batcher tool for instance creation, see ``tools/README.batcher``
2730 - ``gnt-instance reinstall --select-os`` to interactively select a new
2731   operating system when reinstalling an instance.
2732 - when changing the memory amount on instance modify a check has been
2733   added that the instance will be able to start. also warnings are
2734   emitted if the instance will not be able to fail over, if auto_balance
2735   is true.
2736 - documentation fixes
2737 - sync fields between ``gnt-instance list/modify/add/import``
2738 - fix a race condition in drbd when the sync speed was set after giving
2739   the device a remote peer.
2740
2741
2742 Version 1.2.5
2743 -------------
2744
2745 *(Released Tue, 22 Jul 2008)*
2746
2747 - note: the allowed size and number of tags per object were reduced
2748 - fix a bug in ``gnt-cluster verify`` with inconsistent volume groups
2749 - fixed twisted 8.x compatibility
2750 - fixed ``gnt-instance replace-disks`` with iallocator
2751 - add TCP keepalives on twisted connections to detect restarted nodes
2752 - disk increase support, see ``gnt-instance grow-disk``
2753 - implement bulk node/instance query for RAPI
2754 - add tags in node/instance listing (optional)
2755 - experimental migration (and live migration) support, read the man page
2756   for ``gnt-instance migrate``
2757 - the ``ganeti-watcher`` logs are now timestamped, and the watcher also
2758   has some small improvements in handling its state file
2759
2760
2761 Version 1.2.4
2762 -------------
2763
2764 *(Released Fri, 13 Jun 2008)*
2765
2766 - Experimental readonly, REST-based remote API implementation;
2767   automatically started on master node, TCP port 5080, if enabled by
2768   ``--enable-rapi`` parameter to configure script.
2769 - Instance allocator support. Add and import instance accept a
2770   ``--iallocator`` parameter, and call that instance allocator to decide
2771   which node to use for the instance. The iallocator document describes
2772   what's expected from an allocator script.
2773 - ``gnt-cluster verify`` N+1 memory redundancy checks: Unless passed the
2774   ``--no-nplus1-mem`` option ``gnt-cluster verify`` now checks that if a
2775   node is lost there is still enough memory to fail over the instances
2776   that reside on it.
2777 - ``gnt-cluster verify`` hooks: it is now possible to add post-hooks to
2778   ``gnt-cluster verify``, to check for site-specific compliance. All the
2779   hooks will run, and their output, if any, will be displayed. Any
2780   failing hook will make the verification return an error value.
2781 - ``gnt-cluster verify`` now checks that its peers are reachable on the
2782   primary and secondary interfaces
2783 - ``gnt-node add`` now supports the ``--readd`` option, to readd a node
2784   that is still declared as part of the cluster and has failed.
2785 - ``gnt-* list`` commands now accept a new ``-o +field`` way of
2786   specifying output fields, that just adds the chosen fields to the
2787   default ones.
2788 - ``gnt-backup`` now has a new ``remove`` command to delete an existing
2789   export from the filesystem.
2790 - New per-instance parameters hvm_acpi, hvm_pae and hvm_cdrom_image_path
2791   have been added. Using them you can enable/disable acpi and pae
2792   support, and specify a path for a cd image to be exported to the
2793   instance. These parameters as the name suggest only work on HVM
2794   clusters.
2795 - When upgrading an HVM cluster to Ganeti 1.2.4, the values for ACPI and
2796   PAE support will be set to the previously hardcoded values, but the
2797   (previously hardcoded) path to the CDROM ISO image will be unset and
2798   if required, needs to be set manually with ``gnt-instance modify``
2799   after the upgrade.
2800 - The address to which an instance's VNC console is bound is now
2801   selectable per-instance, rather than being cluster wide. Of course
2802   this only applies to instances controlled via VNC, so currently just
2803   applies to HVM clusters.
2804
2805
2806 Version 1.2.3
2807 -------------
2808
2809 *(Released Mon, 18 Feb 2008)*
2810
2811 - more tweaks to the disk activation code (especially helpful for DRBD)
2812 - change the default ``gnt-instance list`` output format, now there is
2813   one combined status field (see the manpage for the exact values this
2814   field will have)
2815 - some more fixes for the mac export to hooks change
2816 - make Ganeti not break with DRBD 8.2.x (which changed the version
2817   format in ``/proc/drbd``) (issue 24)
2818 - add an upgrade tool from "remote_raid1" disk template to "drbd" disk
2819   template, allowing migration from DRBD0.7+MD to DRBD8
2820
2821
2822 Version 1.2.2
2823 -------------
2824
2825 *(Released Wed, 30 Jan 2008)*
2826
2827 - fix ``gnt-instance modify`` breakage introduced in 1.2.1 with the HVM
2828   support (issue 23)
2829 - add command aliases infrastructure and a few aliases
2830 - allow listing of VCPUs in the ``gnt-instance list`` and improve the
2831   man pages and the ``--help`` option of ``gnt-node
2832   list``/``gnt-instance list``
2833 - fix ``gnt-backup list`` with down nodes (issue 21)
2834 - change the tools location (move from $pkgdatadir to $pkglibdir/tools)
2835 - fix the dist archive and add a check for including svn/git files in
2836   the future
2837 - some developer-related changes: improve the burnin and the QA suite,
2838   add an upload script for testing during development
2839
2840
2841 Version 1.2.1
2842 -------------
2843
2844 *(Released Wed, 16 Jan 2008)*
2845
2846 - experimental HVM support, read the install document, section
2847   "Initializing the cluster"
2848 - allow for the PVM hypervisor per-instance kernel and initrd paths
2849 - add a new command ``gnt-cluster verify-disks`` which uses a new
2850   algorithm to improve the reconnection of the DRBD pairs if the device
2851   on the secondary node has gone away
2852 - make logical volume code auto-activate LVs at disk activation time
2853 - slightly improve the speed of activating disks
2854 - allow specification of the MAC address at instance creation time, and
2855   changing it later via ``gnt-instance modify``
2856 - fix handling of external commands that generate lots of output on
2857   stderr
2858 - update documentation with regard to minimum version of DRBD8 supported
2859
2860
2861 Version 1.2.0
2862 -------------
2863
2864 *(Released Tue, 4 Dec 2007)*
2865
2866 - Log the ``xm create`` output to the node daemon log on failure (to
2867   help diagnosing the error)
2868 - In debug mode, log all external commands output if failed to the logs
2869 - Change parsing of lvm commands to ignore stderr
2870
2871
2872 Version 1.2 beta3
2873 -----------------
2874
2875 *(Released Wed, 28 Nov 2007)*
2876
2877 - Another round of updates to the DRBD 8 code to deal with more failures
2878   in the replace secondary node operation
2879 - Some more logging of failures in disk operations (lvm, drbd)
2880 - A few documentation updates
2881 - QA updates
2882
2883
2884 Version 1.2 beta2
2885 -----------------
2886
2887 *(Released Tue, 13 Nov 2007)*
2888
2889 - Change configuration file format from Python's Pickle to JSON.
2890   Upgrading is possible using the cfgupgrade utility.
2891 - Add support for DRBD 8.0 (new disk template ``drbd``) which allows for
2892   faster replace disks and is more stable (DRBD 8 has many improvements
2893   compared to DRBD 0.7)
2894 - Added command line tags support (see man pages for ``gnt-instance``,
2895   ``gnt-node``, ``gnt-cluster``)
2896 - Added instance rename support
2897 - Added multi-instance startup/shutdown
2898 - Added cluster rename support
2899 - Added ``gnt-node evacuate`` to simplify some node operations
2900 - Added instance reboot operation that can speedup reboot as compared to
2901   stop and start
2902 - Soften the requirement that hostnames are in FQDN format
2903 - The ``ganeti-watcher`` now activates drbd pairs after secondary node
2904   reboots
2905 - Removed dependency on debian's patched fping that uses the
2906   non-standard ``-S`` option
2907 - Now the OS definitions are searched for in multiple, configurable
2908   paths (easier for distros to package)
2909 - Some changes to the hooks infrastructure (especially the new
2910   post-configuration update hook)
2911 - Other small bugfixes
2912
2913 .. vim: set textwidth=72 syntax=rst :
2914 .. Local Variables:
2915 .. mode: rst
2916 .. fill-column: 72
2917 .. End: