Statistics
| Branch: | Tag: | Revision:

root / NEWS @ c1912a48

History | View | Annotate | Download (91.3 kB)

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 to be listed in
15
  ``$sysconfdir/ganeti/file-storage-paths`` now. ``cfgupgrade`` will
16
  write the file automatically based on old configuration values, but it
17
  can 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 (starting with ``#``) are ignored for better
28
  readability.
29
- The ``setup-ssh`` tool added in Ganeti 2.2 has been replaced and is no
30
  longer available. ``gnt-node add`` now invokes a new tool on the
31
  destination node, named ``prepare-node-join``, to configure the SSH
32
  daemon. Paramiko is no longer necessary to configure nodes' SSH
33
  daemons via ``gnt-node add``.
34
- A new user option, :pyeval:`rapi.RAPI_ACCESS_READ`, has been added
35
  for RAPI users. It allows granting permissions to query for
36
  information to a specific user without giving
37
  :pyeval:`rapi.RAPI_ACCESS_WRITE` permissions.
38
- A new tool named ``node-cleanup`` has been added. It cleans remains of
39
  a cluster from a machine by stopping all daemons, removing
40
  certificates and ssconf files. Unless the ``--no-backup`` option is
41
  given, copies of the certificates are made.
42
- Draining (``gnt-cluster queue drain``) and un-draining the job queue
43
  (``gnt-cluster queue undrain``) now affects all nodes in a cluster and
44
  the flag is not reset after a master failover.
45
- Instance creations now support the use of opportunistic locking,
46
  potentially speeding up the (parallel) creation of multiple instances.
47
  This feature is currently only available via the :doc:`RAPI
48
  <rapi>` interface and when an instance allocator is used. If the
49
  ``opportunistic_locking`` parameter is set the opcode will try to
50
  acquire as many locks as possible, but will not wait for any locks
51
  held by other opcodes. If the not enough resources can be found to
52
  allocate the instance, the temporary error code
53
  :pyeval:`errors.ECODE_TEMP_NORES` is returned. The operation can be
54
  retried thereafter, with or without opportunistic locking.
55

    
56

    
57
Version 2.6.1
58
-------------
59

    
60
*(Released Fri, 12 Oct 2012)*
61

    
62
A small bugfix release. Among the bugs fixed:
63

    
64
- Fixed double use of ``PRIORITY_OPT`` in ``gnt-node migrate``, that
65
  made the command unusable.
66
- Commands that issue many jobs don't fail anymore just because some jobs
67
  take so long that other jobs are archived.
68
- Failures during ``gnt-instance reinstall`` are reflected by the exit
69
  status.
70
- Issue 190 fixed. Check for DRBD in cluster verify is enabled only when
71
  DRBD is enabled.
72
- When ``always_failover`` is set, ``--allow-failover`` is not required
73
  in migrate commands anymore.
74
- ``bash_completion`` works even if extglob is disabled.
75
- Fixed bug with locks that made failover for RDB-based instances fail.
76
- Fixed bug in non-mirrored instance allocation that made Ganeti choose
77
  a random node instead of one based on the allocator metric.
78
- Support for newer versions of pylint and pep8.
79
- Hail doesn't fail anymore when trying to add an instance of type
80
  ``file``, ``sharedfile`` or ``rbd``.
81
- Added new Makefile target to rebuild the whole distribution, so that
82
  all files are included.
83

    
84

    
85
Version 2.6.0
86
-------------
87

    
88
*(Released Fri, 27 Jul 2012)*
89

    
90

    
91
.. attention:: The ``LUXI`` protocol has been made more consistent
92
   regarding its handling of command arguments. This, however, leads to
93
   incompatibility issues with previous versions. Please ensure that you
94
   restart Ganeti daemons soon after the upgrade, otherwise most
95
   ``LUXI`` calls (job submission, setting/resetting the drain flag,
96
   pausing/resuming the watcher, cancelling and archiving jobs, querying
97
   the cluster configuration) will fail.
98

    
99

    
100
New features
101
~~~~~~~~~~~~
102

    
103
Instance run status
104
+++++++++++++++++++
105

    
106
The current ``admin_up`` field, which used to denote whether an instance
107
should be running or not, has been removed. Instead, ``admin_state`` is
108
introduced, with 3 possible values -- ``up``, ``down`` and ``offline``.
109

    
110
The rational behind this is that an instance being “down” can have
111
different meanings:
112

    
113
- it could be down during a reboot
114
- it could be temporarily be down for a reinstall
115
- or it could be down because it is deprecated and kept just for its
116
  disk
117

    
118
The previous Boolean state was making it difficult to do capacity
119
calculations: should Ganeti reserve memory for a down instance? Now, the
120
tri-state field makes it clear:
121

    
122
- in ``up`` and ``down`` state, all resources are reserved for the
123
  instance, and it can be at any time brought up if it is down
124
- in ``offline`` state, only disk space is reserved for it, but not
125
  memory or CPUs
126

    
127
The field can have an extra use: since the transition between ``up`` and
128
``down`` and vice-versus is done via ``gnt-instance start/stop``, but
129
transition between ``offline`` and ``down`` is done via ``gnt-instance
130
modify``, it is possible to given different rights to users. For
131
example, owners of an instance could be allowed to start/stop it, but
132
not transition it out of the offline state.
133

    
134
Instance policies and specs
135
+++++++++++++++++++++++++++
136

    
137
In previous Ganeti versions, an instance creation request was not
138
limited on the minimum size and on the maximum size just by the cluster
139
resources. As such, any policy could be implemented only in third-party
140
clients (RAPI clients, or shell wrappers over ``gnt-*``
141
tools). Furthermore, calculating cluster capacity via ``hspace`` again
142
required external input with regards to instance sizes.
143

    
144
In order to improve these workflows and to allow for example better
145
per-node group differentiation, we introduced instance specs, which
146
allow declaring:
147

    
148
- minimum instance disk size, disk count, memory size, cpu count
149
- maximum values for the above metrics
150
- and “standard” values (used in ``hspace`` to calculate the standard
151
  sized instances)
152

    
153
The minimum/maximum values can be also customised at node-group level,
154
for example allowing more powerful hardware to support bigger instance
155
memory sizes.
156

    
157
Beside the instance specs, there are a few other settings belonging to
158
the instance policy framework. It is possible now to customise, per
159
cluster and node-group:
160

    
161
- the list of allowed disk templates
162
- the maximum ratio of VCPUs per PCPUs (to control CPU oversubscription)
163
- the maximum ratio of instance to spindles (see below for more
164
  information) for local storage
165

    
166
All these together should allow all tools that talk to Ganeti to know
167
what are the ranges of allowed values for instances and the
168
over-subscription that is allowed.
169

    
170
For the VCPU/PCPU ratio, we already have the VCPU configuration from the
171
instance configuration, and the physical CPU configuration from the
172
node. For the spindle ratios however, we didn't track before these
173
values, so new parameters have been added:
174

    
175
- a new node parameter ``spindle_count``, defaults to 1, customisable at
176
  node group or node level
177
- at new backend parameter (for instances), ``spindle_use`` defaults to 1
178

    
179
Note that spindles in this context doesn't need to mean actual
180
mechanical hard-drives; it's just a relative number for both the node
181
I/O capacity and instance I/O consumption.
182

    
183
Instance migration behaviour
184
++++++++++++++++++++++++++++
185

    
186
While live-migration is in general desirable over failover, it is
187
possible that for some workloads it is actually worse, due to the
188
variable time of the “suspend” phase during live migration.
189

    
190
To allow the tools to work consistently over such instances (without
191
having to hard-code instance names), a new backend parameter
192
``always_failover`` has been added to control the migration/failover
193
behaviour. When set to True, all migration requests for an instance will
194
instead fall-back to failover.
195

    
196
Instance memory ballooning
197
++++++++++++++++++++++++++
198

    
199
Initial support for memory ballooning has been added. The memory for an
200
instance is no longer fixed (backend parameter ``memory``), but instead
201
can vary between minimum and maximum values (backend parameters
202
``minmem`` and ``maxmem``). Currently we only change an instance's
203
memory when:
204

    
205
- live migrating or failing over and instance and the target node
206
  doesn't have enough memory
207
- user requests changing the memory via ``gnt-instance modify
208
  --runtime-memory``
209

    
210
Instance CPU pinning
211
++++++++++++++++++++
212

    
213
In order to control the use of specific CPUs by instance, support for
214
controlling CPU pinning has been added for the Xen, HVM and LXC
215
hypervisors. This is controlled by a new hypervisor parameter
216
``cpu_mask``; details about possible values for this are in the
217
:manpage:`gnt-instance(8)`. Note that use of the most specific (precise
218
VCPU-to-CPU mapping) form will work well only when all nodes in your
219
cluster have the same amount of CPUs.
220

    
221
Disk parameters
222
+++++++++++++++
223

    
224
Another area in which Ganeti was not customisable were the parameters
225
used for storage configuration, e.g. how many stripes to use for LVM,
226
DRBD resync configuration, etc.
227

    
228
To improve this area, we've added disks parameters, which are
229
customisable at cluster and node group level, and which allow to
230
specify various parameters for disks (DRBD has the most parameters
231
currently), for example:
232

    
233
- DRBD resync algorithm and parameters (e.g. speed)
234
- the default VG for meta-data volumes for DRBD
235
- number of stripes for LVM (plain disk template)
236
- the RBD pool
237

    
238
These parameters can be modified via ``gnt-cluster modify -D …`` and
239
``gnt-group modify -D …``, and are used at either instance creation (in
240
case of LVM stripes, for example) or at disk “activation” time
241
(e.g. resync speed).
242

    
243
Rados block device support
244
++++++++++++++++++++++++++
245

    
246
A Rados (http://ceph.com/wiki/Rbd) storage backend has been added,
247
denoted by the ``rbd`` disk template type. This is considered
248
experimental, feedback is welcome. For details on configuring it, see
249
the :doc:`install` document and the :manpage:`gnt-cluster(8)` man page.
250

    
251
Master IP setup
252
+++++++++++++++
253

    
254
The existing master IP functionality works well only in simple setups (a
255
single network shared by all nodes); however, if nodes belong to
256
different networks, then the ``/32`` setup and lack of routing
257
information is not enough.
258

    
259
To allow the master IP to function well in more complex cases, the
260
system was reworked as follows:
261

    
262
- a master IP netmask setting has been added
263
- the master IP activation/turn-down code was moved from the node daemon
264
  to a separate script
265
- whether to run the Ganeti-supplied master IP script or a user-supplied
266
  on is a ``gnt-cluster init`` setting
267

    
268
Details about the location of the standard and custom setup scripts are
269
in the man page :manpage:`gnt-cluster(8)`; for information about the
270
setup script protocol, look at the Ganeti-supplied script.
271

    
272
SPICE support
273
+++++++++++++
274

    
275
The `SPICE <http://www.linux-kvm.org/page/SPICE>`_ support has been
276
improved.
277

    
278
It is now possible to use TLS-protected connections, and when renewing
279
or changing the cluster certificates (via ``gnt-cluster renew-crypto``,
280
it is now possible to specify spice or spice CA certificates. Also, it
281
is possible to configure a password for SPICE sessions via the
282
hypervisor parameter ``spice_password_file``.
283

    
284
There are also new parameters to control the compression and streaming
285
options (e.g. ``spice_image_compression``, ``spice_streaming_video``,
286
etc.). For details, see the man page :manpage:`gnt-instance(8)` and look
287
for the spice parameters.
288

    
289
Lastly, it is now possible to see the SPICE connection information via
290
``gnt-instance console``.
291

    
292
OVF converter
293
+++++++++++++
294

    
295
A new tool (``tools/ovfconverter``) has been added that supports
296
conversion between Ganeti and the `Open Virtualization Format
297
<http://en.wikipedia.org/wiki/Open_Virtualization_Format>`_ (both to and
298
from).
299

    
300
This relies on the ``qemu-img`` tool to convert the disk formats, so the
301
actual compatibility with other virtualization solutions depends on it.
302

    
303
Confd daemon changes
304
++++++++++++++++++++
305

    
306
The configuration query daemon (``ganeti-confd``) is now optional, and
307
has been rewritten in Haskell; whether to use the daemon at all, use the
308
Python (default) or the Haskell version is selectable at configure time
309
via the ``--enable-confd`` parameter, which can take one of the
310
``haskell``, ``python`` or ``no`` values. If not used, disabling the
311
daemon will result in a smaller footprint; for larger systems, we
312
welcome feedback on the Haskell version which might become the default
313
in future versions.
314

    
315
If you want to use ``gnt-node list-drbd`` you need to have the Haskell
316
daemon running. The Python version doesn't implement the new call.
317

    
318

    
319
User interface changes
320
~~~~~~~~~~~~~~~~~~~~~~
321

    
322
We have replaced the ``--disks`` option of ``gnt-instance
323
replace-disks`` with a more flexible ``--disk`` option, which allows
324
adding and removing disks at arbitrary indices (Issue 188). Furthermore,
325
disk size and mode can be changed upon recreation (via ``gnt-instance
326
recreate-disks``, which accepts the same ``--disk`` option).
327

    
328
As many people are used to a ``show`` command, we have added that as an
329
alias to ``info`` on all ``gnt-*`` commands.
330

    
331
The ``gnt-instance grow-disk`` command has a new mode in which it can
332
accept the target size of the disk, instead of the delta; this can be
333
more safe since two runs in absolute mode will be idempotent, and
334
sometimes it's also easier to specify the desired size directly.
335

    
336
Also the handling of instances with regard to offline secondaries has
337
been improved. Instance operations should not fail because one of it's
338
secondary nodes is offline, even though it's safe to proceed.
339

    
340
A new command ``list-drbd`` has been added to the ``gnt-node`` script to
341
support debugging of DRBD issues on nodes. It provides a mapping of DRBD
342
minors to instance name.
343

    
344
API changes
345
~~~~~~~~~~~
346

    
347
RAPI coverage has improved, with (for example) new resources for
348
recreate-disks, node power-cycle, etc.
349

    
350
Compatibility
351
~~~~~~~~~~~~~
352

    
353
There is partial support for ``xl`` in the Xen hypervisor; feedback is
354
welcome.
355

    
356
Python 2.7 is better supported, and after Ganeti 2.6 we will investigate
357
whether to still support Python 2.4 or move to Python 2.6 as minimum
358
required version.
359

    
360
Support for Fedora has been slightly improved; the provided example
361
init.d script should work better on it and the INSTALL file should
362
document the needed dependencies.
363

    
364
Internal changes
365
~~~~~~~~~~~~~~~~
366

    
367
The deprecated ``QueryLocks`` LUXI request has been removed. Use
368
``Query(what=QR_LOCK, ...)`` instead.
369

    
370
The LUXI requests :pyeval:`luxi.REQ_QUERY_JOBS`,
371
:pyeval:`luxi.REQ_QUERY_INSTANCES`, :pyeval:`luxi.REQ_QUERY_NODES`,
372
:pyeval:`luxi.REQ_QUERY_GROUPS`, :pyeval:`luxi.REQ_QUERY_EXPORTS` and
373
:pyeval:`luxi.REQ_QUERY_TAGS` are deprecated and will be removed in a
374
future version. :pyeval:`luxi.REQ_QUERY` should be used instead.
375

    
376
RAPI client: ``CertificateError`` now derives from
377
``GanetiApiError``. This should make it more easy to handle Ganeti
378
errors.
379

    
380
Deprecation warnings due to PyCrypto/paramiko import in
381
``tools/setup-ssh`` have been silenced, as usually they are safe; please
382
make sure to run an up-to-date paramiko version, if you use this tool.
383

    
384
The QA scripts now depend on Python 2.5 or above (the main code base
385
still works with Python 2.4).
386

    
387
The configuration file (``config.data``) is now written without
388
indentation for performance reasons; if you want to edit it, it can be
389
re-formatted via ``tools/fmtjson``.
390

    
391
A number of bugs has been fixed in the cluster merge tool.
392

    
393
``x509`` certification verification (used in import-export) has been
394
changed to allow the same clock skew as permitted by the cluster
395
verification. This will remove some rare but hard to diagnose errors in
396
import-export.
397

    
398

    
399
Version 2.6.0 rc4
400
-----------------
401

    
402
*(Released Thu, 19 Jul 2012)*
403

    
404
Very few changes from rc4 to the final release, only bugfixes:
405

    
406
- integrated fixes from release 2.5.2 (fix general boot flag for KVM
407
  instance, fix CDROM booting for KVM instances)
408
- fixed node group modification of node parameters
409
- fixed issue in LUClusterVerifyGroup with multi-group clusters
410
- fixed generation of bash completion to ensure a stable ordering
411
- fixed a few typos
412

    
413

    
414
Version 2.6.0 rc3
415
-----------------
416

    
417
*(Released Fri, 13 Jul 2012)*
418

    
419
Third release candidate for 2.6. The following changes were done from
420
rc3 to rc4:
421

    
422
- Fixed ``UpgradeConfig`` w.r.t. to disk parameters on disk objects.
423
- Fixed an inconsistency in the LUXI protocol with the provided
424
  arguments (NOT backwards compatible)
425
- Fixed a bug with node groups ipolicy where ``min`` was greater than
426
  the cluster ``std`` value
427
- Implemented a new ``gnt-node list-drbd`` call to list DRBD minors for
428
  easier instance debugging on nodes (requires ``hconfd`` to work)
429

    
430

    
431
Version 2.6.0 rc2
432
-----------------
433

    
434
*(Released Tue, 03 Jul 2012)*
435

    
436
Second release candidate for 2.6. The following changes were done from
437
rc2 to rc3:
438

    
439
- Fixed ``gnt-cluster verify`` regarding ``master-ip-script`` on non
440
  master candidates
441
- Fixed a RAPI regression on missing beparams/memory
442
- Fixed redistribution of files on offline nodes
443
- Added possibility to run activate-disks even though secondaries are
444
  offline. With this change it relaxes also the strictness on some other
445
  commands which use activate disks internally:
446
  * ``gnt-instance start|reboot|rename|backup|export``
447
- Made it possible to remove safely an instance if its secondaries are
448
  offline
449
- Made it possible to reinstall even though secondaries are offline
450

    
451

    
452
Version 2.6.0 rc1
453
-----------------
454

    
455
*(Released Mon, 25 Jun 2012)*
456

    
457
First release candidate for 2.6. The following changes were done from
458
rc1 to rc2:
459

    
460
- Fixed bugs with disk parameters and ``rbd`` templates as well as
461
  ``instance_os_add``
462
- Made ``gnt-instance modify`` more consistent regarding new NIC/Disk
463
  behaviour. It supports now the modify operation
464
- ``hcheck`` implemented to analyze cluster health and possibility of
465
  improving health by rebalance
466
- ``hbal`` has been improved in dealing with split instances
467

    
468

    
469
Version 2.6.0 beta2
470
-------------------
471

    
472
*(Released Mon, 11 Jun 2012)*
473

    
474
Second beta release of 2.6. The following changes were done from beta2
475
to rc1:
476

    
477
- Fixed ``daemon-util`` with non-root user models
478
- Fixed creation of plain instances with ``--no-wait-for-sync``
479
- Fix wrong iv_names when running ``cfgupgrade``
480
- Export more information in RAPI group queries
481
- Fixed bug when changing instance network interfaces
482
- Extended burnin to do NIC changes
483
- query: Added ``<``, ``>``, ``<=``, ``>=`` comparison operators
484
- Changed default for DRBD barriers
485
- Fixed DRBD error reporting for syncer rate
486
- Verify the options on disk parameters
487

    
488
And of course various fixes to documentation and improved unittests and
489
QA.
490

    
491

    
492
Version 2.6.0 beta1
493
-------------------
494

    
495
*(Released Wed, 23 May 2012)*
496

    
497
First beta release of 2.6. The following changes were done from beta1 to
498
beta2:
499

    
500
- integrated patch for distributions without ``start-stop-daemon``
501
- adapted example init.d script to work on Fedora
502
- fixed log handling in Haskell daemons
503
- adapted checks in the watcher for pycurl linked against libnss
504
- add partial support for ``xl`` instead of ``xm`` for Xen
505
- fixed a type issue in cluster verification
506
- fixed ssconf handling in the Haskell code (was breaking confd in IPv6
507
  clusters)
508

    
509
Plus integrated fixes from the 2.5 branch:
510

    
511
- fixed ``kvm-ifup`` to use ``/bin/bash``
512
- fixed parallel build failures
513
- KVM live migration when using a custom keymap
514

    
515

    
516
Version 2.5.2
517
-------------
518

    
519
*(Released Tue, 24 Jul 2012)*
520

    
521
A small bugfix release, with no new features:
522

    
523
- fixed bash-isms in kvm-ifup, for compatibility with systems which use a
524
  different default shell (e.g. Debian, Ubuntu)
525
- fixed KVM startup and live migration with a custom keymap (fixes Issue
526
  243 and Debian bug #650664)
527
- fixed compatibility with KVM versions that don't support multiple boot
528
  devices (fixes Issue 230 and Debian bug #624256)
529

    
530
Additionally, a few fixes were done to the build system (fixed parallel
531
build failures) and to the unittests (fixed race condition in test for
532
FileID functions, and the default enable/disable mode for QA test is now
533
customisable).
534

    
535

    
536
Version 2.5.1
537
-------------
538

    
539
*(Released Fri, 11 May 2012)*
540

    
541
A small bugfix release.
542

    
543
The main issues solved are on the topic of compatibility with newer LVM
544
releases:
545

    
546
- fixed parsing of ``lv_attr`` field
547
- adapted to new ``vgreduce --removemissing`` behaviour where sometimes
548
  the ``--force`` flag is needed
549

    
550
Also on the topic of compatibility, ``tools/lvmstrap`` has been changed
551
to accept kernel 3.x too (was hardcoded to 2.6.*).
552

    
553
A regression present in 2.5.0 that broke handling (in the gnt-* scripts)
554
of hook results and that also made display of other errors suboptimal
555
was fixed; the code behaves now like 2.4 and earlier.
556

    
557
Another change in 2.5, the cleanup of the OS scripts environment, is too
558
aggressive: it removed even the ``PATH`` variable, which requires the OS
559
scripts to *always* need to export it. Since this is a bit too strict,
560
we now export a minimal PATH, the same that we export for hooks.
561

    
562
The fix for issue 201 (Preserve bridge MTU in KVM ifup script) was
563
integrated into this release.
564

    
565
Finally, a few other miscellaneous changes were done (no new features,
566
just small improvements):
567

    
568
- Fix ``gnt-group --help`` display
569
- Fix hardcoded Xen kernel path
570
- Fix grow-disk handling of invalid units
571
- Update synopsis for ``gnt-cluster repair-disk-sizes``
572
- Accept both PUT and POST in noded (makes future upgrade to 2.6 easier)
573

    
574

    
575
Version 2.5.0
576
-------------
577

    
578
*(Released Thu, 12 Apr 2012)*
579

    
580
Incompatible/important changes and bugfixes
581
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
582

    
583
- The default of the ``/2/instances/[instance_name]/rename`` RAPI
584
  resource's ``ip_check`` parameter changed from ``True`` to ``False``
585
  to match the underlying LUXI interface.
586
- The ``/2/nodes/[node_name]/evacuate`` RAPI resource was changed to use
587
  body parameters, see :doc:`RAPI documentation <rapi>`. The server does
588
  not maintain backwards-compatibility as the underlying operation
589
  changed in an incompatible way. The RAPI client can talk to old
590
  servers, but it needs to be told so as the return value changed.
591
- When creating file-based instances via RAPI, the ``file_driver``
592
  parameter no longer defaults to ``loop`` and must be specified.
593
- The deprecated ``bridge`` NIC parameter is no longer supported. Use
594
  ``link`` instead.
595
- Support for the undocumented and deprecated RAPI instance creation
596
  request format version 0 has been dropped. Use version 1, supported
597
  since Ganeti 2.1.3 and :doc:`documented <rapi>`, instead.
598
- Pyparsing 1.4.6 or above is required, see :doc:`installation
599
  documentation <install>`.
600
- The "cluster-verify" hooks are now executed per group by the
601
  ``OP_CLUSTER_VERIFY_GROUP`` opcode. This maintains the same behavior
602
  if you just run ``gnt-cluster verify``, which generates one opcode per
603
  group.
604
- The environment as passed to the OS scripts is cleared, and thus no
605
  environment variables defined in the node daemon's environment will be
606
  inherited by the scripts.
607
- The :doc:`iallocator <iallocator>` mode ``multi-evacuate`` has been
608
  deprecated.
609
- :doc:`New iallocator modes <design-multi-reloc>` have been added to
610
  support operations involving multiple node groups.
611
- Offline nodes are ignored when failing over an instance.
612
- Support for KVM version 1.0, which changed the version reporting format
613
  from 3 to 2 digits.
614
- TCP/IP ports used by DRBD disks are returned to a pool upon instance
615
  removal.
616
- ``Makefile`` is now compatible with Automake 1.11.2
617
- Includes all bugfixes made in the 2.4 series
618

    
619
New features
620
~~~~~~~~~~~~
621

    
622
- The ganeti-htools project has been merged into the ganeti-core source
623
  tree and will be built as part of Ganeti (see :doc:`install-quick`).
624
- Implemented support for :doc:`shared storage <design-shared-storage>`.
625
- Add support for disks larger than 2 TB in ``lvmstrap`` by supporting
626
  GPT-style partition tables (requires `parted
627
  <http://www.gnu.org/s/parted/>`_).
628
- Added support for floppy drive and 2nd CD-ROM drive in KVM hypervisor.
629
- Allowed adding tags on instance creation.
630
- Export instance tags to hooks (``INSTANCE_TAGS``, see :doc:`hooks`)
631
- Allow instances to be started in a paused state, enabling the user to
632
  see the complete console output on boot using the console.
633
- Added new hypervisor flag to control default reboot behaviour
634
  (``reboot_behavior``).
635
- Added support for KVM keymaps (hypervisor parameter ``keymap``).
636
- Improved out-of-band management support:
637

    
638
  - Added ``gnt-node health`` command reporting the health status of
639
    nodes.
640
  - Added ``gnt-node power`` command to manage power status of nodes.
641
  - Added command for emergency power-off (EPO), ``gnt-cluster epo``.
642

    
643
- Instance migration can fall back to failover if instance is not
644
  running.
645
- Filters can be used when listing nodes, instances, groups and locks;
646
  see *ganeti(7)* manpage.
647
- Added post-execution status as variables to :doc:`hooks <hooks>`
648
  environment.
649
- Instance tags are exported/imported together with the instance.
650
- When given an explicit job ID, ``gnt-job info`` will work for archived
651
  jobs.
652
- Jobs can define dependencies on other jobs (not yet supported via
653
  RAPI or command line, but used by internal commands and usable via
654
  LUXI).
655

    
656
  - Lock monitor (``gnt-debug locks``) shows jobs waiting for
657
    dependencies.
658

    
659
- Instance failover is now available as a RAPI resource
660
  (``/2/instances/[instance_name]/failover``).
661
- ``gnt-instance info`` defaults to static information if primary node
662
  is offline.
663
- Opcodes have a new ``comment`` attribute.
664
- Added basic SPICE support to KVM hypervisor.
665
- ``tools/ganeti-listrunner`` allows passing of arguments to executable.
666

    
667
Node group improvements
668
~~~~~~~~~~~~~~~~~~~~~~~
669

    
670
- ``gnt-cluster verify`` has been modified to check groups separately,
671
  thereby improving performance.
672
- Node group support has been added to ``gnt-cluster verify-disks``,
673
  which now operates per node group.
674
- Watcher has been changed to work better with node groups.
675

    
676
  - One process and state file per node group.
677
  - Slow watcher in one group doesn't block other group's watcher.
678

    
679
- Added new command, ``gnt-group evacuate``, to move all instances in a
680
  node group to other groups.
681
- Added ``gnt-instance change-group`` to move an instance to another
682
  node group.
683
- ``gnt-cluster command`` and ``gnt-cluster copyfile`` now support
684
  per-group operations.
685
- Node groups can be tagged.
686
- Some operations switch from an exclusive to a shared lock as soon as
687
  possible.
688
- Instance's primary and secondary nodes' groups are now available as
689
  query fields (``pnode.group``, ``pnode.group.uuid``, ``snodes.group``
690
  and ``snodes.group.uuid``).
691

    
692
Misc
693
~~~~
694

    
695
- Numerous updates to documentation and manpages.
696

    
697
  - :doc:`RAPI <rapi>` documentation now has detailed parameter
698
    descriptions.
699
  - Some opcode/job results are now also documented, see :doc:`RAPI
700
    <rapi>`.
701

    
702
- A lockset's internal lock is now also visible in lock monitor.
703
- Log messages from job queue workers now contain information about the
704
  opcode they're processing.
705
- ``gnt-instance console`` no longer requires the instance lock.
706
- A short delay when waiting for job changes reduces the number of LUXI
707
  requests significantly.
708
- DRBD metadata volumes are overwritten with zeros during disk creation.
709
- Out-of-band commands no longer acquire the cluster lock in exclusive
710
  mode.
711
- ``devel/upload`` now uses correct permissions for directories.
712

    
713

    
714
Version 2.5.0 rc6
715
-----------------
716

    
717
*(Released Fri, 23 Mar 2012)*
718

    
719
This was the sixth release candidate of the 2.5 series.
720

    
721

    
722
Version 2.5.0 rc5
723
-----------------
724

    
725
*(Released Mon, 9 Jan 2012)*
726

    
727
This was the fifth release candidate of the 2.5 series.
728

    
729

    
730
Version 2.5.0 rc4
731
-----------------
732

    
733
*(Released Thu, 27 Oct 2011)*
734

    
735
This was the fourth release candidate of the 2.5 series.
736

    
737

    
738
Version 2.5.0 rc3
739
-----------------
740

    
741
*(Released Wed, 26 Oct 2011)*
742

    
743
This was the third release candidate of the 2.5 series.
744

    
745

    
746
Version 2.5.0 rc2
747
-----------------
748

    
749
*(Released Tue, 18 Oct 2011)*
750

    
751
This was the second release candidate of the 2.5 series.
752

    
753

    
754
Version 2.5.0 rc1
755
-----------------
756

    
757
*(Released Tue, 4 Oct 2011)*
758

    
759
This was the first release candidate of the 2.5 series.
760

    
761

    
762
Version 2.5.0 beta3
763
-------------------
764

    
765
*(Released Wed, 31 Aug 2011)*
766

    
767
This was the third beta release of the 2.5 series.
768

    
769

    
770
Version 2.5.0 beta2
771
-------------------
772

    
773
*(Released Mon, 22 Aug 2011)*
774

    
775
This was the second beta release of the 2.5 series.
776

    
777

    
778
Version 2.5.0 beta1
779
-------------------
780

    
781
*(Released Fri, 12 Aug 2011)*
782

    
783
This was the first beta release of the 2.5 series.
784

    
785

    
786
Version 2.4.5
787
-------------
788

    
789
*(Released Thu, 27 Oct 2011)*
790

    
791
- Fixed bug when parsing command line parameter values ending in
792
  backslash
793
- Fixed assertion error after unclean master shutdown
794
- Disable HTTP client pool for RPC, significantly reducing memory usage
795
  of master daemon
796
- Fixed queue archive creation with wrong permissions
797

    
798

    
799
Version 2.4.4
800
-------------
801

    
802
*(Released Tue, 23 Aug 2011)*
803

    
804
Small bug-fixes:
805

    
806
- Fixed documentation for importing with ``--src-dir`` option
807
- Fixed a bug in ``ensure-dirs`` with queue/archive permissions
808
- Fixed a parsing issue with DRBD 8.3.11 in the Linux kernel
809

    
810

    
811
Version 2.4.3
812
-------------
813

    
814
*(Released Fri, 5 Aug 2011)*
815

    
816
Many bug-fixes and a few small features:
817

    
818
- Fixed argument order in ``ReserveLV`` and ``ReserveMAC`` which caused
819
  issues when you tried to add an instance with two MAC addresses in one
820
  request
821
- KVM: fixed per-instance stored UID value
822
- KVM: configure bridged NICs at migration start
823
- KVM: Fix a bug where instance will not start with never KVM versions
824
  (>= 0.14)
825
- Added OS search path to ``gnt-cluster info``
826
- Fixed an issue with ``file_storage_dir`` where you were forced to
827
  provide an absolute path, but the documentation states it is a
828
  relative path, the documentation was right
829
- Added a new parameter to instance stop/start called ``--no-remember``
830
  that will make the state change to not be remembered
831
- Implemented ``no_remember`` at RAPI level
832
- Improved the documentation
833
- Node evacuation: don't call IAllocator if node is already empty
834
- Fixed bug in DRBD8 replace disks on current nodes
835
- Fixed bug in recreate-disks for DRBD instances
836
- Moved assertion checking locks in ``gnt-instance replace-disks``
837
  causing it to abort with not owning the right locks for some situation
838
- Job queue: Fixed potential race condition when cancelling queued jobs
839
- Fixed off-by-one bug in job serial generation
840
- ``gnt-node volumes``: Fix instance names
841
- Fixed aliases in bash completion
842
- Fixed a bug in reopening log files after being sent a SIGHUP
843
- Added a flag to burnin to allow specifying VCPU count
844
- Bugfixes to non-root Ganeti configuration
845

    
846

    
847
Version 2.4.2
848
-------------
849

    
850
*(Released Thu, 12 May 2011)*
851

    
852
Many bug-fixes and a few new small features:
853

    
854
- Fixed a bug related to log opening failures
855
- Fixed a bug in instance listing with orphan instances
856
- Fixed a bug which prevented resetting the cluster-level node parameter
857
  ``oob_program`` to the default
858
- Many fixes related to the ``cluster-merge`` tool
859
- Fixed a race condition in the lock monitor, which caused failures
860
  during (at least) creation of many instances in parallel
861
- Improved output for gnt-job info
862
- Removed the quiet flag on some ssh calls which prevented debugging
863
  failures
864
- Improved the N+1 failure messages in cluster verify by actually
865
  showing the memory values (needed and available)
866
- Increased lock attempt timeouts so that when executing long operations
867
  (e.g. DRBD replace-disks) other jobs do not enter 'blocking acquire'
868
  too early and thus prevent the use of the 'fair' mechanism
869
- Changed instance query data (``gnt-instance info``) to not acquire
870
  locks unless needed, thus allowing its use on locked instance if only
871
  static information is asked for
872
- Improved behaviour with filesystems that do not support rename on an
873
  opened file
874
- Fixed the behaviour of ``prealloc_wipe_disks`` cluster parameter which
875
  kept locks on all nodes during the wipe, which is unneeded
876
- Fixed ``gnt-watcher`` handling of errors during hooks execution
877
- Fixed bug in ``prealloc_wipe_disks`` with small disk sizes (less than
878
  10GiB) which caused the wipe to fail right at the end in some cases
879
- Fixed master IP activation when doing master failover with no-voting
880
- Fixed bug in ``gnt-node add --readd`` which allowed the re-adding of
881
  the master node itself
882
- Fixed potential data-loss in under disk full conditions, where Ganeti
883
  wouldn't check correctly the return code and would consider
884
  partially-written files 'correct'
885
- Fixed bug related to multiple VGs and DRBD disk replacing
886
- Added new disk parameter ``metavg`` that allows placement of the meta
887
  device for DRBD in a different volume group
888
- Fixed error handling in the node daemon when the system libc doesn't
889
  have major number 6 (i.e. if ``libc.so.6`` is not the actual libc)
890
- Fixed lock release during replace-disks, which kept cluster-wide locks
891
  when doing disk replaces with an iallocator script
892
- Added check for missing bridges in cluster verify
893
- Handle EPIPE errors while writing to the terminal better, so that
894
  piping the output to e.g. ``less`` doesn't cause a backtrace
895
- Fixed rare case where a ^C during Luxi calls could have been
896
  interpreted as server errors, instead of simply terminating
897
- Fixed a race condition in LUGroupAssignNodes (``gnt-group
898
  assign-nodes``)
899
- Added a few more parameters to the KVM hypervisor, allowing a second
900
  CDROM, custom disk type for CDROMs and a floppy image
901
- Removed redundant message in instance rename when the name is given
902
  already as a FQDN
903
- Added option to ``gnt-instance recreate-disks`` to allow creating the
904
  disks on new nodes, allowing recreation when the original instance
905
  nodes are completely gone
906
- Added option when converting disk templates to DRBD to skip waiting
907
  for the resync, in order to make the instance available sooner
908
- Added two new variables to the OS scripts environment (containing the
909
  instance's nodes)
910
- Made the root_path and optional parameter for the xen-pvm hypervisor,
911
  to allow use of ``pvgrub`` as bootloader
912
- Changed the instance memory modifications to only check out-of-memory
913
  conditions on memory increases, and turned the secondary node warnings
914
  into errors (they can still be overridden via ``--force``)
915
- Fixed the handling of a corner case when the Python installation gets
916
  corrupted (e.g. a bad disk) while ganeti-noded is running and we try
917
  to execute a command that doesn't exist
918
- Fixed a bug in ``gnt-instance move`` (LUInstanceMove) when the primary
919
  node of the instance returned failures during instance shutdown; this
920
  adds the option ``--ignore-consistency`` to gnt-instance move
921

    
922
And as usual, various improvements to the error messages, documentation
923
and man pages.
924

    
925

    
926
Version 2.4.1
927
-------------
928

    
929
*(Released Wed, 09 Mar 2011)*
930

    
931
Emergency bug-fix release. ``tools/cfgupgrade`` was broken and overwrote
932
the RAPI users file if run twice (even with ``--dry-run``).
933

    
934
The release fixes that bug (nothing else changed).
935

    
936

    
937
Version 2.4.0
938
-------------
939

    
940
*(Released Mon, 07 Mar 2011)*
941

    
942
Final 2.4.0 release. Just a few small fixes:
943

    
944
- Fixed RAPI node evacuate
945
- Fixed the kvm-ifup script
946
- Fixed internal error handling for special job cases
947
- Updated man page to specify the escaping feature for options
948

    
949

    
950
Version 2.4.0 rc3
951
-----------------
952

    
953
*(Released Mon, 28 Feb 2011)*
954

    
955
A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
956
that this feature wiped the disks of the wrong instance, leading to loss
957
of data.
958

    
959
Other changes:
960

    
961
- Fixed title of query field containing instance name
962
- Expanded the glossary in the documentation
963
- Fixed one unittest (internal issue)
964

    
965

    
966
Version 2.4.0 rc2
967
-----------------
968

    
969
*(Released Mon, 21 Feb 2011)*
970

    
971
A number of bug fixes plus just a couple functionality changes.
972

    
973
On the user-visible side, the ``gnt-* list`` command output has changed
974
with respect to "special" field states. The current rc1 style of display
975
can be re-enabled by passing a new ``--verbose`` (``-v``) flag, but in
976
the default output mode special fields states are displayed as follows:
977

    
978
- Offline resource: ``*``
979
- Unavailable/not applicable: ``-``
980
- Data missing (RPC failure): ``?``
981
- Unknown field: ``??``
982

    
983
Another user-visible change is the addition of ``--force-join`` to
984
``gnt-node add``.
985

    
986
As for bug fixes:
987

    
988
- ``tools/cluster-merge`` has seen many fixes and is now enabled again
989
- Fixed regression in RAPI/instance reinstall where all parameters were
990
  required (instead of optional)
991
- Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
992
- Fixed iallocator usage (offline nodes were not considered offline)
993
- Fixed ``gnt-node list`` with respect to non-vm_capable nodes
994
- Fixed hypervisor and OS parameter validation with respect to
995
  non-vm_capable nodes
996
- Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
997
  cosmetic)
998
- Fixed ``tools/listrunner`` with respect to agent-based usage
999

    
1000

    
1001
Version 2.4.0 rc1
1002
-----------------
1003

    
1004
*(Released Fri,  4 Feb 2011)*
1005

    
1006
Many changes and fixes since the beta1 release. While there were some
1007
internal changes, the code has been mostly stabilised for the RC
1008
release.
1009

    
1010
Note: the dumb allocator was removed in this release, as it was not kept
1011
up-to-date with the IAllocator protocol changes. It is recommended to
1012
use the ``hail`` command from the ganeti-htools package.
1013

    
1014
Note: the 2.4 and up versions of Ganeti are not compatible with the
1015
0.2.x branch of ganeti-htools. You need to upgrade to
1016
ganeti-htools-0.3.0 (or later).
1017

    
1018
Regressions fixed from 2.3
1019
~~~~~~~~~~~~~~~~~~~~~~~~~~
1020

    
1021
- Fixed the ``gnt-cluster verify-disks`` command
1022
- Made ``gnt-cluster verify-disks`` work in parallel (as opposed to
1023
  serially on nodes)
1024
- Fixed disk adoption breakage
1025
- Fixed wrong headers in instance listing for field aliases
1026

    
1027
Other bugs fixed
1028
~~~~~~~~~~~~~~~~
1029

    
1030
- Fixed corner case in KVM handling of NICs
1031
- Fixed many cases of wrong handling of non-vm_capable nodes
1032
- Fixed a bug where a missing instance symlink was not possible to
1033
  recreate with any ``gnt-*`` command (now ``gnt-instance
1034
  activate-disks`` does it)
1035
- Fixed the volume group name as reported by ``gnt-cluster
1036
  verify-disks``
1037
- Increased timeouts for the import-export code, hopefully leading to
1038
  fewer aborts due network or instance timeouts
1039
- Fixed bug in ``gnt-node list-storage``
1040
- Fixed bug where not all daemons were started on cluster
1041
  initialisation, but only at the first watcher run
1042
- Fixed many bugs in the OOB implementation
1043
- Fixed watcher behaviour in presence of instances with offline
1044
  secondaries
1045
- Fixed instance list output for instances running on the wrong node
1046
- a few fixes to the cluster-merge tool, but it still cannot merge
1047
  multi-node groups (currently it is not recommended to use this tool)
1048

    
1049

    
1050
Improvements
1051
~~~~~~~~~~~~
1052

    
1053
- Improved network configuration for the KVM hypervisor
1054
- Added e1000 as a supported NIC for Xen-HVM
1055
- Improved the lvmstrap tool to also be able to use partitions, as
1056
  opposed to full disks
1057
- Improved speed of disk wiping (the cluster parameter
1058
  ``prealloc_wipe_disks``, so that it has a low impact on the total time
1059
  of instance creations
1060
- Added documentation for the OS parameters
1061
- Changed ``gnt-instance deactivate-disks`` so that it can work if the
1062
  hypervisor is not responding
1063
- Added display of blacklisted and hidden OS information in
1064
  ``gnt-cluster info``
1065
- Extended ``gnt-cluster verify`` to also validate hypervisor, backend,
1066
  NIC and node parameters, which might create problems with currently
1067
  invalid (but undetected) configuration files, but prevents validation
1068
  failures when unrelated parameters are modified
1069
- Changed cluster initialisation to wait for the master daemon to become
1070
  available
1071
- Expanded the RAPI interface:
1072

    
1073
  - Added config redistribution resource
1074
  - Added activation/deactivation of instance disks
1075
  - Added export of console information
1076

    
1077
- Implemented log file reopening on SIGHUP, which allows using
1078
  logrotate(8) for the Ganeti log files
1079
- Added a basic OOB helper script as an example
1080

    
1081

    
1082
Version 2.4.0 beta1
1083
-------------------
1084

    
1085
*(Released Fri, 14 Jan 2011)*
1086

    
1087
User-visible
1088
~~~~~~~~~~~~
1089

    
1090
- Fixed timezone issues when formatting timestamps
1091
- Added support for node groups, available via ``gnt-group`` and other
1092
  commands
1093
- Added out-of-band framework and management, see :doc:`design
1094
  document <design-oob>`
1095
- Removed support for roman numbers from ``gnt-node list`` and
1096
  ``gnt-instance list``.
1097
- Allowed modification of master network interface via ``gnt-cluster
1098
  modify --master-netdev``
1099
- Accept offline secondaries while shutting down instance disks
1100
- Added ``blockdev_prefix`` parameter to Xen PVM and HVM hypervisors
1101
- Added support for multiple LVM volume groups
1102
- Avoid sorting nodes for ``gnt-node list`` if specific nodes are
1103
  requested
1104
- Added commands to list available fields:
1105

    
1106
  - ``gnt-node list-fields``
1107
  - ``gnt-group list-fields``
1108
  - ``gnt-instance list-fields``
1109

    
1110
- Updated documentation and man pages
1111

    
1112
Integration
1113
~~~~~~~~~~~
1114

    
1115
- Moved ``rapi_users`` file into separate directory, now named
1116
  ``.../ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
1117
  symlink
1118
- Added new tool for running commands on many machines,
1119
  ``tools/ganeti-listrunner``
1120
- Implemented more verbose result in ``OpInstanceConsole`` opcode, also
1121
  improving the ``gnt-instance console`` output
1122
- Allowed customisation of disk index separator at ``configure`` time
1123
- Export node group allocation policy to :doc:`iallocator <iallocator>`
1124
- Added support for non-partitioned md disks in ``lvmstrap``
1125
- Added script to gracefully power off KVM instances
1126
- Split ``utils`` module into smaller parts
1127
- Changed query operations to return more detailed information, e.g.
1128
  whether an information is unavailable due to an offline node. To use
1129
  this new functionality, the LUXI call ``Query`` must be used. Field
1130
  information is now stored by the master daemon and can be retrieved
1131
  using ``QueryFields``. Instances, nodes and groups can also be queried
1132
  using the new opcodes ``OpQuery`` and ``OpQueryFields`` (not yet
1133
  exposed via RAPI). The following commands make use of this
1134
  infrastructure change:
1135

    
1136
  - ``gnt-group list``
1137
  - ``gnt-group list-fields``
1138
  - ``gnt-node list``
1139
  - ``gnt-node list-fields``
1140
  - ``gnt-instance list``
1141
  - ``gnt-instance list-fields``
1142
  - ``gnt-debug locks``
1143

    
1144
Remote API
1145
~~~~~~~~~~
1146

    
1147
- New RAPI resources (see :doc:`rapi`):
1148

    
1149
  - ``/2/modify``
1150
  - ``/2/groups``
1151
  - ``/2/groups/[group_name]``
1152
  - ``/2/groups/[group_name]/assign-nodes``
1153
  - ``/2/groups/[group_name]/modify``
1154
  - ``/2/groups/[group_name]/rename``
1155
  - ``/2/instances/[instance_name]/disk/[disk_index]/grow``
1156

    
1157
- RAPI changes:
1158

    
1159
  - Implemented ``no_install`` for instance creation
1160
  - Implemented OS parameters for instance reinstallation, allowing
1161
    use of special settings on reinstallation (e.g. for preserving data)
1162

    
1163
Misc
1164
~~~~
1165

    
1166
- Added IPv6 support in import/export
1167
- Pause DRBD synchronization while wiping disks on instance creation
1168
- Updated unittests and QA scripts
1169
- Improved network parameters passed to KVM
1170
- Converted man pages from docbook to reStructuredText
1171

    
1172

    
1173
Version 2.3.1
1174
-------------
1175

    
1176
*(Released Mon, 20 Dec 2010)*
1177

    
1178
Released version 2.3.1~rc1 without any changes.
1179

    
1180

    
1181
Version 2.3.1 rc1
1182
-----------------
1183

    
1184
*(Released Wed, 1 Dec 2010)*
1185

    
1186
- impexpd: Disable OpenSSL compression in socat if possible (backport
1187
  from master, commit e90739d625b, see :doc:`installation guide
1188
  <install-quick>` for details)
1189
- Changed unittest coverage report to exclude test scripts
1190
- Added script to check version format
1191

    
1192

    
1193
Version 2.3.0
1194
-------------
1195

    
1196
*(Released Wed, 1 Dec 2010)*
1197

    
1198
Released version 2.3.0~rc1 without any changes.
1199

    
1200

    
1201
Version 2.3.0 rc1
1202
-----------------
1203

    
1204
*(Released Fri, 19 Nov 2010)*
1205

    
1206
A number of bugfixes and documentation updates:
1207

    
1208
- Update ganeti-os-interface documentation
1209
- Fixed a bug related to duplicate MACs or similar items which should be
1210
  unique
1211
- Fix breakage in OS state modify
1212
- Reinstall instance: disallow offline secondaries (fixes bug related to
1213
  OS changing but reinstall failing)
1214
- plus all the other fixes between 2.2.1 and 2.2.2
1215

    
1216

    
1217
Version 2.3.0 rc0
1218
-----------------
1219

    
1220
*(Released Tue, 2 Nov 2010)*
1221

    
1222
- Fixed clearing of the default iallocator using ``gnt-cluster modify``
1223
- Fixed master failover race with watcher
1224
- Fixed a bug in ``gnt-node modify`` which could lead to an inconsistent
1225
  configuration
1226
- Accept previously stopped instance for export with instance removal
1227
- Simplify and extend the environment variables for instance OS scripts
1228
- Added new node flags, ``master_capable`` and ``vm_capable``
1229
- Added optional instance disk wiping prior during allocation. This is a
1230
  cluster-wide option and can be set/modified using
1231
  ``gnt-cluster {init,modify} --prealloc-wipe-disks``.
1232
- Added IPv6 support, see :doc:`design document <design-2.3>` and
1233
  :doc:`install-quick`
1234
- Added a new watcher option (``--ignore-pause``)
1235
- Added option to ignore offline node on instance start/stop
1236
  (``--ignore-offline``)
1237
- Allow overriding OS parameters with ``gnt-instance reinstall``
1238
- Added ability to change node's secondary IP address using ``gnt-node
1239
  modify``
1240
- Implemented privilege separation for all daemons except
1241
  ``ganeti-noded``, see ``configure`` options
1242
- Complain if an instance's disk is marked faulty in ``gnt-cluster
1243
  verify``
1244
- Implemented job priorities (see ``ganeti(7)`` manpage)
1245
- Ignore failures while shutting down instances during failover from
1246
  offline node
1247
- Exit daemon's bootstrap process only once daemon is ready
1248
- Export more information via ``LUInstanceQuery``/remote API
1249
- Improved documentation, QA and unittests
1250
- RAPI daemon now watches ``rapi_users`` all the time and doesn't need a
1251
  restart if the file was created or changed
1252
- Added LUXI protocol version sent with each request and response,
1253
  allowing detection of server/client mismatches
1254
- Moved the Python scripts among gnt-* and ganeti-* into modules
1255
- Moved all code related to setting up SSH to an external script,
1256
  ``setup-ssh``
1257
- Infrastructure changes for node group support in future versions
1258

    
1259

    
1260
Version 2.2.2
1261
-------------
1262

    
1263
*(Released Fri, 19 Nov 2010)*
1264

    
1265
A few small bugs fixed, and some improvements to the build system:
1266

    
1267
- Fix documentation regarding conversion to drbd
1268
- Fix validation of parameters in cluster modify (``gnt-cluster modify
1269
  -B``)
1270
- Fix error handling in node modify with multiple changes
1271
- Allow remote imports without checked names
1272

    
1273

    
1274
Version 2.2.1
1275
-------------
1276

    
1277
*(Released Tue, 19 Oct 2010)*
1278

    
1279
- Disable SSL session ID cache in RPC client
1280

    
1281

    
1282
Version 2.2.1 rc1
1283
-----------------
1284

    
1285
*(Released Thu, 14 Oct 2010)*
1286

    
1287
- Fix interaction between Curl/GnuTLS and the Python's HTTP server
1288
  (thanks Apollon Oikonomopoulos!), finally allowing the use of Curl
1289
  with GnuTLS
1290
- Fix problems with interaction between Curl and Python's HTTP server,
1291
  resulting in increased speed in many RPC calls
1292
- Improve our release script to prevent breakage with older aclocal and
1293
  Python 2.6
1294

    
1295

    
1296
Version 2.2.1 rc0
1297
-----------------
1298

    
1299
*(Released Thu, 7 Oct 2010)*
1300

    
1301
- Fixed issue 125, replace hardcoded "xenvg" in ``gnt-cluster`` with
1302
  value retrieved from master
1303
- Added support for blacklisted or hidden OS definitions
1304
- Added simple lock monitor (accessible via (``gnt-debug locks``)
1305
- Added support for -mem-path in KVM hypervisor abstraction layer
1306
- Allow overriding instance parameters in tool for inter-cluster
1307
  instance moves (``tools/move-instance``)
1308
- Improved opcode summaries (e.g. in ``gnt-job list``)
1309
- Improve consistency of OS listing by sorting it
1310
- Documentation updates
1311

    
1312

    
1313
Version 2.2.0.1
1314
---------------
1315

    
1316
*(Released Fri, 8 Oct 2010)*
1317

    
1318
- Rebuild with a newer autotools version, to fix python 2.6 compatibility
1319

    
1320

    
1321
Version 2.2.0
1322
-------------
1323

    
1324
*(Released Mon, 4 Oct 2010)*
1325

    
1326
- Fixed regression in ``gnt-instance rename``
1327

    
1328

    
1329
Version 2.2.0 rc2
1330
-----------------
1331

    
1332
*(Released Wed, 22 Sep 2010)*
1333

    
1334
- Fixed OS_VARIANT variable for OS scripts
1335
- Fixed cluster tag operations via RAPI
1336
- Made ``setup-ssh`` exit with non-zero code if an error occurred
1337
- Disabled RAPI CA checks in watcher
1338

    
1339

    
1340
Version 2.2.0 rc1
1341
-----------------
1342

    
1343
*(Released Mon, 23 Aug 2010)*
1344

    
1345
- Support DRBD versions of the format "a.b.c.d"
1346
- Updated manpages
1347
- Re-introduce support for usage from multiple threads in RAPI client
1348
- Instance renames and modify via RAPI
1349
- Work around race condition between processing and archival in job
1350
  queue
1351
- Mark opcodes following failed one as failed, too
1352
- Job field ``lock_status`` was removed due to difficulties making it
1353
  work with the changed job queue in Ganeti 2.2; a better way to monitor
1354
  locks is expected for a later 2.2.x release
1355
- Fixed dry-run behaviour with many commands
1356
- Support ``ssh-agent`` again when adding nodes
1357
- Many additional bugfixes
1358

    
1359

    
1360
Version 2.2.0 rc0
1361
-----------------
1362

    
1363
*(Released Fri, 30 Jul 2010)*
1364

    
1365
Important change: the internal RPC mechanism between Ganeti nodes has
1366
changed from using a home-grown http library (based on the Python base
1367
libraries) to use the PycURL library. This requires that PycURL is
1368
installed on nodes. Please note that on Debian/Ubuntu, PycURL is linked
1369
against GnuTLS by default. cURL's support for GnuTLS had known issues
1370
before cURL 7.21.0 and we recommend using the latest cURL release or
1371
linking against OpenSSL. Most other distributions already link PycURL
1372
and cURL against OpenSSL. The command::
1373

    
1374
  python -c 'import pycurl; print pycurl.version'
1375

    
1376
can be used to determine the libraries PycURL and cURL are linked
1377
against.
1378

    
1379
Other significant changes:
1380

    
1381
- Rewrote much of the internals of the job queue, in order to achieve
1382
  better parallelism; this decouples job query operations from the job
1383
  processing, and it should allow much nicer behaviour of the master
1384
  daemon under load, and it also has uncovered some long-standing bugs
1385
  related to the job serialisation (now fixed)
1386
- Added a default iallocator setting to the cluster parameters,
1387
  eliminating the need to always pass nodes or an iallocator for
1388
  operations that require selection of new node(s)
1389
- Added experimental support for the LXC virtualization method
1390
- Added support for OS parameters, which allows the installation of
1391
  instances to pass parameter to OS scripts in order to customise the
1392
  instance
1393
- Added a hypervisor parameter controlling the migration type (live or
1394
  non-live), since hypervisors have various levels of reliability; this
1395
  has renamed the 'live' parameter to 'mode'
1396
- Added a cluster parameter ``reserved_lvs`` that denotes reserved
1397
  logical volumes, meaning that cluster verify will ignore them and not
1398
  flag their presence as errors
1399
- The watcher will now reset the error count for failed instances after
1400
  8 hours, thus allowing self-healing if the problem that caused the
1401
  instances to be down/fail to start has cleared in the meantime
1402
- Added a cluster parameter ``drbd_usermode_helper`` that makes Ganeti
1403
  check for, and warn, if the drbd module parameter ``usermode_helper``
1404
  is not consistent with the cluster-wide setting; this is needed to
1405
  make diagnose easier of failed drbd creations
1406
- Started adding base IPv6 support, but this is not yet
1407
  enabled/available for use
1408
- Rename operations (cluster, instance) will now return the new name,
1409
  which is especially useful if a short name was passed in
1410
- Added support for instance migration in RAPI
1411
- Added a tool to pre-configure nodes for the SSH setup, before joining
1412
  them to the cluster; this will allow in the future a simplified model
1413
  for node joining (but not yet fully enabled in 2.2); this needs the
1414
  paramiko python library
1415
- Fixed handling of name-resolving errors
1416
- Fixed consistency of job results on the error path
1417
- Fixed master-failover race condition when executed multiple times in
1418
  sequence
1419
- Fixed many bugs related to the job queue (mostly introduced during the
1420
  2.2 development cycle, so not all are impacting 2.1)
1421
- Fixed instance migration with missing disk symlinks
1422
- Fixed handling of unknown jobs in ``gnt-job archive``
1423
- And many other small fixes/improvements
1424

    
1425
Internal changes:
1426

    
1427
- Enhanced both the unittest and the QA coverage
1428
- Switched the opcode validation to a generic model, and extended the
1429
  validation to all opcode parameters
1430
- Changed more parts of the code that write shell scripts to use the
1431
  same class for this
1432
- Switched the master daemon to use the asyncore library for the Luxi
1433
  server endpoint
1434

    
1435

    
1436
Version 2.2.0 beta0
1437
-------------------
1438

    
1439
*(Released Thu, 17 Jun 2010)*
1440

    
1441
- Added tool (``move-instance``) and infrastructure to move instances
1442
  between separate clusters (see :doc:`separate documentation
1443
  <move-instance>` and :doc:`design document <design-2.2>`)
1444
- Added per-request RPC timeout
1445
- RAPI now requires a Content-Type header for requests with a body (e.g.
1446
  ``PUT`` or ``POST``) which must be set to ``application/json`` (see
1447
  :rfc:`2616` (HTTP/1.1), section 7.2.1)
1448
- ``ganeti-watcher`` attempts to restart ``ganeti-rapi`` if RAPI is not
1449
  reachable
1450
- Implemented initial support for running Ganeti daemons as separate
1451
  users, see configure-time flags ``--with-user-prefix`` and
1452
  ``--with-group-prefix`` (only ``ganeti-rapi`` is supported at this
1453
  time)
1454
- Instances can be removed after export (``gnt-backup export
1455
  --remove-instance``)
1456
- Self-signed certificates generated by Ganeti now use a 2048 bit RSA
1457
  key (instead of 1024 bit)
1458
- Added new cluster configuration file for cluster domain secret
1459
- Import/export now use SSL instead of SSH
1460
- Added support for showing estimated time when exporting an instance,
1461
  see the ``ganeti-os-interface(7)`` manpage and look for
1462
  ``EXP_SIZE_FD``
1463

    
1464

    
1465
Version 2.1.8
1466
-------------
1467

    
1468
*(Released Tue, 16 Nov 2010)*
1469

    
1470
Some more bugfixes. Unless critical bugs occur, this will be the last
1471
2.1 release:
1472

    
1473
- Fix case of MAC special-values
1474
- Fix mac checker regex
1475
- backend: Fix typo causing "out of range" error
1476
- Add missing --units in gnt-instance list man page
1477

    
1478

    
1479
Version 2.1.7
1480
-------------
1481

    
1482
*(Released Tue, 24 Aug 2010)*
1483

    
1484
Bugfixes only:
1485
  - Don't ignore secondary node silently on non-mirrored disk templates
1486
    (issue 113)
1487
  - Fix --master-netdev arg name in gnt-cluster(8) (issue 114)
1488
  - Fix usb_mouse parameter breaking with vnc_console (issue 109)
1489
  - Properly document the usb_mouse parameter
1490
  - Fix path in ganeti-rapi(8) (issue 116)
1491
  - Adjust error message when the ganeti user's .ssh directory is
1492
    missing
1493
  - Add same-node-check when changing the disk template to drbd
1494

    
1495

    
1496
Version 2.1.6
1497
-------------
1498

    
1499
*(Released Fri, 16 Jul 2010)*
1500

    
1501
Bugfixes only:
1502
  - Add an option to only select some reboot types during qa/burnin.
1503
    (on some hypervisors consequent reboots are not supported)
1504
  - Fix infrequent race condition in master failover. Sometimes the old
1505
    master ip address would be still detected as up for a short time
1506
    after it was removed, causing failover to fail.
1507
  - Decrease mlockall warnings when the ctypes module is missing. On
1508
    Python 2.4 we support running even if no ctypes module is installed,
1509
    but we were too verbose about this issue.
1510
  - Fix building on old distributions, on which man doesn't have a
1511
    --warnings option.
1512
  - Fix RAPI not to ignore the MAC address on instance creation
1513
  - Implement the old instance creation format in the RAPI client.
1514

    
1515

    
1516
Version 2.1.5
1517
-------------
1518

    
1519
*(Released Thu, 01 Jul 2010)*
1520

    
1521
A small bugfix release:
1522
  - Fix disk adoption: broken by strict --disk option checking in 2.1.4
1523
  - Fix batch-create: broken in the whole 2.1 series due to a lookup on
1524
    a non-existing option
1525
  - Fix instance create: the --force-variant option was ignored
1526
  - Improve pylint 0.21 compatibility and warnings with Python 2.6
1527
  - Fix modify node storage with non-FQDN arguments
1528
  - Fix RAPI client to authenticate under Python 2.6 when used
1529
    for more than 5 requests needing authentication
1530
  - Fix gnt-instance modify -t (storage) giving a wrong error message
1531
    when converting a non-shutdown drbd instance to plain
1532

    
1533

    
1534
Version 2.1.4
1535
-------------
1536

    
1537
*(Released Fri, 18 Jun 2010)*
1538

    
1539
A small bugfix release:
1540

    
1541
  - Fix live migration of KVM instances started with older Ganeti
1542
    versions which had fewer hypervisor parameters
1543
  - Fix gnt-instance grow-disk on down instances
1544
  - Fix an error-reporting bug during instance migration
1545
  - Better checking of the ``--net`` and ``--disk`` values, to avoid
1546
    silently ignoring broken ones
1547
  - Fix an RPC error reporting bug affecting, for example, RAPI client
1548
    users
1549
  - Fix bug triggered by different API version os-es on different nodes
1550
  - Fix a bug in instance startup with custom hvparams: OS level
1551
    parameters would fail to be applied.
1552
  - Fix the RAPI client under Python 2.6 (but more work is needed to
1553
    make it work completely well with OpenSSL)
1554
  - Fix handling of errors when resolving names from DNS
1555

    
1556

    
1557
Version 2.1.3
1558
-------------
1559

    
1560
*(Released Thu, 3 Jun 2010)*
1561

    
1562
A medium sized development cycle. Some new features, and some
1563
fixes/small improvements/cleanups.
1564

    
1565
Significant features
1566
~~~~~~~~~~~~~~~~~~~~
1567

    
1568
The node deamon now tries to mlock itself into memory, unless the
1569
``--no-mlock`` flag is passed. It also doesn't fail if it can't write
1570
its logs, and falls back to console logging. This allows emergency
1571
features such as ``gnt-node powercycle`` to work even in the event of a
1572
broken node disk (tested offlining the disk hosting the node's
1573
filesystem and dropping its memory caches; don't try this at home)
1574

    
1575
KVM: add vhost-net acceleration support. It can be tested with a new
1576
enough version of the kernel and of qemu-kvm.
1577

    
1578
KVM: Add instance chrooting feature. If you use privilege dropping for
1579
your VMs you can also now force them to chroot to an empty directory,
1580
before starting the emulated guest.
1581

    
1582
KVM: Add maximum migration bandwith and maximum downtime tweaking
1583
support (requires a new-enough version of qemu-kvm).
1584

    
1585
Cluster verify will now warn if the master node doesn't have the master
1586
ip configured on it.
1587

    
1588
Add a new (incompatible) instance creation request format to RAPI which
1589
supports all parameters (previously only a subset was supported, and it
1590
wasn't possible to extend the old format to accomodate all the new
1591
features. The old format is still supported, and a client can check for
1592
this feature, before using it, by checking for its presence in the
1593
``features`` RAPI resource.
1594

    
1595
Now with ancient latin support. Try it passing the ``--roman`` option to
1596
``gnt-instance info``, ``gnt-cluster info`` or ``gnt-node list``
1597
(requires the python-roman module to be installed, in order to work).
1598

    
1599
Other changes
1600
~~~~~~~~~~~~~
1601

    
1602
As usual many internal code refactorings, documentation updates, and
1603
such. Among others:
1604

    
1605
  - Lots of improvements and cleanups to the experimental Remote API
1606
    (RAPI) client library.
1607
  - A new unit test suite for the core daemon libraries.
1608
  - A fix to creating missing directories makes sure the umask is not
1609
    applied anymore. This enforces the same directory permissions
1610
    everywhere.
1611
  - Better handling terminating daemons with ctrl+c (used when running
1612
    them in debugging mode).
1613
  - Fix a race condition in live migrating a KVM instance, when stat()
1614
    on the old proc status file returned EINVAL, which is an unexpected
1615
    value.
1616
  - Fixed manpage checking with newer man and utf-8 charachters. But now
1617
    you need the en_US.UTF-8 locale enabled to build Ganeti from git.
1618

    
1619

    
1620
Version 2.1.2.1
1621
---------------
1622

    
1623
*(Released Fri, 7 May 2010)*
1624

    
1625
Fix a bug which prevented untagged KVM instances from starting.
1626

    
1627

    
1628
Version 2.1.2
1629
-------------
1630

    
1631
*(Released Fri, 7 May 2010)*
1632

    
1633
Another release with a long development cycle, during which many
1634
different features were added.
1635

    
1636
Significant features
1637
~~~~~~~~~~~~~~~~~~~~
1638

    
1639
The KVM hypervisor now can run the individual instances as non-root, to
1640
reduce the impact of a VM being hijacked due to bugs in the
1641
hypervisor. It is possible to run all instances as a single (non-root)
1642
user, to manually specify a user for each instance, or to dynamically
1643
allocate a user out of a cluster-wide pool to each instance, with the
1644
guarantee that no two instances will run under the same user ID on any
1645
given node.
1646

    
1647
An experimental RAPI client library, that can be used standalone
1648
(without the other Ganeti libraries), is provided in the source tree as
1649
``lib/rapi/client.py``. Note this client might change its interface in
1650
the future, as we iterate on its capabilities.
1651

    
1652
A new command, ``gnt-cluster renew-crypto`` has been added to easily
1653
replace the cluster's certificates and crypto keys. This might help in
1654
case they have been compromised, or have simply expired.
1655

    
1656
A new disk option for instance creation has been added that allows one
1657
to "adopt" currently existing logical volumes, with data
1658
preservation. This should allow easier migration to Ganeti from
1659
unmanaged (or managed via other software) instances.
1660

    
1661
Another disk improvement is the possibility to convert between redundant
1662
(DRBD) and plain (LVM) disk configuration for an instance. This should
1663
allow better scalability (starting with one node and growing the
1664
cluster, or shrinking a two-node cluster to one node).
1665

    
1666
A new feature that could help with automated node failovers has been
1667
implemented: if a node sees itself as offline (by querying the master
1668
candidates), it will try to shutdown (hard) all instances and any active
1669
DRBD devices. This reduces the risk of duplicate instances if an
1670
external script automatically failovers the instances on such nodes. To
1671
enable this, the cluster parameter ``maintain_node_health`` should be
1672
enabled; in the future this option (per the name) will enable other
1673
automatic maintenance features.
1674

    
1675
Instance export/import now will reuse the original instance
1676
specifications for all parameters; that means exporting an instance,
1677
deleting it and the importing it back should give an almost identical
1678
instance. Note that the default import behaviour has changed from
1679
before, where it created only one NIC; now it recreates the original
1680
number of NICs.
1681

    
1682
Cluster verify has added a few new checks: SSL certificates validity,
1683
/etc/hosts consistency across the cluster, etc.
1684

    
1685
Other changes
1686
~~~~~~~~~~~~~
1687

    
1688
As usual, many internal changes were done, documentation fixes,
1689
etc. Among others:
1690

    
1691
- Fixed cluster initialization with disabled cluster storage (regression
1692
  introduced in 2.1.1)
1693
- File-based storage supports growing the disks
1694
- Fixed behaviour of node role changes
1695
- Fixed cluster verify for some corner cases, plus a general rewrite of
1696
  cluster verify to allow future extension with more checks
1697
- Fixed log spamming by watcher and node daemon (regression introduced
1698
  in 2.1.1)
1699
- Fixed possible validation issues when changing the list of enabled
1700
  hypervisors
1701
- Fixed cleanup of /etc/hosts during node removal
1702
- Fixed RAPI response for invalid methods
1703
- Fixed bug with hashed passwords in ``ganeti-rapi`` daemon
1704
- Multiple small improvements to the KVM hypervisor (VNC usage, booting
1705
  from ide disks, etc.)
1706
- Allow OS changes without re-installation (to record a changed OS
1707
  outside of Ganeti, or to allow OS renames)
1708
- Allow instance creation without OS installation (useful for example if
1709
  the OS will be installed manually, or restored from a backup not in
1710
  Ganeti format)
1711
- Implemented option to make cluster ``copyfile`` use the replication
1712
  network
1713
- Added list of enabled hypervisors to ssconf (possibly useful for
1714
  external scripts)
1715
- Added a new tool (``tools/cfgupgrade12``) that allows upgrading from
1716
  1.2 clusters
1717
- A partial form of node re-IP is possible via node readd, which now
1718
  allows changed node primary IP
1719
- Command line utilities now show an informational message if the job is
1720
  waiting for a lock
1721
- The logs of the master daemon now show the PID/UID/GID of the
1722
  connected client
1723

    
1724

    
1725
Version 2.1.1
1726
-------------
1727

    
1728
*(Released Fri, 12 Mar 2010)*
1729

    
1730
During the 2.1.0 long release candidate cycle, a lot of improvements and
1731
changes have accumulated with were released later as 2.1.1.
1732

    
1733
Major changes
1734
~~~~~~~~~~~~~
1735

    
1736
The node evacuate command (``gnt-node evacuate``) was significantly
1737
rewritten, and as such the IAllocator protocol was changed - a new
1738
request type has been added. This unfortunate change during a stable
1739
series is designed to improve performance of node evacuations; on
1740
clusters with more than about five nodes and which are well-balanced,
1741
evacuation should proceed in parallel for all instances of the node
1742
being evacuated. As such, any existing IAllocator scripts need to be
1743
updated, otherwise the above command will fail due to the unknown
1744
request. The provided "dumb" allocator has not been updated; but the
1745
ganeti-htools package supports the new protocol since version 0.2.4.
1746

    
1747
Another important change is increased validation of node and instance
1748
names. This might create problems in special cases, if invalid host
1749
names are being used.
1750

    
1751
Also, a new layer of hypervisor parameters has been added, that sits at
1752
OS level between the cluster defaults and the instance ones. This allows
1753
customisation of virtualization parameters depending on the installed
1754
OS. For example instances with OS 'X' may have a different KVM kernel
1755
(or any other parameter) than the cluster defaults. This is intended to
1756
help managing a multiple OSes on the same cluster, without manual
1757
modification of each instance's parameters.
1758

    
1759
A tool for merging clusters, ``cluster-merge``, has been added in the
1760
tools sub-directory.
1761

    
1762
Bug fixes
1763
~~~~~~~~~
1764

    
1765
- Improved the int/float conversions that should make the code more
1766
  robust in face of errors from the node daemons
1767
- Fixed the remove node code in case of internal configuration errors
1768
- Fixed the node daemon behaviour in face of inconsistent queue
1769
  directory (e.g. read-only file-system where we can't open the files
1770
  read-write, etc.)
1771
- Fixed the behaviour of gnt-node modify for master candidate demotion;
1772
  now it either aborts cleanly or, if given the new "auto_promote"
1773
  parameter, will automatically promote other nodes as needed
1774
- Fixed compatibility with (unreleased yet) Python 2.6.5 that would
1775
  completely prevent Ganeti from working
1776
- Fixed bug for instance export when not all disks were successfully
1777
  exported
1778
- Fixed behaviour of node add when the new node is slow in starting up
1779
  the node daemon
1780
- Fixed handling of signals in the LUXI client, which should improve
1781
  behaviour of command-line scripts
1782
- Added checks for invalid node/instance names in the configuration (now
1783
  flagged during cluster verify)
1784
- Fixed watcher behaviour for disk activation errors
1785
- Fixed two potentially endless loops in http library, which led to the
1786
  RAPI daemon hanging and consuming 100% CPU in some cases
1787
- Fixed bug in RAPI daemon related to hashed passwords
1788
- Fixed bug for unintended qemu-level bridging of multi-NIC KVM
1789
  instances
1790
- Enhanced compatibility with non-Debian OSes, but not using absolute
1791
  path in some commands and allowing customisation of the ssh
1792
  configuration directory
1793
- Fixed possible future issue with new Python versions by abiding to the
1794
  proper use of ``__slots__`` attribute on classes
1795
- Added checks that should prevent directory traversal attacks
1796
- Many documentation fixes based on feedback from users
1797

    
1798
New features
1799
~~~~~~~~~~~~
1800

    
1801
- Added an "early_release" more for instance replace disks and node
1802
  evacuate, where we release locks earlier and thus allow higher
1803
  parallelism within the cluster
1804
- Added watcher hooks, intended to allow the watcher to restart other
1805
  daemons (e.g. from the ganeti-nbma project), but they can be used of
1806
  course for any other purpose
1807
- Added a compile-time disable for DRBD barriers, to increase
1808
  performance if the administrator trusts the power supply or the
1809
  storage system to not lose writes
1810
- Added the option of using syslog for logging instead of, or in
1811
  addition to, Ganeti's own log files
1812
- Removed boot restriction for paravirtual NICs for KVM, recent versions
1813
  can indeed boot from a paravirtual NIC
1814
- Added a generic debug level for many operations; while this is not
1815
  used widely yet, it allows one to pass the debug value all the way to
1816
  the OS scripts
1817
- Enhanced the hooks environment for instance moves (failovers,
1818
  migrations) where the primary/secondary nodes changed during the
1819
  operation, by adding {NEW,OLD}_{PRIMARY,SECONDARY} vars
1820
- Enhanced data validations for many user-supplied values; one important
1821
  item is the restrictions imposed on instance and node names, which
1822
  might reject some (invalid) host names
1823
- Add a configure-time option to disable file-based storage, if it's not
1824
  needed; this allows greater security separation between the master
1825
  node and the other nodes from the point of view of the inter-node RPC
1826
  protocol
1827
- Added user notification in interactive tools if job is waiting in the
1828
  job queue or trying to acquire locks
1829
- Added log messages when a job is waiting for locks
1830
- Added filtering by node tags in instance operations which admit
1831
  multiple instances (start, stop, reboot, reinstall)
1832
- Added a new tool for cluster mergers, ``cluster-merge``
1833
- Parameters from command line which are of the form ``a=b,c=d`` can now
1834
  use backslash escapes to pass in values which contain commas,
1835
  e.g. ``a=b\\c,d=e`` where the 'a' parameter would get the value
1836
  ``b,c``
1837
- For KVM, the instance name is the first parameter passed to KVM, so
1838
  that it's more visible in the process list
1839

    
1840

    
1841
Version 2.1.0
1842
-------------
1843

    
1844
*(Released Tue, 2 Mar 2010)*
1845

    
1846
Ganeti 2.1 brings many improvements with it. Major changes:
1847

    
1848
- Added infrastructure to ease automated disk repairs
1849
- Added new daemon to export configuration data in a cheaper way than
1850
  using the remote API
1851
- Instance NICs can now be routed instead of being associated with a
1852
  networking bridge
1853
- Improved job locking logic to reduce impact of jobs acquiring multiple
1854
  locks waiting for other long-running jobs
1855

    
1856
In-depth implementation details can be found in the Ganeti 2.1 design
1857
document.
1858

    
1859
Details
1860
~~~~~~~
1861

    
1862
- Added chroot hypervisor
1863
- Added more options to xen-hvm hypervisor (``kernel_path`` and
1864
  ``device_model``)
1865
- Added more options to xen-pvm hypervisor (``use_bootloader``,
1866
  ``bootloader_path`` and ``bootloader_args``)
1867
- Added the ``use_localtime`` option for the xen-hvm and kvm
1868
  hypervisors, and the default value for this has changed to false (in
1869
  2.0 xen-hvm always enabled it)
1870
- Added luxi call to submit multiple jobs in one go
1871
- Added cluster initialization option to not modify ``/etc/hosts``
1872
  file on nodes
1873
- Added network interface parameters
1874
- Added dry run mode to some LUs
1875
- Added RAPI resources:
1876

    
1877
  - ``/2/instances/[instance_name]/info``
1878
  - ``/2/instances/[instance_name]/replace-disks``
1879
  - ``/2/nodes/[node_name]/evacuate``
1880
  - ``/2/nodes/[node_name]/migrate``
1881
  - ``/2/nodes/[node_name]/role``
1882
  - ``/2/nodes/[node_name]/storage``
1883
  - ``/2/nodes/[node_name]/storage/modify``
1884
  - ``/2/nodes/[node_name]/storage/repair``
1885

    
1886
- Added OpCodes to evacuate or migrate all instances on a node
1887
- Added new command to list storage elements on nodes (``gnt-node
1888
  list-storage``) and modify them (``gnt-node modify-storage``)
1889
- Added new ssconf files with master candidate IP address
1890
  (``ssconf_master_candidates_ips``), node primary IP address
1891
  (``ssconf_node_primary_ips``) and node secondary IP address
1892
  (``ssconf_node_secondary_ips``)
1893
- Added ``ganeti-confd`` and a client library to query the Ganeti
1894
  configuration via UDP
1895
- Added ability to run hooks after cluster initialization and before
1896
  cluster destruction
1897
- Added automatic mode for disk replace (``gnt-instance replace-disks
1898
  --auto``)
1899
- Added ``gnt-instance recreate-disks`` to re-create (empty) disks
1900
  after catastrophic data-loss
1901
- Added ``gnt-node repair-storage`` command to repair damaged LVM volume
1902
  groups
1903
- Added ``gnt-instance move`` command to move instances
1904
- Added ``gnt-cluster watcher`` command to control watcher
1905
- Added ``gnt-node powercycle`` command to powercycle nodes
1906
- Added new job status field ``lock_status``
1907
- Added parseable error codes to cluster verification (``gnt-cluster
1908
  verify --error-codes``) and made output less verbose (use
1909
  ``--verbose`` to restore previous behaviour)
1910
- Added UUIDs to the main config entities (cluster, nodes, instances)
1911
- Added support for OS variants
1912
- Added support for hashed passwords in the Ganeti remote API users file
1913
  (``rapi_users``)
1914
- Added option to specify maximum timeout on instance shutdown
1915
- Added ``--no-ssh-init`` option to ``gnt-cluster init``
1916
- Added new helper script to start and stop Ganeti daemons
1917
  (``daemon-util``), with the intent to reduce the work necessary to
1918
  adjust Ganeti for non-Debian distributions and to start/stop daemons
1919
  from one place
1920
- Added more unittests
1921
- Fixed critical bug in ganeti-masterd startup
1922
- Removed the configure-time ``kvm-migration-port`` parameter, this is
1923
  now customisable at the cluster level for both the KVM and Xen
1924
  hypervisors using the new ``migration_port`` parameter
1925
- Pass ``INSTANCE_REINSTALL`` variable to OS installation script when
1926
  reinstalling an instance
1927
- Allowed ``@`` in tag names
1928
- Migrated to Sphinx (http://sphinx.pocoo.org/) for documentation
1929
- Many documentation updates
1930
- Distribute hypervisor files on ``gnt-cluster redist-conf``
1931
- ``gnt-instance reinstall`` can now reinstall multiple instances
1932
- Updated many command line parameters
1933
- Introduced new OS API version 15
1934
- No longer support a default hypervisor
1935
- Treat virtual LVs as inexistent
1936
- Improved job locking logic to reduce lock contention
1937
- Match instance and node names case insensitively
1938
- Reimplemented bash completion script to be more complete
1939
- Improved burnin
1940

    
1941

    
1942
Version 2.0.6
1943
-------------
1944

    
1945
*(Released Thu, 4 Feb 2010)*
1946

    
1947
- Fix cleaner behaviour on nodes not in a cluster (Debian bug 568105)
1948
- Fix a string formatting bug
1949
- Improve safety of the code in some error paths
1950
- Improve data validation in the master of values returned from nodes
1951

    
1952

    
1953
Version 2.0.5
1954
-------------
1955

    
1956
*(Released Thu, 17 Dec 2009)*
1957

    
1958
- Fix security issue due to missing validation of iallocator names; this
1959
  allows local and remote execution of arbitrary executables
1960
- Fix failure of gnt-node list during instance removal
1961
- Ship the RAPI documentation in the archive
1962

    
1963

    
1964
Version 2.0.4
1965
-------------
1966

    
1967
*(Released Wed, 30 Sep 2009)*
1968

    
1969
- Fixed many wrong messages
1970
- Fixed a few bugs related to the locking library
1971
- Fixed MAC checking at instance creation time
1972
- Fixed a DRBD parsing bug related to gaps in /proc/drbd
1973
- Fixed a few issues related to signal handling in both daemons and
1974
  scripts
1975
- Fixed the example startup script provided
1976
- Fixed insserv dependencies in the example startup script (patch from
1977
  Debian)
1978
- Fixed handling of drained nodes in the iallocator framework
1979
- Fixed handling of KERNEL_PATH parameter for xen-hvm (Debian bug
1980
  #528618)
1981
- Fixed error related to invalid job IDs in job polling
1982
- Fixed job/opcode persistence on unclean master shutdown
1983
- Fixed handling of partial job processing after unclean master
1984
  shutdown
1985
- Fixed error reporting from LUs, previously all errors were converted
1986
  into execution errors
1987
- Fixed error reporting from burnin
1988
- Decreased significantly the memory usage of the job queue
1989
- Optimised slightly multi-job submission
1990
- Optimised slightly opcode loading
1991
- Backported the multi-job submit framework from the development
1992
  branch; multi-instance start and stop should be faster
1993
- Added script to clean archived jobs after 21 days; this will reduce
1994
  the size of the queue directory
1995
- Added some extra checks in disk size tracking
1996
- Added an example ethers hook script
1997
- Added a cluster parameter that prevents Ganeti from modifying of
1998
  /etc/hosts
1999
- Added more node information to RAPI responses
2000
- Added a ``gnt-job watch`` command that allows following the ouput of a
2001
  job
2002
- Added a bind-address option to ganeti-rapi
2003
- Added more checks to the configuration verify
2004
- Enhanced the burnin script such that some operations can be retried
2005
  automatically
2006
- Converted instance reinstall to multi-instance model
2007

    
2008

    
2009
Version 2.0.3
2010
-------------
2011

    
2012
*(Released Fri, 7 Aug 2009)*
2013

    
2014
- Added ``--ignore-size`` to the ``gnt-instance activate-disks`` command
2015
  to allow using the pre-2.0.2 behaviour in activation, if any existing
2016
  instances have mismatched disk sizes in the configuration
2017
- Added ``gnt-cluster repair-disk-sizes`` command to check and update
2018
  any configuration mismatches for disk sizes
2019
- Added ``gnt-master cluste-failover --no-voting`` to allow master
2020
  failover to work on two-node clusters
2021
- Fixed the ``--net`` option of ``gnt-backup import``, which was
2022
  unusable
2023
- Fixed detection of OS script errors in ``gnt-backup export``
2024
- Fixed exit code of ``gnt-backup export``
2025

    
2026

    
2027
Version 2.0.2
2028
-------------
2029

    
2030
*(Released Fri, 17 Jul 2009)*
2031

    
2032
- Added experimental support for stripped logical volumes; this should
2033
  enhance performance but comes with a higher complexity in the block
2034
  device handling; stripping is only enabled when passing
2035
  ``--with-lvm-stripecount=N`` to ``configure``, but codepaths are
2036
  affected even in the non-stripped mode
2037
- Improved resiliency against transient failures at the end of DRBD
2038
  resyncs, and in general of DRBD resync checks
2039
- Fixed a couple of issues with exports and snapshot errors
2040
- Fixed a couple of issues in instance listing
2041
- Added display of the disk size in ``gnt-instance info``
2042
- Fixed checking for valid OSes in instance creation
2043
- Fixed handling of the "vcpus" parameter in instance listing and in
2044
  general of invalid parameters
2045
- Fixed http server library, and thus RAPI, to handle invalid
2046
  username/password combinations correctly; this means that now they
2047
  report unauthorized for queries too, not only for modifications,
2048
  allowing earlier detect of configuration problems
2049
- Added a new "role" node list field, equivalent to the master/master
2050
  candidate/drained/offline flags combinations
2051
- Fixed cluster modify and changes of candidate pool size
2052
- Fixed cluster verify error messages for wrong files on regular nodes
2053
- Fixed a couple of issues with node demotion from master candidate role
2054
- Fixed node readd issues
2055
- Added non-interactive mode for ``ganeti-masterd --no-voting`` startup
2056
- Added a new ``--no-voting`` option for masterfailover to fix failover
2057
  on two-nodes clusters when the former master node is unreachable
2058
- Added instance reinstall over RAPI
2059

    
2060

    
2061
Version 2.0.1
2062
-------------
2063

    
2064
*(Released Tue, 16 Jun 2009)*
2065

    
2066
- added ``-H``/``-B`` startup parameters to ``gnt-instance``, which will
2067
  allow re-adding the start in single-user option (regression from 1.2)
2068
- the watcher writes the instance status to a file, to allow monitoring
2069
  to report the instance status (from the master) based on cached
2070
  results of the watcher's queries; while this can get stale if the
2071
  watcher is being locked due to other work on the cluster, this is
2072
  still an improvement
2073
- the watcher now also restarts the node daemon and the rapi daemon if
2074
  they died
2075
- fixed the watcher to handle full and drained queue cases
2076
- hooks export more instance data in the environment, which helps if
2077
  hook scripts need to take action based on the instance's properties
2078
  (no longer need to query back into ganeti)
2079
- instance failovers when the instance is stopped do not check for free
2080
  RAM, so that failing over a stopped instance is possible in low memory
2081
  situations
2082
- rapi uses queries for tags instead of jobs (for less job traffic), and
2083
  for cluster tags it won't talk to masterd at all but read them from
2084
  ssconf
2085
- a couple of error handling fixes in RAPI
2086
- drbd handling: improved the error handling of inconsistent disks after
2087
  resync to reduce the frequency of "there are some degraded disks for
2088
  this instance" messages
2089
- fixed a bug in live migration when DRBD doesn't want to reconnect (the
2090
  error handling path called a wrong function name)
2091

    
2092

    
2093
Version 2.0.0
2094
-------------
2095

    
2096
*(Released Wed, 27 May 2009)*
2097

    
2098
- no changes from rc5
2099

    
2100

    
2101
Version 2.0 rc5
2102
---------------
2103

    
2104
*(Released Wed, 20 May 2009)*
2105

    
2106
- fix a couple of bugs (validation, argument checks)
2107
- fix ``gnt-cluster getmaster`` on non-master nodes (regression)
2108
- some small improvements to RAPI and IAllocator
2109
- make watcher automatically start the master daemon if down
2110

    
2111

    
2112
Version 2.0 rc4
2113
---------------
2114

    
2115
*(Released Mon, 27 Apr 2009)*
2116

    
2117
- change the OS list to not require locks; this helps with big clusters
2118
- fix ``gnt-cluster verify`` and ``gnt-cluster verify-disks`` when the
2119
  volume group is broken
2120
- ``gnt-instance info``, without any arguments, doesn't run for all
2121
  instances anymore; either pass ``--all`` or pass the desired
2122
  instances; this helps against mistakes on big clusters where listing
2123
  the information for all instances takes a long time
2124
- miscellaneous doc and man pages fixes
2125

    
2126

    
2127
Version 2.0 rc3
2128
---------------
2129

    
2130
*(Released Wed, 8 Apr 2009)*
2131

    
2132
- Change the internal locking model of some ``gnt-node`` commands, in
2133
  order to reduce contention (and blocking of master daemon) when
2134
  batching many creation/reinstall jobs
2135
- Fixes to Xen soft reboot
2136
- No longer build documentation at build time, instead distribute it in
2137
  the archive, in order to reduce the need for the whole docbook/rst
2138
  toolchains
2139

    
2140

    
2141
Version 2.0 rc2
2142
---------------
2143

    
2144
*(Released Fri, 27 Mar 2009)*
2145

    
2146
- Now the cfgupgrade scripts works and can upgrade 1.2.7 clusters to 2.0
2147
- Fix watcher startup sequence, improves the behaviour of busy clusters
2148
- Some other fixes in ``gnt-cluster verify``, ``gnt-instance
2149
  replace-disks``, ``gnt-instance add``, ``gnt-cluster queue``, KVM VNC
2150
  bind address and other places
2151
- Some documentation fixes and updates
2152

    
2153

    
2154
Version 2.0 rc1
2155
---------------
2156

    
2157
*(Released Mon, 2 Mar 2009)*
2158

    
2159
- More documentation updates, now all docs should be more-or-less
2160
  up-to-date
2161
- A couple of small fixes (mixed hypervisor clusters, offline nodes,
2162
  etc.)
2163
- Added a customizable HV_KERNEL_ARGS hypervisor parameter (for Xen PVM
2164
  and KVM)
2165
- Fix an issue related to $libdir/run/ganeti and cluster creation
2166

    
2167

    
2168
Version 2.0 beta2
2169
-----------------
2170

    
2171
*(Released Thu, 19 Feb 2009)*
2172

    
2173
- Xen PVM and KVM have switched the default value for the instance root
2174
  disk to the first partition on the first drive, instead of the whole
2175
  drive; this means that the OS installation scripts must be changed
2176
  accordingly
2177
- Man pages have been updated
2178
- RAPI has been switched by default to HTTPS, and the exported functions
2179
  should all work correctly
2180
- RAPI v1 has been removed
2181
- Many improvements to the KVM hypervisor
2182
- Block device errors are now better reported
2183
- Many other bugfixes and small improvements
2184

    
2185

    
2186
Version 2.0 beta1
2187
-----------------
2188

    
2189
*(Released Mon, 26 Jan 2009)*
2190

    
2191
- Version 2 is a general rewrite of the code and therefore the
2192
  differences are too many to list, see the design document for 2.0 in
2193
  the ``doc/`` subdirectory for more details
2194
- In this beta version there is not yet a migration path from 1.2 (there
2195
  will be one in the final 2.0 release)
2196
- A few significant changes are:
2197

    
2198
  - all commands are executed by a daemon (``ganeti-masterd``) and the
2199
    various ``gnt-*`` commands are just front-ends to it
2200
  - all the commands are entered into, and executed from a job queue,
2201
    see the ``gnt-job(8)`` manpage
2202
  - the RAPI daemon supports read-write operations, secured by basic
2203
    HTTP authentication on top of HTTPS
2204
  - DRBD version 0.7 support has been removed, DRBD 8 is the only
2205
    supported version (when migrating from Ganeti 1.2 to 2.0, you need
2206
    to migrate to DRBD 8 first while still running Ganeti 1.2)
2207
  - DRBD devices are using statically allocated minor numbers, which
2208
    will be assigned to existing instances during the migration process
2209
  - there is support for both Xen PVM and Xen HVM instances running on
2210
    the same cluster
2211
  - KVM virtualization is supported too
2212
  - file-based storage has been implemented, which means that it is
2213
    possible to run the cluster without LVM and DRBD storage, for
2214
    example using a shared filesystem exported from shared storage (and
2215
    still have live migration)
2216

    
2217

    
2218
Version 1.2.7
2219
-------------
2220

    
2221
*(Released Tue, 13 Jan 2009)*
2222

    
2223
- Change the default reboot type in ``gnt-instance reboot`` to "hard"
2224
- Reuse the old instance mac address by default on instance import, if
2225
  the instance name is the same.
2226
- Handle situations in which the node info rpc returns incomplete
2227
  results (issue 46)
2228
- Add checks for tcp/udp ports collisions in ``gnt-cluster verify``
2229
- Improved version of batcher:
2230

    
2231
  - state file support
2232
  - instance mac address support
2233
  - support for HVM clusters/instances
2234

    
2235
- Add an option to show the number of cpu sockets and nodes in
2236
  ``gnt-node list``
2237
- Support OSes that handle more than one version of the OS api (but do
2238
  not change the current API in any other way)
2239
- Fix ``gnt-node migrate``
2240
- ``gnt-debug`` man page
2241
- Fixes various more typos and small issues
2242
- Increase disk resync maximum speed to 60MB/s (from 30MB/s)
2243

    
2244

    
2245
Version 1.2.6
2246
-------------
2247

    
2248
*(Released Wed, 24 Sep 2008)*
2249

    
2250
- new ``--hvm-nic-type`` and ``--hvm-disk-type`` flags to control the
2251
  type of disk exported to fully virtualized instances.
2252
- provide access to the serial console of HVM instances
2253
- instance auto_balance flag, set by default. If turned off it will
2254
  avoid warnings on cluster verify if there is not enough memory to fail
2255
  over an instance. in the future it will prevent automatically failing
2256
  it over when we will support that.
2257
- batcher tool for instance creation, see ``tools/README.batcher``
2258
- ``gnt-instance reinstall --select-os`` to interactively select a new
2259
  operating system when reinstalling an instance.
2260
- when changing the memory amount on instance modify a check has been
2261
  added that the instance will be able to start. also warnings are
2262
  emitted if the instance will not be able to fail over, if auto_balance
2263
  is true.
2264
- documentation fixes
2265
- sync fields between ``gnt-instance list/modify/add/import``
2266
- fix a race condition in drbd when the sync speed was set after giving
2267
  the device a remote peer.
2268

    
2269

    
2270
Version 1.2.5
2271
-------------
2272

    
2273
*(Released Tue, 22 Jul 2008)*
2274

    
2275
- note: the allowed size and number of tags per object were reduced
2276
- fix a bug in ``gnt-cluster verify`` with inconsistent volume groups
2277
- fixed twisted 8.x compatibility
2278
- fixed ``gnt-instance replace-disks`` with iallocator
2279
- add TCP keepalives on twisted connections to detect restarted nodes
2280
- disk increase support, see ``gnt-instance grow-disk``
2281
- implement bulk node/instance query for RAPI
2282
- add tags in node/instance listing (optional)
2283
- experimental migration (and live migration) support, read the man page
2284
  for ``gnt-instance migrate``
2285
- the ``ganeti-watcher`` logs are now timestamped, and the watcher also
2286
  has some small improvements in handling its state file
2287

    
2288

    
2289
Version 1.2.4
2290
-------------
2291

    
2292
*(Released Fri, 13 Jun 2008)*
2293

    
2294
- Experimental readonly, REST-based remote API implementation;
2295
  automatically started on master node, TCP port 5080, if enabled by
2296
  ``--enable-rapi`` parameter to configure script.
2297
- Instance allocator support. Add and import instance accept a
2298
  ``--iallocator`` parameter, and call that instance allocator to decide
2299
  which node to use for the instance. The iallocator document describes
2300
  what's expected from an allocator script.
2301
- ``gnt-cluster verify`` N+1 memory redundancy checks: Unless passed the
2302
  ``--no-nplus1-mem`` option ``gnt-cluster verify`` now checks that if a
2303
  node is lost there is still enough memory to fail over the instances
2304
  that reside on it.
2305
- ``gnt-cluster verify`` hooks: it is now possible to add post-hooks to
2306
  ``gnt-cluster verify``, to check for site-specific compliance. All the
2307
  hooks will run, and their output, if any, will be displayed. Any
2308
  failing hook will make the verification return an error value.
2309
- ``gnt-cluster verify`` now checks that its peers are reachable on the
2310
  primary and secondary interfaces
2311
- ``gnt-node add`` now supports the ``--readd`` option, to readd a node
2312
  that is still declared as part of the cluster and has failed.
2313
- ``gnt-* list`` commands now accept a new ``-o +field`` way of
2314
  specifying output fields, that just adds the chosen fields to the
2315
  default ones.
2316
- ``gnt-backup`` now has a new ``remove`` command to delete an existing
2317
  export from the filesystem.
2318
- New per-instance parameters hvm_acpi, hvm_pae and hvm_cdrom_image_path
2319
  have been added. Using them you can enable/disable acpi and pae
2320
  support, and specify a path for a cd image to be exported to the
2321
  instance. These parameters as the name suggest only work on HVM
2322
  clusters.
2323
- When upgrading an HVM cluster to Ganeti 1.2.4, the values for ACPI and
2324
  PAE support will be set to the previously hardcoded values, but the
2325
  (previously hardcoded) path to the CDROM ISO image will be unset and
2326
  if required, needs to be set manually with ``gnt-instance modify``
2327
  after the upgrade.
2328
- The address to which an instance's VNC console is bound is now
2329
  selectable per-instance, rather than being cluster wide. Of course
2330
  this only applies to instances controlled via VNC, so currently just
2331
  applies to HVM clusters.
2332

    
2333

    
2334
Version 1.2.3
2335
-------------
2336

    
2337
*(Released Mon, 18 Feb 2008)*
2338

    
2339
- more tweaks to the disk activation code (especially helpful for DRBD)
2340
- change the default ``gnt-instance list`` output format, now there is
2341
  one combined status field (see the manpage for the exact values this
2342
  field will have)
2343
- some more fixes for the mac export to hooks change
2344
- make Ganeti not break with DRBD 8.2.x (which changed the version
2345
  format in ``/proc/drbd``) (issue 24)
2346
- add an upgrade tool from "remote_raid1" disk template to "drbd" disk
2347
  template, allowing migration from DRBD0.7+MD to DRBD8
2348

    
2349

    
2350
Version 1.2.2
2351
-------------
2352

    
2353
*(Released Wed, 30 Jan 2008)*
2354

    
2355
- fix ``gnt-instance modify`` breakage introduced in 1.2.1 with the HVM
2356
  support (issue 23)
2357
- add command aliases infrastructure and a few aliases
2358
- allow listing of VCPUs in the ``gnt-instance list`` and improve the
2359
  man pages and the ``--help`` option of ``gnt-node
2360
  list``/``gnt-instance list``
2361
- fix ``gnt-backup list`` with down nodes (issue 21)
2362
- change the tools location (move from $pkgdatadir to $pkglibdir/tools)
2363
- fix the dist archive and add a check for including svn/git files in
2364
  the future
2365
- some developer-related changes: improve the burnin and the QA suite,
2366
  add an upload script for testing during development
2367

    
2368

    
2369
Version 1.2.1
2370
-------------
2371

    
2372
*(Released Wed, 16 Jan 2008)*
2373

    
2374
- experimental HVM support, read the install document, section
2375
  "Initializing the cluster"
2376
- allow for the PVM hypervisor per-instance kernel and initrd paths
2377
- add a new command ``gnt-cluster verify-disks`` which uses a new
2378
  algorithm to improve the reconnection of the DRBD pairs if the device
2379
  on the secondary node has gone away
2380
- make logical volume code auto-activate LVs at disk activation time
2381
- slightly improve the speed of activating disks
2382
- allow specification of the MAC address at instance creation time, and
2383
  changing it later via ``gnt-instance modify``
2384
- fix handling of external commands that generate lots of output on
2385
  stderr
2386
- update documentation with regard to minimum version of DRBD8 supported
2387

    
2388

    
2389
Version 1.2.0
2390
-------------
2391

    
2392
*(Released Tue, 4 Dec 2007)*
2393

    
2394
- Log the ``xm create`` output to the node daemon log on failure (to
2395
  help diagnosing the error)
2396
- In debug mode, log all external commands output if failed to the logs
2397
- Change parsing of lvm commands to ignore stderr
2398

    
2399

    
2400
Version 1.2 beta3
2401
-----------------
2402

    
2403
*(Released Wed, 28 Nov 2007)*
2404

    
2405
- Another round of updates to the DRBD 8 code to deal with more failures
2406
  in the replace secondary node operation
2407
- Some more logging of failures in disk operations (lvm, drbd)
2408
- A few documentation updates
2409
- QA updates
2410

    
2411

    
2412
Version 1.2 beta2
2413
-----------------
2414

    
2415
*(Released Tue, 13 Nov 2007)*
2416

    
2417
- Change configuration file format from Python's Pickle to JSON.
2418
  Upgrading is possible using the cfgupgrade utility.
2419
- Add support for DRBD 8.0 (new disk template ``drbd``) which allows for
2420
  faster replace disks and is more stable (DRBD 8 has many improvements
2421
  compared to DRBD 0.7)
2422
- Added command line tags support (see man pages for ``gnt-instance``,
2423
  ``gnt-node``, ``gnt-cluster``)
2424
- Added instance rename support
2425
- Added multi-instance startup/shutdown
2426
- Added cluster rename support
2427
- Added ``gnt-node evacuate`` to simplify some node operations
2428
- Added instance reboot operation that can speedup reboot as compared to
2429
  stop and start
2430
- Soften the requirement that hostnames are in FQDN format
2431
- The ``ganeti-watcher`` now activates drbd pairs after secondary node
2432
  reboots
2433
- Removed dependency on debian's patched fping that uses the
2434
  non-standard ``-S`` option
2435
- Now the OS definitions are searched for in multiple, configurable
2436
  paths (easier for distros to package)
2437
- Some changes to the hooks infrastructure (especially the new
2438
  post-configuration update hook)
2439
- Other small bugfixes
2440

    
2441
.. vim: set textwidth=72 syntax=rst :
2442
.. Local Variables:
2443
.. mode: rst
2444
.. fill-column: 72
2445
.. End: