Fix unittest failure after list_owned changes
[ganeti-local] / NEWS
1 News
2 ====
3
4 Version 2.5.0 beta1
5 -------------------
6
7 *(unreleased)*
8
9
10 Incompatible/important changes:
11
12 - The default of the ``/2/instances/[instance_name]/rename`` RAPI
13   resource's ``ip_check`` parameter changed from ``True`` to ``False``
14   to match the underlying LUXI interface
15 - The ``/2/nodes/[node_name]/evacuate`` RAPI resource was changed to use
16   body parameters, see :doc:`RAPI documentation <rapi>`. The server does
17   not maintain backwards-compatibility as the underlying operation
18   changed in an incompatible way. The RAPI client can talk to old
19   servers, but it needs to be told so as the return value changed.
20 - When creating file-based instances via RAPI, the ``file_driver``
21   parameter no longer defaults to ``loop`` and must be specified
22 - The deprecated "bridge" nic parameter is no longer supported. Use
23   "link" instead.
24 - Support for the undocumented and deprecated RAPI instance creation
25   request format version 0 has been dropped. Use version 1, supported
26   since Ganeti 2.1.3 and :doc:`documented <rapi>`, instead.
27 - Pyparsing 1.4.6 or above is required, see :doc:`installation
28   documentation <install>`
29 - The "cluster-verify" hooks are now executed per group by the
30   OP_CLUSTER_VERIFY_GROUP opcode. This maintains the same behavior if
31   you just run "gnt-cluster verify", which generates one op per group.
32 - The environment as passed to the OS scripts is cleared, and thus no
33   environment variables defined in the node daemon's environment will be
34   inherited by the scripts
35
36
37 Version 2.4.3
38 -------------
39
40 *(unreleased)*
41
42 - Added a new parameter to instance stop/start called ``--no-remember``
43   that will make the state change to not be remembered
44
45
46 Version 2.4.2
47 -------------
48
49 *(Released Thu, 12 May 2011)*
50
51 Many bug-fixes and a few new small features:
52
53 - Fixed a bug related to log opening failures
54 - Fixed a bug in instance listing with orphan instances
55 - Fixed a bug which prevented resetting the cluster-level node parameter
56   ``oob_program`` to the default
57 - Many fixes related to the ``cluster-merge`` tool
58 - Fixed a race condition in the lock monitor, which caused failures
59   during (at least) creation of many instances in parallel
60 - Improved output for gnt-job info
61 - Removed the quiet flag on some ssh calls which prevented debugging
62   failures
63 - Improved the N+1 failure messages in cluster verify by actually
64   showing the memory values (needed and available)
65 - Increased lock attempt timeouts so that when executing long operations
66   (e.g. DRBD replace-disks) other jobs do not enter 'blocking acquire'
67   too early and thus prevent the use of the 'fair' mechanism
68 - Changed instance query data (``gnt-instance info``) to not acquire
69   locks unless needed, thus allowing its use on locked instance if only
70   static information is asked for
71 - Improved behaviour with filesystems that do not support rename on an
72   opened file
73 - Fixed the behaviour of ``prealloc_wipe_disks`` cluster parameter which
74   kept locks on all nodes during the wipe, which is unneeded
75 - Fixed ``gnt-watcher`` handling of errors during hooks execution
76 - Fixed bug in ``prealloc_wipe_disks`` with small disk sizes (less than
77   10GiB) which caused the wipe to fail right at the end in some cases
78 - Fixed master IP activation when doing master failover with no-voting
79 - Fixed bug in ``gnt-node add --readd`` which allowed the re-adding of
80   the master node itself
81 - Fixed potential data-loss in under disk full conditions, where Ganeti
82   wouldn't check correctly the return code and would consider
83   partially-written files 'correct'
84 - Fixed bug related to multiple VGs and DRBD disk replacing
85 - Added new disk parameter ``metavg`` that allows placement of the meta
86   device for DRBD in a different volume group
87 - Fixed error handling in the node daemon when the system libc doesn't
88   have major number 6 (i.e. if ``libc.so.6`` is not the actual libc)
89 - Fixed lock release during replace-disks, which kept cluster-wide locks
90   when doing disk replaces with an iallocator script
91 - Added check for missing bridges in cluster verify
92 - Handle EPIPE errors while writing to the terminal better, so that
93   piping the output to e.g. ``less`` doesn't cause a backtrace
94 - Fixed rare case where a ^C during Luxi calls could have been
95   interpreted as server errors, instead of simply terminating
96 - Fixed a race condition in LUGroupAssignNodes (``gnt-group
97   assign-nodes``)
98 - Added a few more parameters to the KVM hypervisor, allowing a second
99   CDROM, custom disk type for CDROMs and a floppy image
100 - Removed redundant message in instance rename when the name is given
101   already as a FQDN
102 - Added option to ``gnt-instance recreate-disks`` to allow creating the
103   disks on new nodes, allowing recreation when the original instance
104   nodes are completely gone
105 - Added option when converting disk templates to DRBD to skip waiting
106   for the resync, in order to make the instance available sooner
107 - Added two new variables to the OS scripts environment (containing the
108   instance's nodes)
109 - Made the root_path and optional parameter for the xen-pvm hypervisor,
110   to allow use of ``pvgrub`` as bootloader
111 - Changed the instance memory modifications to only check out-of-memory
112   conditions on memory increases, and turned the secondary node warnings
113   into errors (they can still be overridden via ``--force``)
114 - Fixed the handling of a corner case when the Python installation gets
115   corrupted (e.g. a bad disk) while ganeti-noded is running and we try
116   to execute a command that doesn't exist
117 - Fixed a bug in ``gnt-instance move`` (LUInstanceMove) when the primary
118   node of the instance returned failures during instance shutdown; this
119   adds the option ``--ignore-consistency`` to gnt-instance move
120
121 And as usual, various improvements to the error messages, documentation
122 and man pages.
123
124 Version 2.4.1
125 -------------
126
127 *(Released Wed, 09 Mar 2011)*
128
129 Emergency bug-fix release. ``tools/cfgupgrade`` was broken and overwrote
130 the RAPI users file if run twice (even with ``-dry-run``).
131
132 The release fixes that bug (nothing else changed).
133
134
135 Version 2.4.0
136 -------------
137
138 *(Released Mon, 07 Mar 2011)*
139
140 Final 2.4.0 release. Just a few small fixes:
141
142 - Fixed RAPI node evacuate
143 - Fixed the kvm-ifup script
144 - Fixed internal error handling for special job cases
145 - Updated man page to specify the escaping feature for options
146
147
148 Version 2.4.0 rc3
149 -----------------
150
151 *(Released Mon, 28 Feb 2011)*
152
153 A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
154 that this feature wiped the disks of the wrong instance, leading to loss
155 of data.
156
157 Other changes:
158
159 - Fixed title of query field containing instance name
160 - Expanded the glossary in the documentation
161 - Fixed one unittest (internal issue)
162
163
164 Version 2.4.0 rc2
165 -----------------
166
167 *(Released Mon, 21 Feb 2011)*
168
169 A number of bug fixes plus just a couple functionality changes.
170
171 On the user-visible side, the ``gnt-* list`` command output has changed
172 with respect to "special" field states. The current rc1 style of display
173 can be re-enabled by passing a new ``--verbose`` (``-v``) flag, but in
174 the default output mode special fields states are displayed as follows:
175
176 - Offline resource: ``*``
177 - Unavailable/not applicable: ``-``
178 - Data missing (RPC failure): ``?``
179 - Unknown field: ``??``
180
181 Another user-visible change is the addition of ``--force-join`` to
182 ``gnt-node add``.
183
184 As for bug fixes:
185
186 - ``tools/cluster-merge`` has seen many fixes and is now enabled again
187 - Fixed regression in RAPI/instance reinstall where all parameters were
188   required (instead of optional)
189 - Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
190 - Fixed iallocator usage (offline nodes were not considered offline)
191 - Fixed ``gnt-node list`` with respect to non-vm_capable nodes
192 - Fixed hypervisor and OS parameter validation with respect to
193   non-vm_capable nodes
194 - Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
195   cosmetic)
196 - Fixed ``tools/listrunner`` with respect to agent-based usage
197
198
199 Version 2.4.0 rc1
200 -----------------
201
202 *(Released Fri,  4 Feb 2011)*
203
204 Many changes and fixes since the beta1 release. While there were some
205 internal changes, the code has been mostly stabilised for the RC
206 release.
207
208 Note: the dumb allocator was removed in this release, as it was not kept
209 up-to-date with the IAllocator protocol changes. It is recommended to
210 use the ``hail`` command from the ganeti-htools package.
211
212 Note: the 2.4 and up versions of Ganeti are not compatible with the
213 0.2.x branch of ganeti-htools. You need to upgrade to
214 ganeti-htools-0.3.0 (or later).
215
216 Regressions fixed from 2.3
217 ~~~~~~~~~~~~~~~~~~~~~~~~~~
218
219 - Fixed the ``gnt-cluster verify-disks`` command
220 - Made ``gnt-cluster verify-disks`` work in parallel (as opposed to
221   serially on nodes)
222 - Fixed disk adoption breakage
223 - Fixed wrong headers in instance listing for field aliases
224
225 Other bugs fixed
226 ~~~~~~~~~~~~~~~~
227
228 - Fixed corner case in KVM handling of NICs
229 - Fixed many cases of wrong handling of non-vm_capable nodes
230 - Fixed a bug where a missing instance symlink was not possible to
231   recreate with any ``gnt-*`` command (now ``gnt-instance
232   activate-disks`` does it)
233 - Fixed the volume group name as reported by ``gnt-cluster
234   verify-disks``
235 - Increased timeouts for the import-export code, hopefully leading to
236   fewer aborts due network or instance timeouts
237 - Fixed bug in ``gnt-node list-storage``
238 - Fixed bug where not all daemons were started on cluster
239   initialisation, but only at the first watcher run
240 - Fixed many bugs in the OOB implementation
241 - Fixed watcher behaviour in presence of instances with offline
242   secondaries
243 - Fixed instance list output for instances running on the wrong node
244 - a few fixes to the cluster-merge tool, but it still cannot merge
245   multi-node groups (currently it is not recommended to use this tool)
246
247
248 Improvements
249 ~~~~~~~~~~~~
250
251 - Improved network configuration for the KVM hypervisor
252 - Added e1000 as a supported NIC for Xen-HVM
253 - Improved the lvmstrap tool to also be able to use partitions, as
254   opposed to full disks
255 - Improved speed of disk wiping (the cluster parameter
256   ``prealloc_wipe_disks``, so that it has a low impact on the total time
257   of instance creations
258 - Added documentation for the OS parameters
259 - Changed ``gnt-instance deactivate-disks`` so that it can work if the
260   hypervisor is not responding
261 - Added display of blacklisted and hidden OS information in
262   ``gnt-cluster info``
263 - Extended ``gnt-cluster verify`` to also validate hypervisor, backend,
264   NIC and node parameters, which might create problems with currently
265   invalid (but undetected) configuration files, but prevents validation
266   failures when unrelated parameters are modified
267 - Changed cluster initialisation to wait for the master daemon to become
268   available
269 - Expanded the RAPI interface:
270
271   - Added config redistribution resource
272   - Added activation/deactivation of instance disks
273   - Added export of console information
274
275 - Implemented log file reopening on SIGHUP, which allows using
276   logrotate(8) for the Ganeti log files
277 - Added a basic OOB helper script as an example
278
279
280 Version 2.4.0 beta1
281 -------------------
282
283 *(Released Fri, 14 Jan 2011)*
284
285 User-visible
286 ~~~~~~~~~~~~
287
288 - Fixed timezone issues when formatting timestamps
289 - Added support for node groups, available via ``gnt-group`` and other
290   commands
291 - Added out-of-band framework and management, see :doc:`design
292   document <design-oob>`
293 - Removed support for roman numbers from ``gnt-node list`` and
294   ``gnt-instance list``.
295 - Allowed modification of master network interface via ``gnt-cluster
296   modify --master-netdev``
297 - Accept offline secondaries while shutting down instance disks
298 - Added ``blockdev_prefix`` parameter to Xen PVM and HVM hypervisors
299 - Added support for multiple LVM volume groups
300 - Avoid sorting nodes for ``gnt-node list`` if specific nodes are
301   requested
302 - Added commands to list available fields:
303
304   - ``gnt-node list-fields``
305   - ``gnt-group list-fields``
306   - ``gnt-instance list-fields``
307
308 - Updated documentation and man pages
309
310 Integration
311 ~~~~~~~~~~~
312
313 - Moved ``rapi_users`` file into separate directory, now named
314   ``.../ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
315   symlink
316 - Added new tool for running commands on many machines,
317   ``tools/ganeti-listrunner``
318 - Implemented more verbose result in ``OpInstanceConsole`` opcode, also
319   improving the ``gnt-instance console`` output
320 - Allowed customisation of disk index separator at ``configure`` time
321 - Export node group allocation policy to :doc:`iallocator <iallocator>`
322 - Added support for non-partitioned md disks in ``lvmstrap``
323 - Added script to gracefully power off KVM instances
324 - Split ``utils`` module into smaller parts
325 - Changed query operations to return more detailed information, e.g.
326   whether an information is unavailable due to an offline node. To use
327   this new functionality, the LUXI call ``Query`` must be used. Field
328   information is now stored by the master daemon and can be retrieved
329   using ``QueryFields``. Instances, nodes and groups can also be queried
330   using the new opcodes ``OpQuery`` and ``OpQueryFields`` (not yet
331   exposed via RAPI). The following commands make use of this
332   infrastructure change:
333
334   - ``gnt-group list``
335   - ``gnt-group list-fields``
336   - ``gnt-node list``
337   - ``gnt-node list-fields``
338   - ``gnt-instance list``
339   - ``gnt-instance list-fields``
340   - ``gnt-debug locks``
341
342 Remote API
343 ~~~~~~~~~~
344
345 - New RAPI resources (see :doc:`rapi`):
346
347   - ``/2/modify``
348   - ``/2/groups``
349   - ``/2/groups/[group_name]``
350   - ``/2/groups/[group_name]/assign-nodes``
351   - ``/2/groups/[group_name]/modify``
352   - ``/2/groups/[group_name]/rename``
353   - ``/2/instances/[instance_name]/disk/[disk_index]/grow``
354
355 - RAPI changes:
356
357   - Implemented ``no_install`` for instance creation
358   - Implemented OS parameters for instance reinstallation, allowing
359     use of special settings on reinstallation (e.g. for preserving data)
360
361 Misc
362 ~~~~
363
364 - Added IPv6 support in import/export
365 - Pause DRBD synchronization while wiping disks on instance creation
366 - Updated unittests and QA scripts
367 - Improved network parameters passed to KVM
368 - Converted man pages from docbook to reStructuredText
369
370
371 Version 2.3.1
372 -------------
373
374 *(Released Mon, 20 Dec 2010)*
375
376 Released version 2.3.1~rc1 without any changes.
377
378
379 Version 2.3.1 rc1
380 -----------------
381
382 *(Released Wed, 1 Dec 2010)*
383
384 - impexpd: Disable OpenSSL compression in socat if possible (backport
385   from master, commit e90739d625b, see :doc:`installation guide
386   <install-quick>` for details)
387 - Changed unittest coverage report to exclude test scripts
388 - Added script to check version format
389
390
391 Version 2.3.0
392 -------------
393
394 *(Released Wed, 1 Dec 2010)*
395
396 Released version 2.3.0~rc1 without any changes.
397
398
399 Version 2.3.0 rc1
400 -----------------
401
402 *(Released Fri, 19 Nov 2010)*
403
404 A number of bugfixes and documentation updates:
405
406 - Update ganeti-os-interface documentation
407 - Fixed a bug related to duplicate MACs or similar items which should be
408   unique
409 - Fix breakage in OS state modify
410 - Reinstall instance: disallow offline secondaries (fixes bug related to
411   OS changing but reinstall failing)
412 - plus all the other fixes between 2.2.1 and 2.2.2
413
414
415 Version 2.3.0 rc0
416 -----------------
417
418 *(Released Tue, 2 Nov 2010)*
419
420 - Fixed clearing of the default iallocator using ``gnt-cluster modify``
421 - Fixed master failover race with watcher
422 - Fixed a bug in ``gnt-node modify`` which could lead to an inconsistent
423   configuration
424 - Accept previously stopped instance for export with instance removal
425 - Simplify and extend the environment variables for instance OS scripts
426 - Added new node flags, ``master_capable`` and ``vm_capable``
427 - Added optional instance disk wiping prior during allocation. This is a
428   cluster-wide option and can be set/modified using
429   ``gnt-cluster {init,modify} --prealloc-wipe-disks``.
430 - Added IPv6 support, see :doc:`design document <design-2.3>` and
431   :doc:`install-quick`
432 - Added a new watcher option (``--ignore-pause``)
433 - Added option to ignore offline node on instance start/stop
434   (``--ignore-offline``)
435 - Allow overriding OS parameters with ``gnt-instance reinstall``
436 - Added ability to change node's secondary IP address using ``gnt-node
437   modify``
438 - Implemented privilege separation for all daemons except
439   ``ganeti-noded``, see ``configure`` options
440 - Complain if an instance's disk is marked faulty in ``gnt-cluster
441   verify``
442 - Implemented job priorities (see ``ganeti(7)`` manpage)
443 - Ignore failures while shutting down instances during failover from
444   offline node
445 - Exit daemon's bootstrap process only once daemon is ready
446 - Export more information via ``LUInstanceQuery``/remote API
447 - Improved documentation, QA and unittests
448 - RAPI daemon now watches ``rapi_users`` all the time and doesn't need a
449   restart if the file was created or changed
450 - Added LUXI protocol version sent with each request and response,
451   allowing detection of server/client mismatches
452 - Moved the Python scripts among gnt-* and ganeti-* into modules
453 - Moved all code related to setting up SSH to an external script,
454   ``setup-ssh``
455 - Infrastructure changes for node group support in future versions
456
457
458 Version 2.2.2
459 -------------
460
461 *(Released Fri, 19 Nov 2010)*
462
463 A few small bugs fixed, and some improvements to the build system:
464
465 - Fix documentation regarding conversion to drbd
466 - Fix validation of parameters in cluster modify (``gnt-cluster modify
467   -B``)
468 - Fix error handling in node modify with multiple changes
469 - Allow remote imports without checked names
470
471
472 Version 2.2.1
473 -------------
474
475 *(Released Tue, 19 Oct 2010)*
476
477 - Disable SSL session ID cache in RPC client
478
479
480 Version 2.2.1 rc1
481 -----------------
482
483 *(Released Thu, 14 Oct 2010)*
484
485 - Fix interaction between Curl/GnuTLS and the Python's HTTP server
486   (thanks Apollon Oikonomopoulos!), finally allowing the use of Curl
487   with GnuTLS
488 - Fix problems with interaction between Curl and Python's HTTP server,
489   resulting in increased speed in many RPC calls
490 - Improve our release script to prevent breakage with older aclocal and
491   Python 2.6
492
493
494 Version 2.2.1 rc0
495 -----------------
496
497 *(Released Thu, 7 Oct 2010)*
498
499 - Fixed issue 125, replace hardcoded "xenvg" in ``gnt-cluster`` with
500   value retrieved from master
501 - Added support for blacklisted or hidden OS definitions
502 - Added simple lock monitor (accessible via (``gnt-debug locks``)
503 - Added support for -mem-path in KVM hypervisor abstraction layer
504 - Allow overriding instance parameters in tool for inter-cluster
505   instance moves (``tools/move-instance``)
506 - Improved opcode summaries (e.g. in ``gnt-job list``)
507 - Improve consistency of OS listing by sorting it
508 - Documentation updates
509
510
511 Version 2.2.0.1
512 ---------------
513
514 *(Released Fri, 8 Oct 2010)*
515
516 - Rebuild with a newer autotools version, to fix python 2.6 compatibility
517
518
519 Version 2.2.0
520 -------------
521
522 *(Released Mon, 4 Oct 2010)*
523
524 - Fixed regression in ``gnt-instance rename``
525
526
527 Version 2.2.0 rc2
528 -----------------
529
530 *(Released Wed, 22 Sep 2010)*
531
532 - Fixed OS_VARIANT variable for OS scripts
533 - Fixed cluster tag operations via RAPI
534 - Made ``setup-ssh`` exit with non-zero code if an error occurred
535 - Disabled RAPI CA checks in watcher
536
537
538 Version 2.2.0 rc1
539 -----------------
540
541 *(Released Mon, 23 Aug 2010)*
542
543 - Support DRBD versions of the format "a.b.c.d"
544 - Updated manpages
545 - Re-introduce support for usage from multiple threads in RAPI client
546 - Instance renames and modify via RAPI
547 - Work around race condition between processing and archival in job
548   queue
549 - Mark opcodes following failed one as failed, too
550 - Job field ``lock_status`` was removed due to difficulties making it
551   work with the changed job queue in Ganeti 2.2; a better way to monitor
552   locks is expected for a later 2.2.x release
553 - Fixed dry-run behaviour with many commands
554 - Support ``ssh-agent`` again when adding nodes
555 - Many additional bugfixes
556
557
558 Version 2.2.0 rc0
559 -----------------
560
561 *(Released Fri, 30 Jul 2010)*
562
563 Important change: the internal RPC mechanism between Ganeti nodes has
564 changed from using a home-grown http library (based on the Python base
565 libraries) to use the PycURL library. This requires that PycURL is
566 installed on nodes. Please note that on Debian/Ubuntu, PycURL is linked
567 against GnuTLS by default. cURL's support for GnuTLS had known issues
568 before cURL 7.21.0 and we recommend using the latest cURL release or
569 linking against OpenSSL. Most other distributions already link PycURL
570 and cURL against OpenSSL. The command::
571
572   python -c 'import pycurl; print pycurl.version'
573
574 can be used to determine the libraries PycURL and cURL are linked
575 against.
576
577 Other significant changes:
578
579 - Rewrote much of the internals of the job queue, in order to achieve
580   better parallelism; this decouples job query operations from the job
581   processing, and it should allow much nicer behaviour of the master
582   daemon under load, and it also has uncovered some long-standing bugs
583   related to the job serialisation (now fixed)
584 - Added a default iallocator setting to the cluster parameters,
585   eliminating the need to always pass nodes or an iallocator for
586   operations that require selection of new node(s)
587 - Added experimental support for the LXC virtualization method
588 - Added support for OS parameters, which allows the installation of
589   instances to pass parameter to OS scripts in order to customise the
590   instance
591 - Added a hypervisor parameter controlling the migration type (live or
592   non-live), since hypervisors have various levels of reliability; this
593   has renamed the 'live' parameter to 'mode'
594 - Added a cluster parameter ``reserved_lvs`` that denotes reserved
595   logical volumes, meaning that cluster verify will ignore them and not
596   flag their presence as errors
597 - The watcher will now reset the error count for failed instances after
598   8 hours, thus allowing self-healing if the problem that caused the
599   instances to be down/fail to start has cleared in the meantime
600 - Added a cluster parameter ``drbd_usermode_helper`` that makes Ganeti
601   check for, and warn, if the drbd module parameter ``usermode_helper``
602   is not consistent with the cluster-wide setting; this is needed to
603   make diagnose easier of failed drbd creations
604 - Started adding base IPv6 support, but this is not yet
605   enabled/available for use
606 - Rename operations (cluster, instance) will now return the new name,
607   which is especially useful if a short name was passed in
608 - Added support for instance migration in RAPI
609 - Added a tool to pre-configure nodes for the SSH setup, before joining
610   them to the cluster; this will allow in the future a simplified model
611   for node joining (but not yet fully enabled in 2.2); this needs the
612   paramiko python library
613 - Fixed handling of name-resolving errors
614 - Fixed consistency of job results on the error path
615 - Fixed master-failover race condition when executed multiple times in
616   sequence
617 - Fixed many bugs related to the job queue (mostly introduced during the
618   2.2 development cycle, so not all are impacting 2.1)
619 - Fixed instance migration with missing disk symlinks
620 - Fixed handling of unknown jobs in ``gnt-job archive``
621 - And many other small fixes/improvements
622
623 Internal changes:
624
625 - Enhanced both the unittest and the QA coverage
626 - Switched the opcode validation to a generic model, and extended the
627   validation to all opcode parameters
628 - Changed more parts of the code that write shell scripts to use the
629   same class for this
630 - Switched the master daemon to use the asyncore library for the Luxi
631   server endpoint
632
633
634 Version 2.2.0 beta 0
635 --------------------
636
637 *(Released Thu, 17 Jun 2010)*
638
639 - Added tool (``move-instance``) and infrastructure to move instances
640   between separate clusters (see :doc:`separate documentation
641   <move-instance>` and :doc:`design document <design-2.2>`)
642 - Added per-request RPC timeout
643 - RAPI now requires a Content-Type header for requests with a body (e.g.
644   ``PUT`` or ``POST``) which must be set to ``application/json`` (see
645   :rfc:`2616` (HTTP/1.1), section 7.2.1)
646 - ``ganeti-watcher`` attempts to restart ``ganeti-rapi`` if RAPI is not
647   reachable
648 - Implemented initial support for running Ganeti daemons as separate
649   users, see configure-time flags ``--with-user-prefix`` and
650   ``--with-group-prefix`` (only ``ganeti-rapi`` is supported at this
651   time)
652 - Instances can be removed after export (``gnt-backup export
653   --remove-instance``)
654 - Self-signed certificates generated by Ganeti now use a 2048 bit RSA
655   key (instead of 1024 bit)
656 - Added new cluster configuration file for cluster domain secret
657 - Import/export now use SSL instead of SSH
658 - Added support for showing estimated time when exporting an instance,
659   see the ``ganeti-os-interface(7)`` manpage and look for
660   ``EXP_SIZE_FD``
661
662
663 Version 2.1.8
664 -------------
665
666 *(Released Tue, 16 Nov 2010)*
667
668 Some more bugfixes. Unless critical bugs occur, this will be the last
669 2.1 release:
670
671 - Fix case of MAC special-values
672 - Fix mac checker regex
673 - backend: Fix typo causing "out of range" error
674 - Add missing --units in gnt-instance list man page
675
676
677 Version 2.1.7
678 -------------
679
680 *(Released Tue, 24 Aug 2010)*
681
682 Bugfixes only:
683   - Don't ignore secondary node silently on non-mirrored disk templates
684     (issue 113)
685   - Fix --master-netdev arg name in gnt-cluster(8) (issue 114)
686   - Fix usb_mouse parameter breaking with vnc_console (issue 109)
687   - Properly document the usb_mouse parameter
688   - Fix path in ganeti-rapi(8) (issue 116)
689   - Adjust error message when the ganeti user's .ssh directory is
690     missing
691   - Add same-node-check when changing the disk template to drbd
692
693
694 Version 2.1.6
695 -------------
696
697 *(Released Fri, 16 Jul 2010)*
698
699 Bugfixes only:
700   - Add an option to only select some reboot types during qa/burnin.
701     (on some hypervisors consequent reboots are not supported)
702   - Fix infrequent race condition in master failover. Sometimes the old
703     master ip address would be still detected as up for a short time
704     after it was removed, causing failover to fail.
705   - Decrease mlockall warnings when the ctypes module is missing. On
706     Python 2.4 we support running even if no ctypes module is installed,
707     but we were too verbose about this issue.
708   - Fix building on old distributions, on which man doesn't have a
709     --warnings option.
710   - Fix RAPI not to ignore the MAC address on instance creation
711   - Implement the old instance creation format in the RAPI client.
712
713
714 Version 2.1.5
715 -------------
716
717 *(Released Thu, 01 Jul 2010)*
718
719 A small bugfix release:
720   - Fix disk adoption: broken by strict --disk option checking in 2.1.4
721   - Fix batch-create: broken in the whole 2.1 series due to a lookup on
722     a non-existing option
723   - Fix instance create: the --force-variant option was ignored
724   - Improve pylint 0.21 compatibility and warnings with Python 2.6
725   - Fix modify node storage with non-FQDN arguments
726   - Fix RAPI client to authenticate under Python 2.6 when used
727     for more than 5 requests needing authentication
728   - Fix gnt-instance modify -t (storage) giving a wrong error message
729     when converting a non-shutdown drbd instance to plain
730
731
732 Version 2.1.4
733 -------------
734
735 *(Released Fri, 18 Jun 2010)*
736
737 A small bugfix release:
738
739   - Fix live migration of KVM instances started with older Ganeti
740     versions which had fewer hypervisor parameters
741   - Fix gnt-instance grow-disk on down instances
742   - Fix an error-reporting bug during instance migration
743   - Better checking of the ``--net`` and ``--disk`` values, to avoid
744     silently ignoring broken ones
745   - Fix an RPC error reporting bug affecting, for example, RAPI client
746     users
747   - Fix bug triggered by different API version os-es on different nodes
748   - Fix a bug in instance startup with custom hvparams: OS level
749     parameters would fail to be applied.
750   - Fix the RAPI client under Python 2.6 (but more work is needed to
751     make it work completely well with OpenSSL)
752   - Fix handling of errors when resolving names from DNS
753
754
755 Version 2.1.3
756 -------------
757
758 *(Released Thu, 3 Jun 2010)*
759
760 A medium sized development cycle. Some new features, and some
761 fixes/small improvements/cleanups.
762
763 Significant features
764 ~~~~~~~~~~~~~~~~~~~~
765
766 The node deamon now tries to mlock itself into memory, unless the
767 ``--no-mlock`` flag is passed. It also doesn't fail if it can't write
768 its logs, and falls back to console logging. This allows emergency
769 features such as ``gnt-node powercycle`` to work even in the event of a
770 broken node disk (tested offlining the disk hosting the node's
771 filesystem and dropping its memory caches; don't try this at home)
772
773 KVM: add vhost-net acceleration support. It can be tested with a new
774 enough version of the kernel and of qemu-kvm.
775
776 KVM: Add instance chrooting feature. If you use privilege dropping for
777 your VMs you can also now force them to chroot to an empty directory,
778 before starting the emulated guest.
779
780 KVM: Add maximum migration bandwith and maximum downtime tweaking
781 support (requires a new-enough version of qemu-kvm).
782
783 Cluster verify will now warn if the master node doesn't have the master
784 ip configured on it.
785
786 Add a new (incompatible) instance creation request format to RAPI which
787 supports all parameters (previously only a subset was supported, and it
788 wasn't possible to extend the old format to accomodate all the new
789 features. The old format is still supported, and a client can check for
790 this feature, before using it, by checking for its presence in the
791 ``features`` RAPI resource.
792
793 Now with ancient latin support. Try it passing the ``--roman`` option to
794 ``gnt-instance info``, ``gnt-cluster info`` or ``gnt-node list``
795 (requires the python-roman module to be installed, in order to work).
796
797 Other changes
798 ~~~~~~~~~~~~~
799
800 As usual many internal code refactorings, documentation updates, and
801 such. Among others:
802
803   - Lots of improvements and cleanups to the experimental Remote API
804     (RAPI) client library.
805   - A new unit test suite for the core daemon libraries.
806   - A fix to creating missing directories makes sure the umask is not
807     applied anymore. This enforces the same directory permissions
808     everywhere.
809   - Better handling terminating daemons with ctrl+c (used when running
810     them in debugging mode).
811   - Fix a race condition in live migrating a KVM instance, when stat()
812     on the old proc status file returned EINVAL, which is an unexpected
813     value.
814   - Fixed manpage checking with newer man and utf-8 charachters. But now
815     you need the en_US.UTF-8 locale enabled to build Ganeti from git.
816
817
818 Version 2.1.2.1
819 ---------------
820
821 *(Released Fri, 7 May 2010)*
822
823 Fix a bug which prevented untagged KVM instances from starting.
824
825
826 Version 2.1.2
827 -------------
828
829 *(Released Fri, 7 May 2010)*
830
831 Another release with a long development cycle, during which many
832 different features were added.
833
834 Significant features
835 ~~~~~~~~~~~~~~~~~~~~
836
837 The KVM hypervisor now can run the individual instances as non-root, to
838 reduce the impact of a VM being hijacked due to bugs in the
839 hypervisor. It is possible to run all instances as a single (non-root)
840 user, to manually specify a user for each instance, or to dynamically
841 allocate a user out of a cluster-wide pool to each instance, with the
842 guarantee that no two instances will run under the same user ID on any
843 given node.
844
845 An experimental RAPI client library, that can be used standalone
846 (without the other Ganeti libraries), is provided in the source tree as
847 ``lib/rapi/client.py``. Note this client might change its interface in
848 the future, as we iterate on its capabilities.
849
850 A new command, ``gnt-cluster renew-crypto`` has been added to easily
851 replace the cluster's certificates and crypto keys. This might help in
852 case they have been compromised, or have simply expired.
853
854 A new disk option for instance creation has been added that allows one
855 to "adopt" currently existing logical volumes, with data
856 preservation. This should allow easier migration to Ganeti from
857 unmanaged (or managed via other software) instances.
858
859 Another disk improvement is the possibility to convert between redundant
860 (DRBD) and plain (LVM) disk configuration for an instance. This should
861 allow better scalability (starting with one node and growing the
862 cluster, or shrinking a two-node cluster to one node).
863
864 A new feature that could help with automated node failovers has been
865 implemented: if a node sees itself as offline (by querying the master
866 candidates), it will try to shutdown (hard) all instances and any active
867 DRBD devices. This reduces the risk of duplicate instances if an
868 external script automatically failovers the instances on such nodes. To
869 enable this, the cluster parameter ``maintain_node_health`` should be
870 enabled; in the future this option (per the name) will enable other
871 automatic maintenance features.
872
873 Instance export/import now will reuse the original instance
874 specifications for all parameters; that means exporting an instance,
875 deleting it and the importing it back should give an almost identical
876 instance. Note that the default import behaviour has changed from
877 before, where it created only one NIC; now it recreates the original
878 number of NICs.
879
880 Cluster verify has added a few new checks: SSL certificates validity,
881 /etc/hosts consistency across the cluster, etc.
882
883 Other changes
884 ~~~~~~~~~~~~~
885
886 As usual, many internal changes were done, documentation fixes,
887 etc. Among others:
888
889 - Fixed cluster initialization with disabled cluster storage (regression
890   introduced in 2.1.1)
891 - File-based storage supports growing the disks
892 - Fixed behaviour of node role changes
893 - Fixed cluster verify for some corner cases, plus a general rewrite of
894   cluster verify to allow future extension with more checks
895 - Fixed log spamming by watcher and node daemon (regression introduced
896   in 2.1.1)
897 - Fixed possible validation issues when changing the list of enabled
898   hypervisors
899 - Fixed cleanup of /etc/hosts during node removal
900 - Fixed RAPI response for invalid methods
901 - Fixed bug with hashed passwords in ``ganeti-rapi`` daemon
902 - Multiple small improvements to the KVM hypervisor (VNC usage, booting
903   from ide disks, etc.)
904 - Allow OS changes without re-installation (to record a changed OS
905   outside of Ganeti, or to allow OS renames)
906 - Allow instance creation without OS installation (useful for example if
907   the OS will be installed manually, or restored from a backup not in
908   Ganeti format)
909 - Implemented option to make cluster ``copyfile`` use the replication
910   network
911 - Added list of enabled hypervisors to ssconf (possibly useful for
912   external scripts)
913 - Added a new tool (``tools/cfgupgrade12``) that allows upgrading from
914   1.2 clusters
915 - A partial form of node re-IP is possible via node readd, which now
916   allows changed node primary IP
917 - Command line utilities now show an informational message if the job is
918   waiting for a lock
919 - The logs of the master daemon now show the PID/UID/GID of the
920   connected client
921
922
923 Version 2.1.1
924 -------------
925
926 *(Released Fri, 12 Mar 2010)*
927
928 During the 2.1.0 long release candidate cycle, a lot of improvements and
929 changes have accumulated with were released later as 2.1.1.
930
931 Major changes
932 ~~~~~~~~~~~~~
933
934 The node evacuate command (``gnt-node evacuate``) was significantly
935 rewritten, and as such the IAllocator protocol was changed - a new
936 request type has been added. This unfortunate change during a stable
937 series is designed to improve performance of node evacuations; on
938 clusters with more than about five nodes and which are well-balanced,
939 evacuation should proceed in parallel for all instances of the node
940 being evacuated. As such, any existing IAllocator scripts need to be
941 updated, otherwise the above command will fail due to the unknown
942 request. The provided "dumb" allocator has not been updated; but the
943 ganeti-htools package supports the new protocol since version 0.2.4.
944
945 Another important change is increased validation of node and instance
946 names. This might create problems in special cases, if invalid host
947 names are being used.
948
949 Also, a new layer of hypervisor parameters has been added, that sits at
950 OS level between the cluster defaults and the instance ones. This allows
951 customisation of virtualization parameters depending on the installed
952 OS. For example instances with OS 'X' may have a different KVM kernel
953 (or any other parameter) than the cluster defaults. This is intended to
954 help managing a multiple OSes on the same cluster, without manual
955 modification of each instance's parameters.
956
957 A tool for merging clusters, ``cluster-merge``, has been added in the
958 tools sub-directory.
959
960 Bug fixes
961 ~~~~~~~~~
962
963 - Improved the int/float conversions that should make the code more
964   robust in face of errors from the node daemons
965 - Fixed the remove node code in case of internal configuration errors
966 - Fixed the node daemon behaviour in face of inconsistent queue
967   directory (e.g. read-only file-system where we can't open the files
968   read-write, etc.)
969 - Fixed the behaviour of gnt-node modify for master candidate demotion;
970   now it either aborts cleanly or, if given the new "auto_promote"
971   parameter, will automatically promote other nodes as needed
972 - Fixed compatibility with (unreleased yet) Python 2.6.5 that would
973   completely prevent Ganeti from working
974 - Fixed bug for instance export when not all disks were successfully
975   exported
976 - Fixed behaviour of node add when the new node is slow in starting up
977   the node daemon
978 - Fixed handling of signals in the LUXI client, which should improve
979   behaviour of command-line scripts
980 - Added checks for invalid node/instance names in the configuration (now
981   flagged during cluster verify)
982 - Fixed watcher behaviour for disk activation errors
983 - Fixed two potentially endless loops in http library, which led to the
984   RAPI daemon hanging and consuming 100% CPU in some cases
985 - Fixed bug in RAPI daemon related to hashed passwords
986 - Fixed bug for unintended qemu-level bridging of multi-NIC KVM
987   instances
988 - Enhanced compatibility with non-Debian OSes, but not using absolute
989   path in some commands and allowing customisation of the ssh
990   configuration directory
991 - Fixed possible future issue with new Python versions by abiding to the
992   proper use of ``__slots__`` attribute on classes
993 - Added checks that should prevent directory traversal attacks
994 - Many documentation fixes based on feedback from users
995
996 New features
997 ~~~~~~~~~~~~
998
999 - Added an "early_release" more for instance replace disks and node
1000   evacuate, where we release locks earlier and thus allow higher
1001   parallelism within the cluster
1002 - Added watcher hooks, intended to allow the watcher to restart other
1003   daemons (e.g. from the ganeti-nbma project), but they can be used of
1004   course for any other purpose
1005 - Added a compile-time disable for DRBD barriers, to increase
1006   performance if the administrator trusts the power supply or the
1007   storage system to not lose writes
1008 - Added the option of using syslog for logging instead of, or in
1009   addition to, Ganeti's own log files
1010 - Removed boot restriction for paravirtual NICs for KVM, recent versions
1011   can indeed boot from a paravirtual NIC
1012 - Added a generic debug level for many operations; while this is not
1013   used widely yet, it allows one to pass the debug value all the way to
1014   the OS scripts
1015 - Enhanced the hooks environment for instance moves (failovers,
1016   migrations) where the primary/secondary nodes changed during the
1017   operation, by adding {NEW,OLD}_{PRIMARY,SECONDARY} vars
1018 - Enhanced data validations for many user-supplied values; one important
1019   item is the restrictions imposed on instance and node names, which
1020   might reject some (invalid) host names
1021 - Add a configure-time option to disable file-based storage, if it's not
1022   needed; this allows greater security separation between the master
1023   node and the other nodes from the point of view of the inter-node RPC
1024   protocol
1025 - Added user notification in interactive tools if job is waiting in the
1026   job queue or trying to acquire locks
1027 - Added log messages when a job is waiting for locks
1028 - Added filtering by node tags in instance operations which admit
1029   multiple instances (start, stop, reboot, reinstall)
1030 - Added a new tool for cluster mergers, ``cluster-merge``
1031 - Parameters from command line which are of the form ``a=b,c=d`` can now
1032   use backslash escapes to pass in values which contain commas,
1033   e.g. ``a=b\\c,d=e`` where the 'a' parameter would get the value
1034   ``b,c``
1035 - For KVM, the instance name is the first parameter passed to KVM, so
1036   that it's more visible in the process list
1037
1038
1039 Version 2.1.0
1040 -------------
1041
1042 *(Released Tue, 2 Mar 2010)*
1043
1044 Ganeti 2.1 brings many improvements with it. Major changes:
1045
1046 - Added infrastructure to ease automated disk repairs
1047 - Added new daemon to export configuration data in a cheaper way than
1048   using the remote API
1049 - Instance NICs can now be routed instead of being associated with a
1050   networking bridge
1051 - Improved job locking logic to reduce impact of jobs acquiring multiple
1052   locks waiting for other long-running jobs
1053
1054 In-depth implementation details can be found in the Ganeti 2.1 design
1055 document.
1056
1057 Details
1058 ~~~~~~~
1059
1060 - Added chroot hypervisor
1061 - Added more options to xen-hvm hypervisor (``kernel_path`` and
1062   ``device_model``)
1063 - Added more options to xen-pvm hypervisor (``use_bootloader``,
1064   ``bootloader_path`` and ``bootloader_args``)
1065 - Added the ``use_localtime`` option for the xen-hvm and kvm
1066   hypervisors, and the default value for this has changed to false (in
1067   2.0 xen-hvm always enabled it)
1068 - Added luxi call to submit multiple jobs in one go
1069 - Added cluster initialization option to not modify ``/etc/hosts``
1070   file on nodes
1071 - Added network interface parameters
1072 - Added dry run mode to some LUs
1073 - Added RAPI resources:
1074
1075   - ``/2/instances/[instance_name]/info``
1076   - ``/2/instances/[instance_name]/replace-disks``
1077   - ``/2/nodes/[node_name]/evacuate``
1078   - ``/2/nodes/[node_name]/migrate``
1079   - ``/2/nodes/[node_name]/role``
1080   - ``/2/nodes/[node_name]/storage``
1081   - ``/2/nodes/[node_name]/storage/modify``
1082   - ``/2/nodes/[node_name]/storage/repair``
1083
1084 - Added OpCodes to evacuate or migrate all instances on a node
1085 - Added new command to list storage elements on nodes (``gnt-node
1086   list-storage``) and modify them (``gnt-node modify-storage``)
1087 - Added new ssconf files with master candidate IP address
1088   (``ssconf_master_candidates_ips``), node primary IP address
1089   (``ssconf_node_primary_ips``) and node secondary IP address
1090   (``ssconf_node_secondary_ips``)
1091 - Added ``ganeti-confd`` and a client library to query the Ganeti
1092   configuration via UDP
1093 - Added ability to run hooks after cluster initialization and before
1094   cluster destruction
1095 - Added automatic mode for disk replace (``gnt-instance replace-disks
1096   --auto``)
1097 - Added ``gnt-instance recreate-disks`` to re-create (empty) disks
1098   after catastrophic data-loss
1099 - Added ``gnt-node repair-storage`` command to repair damaged LVM volume
1100   groups
1101 - Added ``gnt-instance move`` command to move instances
1102 - Added ``gnt-cluster watcher`` command to control watcher
1103 - Added ``gnt-node powercycle`` command to powercycle nodes
1104 - Added new job status field ``lock_status``
1105 - Added parseable error codes to cluster verification (``gnt-cluster
1106   verify --error-codes``) and made output less verbose (use
1107   ``--verbose`` to restore previous behaviour)
1108 - Added UUIDs to the main config entities (cluster, nodes, instances)
1109 - Added support for OS variants
1110 - Added support for hashed passwords in the Ganeti remote API users file
1111   (``rapi_users``)
1112 - Added option to specify maximum timeout on instance shutdown
1113 - Added ``--no-ssh-init`` option to ``gnt-cluster init``
1114 - Added new helper script to start and stop Ganeti daemons
1115   (``daemon-util``), with the intent to reduce the work necessary to
1116   adjust Ganeti for non-Debian distributions and to start/stop daemons
1117   from one place
1118 - Added more unittests
1119 - Fixed critical bug in ganeti-masterd startup
1120 - Removed the configure-time ``kvm-migration-port`` parameter, this is
1121   now customisable at the cluster level for both the KVM and Xen
1122   hypervisors using the new ``migration_port`` parameter
1123 - Pass ``INSTANCE_REINSTALL`` variable to OS installation script when
1124   reinstalling an instance
1125 - Allowed ``@`` in tag names
1126 - Migrated to Sphinx (http://sphinx.pocoo.org/) for documentation
1127 - Many documentation updates
1128 - Distribute hypervisor files on ``gnt-cluster redist-conf``
1129 - ``gnt-instance reinstall`` can now reinstall multiple instances
1130 - Updated many command line parameters
1131 - Introduced new OS API version 15
1132 - No longer support a default hypervisor
1133 - Treat virtual LVs as inexistent
1134 - Improved job locking logic to reduce lock contention
1135 - Match instance and node names case insensitively
1136 - Reimplemented bash completion script to be more complete
1137 - Improved burnin
1138
1139
1140 Version 2.0.6
1141 -------------
1142
1143 *(Released Thu, 4 Feb 2010)*
1144
1145 - Fix cleaner behaviour on nodes not in a cluster (Debian bug 568105)
1146 - Fix a string formatting bug
1147 - Improve safety of the code in some error paths
1148 - Improve data validation in the master of values returned from nodes
1149
1150
1151 Version 2.0.5
1152 -------------
1153
1154 *(Released Thu, 17 Dec 2009)*
1155
1156 - Fix security issue due to missing validation of iallocator names; this
1157   allows local and remote execution of arbitrary executables
1158 - Fix failure of gnt-node list during instance removal
1159 - Ship the RAPI documentation in the archive
1160
1161
1162 Version 2.0.4
1163 -------------
1164
1165 *(Released Wed, 30 Sep 2009)*
1166
1167 - Fixed many wrong messages
1168 - Fixed a few bugs related to the locking library
1169 - Fixed MAC checking at instance creation time
1170 - Fixed a DRBD parsing bug related to gaps in /proc/drbd
1171 - Fixed a few issues related to signal handling in both daemons and
1172   scripts
1173 - Fixed the example startup script provided
1174 - Fixed insserv dependencies in the example startup script (patch from
1175   Debian)
1176 - Fixed handling of drained nodes in the iallocator framework
1177 - Fixed handling of KERNEL_PATH parameter for xen-hvm (Debian bug
1178   #528618)
1179 - Fixed error related to invalid job IDs in job polling
1180 - Fixed job/opcode persistence on unclean master shutdown
1181 - Fixed handling of partial job processing after unclean master
1182   shutdown
1183 - Fixed error reporting from LUs, previously all errors were converted
1184   into execution errors
1185 - Fixed error reporting from burnin
1186 - Decreased significantly the memory usage of the job queue
1187 - Optimised slightly multi-job submission
1188 - Optimised slightly opcode loading
1189 - Backported the multi-job submit framework from the development
1190   branch; multi-instance start and stop should be faster
1191 - Added script to clean archived jobs after 21 days; this will reduce
1192   the size of the queue directory
1193 - Added some extra checks in disk size tracking
1194 - Added an example ethers hook script
1195 - Added a cluster parameter that prevents Ganeti from modifying of
1196   /etc/hosts
1197 - Added more node information to RAPI responses
1198 - Added a ``gnt-job watch`` command that allows following the ouput of a
1199   job
1200 - Added a bind-address option to ganeti-rapi
1201 - Added more checks to the configuration verify
1202 - Enhanced the burnin script such that some operations can be retried
1203   automatically
1204 - Converted instance reinstall to multi-instance model
1205
1206
1207 Version 2.0.3
1208 -------------
1209
1210 *(Released Fri, 7 Aug 2009)*
1211
1212 - Added ``--ignore-size`` to the ``gnt-instance activate-disks`` command
1213   to allow using the pre-2.0.2 behaviour in activation, if any existing
1214   instances have mismatched disk sizes in the configuration
1215 - Added ``gnt-cluster repair-disk-sizes`` command to check and update
1216   any configuration mismatches for disk sizes
1217 - Added ``gnt-master cluste-failover --no-voting`` to allow master
1218   failover to work on two-node clusters
1219 - Fixed the ``--net`` option of ``gnt-backup import``, which was
1220   unusable
1221 - Fixed detection of OS script errors in ``gnt-backup export``
1222 - Fixed exit code of ``gnt-backup export``
1223
1224
1225 Version 2.0.2
1226 -------------
1227
1228 *(Released Fri, 17 Jul 2009)*
1229
1230 - Added experimental support for stripped logical volumes; this should
1231   enhance performance but comes with a higher complexity in the block
1232   device handling; stripping is only enabled when passing
1233   ``--with-lvm-stripecount=N`` to ``configure``, but codepaths are
1234   affected even in the non-stripped mode
1235 - Improved resiliency against transient failures at the end of DRBD
1236   resyncs, and in general of DRBD resync checks
1237 - Fixed a couple of issues with exports and snapshot errors
1238 - Fixed a couple of issues in instance listing
1239 - Added display of the disk size in ``gnt-instance info``
1240 - Fixed checking for valid OSes in instance creation
1241 - Fixed handling of the "vcpus" parameter in instance listing and in
1242   general of invalid parameters
1243 - Fixed http server library, and thus RAPI, to handle invalid
1244   username/password combinations correctly; this means that now they
1245   report unauthorized for queries too, not only for modifications,
1246   allowing earlier detect of configuration problems
1247 - Added a new "role" node list field, equivalent to the master/master
1248   candidate/drained/offline flags combinations
1249 - Fixed cluster modify and changes of candidate pool size
1250 - Fixed cluster verify error messages for wrong files on regular nodes
1251 - Fixed a couple of issues with node demotion from master candidate role
1252 - Fixed node readd issues
1253 - Added non-interactive mode for ``ganeti-masterd --no-voting`` startup
1254 - Added a new ``--no-voting`` option for masterfailover to fix failover
1255   on two-nodes clusters when the former master node is unreachable
1256 - Added instance reinstall over RAPI
1257
1258
1259 Version 2.0.1
1260 -------------
1261
1262 *(Released Tue, 16 Jun 2009)*
1263
1264 - added ``-H``/``-B`` startup parameters to ``gnt-instance``, which will
1265   allow re-adding the start in single-user option (regression from 1.2)
1266 - the watcher writes the instance status to a file, to allow monitoring
1267   to report the instance status (from the master) based on cached
1268   results of the watcher's queries; while this can get stale if the
1269   watcher is being locked due to other work on the cluster, this is
1270   still an improvement
1271 - the watcher now also restarts the node daemon and the rapi daemon if
1272   they died
1273 - fixed the watcher to handle full and drained queue cases
1274 - hooks export more instance data in the environment, which helps if
1275   hook scripts need to take action based on the instance's properties
1276   (no longer need to query back into ganeti)
1277 - instance failovers when the instance is stopped do not check for free
1278   RAM, so that failing over a stopped instance is possible in low memory
1279   situations
1280 - rapi uses queries for tags instead of jobs (for less job traffic), and
1281   for cluster tags it won't talk to masterd at all but read them from
1282   ssconf
1283 - a couple of error handling fixes in RAPI
1284 - drbd handling: improved the error handling of inconsistent disks after
1285   resync to reduce the frequency of "there are some degraded disks for
1286   this instance" messages
1287 - fixed a bug in live migration when DRBD doesn't want to reconnect (the
1288   error handling path called a wrong function name)
1289
1290
1291 Version 2.0.0 final
1292 -------------------
1293
1294 *(Released Wed, 27 May 2009)*
1295
1296 - no changes from rc5
1297
1298
1299 Version 2.0 release candidate 5
1300 -------------------------------
1301
1302 *(Released Wed, 20 May 2009)*
1303
1304 - fix a couple of bugs (validation, argument checks)
1305 - fix ``gnt-cluster getmaster`` on non-master nodes (regression)
1306 - some small improvements to RAPI and IAllocator
1307 - make watcher automatically start the master daemon if down
1308
1309
1310 Version 2.0 release candidate 4
1311 -------------------------------
1312
1313 *(Released Mon, 27 Apr 2009)*
1314
1315 - change the OS list to not require locks; this helps with big clusters
1316 - fix ``gnt-cluster verify`` and ``gnt-cluster verify-disks`` when the
1317   volume group is broken
1318 - ``gnt-instance info``, without any arguments, doesn't run for all
1319   instances anymore; either pass ``--all`` or pass the desired
1320   instances; this helps against mistakes on big clusters where listing
1321   the information for all instances takes a long time
1322 - miscellaneous doc and man pages fixes
1323
1324
1325 Version 2.0 release candidate 3
1326 -------------------------------
1327
1328 *(Released Wed, 8 Apr 2009)*
1329
1330 - Change the internal locking model of some ``gnt-node`` commands, in
1331   order to reduce contention (and blocking of master daemon) when
1332   batching many creation/reinstall jobs
1333 - Fixes to Xen soft reboot
1334 - No longer build documentation at build time, instead distribute it in
1335   the archive, in order to reduce the need for the whole docbook/rst
1336   toolchains
1337
1338
1339 Version 2.0 release candidate 2
1340 -------------------------------
1341
1342 *(Released Fri, 27 Mar 2009)*
1343
1344 - Now the cfgupgrade scripts works and can upgrade 1.2.7 clusters to 2.0
1345 - Fix watcher startup sequence, improves the behaviour of busy clusters
1346 - Some other fixes in ``gnt-cluster verify``, ``gnt-instance
1347   replace-disks``, ``gnt-instance add``, ``gnt-cluster queue``, KVM VNC
1348   bind address and other places
1349 - Some documentation fixes and updates
1350
1351
1352 Version 2.0 release candidate 1
1353 -------------------------------
1354
1355 *(Released Mon, 2 Mar 2009)*
1356
1357 - More documentation updates, now all docs should be more-or-less
1358   up-to-date
1359 - A couple of small fixes (mixed hypervisor clusters, offline nodes,
1360   etc.)
1361 - Added a customizable HV_KERNEL_ARGS hypervisor parameter (for Xen PVM
1362   and KVM)
1363 - Fix an issue related to $libdir/run/ganeti and cluster creation
1364
1365
1366 Version 2.0 beta 2
1367 ------------------
1368
1369 *(Released Thu, 19 Feb 2009)*
1370
1371 - Xen PVM and KVM have switched the default value for the instance root
1372   disk to the first partition on the first drive, instead of the whole
1373   drive; this means that the OS installation scripts must be changed
1374   accordingly
1375 - Man pages have been updated
1376 - RAPI has been switched by default to HTTPS, and the exported functions
1377   should all work correctly
1378 - RAPI v1 has been removed
1379 - Many improvements to the KVM hypervisor
1380 - Block device errors are now better reported
1381 - Many other bugfixes and small improvements
1382
1383
1384 Version 2.0 beta 1
1385 ------------------
1386
1387 *(Released Mon, 26 Jan 2009)*
1388
1389 - Version 2 is a general rewrite of the code and therefore the
1390   differences are too many to list, see the design document for 2.0 in
1391   the ``doc/`` subdirectory for more details
1392 - In this beta version there is not yet a migration path from 1.2 (there
1393   will be one in the final 2.0 release)
1394 - A few significant changes are:
1395
1396   - all commands are executed by a daemon (``ganeti-masterd``) and the
1397     various ``gnt-*`` commands are just front-ends to it
1398   - all the commands are entered into, and executed from a job queue,
1399     see the ``gnt-job(8)`` manpage
1400   - the RAPI daemon supports read-write operations, secured by basic
1401     HTTP authentication on top of HTTPS
1402   - DRBD version 0.7 support has been removed, DRBD 8 is the only
1403     supported version (when migrating from Ganeti 1.2 to 2.0, you need
1404     to migrate to DRBD 8 first while still running Ganeti 1.2)
1405   - DRBD devices are using statically allocated minor numbers, which
1406     will be assigned to existing instances during the migration process
1407   - there is support for both Xen PVM and Xen HVM instances running on
1408     the same cluster
1409   - KVM virtualization is supported too
1410   - file-based storage has been implemented, which means that it is
1411     possible to run the cluster without LVM and DRBD storage, for
1412     example using a shared filesystem exported from shared storage (and
1413     still have live migration)
1414
1415
1416 Version 1.2.7
1417 -------------
1418
1419 *(Released Tue, 13 Jan 2009)*
1420
1421 - Change the default reboot type in ``gnt-instance reboot`` to "hard"
1422 - Reuse the old instance mac address by default on instance import, if
1423   the instance name is the same.
1424 - Handle situations in which the node info rpc returns incomplete
1425   results (issue 46)
1426 - Add checks for tcp/udp ports collisions in ``gnt-cluster verify``
1427 - Improved version of batcher:
1428
1429   - state file support
1430   - instance mac address support
1431   - support for HVM clusters/instances
1432
1433 - Add an option to show the number of cpu sockets and nodes in
1434   ``gnt-node list``
1435 - Support OSes that handle more than one version of the OS api (but do
1436   not change the current API in any other way)
1437 - Fix ``gnt-node migrate``
1438 - ``gnt-debug`` man page
1439 - Fixes various more typos and small issues
1440 - Increase disk resync maximum speed to 60MB/s (from 30MB/s)
1441
1442
1443 Version 1.2.6
1444 -------------
1445
1446 *(Released Wed, 24 Sep 2008)*
1447
1448 - new ``--hvm-nic-type`` and ``--hvm-disk-type`` flags to control the
1449   type of disk exported to fully virtualized instances.
1450 - provide access to the serial console of HVM instances
1451 - instance auto_balance flag, set by default. If turned off it will
1452   avoid warnings on cluster verify if there is not enough memory to fail
1453   over an instance. in the future it will prevent automatically failing
1454   it over when we will support that.
1455 - batcher tool for instance creation, see ``tools/README.batcher``
1456 - ``gnt-instance reinstall --select-os`` to interactively select a new
1457   operating system when reinstalling an instance.
1458 - when changing the memory amount on instance modify a check has been
1459   added that the instance will be able to start. also warnings are
1460   emitted if the instance will not be able to fail over, if auto_balance
1461   is true.
1462 - documentation fixes
1463 - sync fields between ``gnt-instance list/modify/add/import``
1464 - fix a race condition in drbd when the sync speed was set after giving
1465   the device a remote peer.
1466
1467
1468 Version 1.2.5
1469 -------------
1470
1471 *(Released Tue, 22 Jul 2008)*
1472
1473 - note: the allowed size and number of tags per object were reduced
1474 - fix a bug in ``gnt-cluster verify`` with inconsistent volume groups
1475 - fixed twisted 8.x compatibility
1476 - fixed ``gnt-instance replace-disks`` with iallocator
1477 - add TCP keepalives on twisted connections to detect restarted nodes
1478 - disk increase support, see ``gnt-instance grow-disk``
1479 - implement bulk node/instance query for RAPI
1480 - add tags in node/instance listing (optional)
1481 - experimental migration (and live migration) support, read the man page
1482   for ``gnt-instance migrate``
1483 - the ``ganeti-watcher`` logs are now timestamped, and the watcher also
1484   has some small improvements in handling its state file
1485
1486
1487 Version 1.2.4
1488 -------------
1489
1490 *(Released Fri, 13 Jun 2008)*
1491
1492 - Experimental readonly, REST-based remote API implementation;
1493   automatically started on master node, TCP port 5080, if enabled by
1494   ``--enable-rapi`` parameter to configure script.
1495 - Instance allocator support. Add and import instance accept a
1496   ``--iallocator`` parameter, and call that instance allocator to decide
1497   which node to use for the instance. The iallocator document describes
1498   what's expected from an allocator script.
1499 - ``gnt-cluster verify`` N+1 memory redundancy checks: Unless passed the
1500   ``--no-nplus1-mem`` option ``gnt-cluster verify`` now checks that if a
1501   node is lost there is still enough memory to fail over the instances
1502   that reside on it.
1503 - ``gnt-cluster verify`` hooks: it is now possible to add post-hooks to
1504   ``gnt-cluster verify``, to check for site-specific compliance. All the
1505   hooks will run, and their output, if any, will be displayed. Any
1506   failing hook will make the verification return an error value.
1507 - ``gnt-cluster verify`` now checks that its peers are reachable on the
1508   primary and secondary interfaces
1509 - ``gnt-node add`` now supports the ``--readd`` option, to readd a node
1510   that is still declared as part of the cluster and has failed.
1511 - ``gnt-* list`` commands now accept a new ``-o +field`` way of
1512   specifying output fields, that just adds the chosen fields to the
1513   default ones.
1514 - ``gnt-backup`` now has a new ``remove`` command to delete an existing
1515   export from the filesystem.
1516 - New per-instance parameters hvm_acpi, hvm_pae and hvm_cdrom_image_path
1517   have been added. Using them you can enable/disable acpi and pae
1518   support, and specify a path for a cd image to be exported to the
1519   instance. These parameters as the name suggest only work on HVM
1520   clusters.
1521 - When upgrading an HVM cluster to Ganeti 1.2.4, the values for ACPI and
1522   PAE support will be set to the previously hardcoded values, but the
1523   (previously hardcoded) path to the CDROM ISO image will be unset and
1524   if required, needs to be set manually with ``gnt-instance modify``
1525   after the upgrade.
1526 - The address to which an instance's VNC console is bound is now
1527   selectable per-instance, rather than being cluster wide. Of course
1528   this only applies to instances controlled via VNC, so currently just
1529   applies to HVM clusters.
1530
1531
1532 Version 1.2.3
1533 -------------
1534
1535 *(Released Mon, 18 Feb 2008)*
1536
1537 - more tweaks to the disk activation code (especially helpful for DRBD)
1538 - change the default ``gnt-instance list`` output format, now there is
1539   one combined status field (see the manpage for the exact values this
1540   field will have)
1541 - some more fixes for the mac export to hooks change
1542 - make Ganeti not break with DRBD 8.2.x (which changed the version
1543   format in ``/proc/drbd``) (issue 24)
1544 - add an upgrade tool from "remote_raid1" disk template to "drbd" disk
1545   template, allowing migration from DRBD0.7+MD to DRBD8
1546
1547
1548 Version 1.2.2
1549 -------------
1550
1551 *(Released Wed, 30 Jan 2008)*
1552
1553 - fix ``gnt-instance modify`` breakage introduced in 1.2.1 with the HVM
1554   support (issue 23)
1555 - add command aliases infrastructure and a few aliases
1556 - allow listing of VCPUs in the ``gnt-instance list`` and improve the
1557   man pages and the ``--help`` option of ``gnt-node
1558   list``/``gnt-instance list``
1559 - fix ``gnt-backup list`` with down nodes (issue 21)
1560 - change the tools location (move from $pkgdatadir to $pkglibdir/tools)
1561 - fix the dist archive and add a check for including svn/git files in
1562   the future
1563 - some developer-related changes: improve the burnin and the QA suite,
1564   add an upload script for testing during development
1565
1566
1567 Version 1.2.1
1568 -------------
1569
1570 *(Released Wed, 16 Jan 2008)*
1571
1572 - experimental HVM support, read the install document, section
1573   "Initializing the cluster"
1574 - allow for the PVM hypervisor per-instance kernel and initrd paths
1575 - add a new command ``gnt-cluster verify-disks`` which uses a new
1576   algorithm to improve the reconnection of the DRBD pairs if the device
1577   on the secondary node has gone away
1578 - make logical volume code auto-activate LVs at disk activation time
1579 - slightly improve the speed of activating disks
1580 - allow specification of the MAC address at instance creation time, and
1581   changing it later via ``gnt-instance modify``
1582 - fix handling of external commands that generate lots of output on
1583   stderr
1584 - update documentation with regard to minimum version of DRBD8 supported
1585
1586
1587 Version 1.2.0
1588 -------------
1589
1590 *(Released Tue, 4 Dec 2007)*
1591
1592 - Log the ``xm create`` output to the node daemon log on failure (to
1593   help diagnosing the error)
1594 - In debug mode, log all external commands output if failed to the logs
1595 - Change parsing of lvm commands to ignore stderr
1596
1597
1598 Version 1.2b3
1599 -------------
1600
1601 *(Released Wed, 28 Nov 2007)*
1602
1603 - Another round of updates to the DRBD 8 code to deal with more failures
1604   in the replace secondary node operation
1605 - Some more logging of failures in disk operations (lvm, drbd)
1606 - A few documentation updates
1607 - QA updates
1608
1609
1610 Version 1.2b2
1611 -------------
1612
1613 *(Released Tue, 13 Nov 2007)*
1614
1615 - Change configuration file format from Python's Pickle to JSON.
1616   Upgrading is possible using the cfgupgrade utility.
1617 - Add support for DRBD 8.0 (new disk template ``drbd``) which allows for
1618   faster replace disks and is more stable (DRBD 8 has many improvements
1619   compared to DRBD 0.7)
1620 - Added command line tags support (see man pages for ``gnt-instance``,
1621   ``gnt-node``, ``gnt-cluster``)
1622 - Added instance rename support
1623 - Added multi-instance startup/shutdown
1624 - Added cluster rename support
1625 - Added ``gnt-node evacuate`` to simplify some node operations
1626 - Added instance reboot operation that can speedup reboot as compared to
1627   stop and start
1628 - Soften the requirement that hostnames are in FQDN format
1629 - The ``ganeti-watcher`` now activates drbd pairs after secondary node
1630   reboots
1631 - Removed dependency on debian's patched fping that uses the
1632   non-standard ``-S`` option
1633 - Now the OS definitions are searched for in multiple, configurable
1634   paths (easier for distros to package)
1635 - Some changes to the hooks infrastructure (especially the new
1636   post-configuration update hook)
1637 - Other small bugfixes
1638
1639 .. vim: set textwidth=72 syntax=rst :
1640 .. Local Variables:
1641 .. mode: rst
1642 .. fill-column: 72
1643 .. End: