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