Statistics
| Branch: | Tag: | Revision:

root / NEWS @ d7f27a3e

History | View | Annotate | Download (111.9 kB)

1
News
2
====
3

    
4

    
5
Version 2.8.4
6
-------------
7

    
8
*(unreleased)*
9

    
10
- Change the list separator for the usb_devices parameter from comma to space.
11
  Commas could not work because they are already the hypervisor option
12
  separator (Issue 649)
13
- Add support for blktap2 file-driver (Issue 638)
14
- Add network tag definitions to the haskell codebase (Issue 641)
15
- Fix RAPI network tag handling
16
- Add the network tags to the tags searched by gnt-cluster search-tags
17

    
18

    
19
Version 2.8.3
20
-------------
21

    
22
*(Released Thu, 12 Dec 2013)*
23

    
24
- Fixed Luxi daemon socket permissions after master-failover
25
- Improve IP version detection code directly checking for colons rather than
26
  passing the family from the cluster object
27
- Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
28
  opportunistically anymore (Issue 622)
29
- Allow link local IPv6 gateways (Issue 624)
30
- Fix error printing (Issue 616)
31
- Fix a bug in InstanceSetParams concerning names: in case no name is passed in
32
  disk modifications, keep the old one. If name=none then set disk name to
33
  None.
34
- Update build_chroot script to work with the latest hackage packages
35
- Add a packet number limit to "fping" in master-ip-setup (Issue 630)
36
- Fix evacuation out of drained node (Issue 615)
37
- Add default file_driver if missing (Issue 571)
38
- Fix job error message after unclean master shutdown (Issue 618)
39
- Lock group(s) when creating instances (Issue 621)
40
- SetDiskID() before accepting an instance (Issue 633)
41
- Allow the ext template disks to receive arbitrary parameters, both at creation
42
  time and while being modified
43
- Xen handle domain shutdown (future proofing cherry-pick)
44
- Refactor reading live data in htools (future proofing cherry-pick)
45

    
46

    
47
Version 2.8.2
48
-------------
49

    
50
*(Released Thu, 07 Nov 2013)*
51

    
52
- DRBD: ensure peers are UpToDate for dual-primary
53
- Improve error message for replace-disks
54
- More dependency checks at configure time
55
- Placate warnings on ganeti.outils_unittest.py
56

    
57

    
58
Version 2.8.1
59
-------------
60

    
61
*(Released Thu, 17 Oct 2013)*
62

    
63
- Correctly start/stop luxid during gnt-cluster master-failover
64
- Don't attempt IPv6 ssh in case of IPv4 cluster (Issue 595)
65
- Fix path for the job queue serial file
66
- Improved harep man page
67
- Minor documentation improvements
68

    
69

    
70
Version 2.8.0
71
-------------
72

    
73
*(Released Mon, 30 Sep 2013)*
74

    
75
Incompatible/important changes
76
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77

    
78
- Instance policy can contain multiple instance specs, as described in
79
  the “Constrained instance sizes” section of :doc:`Partitioned Ganeti
80
  <design-partitioned>`. As a consequence, it's not possible to partially change
81
  or override instance specs. Bounding specs (min and max) can be specified as a
82
  whole using the new option ``--ipolicy-bounds-specs``, while standard
83
  specs use the new option ``--ipolicy-std-specs``.
84
- The output of the info command of gnt-cluster, gnt-group, gnt-node,
85
  gnt-instance is a valid YAML object.
86
- hail now honors network restrictions when allocating nodes. This led to an
87
  update of the IAllocator protocol. See the IAllocator documentation for
88
  details.
89
- confd now only answers static configuration request over the network. luxid
90
  was extracted, listens on the local LUXI socket and responds to live queries.
91
  This allows finer grained permissions if using separate users.
92

    
93
New features
94
~~~~~~~~~~~~
95

    
96
- The :doc:`Remote API <rapi>` daemon now supports a command line flag
97
  to always require authentication, ``--require-authentication``. It can
98
  be specified in ``$sysconfdir/default/ganeti``.
99
- A new cluster attribute 'enabled_disk_templates' is introduced. It will
100
  be used to manage the disk templates to be used by instances in the cluster.
101
  Initially, it will be set to a list that includes plain, drbd, if they were
102
  enabled by specifying a volume group name, and file and sharedfile, if those
103
  were enabled at configure time. Additionally, it will include all disk
104
  templates that are currently used by instances. The order of disk templates
105
  will be based on Ganeti's history of supporting them. In the future, the
106
  first entry of the list will be used as a default disk template on instance
107
  creation.
108
- ``cfgupgrade`` now supports a ``--downgrade`` option to bring the
109
  configuration back to the previous stable version.
110
- Disk templates in group ipolicy can be restored to the default value.
111
- Initial support for diskless instances and virtual clusters in QA.
112
- More QA and unit tests for instance policies.
113
- Every opcode now contains a reason trail (visible through ``gnt-job info``)
114
  describing why the opcode itself was executed.
115
- The monitoring daemon is now available. It allows users to query the cluster
116
  for obtaining information about the status of the system. The daemon is only
117
  responsible for providing the information over the network: the actual data
118
  gathering is performed by data collectors (currently, only the DRBD status
119
  collector is available).
120
- In order to help developers work on Ganeti, a new script
121
  (``devel/build_chroot``) is provided, for building a chroot that contains all
122
  the required development libraries and tools for compiling Ganeti on a Debian
123
  Squeeze system.
124
- A new tool, ``harep``, for performing self-repair and recreation of instances
125
  in Ganeti has been added.
126
- Split queries are enabled for tags, network, exports, cluster info, groups,
127
  jobs, nodes.
128
- New command ``show-ispecs-cmd`` for ``gnt-cluster`` and ``gnt-group``.
129
  It prints the command line to set the current policies, to ease
130
  changing them.
131
- Add the ``vnet_hdr`` HV parameter for KVM, to control whether the tap
132
  devices for KVM virtio-net interfaces will get created with VNET_HDR
133
  (IFF_VNET_HDR) support. If set to false, it disables offloading on the
134
  virtio-net interfaces, which prevents host kernel tainting and log
135
  flooding, when dealing with broken or malicious virtio-net drivers.
136
  It's set to true by default.
137
- Instance failover now supports a ``--cleanup`` parameter for fixing previous
138
  failures.
139
- Support 'viridian' parameter in Xen HVM
140
- Support DSA SSH keys in bootstrap
141
- To simplify the work of packaging frameworks that want to add the needed users
142
  and groups in a split-user setup themselves, at build time three files in
143
  ``doc/users`` will be generated. The ``groups`` files contains, one per line,
144
  the groups to be generated, the ``users`` file contains, one per line, the
145
  users to be generated, optionally followed by their primary group, where
146
  important. The ``groupmemberships`` file contains, one per line, additional
147
  user-group membership relations that need to be established. The syntax of
148
  these files will remain stable in all future versions.
149

    
150

    
151
New dependencies
152
~~~~~~~~~~~~~~~~
153
The following new dependencies have been added:
154

    
155
For Haskell:
156
- The ``curl`` library is not optional anymore for compiling the Haskell code.
157
- ``snap-server`` library (if monitoring is enabled).
158

    
159
For Python:
160
- The minimum Python version needed to run Ganeti is now 2.6.
161
- ``yaml`` library (only for running the QA).
162

    
163
Since 2.8.0 rc3
164
~~~~~~~~~~~~~~~
165
- Perform proper cleanup on termination of Haskell daemons
166
- Fix corner-case in handling of remaining retry time
167

    
168

    
169
Version 2.8.0 rc3
170
-----------------
171

    
172
*(Released Tue, 17 Sep 2013)*
173

    
174
- To simplify the work of packaging frameworks that want to add the needed users
175
  and groups in a split-user setup themselves, at build time three files in
176
  ``doc/users`` will be generated. The ``groups`` files contains, one per line,
177
  the groups to be generated, the ``users`` file contains, one per line, the
178
  users to be generated, optionally followed by their primary group, where
179
  important. The ``groupmemberships`` file contains, one per line, additional
180
  user-group membership relations that need to be established. The syntax of
181
  these files will remain stable in all future versions.
182
- Add a default to file-driver when unspecified over RAPI (Issue 571)
183
- Mark the DSA host pubkey as optional, and remove it during config downgrade
184
  (Issue 560)
185
- Some documentation fixes
186

    
187

    
188
Version 2.8.0 rc2
189
-----------------
190

    
191
*(Released Tue, 27 Aug 2013)*
192

    
193
The second release candidate of the 2.8 series. Since 2.8.0. rc1:
194

    
195
- Support 'viridian' parameter in Xen HVM (Issue 233)
196
- Include VCS version in ``gnt-cluster version``
197
- Support DSA SSH keys in bootstrap (Issue 338)
198
- Fix batch creation of instances
199
- Use FQDN to check master node status (Issue 551)
200
- Make the DRBD collector more failure-resilient
201

    
202

    
203
Version 2.8.0 rc1
204
-----------------
205

    
206
*(Released Fri, 2 Aug 2013)*
207

    
208
The first release candidate of the 2.8 series. Since 2.8.0 beta1:
209

    
210
- Fix upgrading/downgrading from 2.7
211
- Increase maximum RAPI message size
212
- Documentation updates
213
- Split ``confd`` between ``luxid`` and ``confd``
214
- Merge 2.7 series up to the 2.7.1 release
215
- Allow the ``modify_etc_hosts`` option to be changed
216
- Add better debugging for ``luxid`` queries
217
- Expose bulk parameter for GetJobs in RAPI client
218
- Expose missing ``network`` fields in RAPI
219
- Add some ``cluster verify`` tests
220
- Some unittest fixes
221
- Fix a malfunction in ``hspace``'s tiered allocation
222
- Fix query compatibility between haskell and python implementations
223
- Add the ``vnet_hdr`` HV parameter for KVM
224
- Add ``--cleanup`` to instance failover
225
- Change the connected groups format in ``gnt-network info`` output; it
226
  was previously displayed as a raw list by mistake. (Merged from 2.7)
227

    
228

    
229
Version 2.8.0 beta1
230
-------------------
231

    
232
*(Released Mon, 24 Jun 2013)*
233

    
234
This was the first beta release of the 2.8 series. All important changes
235
are listed in the latest 2.8 entry.
236

    
237

    
238
Version 2.7.2
239
-------------
240

    
241
*(Released Thu, 26 Sep 2013)*
242

    
243
- Change the connected groups format in ``gnt-network info`` output; it
244
  was previously displayed as a raw list by mistake
245
- Check disk template in right dict when copying
246
- Support multi-instance allocs without iallocator
247
- Fix some errors in the documentation
248
- Fix formatting of tuple in an error message
249

    
250

    
251
Version 2.7.1
252
-------------
253

    
254
*(Released Thu, 25 Jul 2013)*
255

    
256
- Add logrotate functionality in daemon-util
257
- Add logrotate example file
258
- Add missing fields to network queries over rapi
259
- Fix network object timestamps
260
- Add support for querying network timestamps
261
- Fix a typo in the example crontab
262
- Fix a documentation typo
263

    
264

    
265
Version 2.7.0
266
-------------
267

    
268
*(Released Thu, 04 Jul 2013)*
269

    
270
Incompatible/important changes
271
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
272

    
273
- Instance policies for disk size were documented to be on a per-disk
274
  basis, but hail applied them to the sum of all disks. This has been
275
  fixed.
276
- ``hbal`` will now exit with status 0 if, during job execution over
277
  LUXI, early exit has been requested and all jobs are successful;
278
  before, exit status 1 was used, which cannot be differentiated from
279
  "job error" case
280
- Compatibility with newer versions of rbd has been fixed
281
- ``gnt-instance batch-create`` has been changed to use the bulk create
282
  opcode from Ganeti. This lead to incompatible changes in the format of
283
  the JSON file. It's now not a custom dict anymore but a dict
284
  compatible with the ``OpInstanceCreate`` opcode.
285
- Parent directories for file storage need to be listed in
286
  ``$sysconfdir/ganeti/file-storage-paths`` now. ``cfgupgrade`` will
287
  write the file automatically based on old configuration values, but it
288
  can not distribute it across all nodes and the file contents should be
289
  verified. Use ``gnt-cluster copyfile
290
  $sysconfdir/ganeti/file-storage-paths`` once the cluster has been
291
  upgraded. The reason for requiring this list of paths now is that
292
  before it would have been possible to inject new paths via RPC,
293
  allowing files to be created in arbitrary locations. The RPC protocol
294
  is protected using SSL/X.509 certificates, but as a design principle
295
  Ganeti does not permit arbitrary paths to be passed.
296
- The parsing of the variants file for OSes (see
297
  :manpage:`ganeti-os-interface(7)`) has been slightly changed: now empty
298
  lines and comment lines (starting with ``#``) are ignored for better
299
  readability.
300
- The ``setup-ssh`` tool added in Ganeti 2.2 has been replaced and is no
301
  longer available. ``gnt-node add`` now invokes a new tool on the
302
  destination node, named ``prepare-node-join``, to configure the SSH
303
  daemon. Paramiko is no longer necessary to configure nodes' SSH
304
  daemons via ``gnt-node add``.
305
- Draining (``gnt-cluster queue drain``) and un-draining the job queue
306
  (``gnt-cluster queue undrain``) now affects all nodes in a cluster and
307
  the flag is not reset after a master failover.
308
- Python 2.4 has *not* been tested with this release. Using 2.6 or above
309
  is recommended. 2.6 will be mandatory from the 2.8 series.
310

    
311

    
312
New features
313
~~~~~~~~~~~~
314

    
315
- New network management functionality to support automatic allocation
316
  of IP addresses and managing of network parameters. See
317
  :manpage:`gnt-network(8)` for more details.
318
- New external storage backend, to allow managing arbitrary storage
319
  systems external to the cluster. See
320
  :manpage:`ganeti-extstorage-interface(7)`.
321
- New ``exclusive-storage`` node parameter added, restricted to
322
  nodegroup level. When it's set to true, physical disks are assigned in
323
  an exclusive fashion to instances, as documented in :doc:`Partitioned
324
  Ganeti <design-partitioned>`.  Currently, only instances using the
325
  ``plain`` disk template are supported.
326
- The KVM hypervisor has been updated with many new hypervisor
327
  parameters, including a generic one for passing arbitrary command line
328
  values. See a complete list in :manpage:`gnt-instance(8)`. It is now
329
  compatible up to qemu 1.4.
330
- A new tool, called ``mon-collector``, is the stand-alone executor of
331
  the data collectors for a monitoring system. As of this version, it
332
  just includes the DRBD data collector, that can be executed by calling
333
  ``mon-collector`` using the ``drbd`` parameter. See
334
  :manpage:`mon-collector(7)`.
335
- A new user option, :pyeval:`rapi.RAPI_ACCESS_READ`, has been added
336
  for RAPI users. It allows granting permissions to query for
337
  information to a specific user without giving
338
  :pyeval:`rapi.RAPI_ACCESS_WRITE` permissions.
339
- A new tool named ``node-cleanup`` has been added. It cleans remains of
340
  a cluster from a machine by stopping all daemons, removing
341
  certificates and ssconf files. Unless the ``--no-backup`` option is
342
  given, copies of the certificates are made.
343
- Instance creations now support the use of opportunistic locking,
344
  potentially speeding up the (parallel) creation of multiple instances.
345
  This feature is currently only available via the :doc:`RAPI
346
  <rapi>` interface and when an instance allocator is used. If the
347
  ``opportunistic_locking`` parameter is set the opcode will try to
348
  acquire as many locks as possible, but will not wait for any locks
349
  held by other opcodes. If not enough resources can be found to
350
  allocate the instance, the temporary error code
351
  :pyeval:`errors.ECODE_TEMP_NORES` is returned. The operation can be
352
  retried thereafter, with or without opportunistic locking.
353
- New experimental linux-ha resource scripts.
354
- Restricted-commands support: ganeti can now be asked (via command line
355
  or rapi) to perform commands on a node. These are passed via ganeti
356
  RPC rather than ssh. This functionality is restricted to commands
357
  specified on the ``$sysconfdir/ganeti/restricted-commands`` for security
358
  reasons. The file is not copied automatically.
359

    
360

    
361
Misc changes
362
~~~~~~~~~~~~
363

    
364
- Diskless instances are now externally mirrored (Issue 237). This for
365
  now has only been tested in conjunction with explicit target nodes for
366
  migration/failover.
367
- Queries not needing locks or RPC access to the node can now be
368
  performed by the confd daemon, making them independent from jobs, and
369
  thus faster to execute. This is selectable at configure time.
370
- The functionality for allocating multiple instances at once has been
371
  overhauled and is now also available through :doc:`RAPI <rapi>`.
372

    
373
There are no significant changes from version 2.7.0~rc3.
374

    
375

    
376
Version 2.7.0 rc3
377
-----------------
378

    
379
*(Released Tue, 25 Jun 2013)*
380

    
381
- Fix permissions on the confd query socket (Issue 477)
382
- Fix permissions on the job archive dir (Issue 498)
383
- Fix handling of an internal exception in replace-disks (Issue 472)
384
- Fix gnt-node info handling of shortened names (Issue 497)
385
- Fix gnt-instance grow-disk when wiping is enabled
386
- Documentation improvements, and support for newer pandoc
387
- Fix hspace honoring ipolicy for disks (Issue 484)
388
- Improve handling of the ``kvm_extra`` HV parameter
389

    
390

    
391
Version 2.7.0 rc2
392
-----------------
393

    
394
*(Released Fri, 24 May 2013)*
395

    
396
- ``devel/upload`` now works when ``/var/run`` on the target nodes is a
397
  symlink.
398
- Disks added through ``gnt-instance modify`` or created through
399
  ``gnt-instance recreate-disks`` are wiped, if the
400
  ``prealloc_wipe_disks`` flag is set.
401
- If wiping newly created disks fails, the disks are removed. Also,
402
  partial failures in creating disks through ``gnt-instance modify``
403
  triggers a cleanup of the partially-created disks.
404
- Removing the master IP address doesn't fail if the address has been
405
  already removed.
406
- Fix ownership of the OS log dir
407
- Workaround missing SO_PEERCRED constant (Issue 191)
408

    
409

    
410
Version 2.7.0 rc1
411
-----------------
412

    
413
*(Released Fri, 3 May 2013)*
414

    
415
This was the first release candidate of the 2.7 series. Since beta3:
416

    
417
- Fix kvm compatibility with qemu 1.4 (Issue 389)
418
- Documentation updates (admin guide, upgrade notes, install
419
  instructions) (Issue 372)
420
- Fix gnt-group list nodes and instances count (Issue 436)
421
- Fix compilation without non-mandatory libraries (Issue 441)
422
- Fix xen-hvm hypervisor forcing nics to type 'ioemu' (Issue 247)
423
- Make confd logging more verbose at INFO level (Issue 435)
424
- Improve "networks" documentation in :manpage:`gnt-instance(8)`
425
- Fix failure path for instance storage type conversion (Issue 229)
426
- Update htools text backend documentation
427
- Improve the renew-crypto section of :manpage:`gnt-cluster(8)`
428
- Disable inter-cluster instance move for file-based instances, because
429
  it is dependant on instance export, which is not supported for
430
  file-based instances. (Issue 414)
431
- Fix gnt-job crashes on non-ascii characters (Issue 427)
432
- Fix volume group checks on non-vm-capable nodes (Issue 432)
433

    
434

    
435
Version 2.7.0 beta3
436
-------------------
437

    
438
*(Released Mon, 22 Apr 2013)*
439

    
440
This was the third beta release of the 2.7 series. Since beta2:
441

    
442
- Fix hail to verify disk instance policies on a per-disk basis (Issue 418).
443
- Fix data loss on wrong usage of ``gnt-instance move``
444
- Properly export errors in confd-based job queries
445
- Add ``users-setup`` tool
446
- Fix iallocator protocol to report 0 as a disk size for diskless
447
  instances. This avoids hail breaking when a diskless instance is
448
  present.
449
- Fix job queue directory permission problem that made confd job queries
450
  fail. This requires running an ``ensure-dirs --full-run`` on upgrade
451
  for access to archived jobs (Issue 406).
452
- Limit the sizes of networks supported by ``gnt-network`` to something
453
  between a ``/16`` and a ``/30`` to prevent memory bloat and crashes.
454
- Fix bugs in instance disk template conversion
455
- Fix GHC 7 compatibility
456
- Fix ``burnin`` install path (Issue 426).
457
- Allow very small disk grows (Issue 347).
458
- Fix a ``ganeti-noded`` memory bloat introduced in 2.5, by making sure
459
  that noded doesn't import masterd code (Issue 419).
460
- Make sure the default metavg at cluster init is the same as the vg, if
461
  unspecified (Issue 358).
462
- Fix cleanup of partially created disks (part of Issue 416)
463

    
464

    
465
Version 2.7.0 beta2
466
-------------------
467

    
468
*(Released Tue, 2 Apr 2013)*
469

    
470
This was the second beta release of the 2.7 series. Since beta1:
471

    
472
- Networks no longer have a "type" slot, since this information was
473
  unused in Ganeti: instead of it tags should be used.
474
- The rapi client now has a ``target_node`` option to MigrateInstance.
475
- Fix early exit return code for hbal (Issue 386).
476
- Fix ``gnt-instance migrate/failover -n`` (Issue 396).
477
- Fix ``rbd showmapped`` output parsing (Issue 312).
478
- Networks are now referenced indexed by UUID, rather than name. This
479
  will require running cfgupgrade, from 2.7.0beta1, if networks are in
480
  use.
481
- The OS environment now includes network information.
482
- Deleting of a network is now disallowed if any instance nic is using
483
  it, to prevent dangling references.
484
- External storage is now documented in man pages.
485
- The exclusive_storage flag can now only be set at nodegroup level.
486
- Hbal can now submit an explicit priority with its jobs.
487
- Many network related locking fixes.
488
- Bump up the required pylint version to 0.25.1.
489
- Fix the ``no_remember`` option in RAPI client.
490
- Many ipolicy related tests, qa, and fixes.
491
- Many documentation improvements and fixes.
492
- Fix building with ``--disable-file-storage``.
493
- Fix ``-q`` option in htools, which was broken if passed more than
494
  once.
495
- Some haskell/python interaction improvements and fixes.
496
- Fix iallocator in case of missing LVM storage.
497
- Fix confd config load in case of ``--no-lvm-storage``.
498
- The confd/query functionality is now mentioned in the security
499
  documentation.
500

    
501

    
502
Version 2.7.0 beta1
503
-------------------
504

    
505
*(Released Wed, 6 Feb 2013)*
506

    
507
This was the first beta release of the 2.7 series. All important changes
508
are listed in the latest 2.7 entry.
509

    
510

    
511
Version 2.6.2
512
-------------
513

    
514
*(Released Fri, 21 Dec 2012)*
515

    
516
Important behaviour change: hbal won't rebalance anymore instances which
517
have the ``auto_balance`` attribute set to false. This was the intention
518
all along, but until now it only skipped those from the N+1 memory
519
reservation (DRBD-specific).
520

    
521
A significant number of bug fixes in this release:
522

    
523
- Fixed disk adoption interaction with ipolicy checks.
524
- Fixed networking issues when instances are started, stopped or
525
  migrated, by forcing the tap device's MAC prefix to "fe" (issue 217).
526
- Fixed the warning in cluster verify for shared storage instances not
527
  being redundant.
528
- Fixed removal of storage directory on shared file storage (issue 262).
529
- Fixed validation of LVM volume group name in OpClusterSetParams
530
  (``gnt-cluster modify``) (issue 285).
531
- Fixed runtime memory increases (``gnt-instance modify -m``).
532
- Fixed live migration under Xen's ``xl`` mode.
533
- Fixed ``gnt-instance console`` with ``xl``.
534
- Fixed building with newer Haskell compiler/libraries.
535
- Fixed PID file writing in Haskell daemons (confd); this prevents
536
  restart issues if confd was launched manually (outside of
537
  ``daemon-util``) while another copy of it was running
538
- Fixed a type error when doing live migrations with KVM (issue 297) and
539
  the error messages for failing migrations have been improved.
540
- Fixed opcode validation for the out-of-band commands (``gnt-node
541
  power``).
542
- Fixed a type error when unsetting OS hypervisor parameters (issue
543
  311); now it's possible to unset all OS-specific hypervisor
544
  parameters.
545
- Fixed the ``dry-run`` mode for many operations: verification of
546
  results was over-zealous but didn't take into account the ``dry-run``
547
  operation, resulting in "wrong" failures.
548
- Fixed bash completion in ``gnt-job list`` when the job queue has
549
  hundreds of entries; especially with older ``bash`` versions, this
550
  results in significant CPU usage.
551

    
552
And lastly, a few other improvements have been made:
553

    
554
- Added option to force master-failover without voting (issue 282).
555
- Clarified error message on lock conflict (issue 287).
556
- Logging of newly submitted jobs has been improved (issue 290).
557
- Hostname checks have been made uniform between instance rename and
558
  create (issue 291).
559
- The ``--submit`` option is now supported by ``gnt-debug delay``.
560
- Shutting down the master daemon by sending SIGTERM now stops it from
561
  processing jobs waiting for locks; instead, those jobs will be started
562
  once again after the master daemon is started the next time (issue
563
  296).
564
- Support for Xen's ``xl`` program has been improved (besides the fixes
565
  above).
566
- Reduced logging noise in the Haskell confd daemon (only show one log
567
  entry for each config reload, instead of two).
568
- Several man page updates and typo fixes.
569

    
570

    
571
Version 2.6.1
572
-------------
573

    
574
*(Released Fri, 12 Oct 2012)*
575

    
576
A small bugfix release. Among the bugs fixed:
577

    
578
- Fixed double use of ``PRIORITY_OPT`` in ``gnt-node migrate``, that
579
  made the command unusable.
580
- Commands that issue many jobs don't fail anymore just because some jobs
581
  take so long that other jobs are archived.
582
- Failures during ``gnt-instance reinstall`` are reflected by the exit
583
  status.
584
- Issue 190 fixed. Check for DRBD in cluster verify is enabled only when
585
  DRBD is enabled.
586
- When ``always_failover`` is set, ``--allow-failover`` is not required
587
  in migrate commands anymore.
588
- ``bash_completion`` works even if extglob is disabled.
589
- Fixed bug with locks that made failover for RDB-based instances fail.
590
- Fixed bug in non-mirrored instance allocation that made Ganeti choose
591
  a random node instead of one based on the allocator metric.
592
- Support for newer versions of pylint and pep8.
593
- Hail doesn't fail anymore when trying to add an instance of type
594
  ``file``, ``sharedfile`` or ``rbd``.
595
- Added new Makefile target to rebuild the whole distribution, so that
596
  all files are included.
597

    
598

    
599
Version 2.6.0
600
-------------
601

    
602
*(Released Fri, 27 Jul 2012)*
603

    
604

    
605
.. attention:: The ``LUXI`` protocol has been made more consistent
606
   regarding its handling of command arguments. This, however, leads to
607
   incompatibility issues with previous versions. Please ensure that you
608
   restart Ganeti daemons soon after the upgrade, otherwise most
609
   ``LUXI`` calls (job submission, setting/resetting the drain flag,
610
   pausing/resuming the watcher, cancelling and archiving jobs, querying
611
   the cluster configuration) will fail.
612

    
613

    
614
New features
615
~~~~~~~~~~~~
616

    
617
Instance run status
618
+++++++++++++++++++
619

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

    
624
The rational behind this is that an instance being “down” can have
625
different meanings:
626

    
627
- it could be down during a reboot
628
- it could be temporarily be down for a reinstall
629
- or it could be down because it is deprecated and kept just for its
630
  disk
631

    
632
The previous Boolean state was making it difficult to do capacity
633
calculations: should Ganeti reserve memory for a down instance? Now, the
634
tri-state field makes it clear:
635

    
636
- in ``up`` and ``down`` state, all resources are reserved for the
637
  instance, and it can be at any time brought up if it is down
638
- in ``offline`` state, only disk space is reserved for it, but not
639
  memory or CPUs
640

    
641
The field can have an extra use: since the transition between ``up`` and
642
``down`` and vice-versus is done via ``gnt-instance start/stop``, but
643
transition between ``offline`` and ``down`` is done via ``gnt-instance
644
modify``, it is possible to given different rights to users. For
645
example, owners of an instance could be allowed to start/stop it, but
646
not transition it out of the offline state.
647

    
648
Instance policies and specs
649
+++++++++++++++++++++++++++
650

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

    
658
In order to improve these workflows and to allow for example better
659
per-node group differentiation, we introduced instance specs, which
660
allow declaring:
661

    
662
- minimum instance disk size, disk count, memory size, cpu count
663
- maximum values for the above metrics
664
- and “standard” values (used in ``hspace`` to calculate the standard
665
  sized instances)
666

    
667
The minimum/maximum values can be also customised at node-group level,
668
for example allowing more powerful hardware to support bigger instance
669
memory sizes.
670

    
671
Beside the instance specs, there are a few other settings belonging to
672
the instance policy framework. It is possible now to customise, per
673
cluster and node-group:
674

    
675
- the list of allowed disk templates
676
- the maximum ratio of VCPUs per PCPUs (to control CPU oversubscription)
677
- the maximum ratio of instance to spindles (see below for more
678
  information) for local storage
679

    
680
All these together should allow all tools that talk to Ganeti to know
681
what are the ranges of allowed values for instances and the
682
over-subscription that is allowed.
683

    
684
For the VCPU/PCPU ratio, we already have the VCPU configuration from the
685
instance configuration, and the physical CPU configuration from the
686
node. For the spindle ratios however, we didn't track before these
687
values, so new parameters have been added:
688

    
689
- a new node parameter ``spindle_count``, defaults to 1, customisable at
690
  node group or node level
691
- at new backend parameter (for instances), ``spindle_use`` defaults to 1
692

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

    
697
Instance migration behaviour
698
++++++++++++++++++++++++++++
699

    
700
While live-migration is in general desirable over failover, it is
701
possible that for some workloads it is actually worse, due to the
702
variable time of the “suspend” phase during live migration.
703

    
704
To allow the tools to work consistently over such instances (without
705
having to hard-code instance names), a new backend parameter
706
``always_failover`` has been added to control the migration/failover
707
behaviour. When set to True, all migration requests for an instance will
708
instead fall-back to failover.
709

    
710
Instance memory ballooning
711
++++++++++++++++++++++++++
712

    
713
Initial support for memory ballooning has been added. The memory for an
714
instance is no longer fixed (backend parameter ``memory``), but instead
715
can vary between minimum and maximum values (backend parameters
716
``minmem`` and ``maxmem``). Currently we only change an instance's
717
memory when:
718

    
719
- live migrating or failing over and instance and the target node
720
  doesn't have enough memory
721
- user requests changing the memory via ``gnt-instance modify
722
  --runtime-memory``
723

    
724
Instance CPU pinning
725
++++++++++++++++++++
726

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

    
735
Disk parameters
736
+++++++++++++++
737

    
738
Another area in which Ganeti was not customisable were the parameters
739
used for storage configuration, e.g. how many stripes to use for LVM,
740
DRBD resync configuration, etc.
741

    
742
To improve this area, we've added disks parameters, which are
743
customisable at cluster and node group level, and which allow to
744
specify various parameters for disks (DRBD has the most parameters
745
currently), for example:
746

    
747
- DRBD resync algorithm and parameters (e.g. speed)
748
- the default VG for meta-data volumes for DRBD
749
- number of stripes for LVM (plain disk template)
750
- the RBD pool
751

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

    
757
Rados block device support
758
++++++++++++++++++++++++++
759

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

    
765
Master IP setup
766
+++++++++++++++
767

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

    
773
To allow the master IP to function well in more complex cases, the
774
system was reworked as follows:
775

    
776
- a master IP netmask setting has been added
777
- the master IP activation/turn-down code was moved from the node daemon
778
  to a separate script
779
- whether to run the Ganeti-supplied master IP script or a user-supplied
780
  on is a ``gnt-cluster init`` setting
781

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

    
786
SPICE support
787
+++++++++++++
788

    
789
The `SPICE <http://www.linux-kvm.org/page/SPICE>`_ support has been
790
improved.
791

    
792
It is now possible to use TLS-protected connections, and when renewing
793
or changing the cluster certificates (via ``gnt-cluster renew-crypto``,
794
it is now possible to specify spice or spice CA certificates. Also, it
795
is possible to configure a password for SPICE sessions via the
796
hypervisor parameter ``spice_password_file``.
797

    
798
There are also new parameters to control the compression and streaming
799
options (e.g. ``spice_image_compression``, ``spice_streaming_video``,
800
etc.). For details, see the man page :manpage:`gnt-instance(8)` and look
801
for the spice parameters.
802

    
803
Lastly, it is now possible to see the SPICE connection information via
804
``gnt-instance console``.
805

    
806
OVF converter
807
+++++++++++++
808

    
809
A new tool (``tools/ovfconverter``) has been added that supports
810
conversion between Ganeti and the `Open Virtualization Format
811
<http://en.wikipedia.org/wiki/Open_Virtualization_Format>`_ (both to and
812
from).
813

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

    
817
Confd daemon changes
818
++++++++++++++++++++
819

    
820
The configuration query daemon (``ganeti-confd``) is now optional, and
821
has been rewritten in Haskell; whether to use the daemon at all, use the
822
Python (default) or the Haskell version is selectable at configure time
823
via the ``--enable-confd`` parameter, which can take one of the
824
``haskell``, ``python`` or ``no`` values. If not used, disabling the
825
daemon will result in a smaller footprint; for larger systems, we
826
welcome feedback on the Haskell version which might become the default
827
in future versions.
828

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

    
832

    
833
User interface changes
834
~~~~~~~~~~~~~~~~~~~~~~
835

    
836
We have replaced the ``--disks`` option of ``gnt-instance
837
replace-disks`` with a more flexible ``--disk`` option, which allows
838
adding and removing disks at arbitrary indices (Issue 188). Furthermore,
839
disk size and mode can be changed upon recreation (via ``gnt-instance
840
recreate-disks``, which accepts the same ``--disk`` option).
841

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

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

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

    
854
A new command ``list-drbd`` has been added to the ``gnt-node`` script to
855
support debugging of DRBD issues on nodes. It provides a mapping of DRBD
856
minors to instance name.
857

    
858
API changes
859
~~~~~~~~~~~
860

    
861
RAPI coverage has improved, with (for example) new resources for
862
recreate-disks, node power-cycle, etc.
863

    
864
Compatibility
865
~~~~~~~~~~~~~
866

    
867
There is partial support for ``xl`` in the Xen hypervisor; feedback is
868
welcome.
869

    
870
Python 2.7 is better supported, and after Ganeti 2.6 we will investigate
871
whether to still support Python 2.4 or move to Python 2.6 as minimum
872
required version.
873

    
874
Support for Fedora has been slightly improved; the provided example
875
init.d script should work better on it and the INSTALL file should
876
document the needed dependencies.
877

    
878
Internal changes
879
~~~~~~~~~~~~~~~~
880

    
881
The deprecated ``QueryLocks`` LUXI request has been removed. Use
882
``Query(what=QR_LOCK, ...)`` instead.
883

    
884
The LUXI requests :pyeval:`luxi.REQ_QUERY_JOBS`,
885
:pyeval:`luxi.REQ_QUERY_INSTANCES`, :pyeval:`luxi.REQ_QUERY_NODES`,
886
:pyeval:`luxi.REQ_QUERY_GROUPS`, :pyeval:`luxi.REQ_QUERY_EXPORTS` and
887
:pyeval:`luxi.REQ_QUERY_TAGS` are deprecated and will be removed in a
888
future version. :pyeval:`luxi.REQ_QUERY` should be used instead.
889

    
890
RAPI client: ``CertificateError`` now derives from
891
``GanetiApiError``. This should make it more easy to handle Ganeti
892
errors.
893

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

    
898
The QA scripts now depend on Python 2.5 or above (the main code base
899
still works with Python 2.4).
900

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

    
905
A number of bugs has been fixed in the cluster merge tool.
906

    
907
``x509`` certification verification (used in import-export) has been
908
changed to allow the same clock skew as permitted by the cluster
909
verification. This will remove some rare but hard to diagnose errors in
910
import-export.
911

    
912

    
913
Version 2.6.0 rc4
914
-----------------
915

    
916
*(Released Thu, 19 Jul 2012)*
917

    
918
Very few changes from rc4 to the final release, only bugfixes:
919

    
920
- integrated fixes from release 2.5.2 (fix general boot flag for KVM
921
  instance, fix CDROM booting for KVM instances)
922
- fixed node group modification of node parameters
923
- fixed issue in LUClusterVerifyGroup with multi-group clusters
924
- fixed generation of bash completion to ensure a stable ordering
925
- fixed a few typos
926

    
927

    
928
Version 2.6.0 rc3
929
-----------------
930

    
931
*(Released Fri, 13 Jul 2012)*
932

    
933
Third release candidate for 2.6. The following changes were done from
934
rc3 to rc4:
935

    
936
- Fixed ``UpgradeConfig`` w.r.t. to disk parameters on disk objects.
937
- Fixed an inconsistency in the LUXI protocol with the provided
938
  arguments (NOT backwards compatible)
939
- Fixed a bug with node groups ipolicy where ``min`` was greater than
940
  the cluster ``std`` value
941
- Implemented a new ``gnt-node list-drbd`` call to list DRBD minors for
942
  easier instance debugging on nodes (requires ``hconfd`` to work)
943

    
944

    
945
Version 2.6.0 rc2
946
-----------------
947

    
948
*(Released Tue, 03 Jul 2012)*
949

    
950
Second release candidate for 2.6. The following changes were done from
951
rc2 to rc3:
952

    
953
- Fixed ``gnt-cluster verify`` regarding ``master-ip-script`` on non
954
  master candidates
955
- Fixed a RAPI regression on missing beparams/memory
956
- Fixed redistribution of files on offline nodes
957
- Added possibility to run activate-disks even though secondaries are
958
  offline. With this change it relaxes also the strictness on some other
959
  commands which use activate disks internally:
960
  * ``gnt-instance start|reboot|rename|backup|export``
961
- Made it possible to remove safely an instance if its secondaries are
962
  offline
963
- Made it possible to reinstall even though secondaries are offline
964

    
965

    
966
Version 2.6.0 rc1
967
-----------------
968

    
969
*(Released Mon, 25 Jun 2012)*
970

    
971
First release candidate for 2.6. The following changes were done from
972
rc1 to rc2:
973

    
974
- Fixed bugs with disk parameters and ``rbd`` templates as well as
975
  ``instance_os_add``
976
- Made ``gnt-instance modify`` more consistent regarding new NIC/Disk
977
  behaviour. It supports now the modify operation
978
- ``hcheck`` implemented to analyze cluster health and possibility of
979
  improving health by rebalance
980
- ``hbal`` has been improved in dealing with split instances
981

    
982

    
983
Version 2.6.0 beta2
984
-------------------
985

    
986
*(Released Mon, 11 Jun 2012)*
987

    
988
Second beta release of 2.6. The following changes were done from beta2
989
to rc1:
990

    
991
- Fixed ``daemon-util`` with non-root user models
992
- Fixed creation of plain instances with ``--no-wait-for-sync``
993
- Fix wrong iv_names when running ``cfgupgrade``
994
- Export more information in RAPI group queries
995
- Fixed bug when changing instance network interfaces
996
- Extended burnin to do NIC changes
997
- query: Added ``<``, ``>``, ``<=``, ``>=`` comparison operators
998
- Changed default for DRBD barriers
999
- Fixed DRBD error reporting for syncer rate
1000
- Verify the options on disk parameters
1001

    
1002
And of course various fixes to documentation and improved unittests and
1003
QA.
1004

    
1005

    
1006
Version 2.6.0 beta1
1007
-------------------
1008

    
1009
*(Released Wed, 23 May 2012)*
1010

    
1011
First beta release of 2.6. The following changes were done from beta1 to
1012
beta2:
1013

    
1014
- integrated patch for distributions without ``start-stop-daemon``
1015
- adapted example init.d script to work on Fedora
1016
- fixed log handling in Haskell daemons
1017
- adapted checks in the watcher for pycurl linked against libnss
1018
- add partial support for ``xl`` instead of ``xm`` for Xen
1019
- fixed a type issue in cluster verification
1020
- fixed ssconf handling in the Haskell code (was breaking confd in IPv6
1021
  clusters)
1022

    
1023
Plus integrated fixes from the 2.5 branch:
1024

    
1025
- fixed ``kvm-ifup`` to use ``/bin/bash``
1026
- fixed parallel build failures
1027
- KVM live migration when using a custom keymap
1028

    
1029

    
1030
Version 2.5.2
1031
-------------
1032

    
1033
*(Released Tue, 24 Jul 2012)*
1034

    
1035
A small bugfix release, with no new features:
1036

    
1037
- fixed bash-isms in kvm-ifup, for compatibility with systems which use a
1038
  different default shell (e.g. Debian, Ubuntu)
1039
- fixed KVM startup and live migration with a custom keymap (fixes Issue
1040
  243 and Debian bug #650664)
1041
- fixed compatibility with KVM versions that don't support multiple boot
1042
  devices (fixes Issue 230 and Debian bug #624256)
1043

    
1044
Additionally, a few fixes were done to the build system (fixed parallel
1045
build failures) and to the unittests (fixed race condition in test for
1046
FileID functions, and the default enable/disable mode for QA test is now
1047
customisable).
1048

    
1049

    
1050
Version 2.5.1
1051
-------------
1052

    
1053
*(Released Fri, 11 May 2012)*
1054

    
1055
A small bugfix release.
1056

    
1057
The main issues solved are on the topic of compatibility with newer LVM
1058
releases:
1059

    
1060
- fixed parsing of ``lv_attr`` field
1061
- adapted to new ``vgreduce --removemissing`` behaviour where sometimes
1062
  the ``--force`` flag is needed
1063

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

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

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

    
1076
The fix for issue 201 (Preserve bridge MTU in KVM ifup script) was
1077
integrated into this release.
1078

    
1079
Finally, a few other miscellaneous changes were done (no new features,
1080
just small improvements):
1081

    
1082
- Fix ``gnt-group --help`` display
1083
- Fix hardcoded Xen kernel path
1084
- Fix grow-disk handling of invalid units
1085
- Update synopsis for ``gnt-cluster repair-disk-sizes``
1086
- Accept both PUT and POST in noded (makes future upgrade to 2.6 easier)
1087

    
1088

    
1089
Version 2.5.0
1090
-------------
1091

    
1092
*(Released Thu, 12 Apr 2012)*
1093

    
1094
Incompatible/important changes and bugfixes
1095
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1096

    
1097
- The default of the ``/2/instances/[instance_name]/rename`` RAPI
1098
  resource's ``ip_check`` parameter changed from ``True`` to ``False``
1099
  to match the underlying LUXI interface.
1100
- The ``/2/nodes/[node_name]/evacuate`` RAPI resource was changed to use
1101
  body parameters, see :doc:`RAPI documentation <rapi>`. The server does
1102
  not maintain backwards-compatibility as the underlying operation
1103
  changed in an incompatible way. The RAPI client can talk to old
1104
  servers, but it needs to be told so as the return value changed.
1105
- When creating file-based instances via RAPI, the ``file_driver``
1106
  parameter no longer defaults to ``loop`` and must be specified.
1107
- The deprecated ``bridge`` NIC parameter is no longer supported. Use
1108
  ``link`` instead.
1109
- Support for the undocumented and deprecated RAPI instance creation
1110
  request format version 0 has been dropped. Use version 1, supported
1111
  since Ganeti 2.1.3 and :doc:`documented <rapi>`, instead.
1112
- Pyparsing 1.4.6 or above is required, see :doc:`installation
1113
  documentation <install>`.
1114
- The "cluster-verify" hooks are now executed per group by the
1115
  ``OP_CLUSTER_VERIFY_GROUP`` opcode. This maintains the same behavior
1116
  if you just run ``gnt-cluster verify``, which generates one opcode per
1117
  group.
1118
- The environment as passed to the OS scripts is cleared, and thus no
1119
  environment variables defined in the node daemon's environment will be
1120
  inherited by the scripts.
1121
- The :doc:`iallocator <iallocator>` mode ``multi-evacuate`` has been
1122
  deprecated.
1123
- :doc:`New iallocator modes <design-multi-reloc>` have been added to
1124
  support operations involving multiple node groups.
1125
- Offline nodes are ignored when failing over an instance.
1126
- Support for KVM version 1.0, which changed the version reporting format
1127
  from 3 to 2 digits.
1128
- TCP/IP ports used by DRBD disks are returned to a pool upon instance
1129
  removal.
1130
- ``Makefile`` is now compatible with Automake 1.11.2
1131
- Includes all bugfixes made in the 2.4 series
1132

    
1133
New features
1134
~~~~~~~~~~~~
1135

    
1136
- The ganeti-htools project has been merged into the ganeti-core source
1137
  tree and will be built as part of Ganeti (see :doc:`install-quick`).
1138
- Implemented support for :doc:`shared storage <design-shared-storage>`.
1139
- Add support for disks larger than 2 TB in ``lvmstrap`` by supporting
1140
  GPT-style partition tables (requires `parted
1141
  <http://www.gnu.org/s/parted/>`_).
1142
- Added support for floppy drive and 2nd CD-ROM drive in KVM hypervisor.
1143
- Allowed adding tags on instance creation.
1144
- Export instance tags to hooks (``INSTANCE_TAGS``, see :doc:`hooks`)
1145
- Allow instances to be started in a paused state, enabling the user to
1146
  see the complete console output on boot using the console.
1147
- Added new hypervisor flag to control default reboot behaviour
1148
  (``reboot_behavior``).
1149
- Added support for KVM keymaps (hypervisor parameter ``keymap``).
1150
- Improved out-of-band management support:
1151

    
1152
  - Added ``gnt-node health`` command reporting the health status of
1153
    nodes.
1154
  - Added ``gnt-node power`` command to manage power status of nodes.
1155
  - Added command for emergency power-off (EPO), ``gnt-cluster epo``.
1156

    
1157
- Instance migration can fall back to failover if instance is not
1158
  running.
1159
- Filters can be used when listing nodes, instances, groups and locks;
1160
  see :manpage:`ganeti(7)` manpage.
1161
- Added post-execution status as variables to :doc:`hooks <hooks>`
1162
  environment.
1163
- Instance tags are exported/imported together with the instance.
1164
- When given an explicit job ID, ``gnt-job info`` will work for archived
1165
  jobs.
1166
- Jobs can define dependencies on other jobs (not yet supported via
1167
  RAPI or command line, but used by internal commands and usable via
1168
  LUXI).
1169

    
1170
  - Lock monitor (``gnt-debug locks``) shows jobs waiting for
1171
    dependencies.
1172

    
1173
- Instance failover is now available as a RAPI resource
1174
  (``/2/instances/[instance_name]/failover``).
1175
- ``gnt-instance info`` defaults to static information if primary node
1176
  is offline.
1177
- Opcodes have a new ``comment`` attribute.
1178
- Added basic SPICE support to KVM hypervisor.
1179
- ``tools/ganeti-listrunner`` allows passing of arguments to executable.
1180

    
1181
Node group improvements
1182
~~~~~~~~~~~~~~~~~~~~~~~
1183

    
1184
- ``gnt-cluster verify`` has been modified to check groups separately,
1185
  thereby improving performance.
1186
- Node group support has been added to ``gnt-cluster verify-disks``,
1187
  which now operates per node group.
1188
- Watcher has been changed to work better with node groups.
1189

    
1190
  - One process and state file per node group.
1191
  - Slow watcher in one group doesn't block other group's watcher.
1192

    
1193
- Added new command, ``gnt-group evacuate``, to move all instances in a
1194
  node group to other groups.
1195
- Added ``gnt-instance change-group`` to move an instance to another
1196
  node group.
1197
- ``gnt-cluster command`` and ``gnt-cluster copyfile`` now support
1198
  per-group operations.
1199
- Node groups can be tagged.
1200
- Some operations switch from an exclusive to a shared lock as soon as
1201
  possible.
1202
- Instance's primary and secondary nodes' groups are now available as
1203
  query fields (``pnode.group``, ``pnode.group.uuid``, ``snodes.group``
1204
  and ``snodes.group.uuid``).
1205

    
1206
Misc
1207
~~~~
1208

    
1209
- Numerous updates to documentation and manpages.
1210

    
1211
  - :doc:`RAPI <rapi>` documentation now has detailed parameter
1212
    descriptions.
1213
  - Some opcode/job results are now also documented, see :doc:`RAPI
1214
    <rapi>`.
1215

    
1216
- A lockset's internal lock is now also visible in lock monitor.
1217
- Log messages from job queue workers now contain information about the
1218
  opcode they're processing.
1219
- ``gnt-instance console`` no longer requires the instance lock.
1220
- A short delay when waiting for job changes reduces the number of LUXI
1221
  requests significantly.
1222
- DRBD metadata volumes are overwritten with zeros during disk creation.
1223
- Out-of-band commands no longer acquire the cluster lock in exclusive
1224
  mode.
1225
- ``devel/upload`` now uses correct permissions for directories.
1226

    
1227

    
1228
Version 2.5.0 rc6
1229
-----------------
1230

    
1231
*(Released Fri, 23 Mar 2012)*
1232

    
1233
This was the sixth release candidate of the 2.5 series.
1234

    
1235

    
1236
Version 2.5.0 rc5
1237
-----------------
1238

    
1239
*(Released Mon, 9 Jan 2012)*
1240

    
1241
This was the fifth release candidate of the 2.5 series.
1242

    
1243

    
1244
Version 2.5.0 rc4
1245
-----------------
1246

    
1247
*(Released Thu, 27 Oct 2011)*
1248

    
1249
This was the fourth release candidate of the 2.5 series.
1250

    
1251

    
1252
Version 2.5.0 rc3
1253
-----------------
1254

    
1255
*(Released Wed, 26 Oct 2011)*
1256

    
1257
This was the third release candidate of the 2.5 series.
1258

    
1259

    
1260
Version 2.5.0 rc2
1261
-----------------
1262

    
1263
*(Released Tue, 18 Oct 2011)*
1264

    
1265
This was the second release candidate of the 2.5 series.
1266

    
1267

    
1268
Version 2.5.0 rc1
1269
-----------------
1270

    
1271
*(Released Tue, 4 Oct 2011)*
1272

    
1273
This was the first release candidate of the 2.5 series.
1274

    
1275

    
1276
Version 2.5.0 beta3
1277
-------------------
1278

    
1279
*(Released Wed, 31 Aug 2011)*
1280

    
1281
This was the third beta release of the 2.5 series.
1282

    
1283

    
1284
Version 2.5.0 beta2
1285
-------------------
1286

    
1287
*(Released Mon, 22 Aug 2011)*
1288

    
1289
This was the second beta release of the 2.5 series.
1290

    
1291

    
1292
Version 2.5.0 beta1
1293
-------------------
1294

    
1295
*(Released Fri, 12 Aug 2011)*
1296

    
1297
This was the first beta release of the 2.5 series.
1298

    
1299

    
1300
Version 2.4.5
1301
-------------
1302

    
1303
*(Released Thu, 27 Oct 2011)*
1304

    
1305
- Fixed bug when parsing command line parameter values ending in
1306
  backslash
1307
- Fixed assertion error after unclean master shutdown
1308
- Disable HTTP client pool for RPC, significantly reducing memory usage
1309
  of master daemon
1310
- Fixed queue archive creation with wrong permissions
1311

    
1312

    
1313
Version 2.4.4
1314
-------------
1315

    
1316
*(Released Tue, 23 Aug 2011)*
1317

    
1318
Small bug-fixes:
1319

    
1320
- Fixed documentation for importing with ``--src-dir`` option
1321
- Fixed a bug in ``ensure-dirs`` with queue/archive permissions
1322
- Fixed a parsing issue with DRBD 8.3.11 in the Linux kernel
1323

    
1324

    
1325
Version 2.4.3
1326
-------------
1327

    
1328
*(Released Fri, 5 Aug 2011)*
1329

    
1330
Many bug-fixes and a few small features:
1331

    
1332
- Fixed argument order in ``ReserveLV`` and ``ReserveMAC`` which caused
1333
  issues when you tried to add an instance with two MAC addresses in one
1334
  request
1335
- KVM: fixed per-instance stored UID value
1336
- KVM: configure bridged NICs at migration start
1337
- KVM: Fix a bug where instance will not start with never KVM versions
1338
  (>= 0.14)
1339
- Added OS search path to ``gnt-cluster info``
1340
- Fixed an issue with ``file_storage_dir`` where you were forced to
1341
  provide an absolute path, but the documentation states it is a
1342
  relative path, the documentation was right
1343
- Added a new parameter to instance stop/start called ``--no-remember``
1344
  that will make the state change to not be remembered
1345
- Implemented ``no_remember`` at RAPI level
1346
- Improved the documentation
1347
- Node evacuation: don't call IAllocator if node is already empty
1348
- Fixed bug in DRBD8 replace disks on current nodes
1349
- Fixed bug in recreate-disks for DRBD instances
1350
- Moved assertion checking locks in ``gnt-instance replace-disks``
1351
  causing it to abort with not owning the right locks for some situation
1352
- Job queue: Fixed potential race condition when cancelling queued jobs
1353
- Fixed off-by-one bug in job serial generation
1354
- ``gnt-node volumes``: Fix instance names
1355
- Fixed aliases in bash completion
1356
- Fixed a bug in reopening log files after being sent a SIGHUP
1357
- Added a flag to burnin to allow specifying VCPU count
1358
- Bugfixes to non-root Ganeti configuration
1359

    
1360

    
1361
Version 2.4.2
1362
-------------
1363

    
1364
*(Released Thu, 12 May 2011)*
1365

    
1366
Many bug-fixes and a few new small features:
1367

    
1368
- Fixed a bug related to log opening failures
1369
- Fixed a bug in instance listing with orphan instances
1370
- Fixed a bug which prevented resetting the cluster-level node parameter
1371
  ``oob_program`` to the default
1372
- Many fixes related to the ``cluster-merge`` tool
1373
- Fixed a race condition in the lock monitor, which caused failures
1374
  during (at least) creation of many instances in parallel
1375
- Improved output for gnt-job info
1376
- Removed the quiet flag on some ssh calls which prevented debugging
1377
  failures
1378
- Improved the N+1 failure messages in cluster verify by actually
1379
  showing the memory values (needed and available)
1380
- Increased lock attempt timeouts so that when executing long operations
1381
  (e.g. DRBD replace-disks) other jobs do not enter 'blocking acquire'
1382
  too early and thus prevent the use of the 'fair' mechanism
1383
- Changed instance query data (``gnt-instance info``) to not acquire
1384
  locks unless needed, thus allowing its use on locked instance if only
1385
  static information is asked for
1386
- Improved behaviour with filesystems that do not support rename on an
1387
  opened file
1388
- Fixed the behaviour of ``prealloc_wipe_disks`` cluster parameter which
1389
  kept locks on all nodes during the wipe, which is unneeded
1390
- Fixed ``gnt-watcher`` handling of errors during hooks execution
1391
- Fixed bug in ``prealloc_wipe_disks`` with small disk sizes (less than
1392
  10GiB) which caused the wipe to fail right at the end in some cases
1393
- Fixed master IP activation when doing master failover with no-voting
1394
- Fixed bug in ``gnt-node add --readd`` which allowed the re-adding of
1395
  the master node itself
1396
- Fixed potential data-loss in under disk full conditions, where Ganeti
1397
  wouldn't check correctly the return code and would consider
1398
  partially-written files 'correct'
1399
- Fixed bug related to multiple VGs and DRBD disk replacing
1400
- Added new disk parameter ``metavg`` that allows placement of the meta
1401
  device for DRBD in a different volume group
1402
- Fixed error handling in the node daemon when the system libc doesn't
1403
  have major number 6 (i.e. if ``libc.so.6`` is not the actual libc)
1404
- Fixed lock release during replace-disks, which kept cluster-wide locks
1405
  when doing disk replaces with an iallocator script
1406
- Added check for missing bridges in cluster verify
1407
- Handle EPIPE errors while writing to the terminal better, so that
1408
  piping the output to e.g. ``less`` doesn't cause a backtrace
1409
- Fixed rare case where a ^C during Luxi calls could have been
1410
  interpreted as server errors, instead of simply terminating
1411
- Fixed a race condition in LUGroupAssignNodes (``gnt-group
1412
  assign-nodes``)
1413
- Added a few more parameters to the KVM hypervisor, allowing a second
1414
  CDROM, custom disk type for CDROMs and a floppy image
1415
- Removed redundant message in instance rename when the name is given
1416
  already as a FQDN
1417
- Added option to ``gnt-instance recreate-disks`` to allow creating the
1418
  disks on new nodes, allowing recreation when the original instance
1419
  nodes are completely gone
1420
- Added option when converting disk templates to DRBD to skip waiting
1421
  for the resync, in order to make the instance available sooner
1422
- Added two new variables to the OS scripts environment (containing the
1423
  instance's nodes)
1424
- Made the root_path and optional parameter for the xen-pvm hypervisor,
1425
  to allow use of ``pvgrub`` as bootloader
1426
- Changed the instance memory modifications to only check out-of-memory
1427
  conditions on memory increases, and turned the secondary node warnings
1428
  into errors (they can still be overridden via ``--force``)
1429
- Fixed the handling of a corner case when the Python installation gets
1430
  corrupted (e.g. a bad disk) while ganeti-noded is running and we try
1431
  to execute a command that doesn't exist
1432
- Fixed a bug in ``gnt-instance move`` (LUInstanceMove) when the primary
1433
  node of the instance returned failures during instance shutdown; this
1434
  adds the option ``--ignore-consistency`` to gnt-instance move
1435

    
1436
And as usual, various improvements to the error messages, documentation
1437
and man pages.
1438

    
1439

    
1440
Version 2.4.1
1441
-------------
1442

    
1443
*(Released Wed, 09 Mar 2011)*
1444

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

    
1448
The release fixes that bug (nothing else changed).
1449

    
1450

    
1451
Version 2.4.0
1452
-------------
1453

    
1454
*(Released Mon, 07 Mar 2011)*
1455

    
1456
Final 2.4.0 release. Just a few small fixes:
1457

    
1458
- Fixed RAPI node evacuate
1459
- Fixed the kvm-ifup script
1460
- Fixed internal error handling for special job cases
1461
- Updated man page to specify the escaping feature for options
1462

    
1463

    
1464
Version 2.4.0 rc3
1465
-----------------
1466

    
1467
*(Released Mon, 28 Feb 2011)*
1468

    
1469
A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
1470
that this feature wiped the disks of the wrong instance, leading to loss
1471
of data.
1472

    
1473
Other changes:
1474

    
1475
- Fixed title of query field containing instance name
1476
- Expanded the glossary in the documentation
1477
- Fixed one unittest (internal issue)
1478

    
1479

    
1480
Version 2.4.0 rc2
1481
-----------------
1482

    
1483
*(Released Mon, 21 Feb 2011)*
1484

    
1485
A number of bug fixes plus just a couple functionality changes.
1486

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

    
1492
- Offline resource: ``*``
1493
- Unavailable/not applicable: ``-``
1494
- Data missing (RPC failure): ``?``
1495
- Unknown field: ``??``
1496

    
1497
Another user-visible change is the addition of ``--force-join`` to
1498
``gnt-node add``.
1499

    
1500
As for bug fixes:
1501

    
1502
- ``tools/cluster-merge`` has seen many fixes and is now enabled again
1503
- Fixed regression in RAPI/instance reinstall where all parameters were
1504
  required (instead of optional)
1505
- Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
1506
- Fixed iallocator usage (offline nodes were not considered offline)
1507
- Fixed ``gnt-node list`` with respect to non-vm_capable nodes
1508
- Fixed hypervisor and OS parameter validation with respect to
1509
  non-vm_capable nodes
1510
- Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
1511
  cosmetic)
1512
- Fixed ``tools/listrunner`` with respect to agent-based usage
1513

    
1514

    
1515
Version 2.4.0 rc1
1516
-----------------
1517

    
1518
*(Released Fri,  4 Feb 2011)*
1519

    
1520
Many changes and fixes since the beta1 release. While there were some
1521
internal changes, the code has been mostly stabilised for the RC
1522
release.
1523

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

    
1528
Note: the 2.4 and up versions of Ganeti are not compatible with the
1529
0.2.x branch of ganeti-htools. You need to upgrade to
1530
ganeti-htools-0.3.0 (or later).
1531

    
1532
Regressions fixed from 2.3
1533
~~~~~~~~~~~~~~~~~~~~~~~~~~
1534

    
1535
- Fixed the ``gnt-cluster verify-disks`` command
1536
- Made ``gnt-cluster verify-disks`` work in parallel (as opposed to
1537
  serially on nodes)
1538
- Fixed disk adoption breakage
1539
- Fixed wrong headers in instance listing for field aliases
1540

    
1541
Other bugs fixed
1542
~~~~~~~~~~~~~~~~
1543

    
1544
- Fixed corner case in KVM handling of NICs
1545
- Fixed many cases of wrong handling of non-vm_capable nodes
1546
- Fixed a bug where a missing instance symlink was not possible to
1547
  recreate with any ``gnt-*`` command (now ``gnt-instance
1548
  activate-disks`` does it)
1549
- Fixed the volume group name as reported by ``gnt-cluster
1550
  verify-disks``
1551
- Increased timeouts for the import-export code, hopefully leading to
1552
  fewer aborts due network or instance timeouts
1553
- Fixed bug in ``gnt-node list-storage``
1554
- Fixed bug where not all daemons were started on cluster
1555
  initialisation, but only at the first watcher run
1556
- Fixed many bugs in the OOB implementation
1557
- Fixed watcher behaviour in presence of instances with offline
1558
  secondaries
1559
- Fixed instance list output for instances running on the wrong node
1560
- a few fixes to the cluster-merge tool, but it still cannot merge
1561
  multi-node groups (currently it is not recommended to use this tool)
1562

    
1563

    
1564
Improvements
1565
~~~~~~~~~~~~
1566

    
1567
- Improved network configuration for the KVM hypervisor
1568
- Added e1000 as a supported NIC for Xen-HVM
1569
- Improved the lvmstrap tool to also be able to use partitions, as
1570
  opposed to full disks
1571
- Improved speed of disk wiping (the cluster parameter
1572
  ``prealloc_wipe_disks``, so that it has a low impact on the total time
1573
  of instance creations
1574
- Added documentation for the OS parameters
1575
- Changed ``gnt-instance deactivate-disks`` so that it can work if the
1576
  hypervisor is not responding
1577
- Added display of blacklisted and hidden OS information in
1578
  ``gnt-cluster info``
1579
- Extended ``gnt-cluster verify`` to also validate hypervisor, backend,
1580
  NIC and node parameters, which might create problems with currently
1581
  invalid (but undetected) configuration files, but prevents validation
1582
  failures when unrelated parameters are modified
1583
- Changed cluster initialisation to wait for the master daemon to become
1584
  available
1585
- Expanded the RAPI interface:
1586

    
1587
  - Added config redistribution resource
1588
  - Added activation/deactivation of instance disks
1589
  - Added export of console information
1590

    
1591
- Implemented log file reopening on SIGHUP, which allows using
1592
  logrotate(8) for the Ganeti log files
1593
- Added a basic OOB helper script as an example
1594

    
1595

    
1596
Version 2.4.0 beta1
1597
-------------------
1598

    
1599
*(Released Fri, 14 Jan 2011)*
1600

    
1601
User-visible
1602
~~~~~~~~~~~~
1603

    
1604
- Fixed timezone issues when formatting timestamps
1605
- Added support for node groups, available via ``gnt-group`` and other
1606
  commands
1607
- Added out-of-band framework and management, see :doc:`design
1608
  document <design-oob>`
1609
- Removed support for roman numbers from ``gnt-node list`` and
1610
  ``gnt-instance list``.
1611
- Allowed modification of master network interface via ``gnt-cluster
1612
  modify --master-netdev``
1613
- Accept offline secondaries while shutting down instance disks
1614
- Added ``blockdev_prefix`` parameter to Xen PVM and HVM hypervisors
1615
- Added support for multiple LVM volume groups
1616
- Avoid sorting nodes for ``gnt-node list`` if specific nodes are
1617
  requested
1618
- Added commands to list available fields:
1619

    
1620
  - ``gnt-node list-fields``
1621
  - ``gnt-group list-fields``
1622
  - ``gnt-instance list-fields``
1623

    
1624
- Updated documentation and man pages
1625

    
1626
Integration
1627
~~~~~~~~~~~
1628

    
1629
- Moved ``rapi_users`` file into separate directory, now named
1630
  ``.../ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
1631
  symlink
1632
- Added new tool for running commands on many machines,
1633
  ``tools/ganeti-listrunner``
1634
- Implemented more verbose result in ``OpInstanceConsole`` opcode, also
1635
  improving the ``gnt-instance console`` output
1636
- Allowed customisation of disk index separator at ``configure`` time
1637
- Export node group allocation policy to :doc:`iallocator <iallocator>`
1638
- Added support for non-partitioned md disks in ``lvmstrap``
1639
- Added script to gracefully power off KVM instances
1640
- Split ``utils`` module into smaller parts
1641
- Changed query operations to return more detailed information, e.g.
1642
  whether an information is unavailable due to an offline node. To use
1643
  this new functionality, the LUXI call ``Query`` must be used. Field
1644
  information is now stored by the master daemon and can be retrieved
1645
  using ``QueryFields``. Instances, nodes and groups can also be queried
1646
  using the new opcodes ``OpQuery`` and ``OpQueryFields`` (not yet
1647
  exposed via RAPI). The following commands make use of this
1648
  infrastructure change:
1649

    
1650
  - ``gnt-group list``
1651
  - ``gnt-group list-fields``
1652
  - ``gnt-node list``
1653
  - ``gnt-node list-fields``
1654
  - ``gnt-instance list``
1655
  - ``gnt-instance list-fields``
1656
  - ``gnt-debug locks``
1657

    
1658
Remote API
1659
~~~~~~~~~~
1660

    
1661
- New RAPI resources (see :doc:`rapi`):
1662

    
1663
  - ``/2/modify``
1664
  - ``/2/groups``
1665
  - ``/2/groups/[group_name]``
1666
  - ``/2/groups/[group_name]/assign-nodes``
1667
  - ``/2/groups/[group_name]/modify``
1668
  - ``/2/groups/[group_name]/rename``
1669
  - ``/2/instances/[instance_name]/disk/[disk_index]/grow``
1670

    
1671
- RAPI changes:
1672

    
1673
  - Implemented ``no_install`` for instance creation
1674
  - Implemented OS parameters for instance reinstallation, allowing
1675
    use of special settings on reinstallation (e.g. for preserving data)
1676

    
1677
Misc
1678
~~~~
1679

    
1680
- Added IPv6 support in import/export
1681
- Pause DRBD synchronization while wiping disks on instance creation
1682
- Updated unittests and QA scripts
1683
- Improved network parameters passed to KVM
1684
- Converted man pages from docbook to reStructuredText
1685

    
1686

    
1687
Version 2.3.1
1688
-------------
1689

    
1690
*(Released Mon, 20 Dec 2010)*
1691

    
1692
Released version 2.3.1~rc1 without any changes.
1693

    
1694

    
1695
Version 2.3.1 rc1
1696
-----------------
1697

    
1698
*(Released Wed, 1 Dec 2010)*
1699

    
1700
- impexpd: Disable OpenSSL compression in socat if possible (backport
1701
  from master, commit e90739d625b, see :doc:`installation guide
1702
  <install-quick>` for details)
1703
- Changed unittest coverage report to exclude test scripts
1704
- Added script to check version format
1705

    
1706

    
1707
Version 2.3.0
1708
-------------
1709

    
1710
*(Released Wed, 1 Dec 2010)*
1711

    
1712
Released version 2.3.0~rc1 without any changes.
1713

    
1714

    
1715
Version 2.3.0 rc1
1716
-----------------
1717

    
1718
*(Released Fri, 19 Nov 2010)*
1719

    
1720
A number of bugfixes and documentation updates:
1721

    
1722
- Update ganeti-os-interface documentation
1723
- Fixed a bug related to duplicate MACs or similar items which should be
1724
  unique
1725
- Fix breakage in OS state modify
1726
- Reinstall instance: disallow offline secondaries (fixes bug related to
1727
  OS changing but reinstall failing)
1728
- plus all the other fixes between 2.2.1 and 2.2.2
1729

    
1730

    
1731
Version 2.3.0 rc0
1732
-----------------
1733

    
1734
*(Released Tue, 2 Nov 2010)*
1735

    
1736
- Fixed clearing of the default iallocator using ``gnt-cluster modify``
1737
- Fixed master failover race with watcher
1738
- Fixed a bug in ``gnt-node modify`` which could lead to an inconsistent
1739
  configuration
1740
- Accept previously stopped instance for export with instance removal
1741
- Simplify and extend the environment variables for instance OS scripts
1742
- Added new node flags, ``master_capable`` and ``vm_capable``
1743
- Added optional instance disk wiping prior during allocation. This is a
1744
  cluster-wide option and can be set/modified using
1745
  ``gnt-cluster {init,modify} --prealloc-wipe-disks``.
1746
- Added IPv6 support, see :doc:`design document <design-2.3>` and
1747
  :doc:`install-quick`
1748
- Added a new watcher option (``--ignore-pause``)
1749
- Added option to ignore offline node on instance start/stop
1750
  (``--ignore-offline``)
1751
- Allow overriding OS parameters with ``gnt-instance reinstall``
1752
- Added ability to change node's secondary IP address using ``gnt-node
1753
  modify``
1754
- Implemented privilege separation for all daemons except
1755
  ``ganeti-noded``, see ``configure`` options
1756
- Complain if an instance's disk is marked faulty in ``gnt-cluster
1757
  verify``
1758
- Implemented job priorities (see ``ganeti(7)`` manpage)
1759
- Ignore failures while shutting down instances during failover from
1760
  offline node
1761
- Exit daemon's bootstrap process only once daemon is ready
1762
- Export more information via ``LUInstanceQuery``/remote API
1763
- Improved documentation, QA and unittests
1764
- RAPI daemon now watches ``rapi_users`` all the time and doesn't need a
1765
  restart if the file was created or changed
1766
- Added LUXI protocol version sent with each request and response,
1767
  allowing detection of server/client mismatches
1768
- Moved the Python scripts among gnt-* and ganeti-* into modules
1769
- Moved all code related to setting up SSH to an external script,
1770
  ``setup-ssh``
1771
- Infrastructure changes for node group support in future versions
1772

    
1773

    
1774
Version 2.2.2
1775
-------------
1776

    
1777
*(Released Fri, 19 Nov 2010)*
1778

    
1779
A few small bugs fixed, and some improvements to the build system:
1780

    
1781
- Fix documentation regarding conversion to drbd
1782
- Fix validation of parameters in cluster modify (``gnt-cluster modify
1783
  -B``)
1784
- Fix error handling in node modify with multiple changes
1785
- Allow remote imports without checked names
1786

    
1787

    
1788
Version 2.2.1
1789
-------------
1790

    
1791
*(Released Tue, 19 Oct 2010)*
1792

    
1793
- Disable SSL session ID cache in RPC client
1794

    
1795

    
1796
Version 2.2.1 rc1
1797
-----------------
1798

    
1799
*(Released Thu, 14 Oct 2010)*
1800

    
1801
- Fix interaction between Curl/GnuTLS and the Python's HTTP server
1802
  (thanks Apollon Oikonomopoulos!), finally allowing the use of Curl
1803
  with GnuTLS
1804
- Fix problems with interaction between Curl and Python's HTTP server,
1805
  resulting in increased speed in many RPC calls
1806
- Improve our release script to prevent breakage with older aclocal and
1807
  Python 2.6
1808

    
1809

    
1810
Version 2.2.1 rc0
1811
-----------------
1812

    
1813
*(Released Thu, 7 Oct 2010)*
1814

    
1815
- Fixed issue 125, replace hardcoded "xenvg" in ``gnt-cluster`` with
1816
  value retrieved from master
1817
- Added support for blacklisted or hidden OS definitions
1818
- Added simple lock monitor (accessible via (``gnt-debug locks``)
1819
- Added support for -mem-path in KVM hypervisor abstraction layer
1820
- Allow overriding instance parameters in tool for inter-cluster
1821
  instance moves (``tools/move-instance``)
1822
- Improved opcode summaries (e.g. in ``gnt-job list``)
1823
- Improve consistency of OS listing by sorting it
1824
- Documentation updates
1825

    
1826

    
1827
Version 2.2.0.1
1828
---------------
1829

    
1830
*(Released Fri, 8 Oct 2010)*
1831

    
1832
- Rebuild with a newer autotools version, to fix python 2.6 compatibility
1833

    
1834

    
1835
Version 2.2.0
1836
-------------
1837

    
1838
*(Released Mon, 4 Oct 2010)*
1839

    
1840
- Fixed regression in ``gnt-instance rename``
1841

    
1842

    
1843
Version 2.2.0 rc2
1844
-----------------
1845

    
1846
*(Released Wed, 22 Sep 2010)*
1847

    
1848
- Fixed OS_VARIANT variable for OS scripts
1849
- Fixed cluster tag operations via RAPI
1850
- Made ``setup-ssh`` exit with non-zero code if an error occurred
1851
- Disabled RAPI CA checks in watcher
1852

    
1853

    
1854
Version 2.2.0 rc1
1855
-----------------
1856

    
1857
*(Released Mon, 23 Aug 2010)*
1858

    
1859
- Support DRBD versions of the format "a.b.c.d"
1860
- Updated manpages
1861
- Re-introduce support for usage from multiple threads in RAPI client
1862
- Instance renames and modify via RAPI
1863
- Work around race condition between processing and archival in job
1864
  queue
1865
- Mark opcodes following failed one as failed, too
1866
- Job field ``lock_status`` was removed due to difficulties making it
1867
  work with the changed job queue in Ganeti 2.2; a better way to monitor
1868
  locks is expected for a later 2.2.x release
1869
- Fixed dry-run behaviour with many commands
1870
- Support ``ssh-agent`` again when adding nodes
1871
- Many additional bugfixes
1872

    
1873

    
1874
Version 2.2.0 rc0
1875
-----------------
1876

    
1877
*(Released Fri, 30 Jul 2010)*
1878

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

    
1888
  python -c 'import pycurl; print pycurl.version'
1889

    
1890
can be used to determine the libraries PycURL and cURL are linked
1891
against.
1892

    
1893
Other significant changes:
1894

    
1895
- Rewrote much of the internals of the job queue, in order to achieve
1896
  better parallelism; this decouples job query operations from the job
1897
  processing, and it should allow much nicer behaviour of the master
1898
  daemon under load, and it also has uncovered some long-standing bugs
1899
  related to the job serialisation (now fixed)
1900
- Added a default iallocator setting to the cluster parameters,
1901
  eliminating the need to always pass nodes or an iallocator for
1902
  operations that require selection of new node(s)
1903
- Added experimental support for the LXC virtualization method
1904
- Added support for OS parameters, which allows the installation of
1905
  instances to pass parameter to OS scripts in order to customise the
1906
  instance
1907
- Added a hypervisor parameter controlling the migration type (live or
1908
  non-live), since hypervisors have various levels of reliability; this
1909
  has renamed the 'live' parameter to 'mode'
1910
- Added a cluster parameter ``reserved_lvs`` that denotes reserved
1911
  logical volumes, meaning that cluster verify will ignore them and not
1912
  flag their presence as errors
1913
- The watcher will now reset the error count for failed instances after
1914
  8 hours, thus allowing self-healing if the problem that caused the
1915
  instances to be down/fail to start has cleared in the meantime
1916
- Added a cluster parameter ``drbd_usermode_helper`` that makes Ganeti
1917
  check for, and warn, if the drbd module parameter ``usermode_helper``
1918
  is not consistent with the cluster-wide setting; this is needed to
1919
  make diagnose easier of failed drbd creations
1920
- Started adding base IPv6 support, but this is not yet
1921
  enabled/available for use
1922
- Rename operations (cluster, instance) will now return the new name,
1923
  which is especially useful if a short name was passed in
1924
- Added support for instance migration in RAPI
1925
- Added a tool to pre-configure nodes for the SSH setup, before joining
1926
  them to the cluster; this will allow in the future a simplified model
1927
  for node joining (but not yet fully enabled in 2.2); this needs the
1928
  paramiko python library
1929
- Fixed handling of name-resolving errors
1930
- Fixed consistency of job results on the error path
1931
- Fixed master-failover race condition when executed multiple times in
1932
  sequence
1933
- Fixed many bugs related to the job queue (mostly introduced during the
1934
  2.2 development cycle, so not all are impacting 2.1)
1935
- Fixed instance migration with missing disk symlinks
1936
- Fixed handling of unknown jobs in ``gnt-job archive``
1937
- And many other small fixes/improvements
1938

    
1939
Internal changes:
1940

    
1941
- Enhanced both the unittest and the QA coverage
1942
- Switched the opcode validation to a generic model, and extended the
1943
  validation to all opcode parameters
1944
- Changed more parts of the code that write shell scripts to use the
1945
  same class for this
1946
- Switched the master daemon to use the asyncore library for the Luxi
1947
  server endpoint
1948

    
1949

    
1950
Version 2.2.0 beta0
1951
-------------------
1952

    
1953
*(Released Thu, 17 Jun 2010)*
1954

    
1955
- Added tool (``move-instance``) and infrastructure to move instances
1956
  between separate clusters (see :doc:`separate documentation
1957
  <move-instance>` and :doc:`design document <design-2.2>`)
1958
- Added per-request RPC timeout
1959
- RAPI now requires a Content-Type header for requests with a body (e.g.
1960
  ``PUT`` or ``POST``) which must be set to ``application/json`` (see
1961
  :rfc:`2616` (HTTP/1.1), section 7.2.1)
1962
- ``ganeti-watcher`` attempts to restart ``ganeti-rapi`` if RAPI is not
1963
  reachable
1964
- Implemented initial support for running Ganeti daemons as separate
1965
  users, see configure-time flags ``--with-user-prefix`` and
1966
  ``--with-group-prefix`` (only ``ganeti-rapi`` is supported at this
1967
  time)
1968
- Instances can be removed after export (``gnt-backup export
1969
  --remove-instance``)
1970
- Self-signed certificates generated by Ganeti now use a 2048 bit RSA
1971
  key (instead of 1024 bit)
1972
- Added new cluster configuration file for cluster domain secret
1973
- Import/export now use SSL instead of SSH
1974
- Added support for showing estimated time when exporting an instance,
1975
  see the ``ganeti-os-interface(7)`` manpage and look for
1976
  ``EXP_SIZE_FD``
1977

    
1978

    
1979
Version 2.1.8
1980
-------------
1981

    
1982
*(Released Tue, 16 Nov 2010)*
1983

    
1984
Some more bugfixes. Unless critical bugs occur, this will be the last
1985
2.1 release:
1986

    
1987
- Fix case of MAC special-values
1988
- Fix mac checker regex
1989
- backend: Fix typo causing "out of range" error
1990
- Add missing --units in gnt-instance list man page
1991

    
1992

    
1993
Version 2.1.7
1994
-------------
1995

    
1996
*(Released Tue, 24 Aug 2010)*
1997

    
1998
Bugfixes only:
1999
  - Don't ignore secondary node silently on non-mirrored disk templates
2000
    (issue 113)
2001
  - Fix --master-netdev arg name in gnt-cluster(8) (issue 114)
2002
  - Fix usb_mouse parameter breaking with vnc_console (issue 109)
2003
  - Properly document the usb_mouse parameter
2004
  - Fix path in ganeti-rapi(8) (issue 116)
2005
  - Adjust error message when the ganeti user's .ssh directory is
2006
    missing
2007
  - Add same-node-check when changing the disk template to drbd
2008

    
2009

    
2010
Version 2.1.6
2011
-------------
2012

    
2013
*(Released Fri, 16 Jul 2010)*
2014

    
2015
Bugfixes only:
2016
  - Add an option to only select some reboot types during qa/burnin.
2017
    (on some hypervisors consequent reboots are not supported)
2018
  - Fix infrequent race condition in master failover. Sometimes the old
2019
    master ip address would be still detected as up for a short time
2020
    after it was removed, causing failover to fail.
2021
  - Decrease mlockall warnings when the ctypes module is missing. On
2022
    Python 2.4 we support running even if no ctypes module is installed,
2023
    but we were too verbose about this issue.
2024
  - Fix building on old distributions, on which man doesn't have a
2025
    --warnings option.
2026
  - Fix RAPI not to ignore the MAC address on instance creation
2027
  - Implement the old instance creation format in the RAPI client.
2028

    
2029

    
2030
Version 2.1.5
2031
-------------
2032

    
2033
*(Released Thu, 01 Jul 2010)*
2034

    
2035
A small bugfix release:
2036
  - Fix disk adoption: broken by strict --disk option checking in 2.1.4
2037
  - Fix batch-create: broken in the whole 2.1 series due to a lookup on
2038
    a non-existing option
2039
  - Fix instance create: the --force-variant option was ignored
2040
  - Improve pylint 0.21 compatibility and warnings with Python 2.6
2041
  - Fix modify node storage with non-FQDN arguments
2042
  - Fix RAPI client to authenticate under Python 2.6 when used
2043
    for more than 5 requests needing authentication
2044
  - Fix gnt-instance modify -t (storage) giving a wrong error message
2045
    when converting a non-shutdown drbd instance to plain
2046

    
2047

    
2048
Version 2.1.4
2049
-------------
2050

    
2051
*(Released Fri, 18 Jun 2010)*
2052

    
2053
A small bugfix release:
2054

    
2055
  - Fix live migration of KVM instances started with older Ganeti
2056
    versions which had fewer hypervisor parameters
2057
  - Fix gnt-instance grow-disk on down instances
2058
  - Fix an error-reporting bug during instance migration
2059
  - Better checking of the ``--net`` and ``--disk`` values, to avoid
2060
    silently ignoring broken ones
2061
  - Fix an RPC error reporting bug affecting, for example, RAPI client
2062
    users
2063
  - Fix bug triggered by different API version os-es on different nodes
2064
  - Fix a bug in instance startup with custom hvparams: OS level
2065
    parameters would fail to be applied.
2066
  - Fix the RAPI client under Python 2.6 (but more work is needed to
2067
    make it work completely well with OpenSSL)
2068
  - Fix handling of errors when resolving names from DNS
2069

    
2070

    
2071
Version 2.1.3
2072
-------------
2073

    
2074
*(Released Thu, 3 Jun 2010)*
2075

    
2076
A medium sized development cycle. Some new features, and some
2077
fixes/small improvements/cleanups.
2078

    
2079
Significant features
2080
~~~~~~~~~~~~~~~~~~~~
2081

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

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

    
2092
KVM: Add instance chrooting feature. If you use privilege dropping for
2093
your VMs you can also now force them to chroot to an empty directory,
2094
before starting the emulated guest.
2095

    
2096
KVM: Add maximum migration bandwith and maximum downtime tweaking
2097
support (requires a new-enough version of qemu-kvm).
2098

    
2099
Cluster verify will now warn if the master node doesn't have the master
2100
ip configured on it.
2101

    
2102
Add a new (incompatible) instance creation request format to RAPI which
2103
supports all parameters (previously only a subset was supported, and it
2104
wasn't possible to extend the old format to accomodate all the new
2105
features. The old format is still supported, and a client can check for
2106
this feature, before using it, by checking for its presence in the
2107
``features`` RAPI resource.
2108

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

    
2113
Other changes
2114
~~~~~~~~~~~~~
2115

    
2116
As usual many internal code refactorings, documentation updates, and
2117
such. Among others:
2118

    
2119
  - Lots of improvements and cleanups to the experimental Remote API
2120
    (RAPI) client library.
2121
  - A new unit test suite for the core daemon libraries.
2122
  - A fix to creating missing directories makes sure the umask is not
2123
    applied anymore. This enforces the same directory permissions
2124
    everywhere.
2125
  - Better handling terminating daemons with ctrl+c (used when running
2126
    them in debugging mode).
2127
  - Fix a race condition in live migrating a KVM instance, when stat()
2128
    on the old proc status file returned EINVAL, which is an unexpected
2129
    value.
2130
  - Fixed manpage checking with newer man and utf-8 charachters. But now
2131
    you need the en_US.UTF-8 locale enabled to build Ganeti from git.
2132

    
2133

    
2134
Version 2.1.2.1
2135
---------------
2136

    
2137
*(Released Fri, 7 May 2010)*
2138

    
2139
Fix a bug which prevented untagged KVM instances from starting.
2140

    
2141

    
2142
Version 2.1.2
2143
-------------
2144

    
2145
*(Released Fri, 7 May 2010)*
2146

    
2147
Another release with a long development cycle, during which many
2148
different features were added.
2149

    
2150
Significant features
2151
~~~~~~~~~~~~~~~~~~~~
2152

    
2153
The KVM hypervisor now can run the individual instances as non-root, to
2154
reduce the impact of a VM being hijacked due to bugs in the
2155
hypervisor. It is possible to run all instances as a single (non-root)
2156
user, to manually specify a user for each instance, or to dynamically
2157
allocate a user out of a cluster-wide pool to each instance, with the
2158
guarantee that no two instances will run under the same user ID on any
2159
given node.
2160

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

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

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

    
2175
Another disk improvement is the possibility to convert between redundant
2176
(DRBD) and plain (LVM) disk configuration for an instance. This should
2177
allow better scalability (starting with one node and growing the
2178
cluster, or shrinking a two-node cluster to one node).
2179

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

    
2189
Instance export/import now will reuse the original instance
2190
specifications for all parameters; that means exporting an instance,
2191
deleting it and the importing it back should give an almost identical
2192
instance. Note that the default import behaviour has changed from
2193
before, where it created only one NIC; now it recreates the original
2194
number of NICs.
2195

    
2196
Cluster verify has added a few new checks: SSL certificates validity,
2197
/etc/hosts consistency across the cluster, etc.
2198

    
2199
Other changes
2200
~~~~~~~~~~~~~
2201

    
2202
As usual, many internal changes were done, documentation fixes,
2203
etc. Among others:
2204

    
2205
- Fixed cluster initialization with disabled cluster storage (regression
2206
  introduced in 2.1.1)
2207
- File-based storage supports growing the disks
2208
- Fixed behaviour of node role changes
2209
- Fixed cluster verify for some corner cases, plus a general rewrite of
2210
  cluster verify to allow future extension with more checks
2211
- Fixed log spamming by watcher and node daemon (regression introduced
2212
  in 2.1.1)
2213
- Fixed possible validation issues when changing the list of enabled
2214
  hypervisors
2215
- Fixed cleanup of /etc/hosts during node removal
2216
- Fixed RAPI response for invalid methods
2217
- Fixed bug with hashed passwords in ``ganeti-rapi`` daemon
2218
- Multiple small improvements to the KVM hypervisor (VNC usage, booting
2219
  from ide disks, etc.)
2220
- Allow OS changes without re-installation (to record a changed OS
2221
  outside of Ganeti, or to allow OS renames)
2222
- Allow instance creation without OS installation (useful for example if
2223
  the OS will be installed manually, or restored from a backup not in
2224
  Ganeti format)
2225
- Implemented option to make cluster ``copyfile`` use the replication
2226
  network
2227
- Added list of enabled hypervisors to ssconf (possibly useful for
2228
  external scripts)
2229
- Added a new tool (``tools/cfgupgrade12``) that allows upgrading from
2230
  1.2 clusters
2231
- A partial form of node re-IP is possible via node readd, which now
2232
  allows changed node primary IP
2233
- Command line utilities now show an informational message if the job is
2234
  waiting for a lock
2235
- The logs of the master daemon now show the PID/UID/GID of the
2236
  connected client
2237

    
2238

    
2239
Version 2.1.1
2240
-------------
2241

    
2242
*(Released Fri, 12 Mar 2010)*
2243

    
2244
During the 2.1.0 long release candidate cycle, a lot of improvements and
2245
changes have accumulated with were released later as 2.1.1.
2246

    
2247
Major changes
2248
~~~~~~~~~~~~~
2249

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

    
2261
Another important change is increased validation of node and instance
2262
names. This might create problems in special cases, if invalid host
2263
names are being used.
2264

    
2265
Also, a new layer of hypervisor parameters has been added, that sits at
2266
OS level between the cluster defaults and the instance ones. This allows
2267
customisation of virtualization parameters depending on the installed
2268
OS. For example instances with OS 'X' may have a different KVM kernel
2269
(or any other parameter) than the cluster defaults. This is intended to
2270
help managing a multiple OSes on the same cluster, without manual
2271
modification of each instance's parameters.
2272

    
2273
A tool for merging clusters, ``cluster-merge``, has been added in the
2274
tools sub-directory.
2275

    
2276
Bug fixes
2277
~~~~~~~~~
2278

    
2279
- Improved the int/float conversions that should make the code more
2280
  robust in face of errors from the node daemons
2281
- Fixed the remove node code in case of internal configuration errors
2282
- Fixed the node daemon behaviour in face of inconsistent queue
2283
  directory (e.g. read-only file-system where we can't open the files
2284
  read-write, etc.)
2285
- Fixed the behaviour of gnt-node modify for master candidate demotion;
2286
  now it either aborts cleanly or, if given the new "auto_promote"
2287
  parameter, will automatically promote other nodes as needed
2288
- Fixed compatibility with (unreleased yet) Python 2.6.5 that would
2289
  completely prevent Ganeti from working
2290
- Fixed bug for instance export when not all disks were successfully
2291
  exported
2292
- Fixed behaviour of node add when the new node is slow in starting up
2293
  the node daemon
2294
- Fixed handling of signals in the LUXI client, which should improve
2295
  behaviour of command-line scripts
2296
- Added checks for invalid node/instance names in the configuration (now
2297
  flagged during cluster verify)
2298
- Fixed watcher behaviour for disk activation errors
2299
- Fixed two potentially endless loops in http library, which led to the
2300
  RAPI daemon hanging and consuming 100% CPU in some cases
2301
- Fixed bug in RAPI daemon related to hashed passwords
2302
- Fixed bug for unintended qemu-level bridging of multi-NIC KVM
2303
  instances
2304
- Enhanced compatibility with non-Debian OSes, but not using absolute
2305
  path in some commands and allowing customisation of the ssh
2306
  configuration directory
2307
- Fixed possible future issue with new Python versions by abiding to the
2308
  proper use of ``__slots__`` attribute on classes
2309
- Added checks that should prevent directory traversal attacks
2310
- Many documentation fixes based on feedback from users
2311

    
2312
New features
2313
~~~~~~~~~~~~
2314

    
2315
- Added an "early_release" more for instance replace disks and node
2316
  evacuate, where we release locks earlier and thus allow higher
2317
  parallelism within the cluster
2318
- Added watcher hooks, intended to allow the watcher to restart other
2319
  daemons (e.g. from the ganeti-nbma project), but they can be used of
2320
  course for any other purpose
2321
- Added a compile-time disable for DRBD barriers, to increase
2322
  performance if the administrator trusts the power supply or the
2323
  storage system to not lose writes
2324
- Added the option of using syslog for logging instead of, or in
2325
  addition to, Ganeti's own log files
2326
- Removed boot restriction for paravirtual NICs for KVM, recent versions
2327
  can indeed boot from a paravirtual NIC
2328
- Added a generic debug level for many operations; while this is not
2329
  used widely yet, it allows one to pass the debug value all the way to
2330
  the OS scripts
2331
- Enhanced the hooks environment for instance moves (failovers,
2332
  migrations) where the primary/secondary nodes changed during the
2333
  operation, by adding {NEW,OLD}_{PRIMARY,SECONDARY} vars
2334
- Enhanced data validations for many user-supplied values; one important
2335
  item is the restrictions imposed on instance and node names, which
2336
  might reject some (invalid) host names
2337
- Add a configure-time option to disable file-based storage, if it's not
2338
  needed; this allows greater security separation between the master
2339
  node and the other nodes from the point of view of the inter-node RPC
2340
  protocol
2341
- Added user notification in interactive tools if job is waiting in the
2342
  job queue or trying to acquire locks
2343
- Added log messages when a job is waiting for locks
2344
- Added filtering by node tags in instance operations which admit
2345
  multiple instances (start, stop, reboot, reinstall)
2346
- Added a new tool for cluster mergers, ``cluster-merge``
2347
- Parameters from command line which are of the form ``a=b,c=d`` can now
2348
  use backslash escapes to pass in values which contain commas,
2349
  e.g. ``a=b\\c,d=e`` where the 'a' parameter would get the value
2350
  ``b,c``
2351
- For KVM, the instance name is the first parameter passed to KVM, so
2352
  that it's more visible in the process list
2353

    
2354

    
2355
Version 2.1.0
2356
-------------
2357

    
2358
*(Released Tue, 2 Mar 2010)*
2359

    
2360
Ganeti 2.1 brings many improvements with it. Major changes:
2361

    
2362
- Added infrastructure to ease automated disk repairs
2363
- Added new daemon to export configuration data in a cheaper way than
2364
  using the remote API
2365
- Instance NICs can now be routed instead of being associated with a
2366
  networking bridge
2367
- Improved job locking logic to reduce impact of jobs acquiring multiple
2368
  locks waiting for other long-running jobs
2369

    
2370
In-depth implementation details can be found in the Ganeti 2.1 design
2371
document.
2372

    
2373
Details
2374
~~~~~~~
2375

    
2376
- Added chroot hypervisor
2377
- Added more options to xen-hvm hypervisor (``kernel_path`` and
2378
  ``device_model``)
2379
- Added more options to xen-pvm hypervisor (``use_bootloader``,
2380
  ``bootloader_path`` and ``bootloader_args``)
2381
- Added the ``use_localtime`` option for the xen-hvm and kvm
2382
  hypervisors, and the default value for this has changed to false (in
2383
  2.0 xen-hvm always enabled it)
2384
- Added luxi call to submit multiple jobs in one go
2385
- Added cluster initialization option to not modify ``/etc/hosts``
2386
  file on nodes
2387
- Added network interface parameters
2388
- Added dry run mode to some LUs
2389
- Added RAPI resources:
2390

    
2391
  - ``/2/instances/[instance_name]/info``
2392
  - ``/2/instances/[instance_name]/replace-disks``
2393
  - ``/2/nodes/[node_name]/evacuate``
2394
  - ``/2/nodes/[node_name]/migrate``
2395
  - ``/2/nodes/[node_name]/role``
2396
  - ``/2/nodes/[node_name]/storage``
2397
  - ``/2/nodes/[node_name]/storage/modify``
2398
  - ``/2/nodes/[node_name]/storage/repair``
2399

    
2400
- Added OpCodes to evacuate or migrate all instances on a node
2401
- Added new command to list storage elements on nodes (``gnt-node
2402
  list-storage``) and modify them (``gnt-node modify-storage``)
2403
- Added new ssconf files with master candidate IP address
2404
  (``ssconf_master_candidates_ips``), node primary IP address
2405
  (``ssconf_node_primary_ips``) and node secondary IP address
2406
  (``ssconf_node_secondary_ips``)
2407
- Added ``ganeti-confd`` and a client library to query the Ganeti
2408
  configuration via UDP
2409
- Added ability to run hooks after cluster initialization and before
2410
  cluster destruction
2411
- Added automatic mode for disk replace (``gnt-instance replace-disks
2412
  --auto``)
2413
- Added ``gnt-instance recreate-disks`` to re-create (empty) disks
2414
  after catastrophic data-loss
2415
- Added ``gnt-node repair-storage`` command to repair damaged LVM volume
2416
  groups
2417
- Added ``gnt-instance move`` command to move instances
2418
- Added ``gnt-cluster watcher`` command to control watcher
2419
- Added ``gnt-node powercycle`` command to powercycle nodes
2420
- Added new job status field ``lock_status``
2421
- Added parseable error codes to cluster verification (``gnt-cluster
2422
  verify --error-codes``) and made output less verbose (use
2423
  ``--verbose`` to restore previous behaviour)
2424
- Added UUIDs to the main config entities (cluster, nodes, instances)
2425
- Added support for OS variants
2426
- Added support for hashed passwords in the Ganeti remote API users file
2427
  (``rapi_users``)
2428
- Added option to specify maximum timeout on instance shutdown
2429
- Added ``--no-ssh-init`` option to ``gnt-cluster init``
2430
- Added new helper script to start and stop Ganeti daemons
2431
  (``daemon-util``), with the intent to reduce the work necessary to
2432
  adjust Ganeti for non-Debian distributions and to start/stop daemons
2433
  from one place
2434
- Added more unittests
2435
- Fixed critical bug in ganeti-masterd startup
2436
- Removed the configure-time ``kvm-migration-port`` parameter, this is
2437
  now customisable at the cluster level for both the KVM and Xen
2438
  hypervisors using the new ``migration_port`` parameter
2439
- Pass ``INSTANCE_REINSTALL`` variable to OS installation script when
2440
  reinstalling an instance
2441
- Allowed ``@`` in tag names
2442
- Migrated to Sphinx (http://sphinx.pocoo.org/) for documentation
2443
- Many documentation updates
2444
- Distribute hypervisor files on ``gnt-cluster redist-conf``
2445
- ``gnt-instance reinstall`` can now reinstall multiple instances
2446
- Updated many command line parameters
2447
- Introduced new OS API version 15
2448
- No longer support a default hypervisor
2449
- Treat virtual LVs as inexistent
2450
- Improved job locking logic to reduce lock contention
2451
- Match instance and node names case insensitively
2452
- Reimplemented bash completion script to be more complete
2453
- Improved burnin
2454

    
2455

    
2456
Version 2.0.6
2457
-------------
2458

    
2459
*(Released Thu, 4 Feb 2010)*
2460

    
2461
- Fix cleaner behaviour on nodes not in a cluster (Debian bug 568105)
2462
- Fix a string formatting bug
2463
- Improve safety of the code in some error paths
2464
- Improve data validation in the master of values returned from nodes
2465

    
2466

    
2467
Version 2.0.5
2468
-------------
2469

    
2470
*(Released Thu, 17 Dec 2009)*
2471

    
2472
- Fix security issue due to missing validation of iallocator names; this
2473
  allows local and remote execution of arbitrary executables
2474
- Fix failure of gnt-node list during instance removal
2475
- Ship the RAPI documentation in the archive
2476

    
2477

    
2478
Version 2.0.4
2479
-------------
2480

    
2481
*(Released Wed, 30 Sep 2009)*
2482

    
2483
- Fixed many wrong messages
2484
- Fixed a few bugs related to the locking library
2485
- Fixed MAC checking at instance creation time
2486
- Fixed a DRBD parsing bug related to gaps in /proc/drbd
2487
- Fixed a few issues related to signal handling in both daemons and
2488
  scripts
2489
- Fixed the example startup script provided
2490
- Fixed insserv dependencies in the example startup script (patch from
2491
  Debian)
2492
- Fixed handling of drained nodes in the iallocator framework
2493
- Fixed handling of KERNEL_PATH parameter for xen-hvm (Debian bug
2494
  #528618)
2495
- Fixed error related to invalid job IDs in job polling
2496
- Fixed job/opcode persistence on unclean master shutdown
2497
- Fixed handling of partial job processing after unclean master
2498
  shutdown
2499
- Fixed error reporting from LUs, previously all errors were converted
2500
  into execution errors
2501
- Fixed error reporting from burnin
2502
- Decreased significantly the memory usage of the job queue
2503
- Optimised slightly multi-job submission
2504
- Optimised slightly opcode loading
2505
- Backported the multi-job submit framework from the development
2506
  branch; multi-instance start and stop should be faster
2507
- Added script to clean archived jobs after 21 days; this will reduce
2508
  the size of the queue directory
2509
- Added some extra checks in disk size tracking
2510
- Added an example ethers hook script
2511
- Added a cluster parameter that prevents Ganeti from modifying of
2512
  /etc/hosts
2513
- Added more node information to RAPI responses
2514
- Added a ``gnt-job watch`` command that allows following the ouput of a
2515
  job
2516
- Added a bind-address option to ganeti-rapi
2517
- Added more checks to the configuration verify
2518
- Enhanced the burnin script such that some operations can be retried
2519
  automatically
2520
- Converted instance reinstall to multi-instance model
2521

    
2522

    
2523
Version 2.0.3
2524
-------------
2525

    
2526
*(Released Fri, 7 Aug 2009)*
2527

    
2528
- Added ``--ignore-size`` to the ``gnt-instance activate-disks`` command
2529
  to allow using the pre-2.0.2 behaviour in activation, if any existing
2530
  instances have mismatched disk sizes in the configuration
2531
- Added ``gnt-cluster repair-disk-sizes`` command to check and update
2532
  any configuration mismatches for disk sizes
2533
- Added ``gnt-master cluste-failover --no-voting`` to allow master
2534
  failover to work on two-node clusters
2535
- Fixed the ``--net`` option of ``gnt-backup import``, which was
2536
  unusable
2537
- Fixed detection of OS script errors in ``gnt-backup export``
2538
- Fixed exit code of ``gnt-backup export``
2539

    
2540

    
2541
Version 2.0.2
2542
-------------
2543

    
2544
*(Released Fri, 17 Jul 2009)*
2545

    
2546
- Added experimental support for stripped logical volumes; this should
2547
  enhance performance but comes with a higher complexity in the block
2548
  device handling; stripping is only enabled when passing
2549
  ``--with-lvm-stripecount=N`` to ``configure``, but codepaths are
2550
  affected even in the non-stripped mode
2551
- Improved resiliency against transient failures at the end of DRBD
2552
  resyncs, and in general of DRBD resync checks
2553
- Fixed a couple of issues with exports and snapshot errors
2554
- Fixed a couple of issues in instance listing
2555
- Added display of the disk size in ``gnt-instance info``
2556
- Fixed checking for valid OSes in instance creation
2557
- Fixed handling of the "vcpus" parameter in instance listing and in
2558
  general of invalid parameters
2559
- Fixed http server library, and thus RAPI, to handle invalid
2560
  username/password combinations correctly; this means that now they
2561
  report unauthorized for queries too, not only for modifications,
2562
  allowing earlier detect of configuration problems
2563
- Added a new "role" node list field, equivalent to the master/master
2564
  candidate/drained/offline flags combinations
2565
- Fixed cluster modify and changes of candidate pool size
2566
- Fixed cluster verify error messages for wrong files on regular nodes
2567
- Fixed a couple of issues with node demotion from master candidate role
2568
- Fixed node readd issues
2569
- Added non-interactive mode for ``ganeti-masterd --no-voting`` startup
2570
- Added a new ``--no-voting`` option for masterfailover to fix failover
2571
  on two-nodes clusters when the former master node is unreachable
2572
- Added instance reinstall over RAPI
2573

    
2574

    
2575
Version 2.0.1
2576
-------------
2577

    
2578
*(Released Tue, 16 Jun 2009)*
2579

    
2580
- added ``-H``/``-B`` startup parameters to ``gnt-instance``, which will
2581
  allow re-adding the start in single-user option (regression from 1.2)
2582
- the watcher writes the instance status to a file, to allow monitoring
2583
  to report the instance status (from the master) based on cached
2584
  results of the watcher's queries; while this can get stale if the
2585
  watcher is being locked due to other work on the cluster, this is
2586
  still an improvement
2587
- the watcher now also restarts the node daemon and the rapi daemon if
2588
  they died
2589
- fixed the watcher to handle full and drained queue cases
2590
- hooks export more instance data in the environment, which helps if
2591
  hook scripts need to take action based on the instance's properties
2592
  (no longer need to query back into ganeti)
2593
- instance failovers when the instance is stopped do not check for free
2594
  RAM, so that failing over a stopped instance is possible in low memory
2595
  situations
2596
- rapi uses queries for tags instead of jobs (for less job traffic), and
2597
  for cluster tags it won't talk to masterd at all but read them from
2598
  ssconf
2599
- a couple of error handling fixes in RAPI
2600
- drbd handling: improved the error handling of inconsistent disks after
2601
  resync to reduce the frequency of "there are some degraded disks for
2602
  this instance" messages
2603
- fixed a bug in live migration when DRBD doesn't want to reconnect (the
2604
  error handling path called a wrong function name)
2605

    
2606

    
2607
Version 2.0.0
2608
-------------
2609

    
2610
*(Released Wed, 27 May 2009)*
2611

    
2612
- no changes from rc5
2613

    
2614

    
2615
Version 2.0 rc5
2616
---------------
2617

    
2618
*(Released Wed, 20 May 2009)*
2619

    
2620
- fix a couple of bugs (validation, argument checks)
2621
- fix ``gnt-cluster getmaster`` on non-master nodes (regression)
2622
- some small improvements to RAPI and IAllocator
2623
- make watcher automatically start the master daemon if down
2624

    
2625

    
2626
Version 2.0 rc4
2627
---------------
2628

    
2629
*(Released Mon, 27 Apr 2009)*
2630

    
2631
- change the OS list to not require locks; this helps with big clusters
2632
- fix ``gnt-cluster verify`` and ``gnt-cluster verify-disks`` when the
2633
  volume group is broken
2634
- ``gnt-instance info``, without any arguments, doesn't run for all
2635
  instances anymore; either pass ``--all`` or pass the desired
2636
  instances; this helps against mistakes on big clusters where listing
2637
  the information for all instances takes a long time
2638
- miscellaneous doc and man pages fixes
2639

    
2640

    
2641
Version 2.0 rc3
2642
---------------
2643

    
2644
*(Released Wed, 8 Apr 2009)*
2645

    
2646
- Change the internal locking model of some ``gnt-node`` commands, in
2647
  order to reduce contention (and blocking of master daemon) when
2648
  batching many creation/reinstall jobs
2649
- Fixes to Xen soft reboot
2650
- No longer build documentation at build time, instead distribute it in
2651
  the archive, in order to reduce the need for the whole docbook/rst
2652
  toolchains
2653

    
2654

    
2655
Version 2.0 rc2
2656
---------------
2657

    
2658
*(Released Fri, 27 Mar 2009)*
2659

    
2660
- Now the cfgupgrade scripts works and can upgrade 1.2.7 clusters to 2.0
2661
- Fix watcher startup sequence, improves the behaviour of busy clusters
2662
- Some other fixes in ``gnt-cluster verify``, ``gnt-instance
2663
  replace-disks``, ``gnt-instance add``, ``gnt-cluster queue``, KVM VNC
2664
  bind address and other places
2665
- Some documentation fixes and updates
2666

    
2667

    
2668
Version 2.0 rc1
2669
---------------
2670

    
2671
*(Released Mon, 2 Mar 2009)*
2672

    
2673
- More documentation updates, now all docs should be more-or-less
2674
  up-to-date
2675
- A couple of small fixes (mixed hypervisor clusters, offline nodes,
2676
  etc.)
2677
- Added a customizable HV_KERNEL_ARGS hypervisor parameter (for Xen PVM
2678
  and KVM)
2679
- Fix an issue related to $libdir/run/ganeti and cluster creation
2680

    
2681

    
2682
Version 2.0 beta2
2683
-----------------
2684

    
2685
*(Released Thu, 19 Feb 2009)*
2686

    
2687
- Xen PVM and KVM have switched the default value for the instance root
2688
  disk to the first partition on the first drive, instead of the whole
2689
  drive; this means that the OS installation scripts must be changed
2690
  accordingly
2691
- Man pages have been updated
2692
- RAPI has been switched by default to HTTPS, and the exported functions
2693
  should all work correctly
2694
- RAPI v1 has been removed
2695
- Many improvements to the KVM hypervisor
2696
- Block device errors are now better reported
2697
- Many other bugfixes and small improvements
2698

    
2699

    
2700
Version 2.0 beta1
2701
-----------------
2702

    
2703
*(Released Mon, 26 Jan 2009)*
2704

    
2705
- Version 2 is a general rewrite of the code and therefore the
2706
  differences are too many to list, see the design document for 2.0 in
2707
  the ``doc/`` subdirectory for more details
2708
- In this beta version there is not yet a migration path from 1.2 (there
2709
  will be one in the final 2.0 release)
2710
- A few significant changes are:
2711

    
2712
  - all commands are executed by a daemon (``ganeti-masterd``) and the
2713
    various ``gnt-*`` commands are just front-ends to it
2714
  - all the commands are entered into, and executed from a job queue,
2715
    see the ``gnt-job(8)`` manpage
2716
  - the RAPI daemon supports read-write operations, secured by basic
2717
    HTTP authentication on top of HTTPS
2718
  - DRBD version 0.7 support has been removed, DRBD 8 is the only
2719
    supported version (when migrating from Ganeti 1.2 to 2.0, you need
2720
    to migrate to DRBD 8 first while still running Ganeti 1.2)
2721
  - DRBD devices are using statically allocated minor numbers, which
2722
    will be assigned to existing instances during the migration process
2723
  - there is support for both Xen PVM and Xen HVM instances running on
2724
    the same cluster
2725
  - KVM virtualization is supported too
2726
  - file-based storage has been implemented, which means that it is
2727
    possible to run the cluster without LVM and DRBD storage, for
2728
    example using a shared filesystem exported from shared storage (and
2729
    still have live migration)
2730

    
2731

    
2732
Version 1.2.7
2733
-------------
2734

    
2735
*(Released Tue, 13 Jan 2009)*
2736

    
2737
- Change the default reboot type in ``gnt-instance reboot`` to "hard"
2738
- Reuse the old instance mac address by default on instance import, if
2739
  the instance name is the same.
2740
- Handle situations in which the node info rpc returns incomplete
2741
  results (issue 46)
2742
- Add checks for tcp/udp ports collisions in ``gnt-cluster verify``
2743
- Improved version of batcher:
2744

    
2745
  - state file support
2746
  - instance mac address support
2747
  - support for HVM clusters/instances
2748

    
2749
- Add an option to show the number of cpu sockets and nodes in
2750
  ``gnt-node list``
2751
- Support OSes that handle more than one version of the OS api (but do
2752
  not change the current API in any other way)
2753
- Fix ``gnt-node migrate``
2754
- ``gnt-debug`` man page
2755
- Fixes various more typos and small issues
2756
- Increase disk resync maximum speed to 60MB/s (from 30MB/s)
2757

    
2758

    
2759
Version 1.2.6
2760
-------------
2761

    
2762
*(Released Wed, 24 Sep 2008)*
2763

    
2764
- new ``--hvm-nic-type`` and ``--hvm-disk-type`` flags to control the
2765
  type of disk exported to fully virtualized instances.
2766
- provide access to the serial console of HVM instances
2767
- instance auto_balance flag, set by default. If turned off it will
2768
  avoid warnings on cluster verify if there is not enough memory to fail
2769
  over an instance. in the future it will prevent automatically failing
2770
  it over when we will support that.
2771
- batcher tool for instance creation, see ``tools/README.batcher``
2772
- ``gnt-instance reinstall --select-os`` to interactively select a new
2773
  operating system when reinstalling an instance.
2774
- when changing the memory amount on instance modify a check has been
2775
  added that the instance will be able to start. also warnings are
2776
  emitted if the instance will not be able to fail over, if auto_balance
2777
  is true.
2778
- documentation fixes
2779
- sync fields between ``gnt-instance list/modify/add/import``
2780
- fix a race condition in drbd when the sync speed was set after giving
2781
  the device a remote peer.
2782

    
2783

    
2784
Version 1.2.5
2785
-------------
2786

    
2787
*(Released Tue, 22 Jul 2008)*
2788

    
2789
- note: the allowed size and number of tags per object were reduced
2790
- fix a bug in ``gnt-cluster verify`` with inconsistent volume groups
2791
- fixed twisted 8.x compatibility
2792
- fixed ``gnt-instance replace-disks`` with iallocator
2793
- add TCP keepalives on twisted connections to detect restarted nodes
2794
- disk increase support, see ``gnt-instance grow-disk``
2795
- implement bulk node/instance query for RAPI
2796
- add tags in node/instance listing (optional)
2797
- experimental migration (and live migration) support, read the man page
2798
  for ``gnt-instance migrate``
2799
- the ``ganeti-watcher`` logs are now timestamped, and the watcher also
2800
  has some small improvements in handling its state file
2801

    
2802

    
2803
Version 1.2.4
2804
-------------
2805

    
2806
*(Released Fri, 13 Jun 2008)*
2807

    
2808
- Experimental readonly, REST-based remote API implementation;
2809
  automatically started on master node, TCP port 5080, if enabled by
2810
  ``--enable-rapi`` parameter to configure script.
2811
- Instance allocator support. Add and import instance accept a
2812
  ``--iallocator`` parameter, and call that instance allocator to decide
2813
  which node to use for the instance. The iallocator document describes
2814
  what's expected from an allocator script.
2815
- ``gnt-cluster verify`` N+1 memory redundancy checks: Unless passed the
2816
  ``--no-nplus1-mem`` option ``gnt-cluster verify`` now checks that if a
2817
  node is lost there is still enough memory to fail over the instances
2818
  that reside on it.
2819
- ``gnt-cluster verify`` hooks: it is now possible to add post-hooks to
2820
  ``gnt-cluster verify``, to check for site-specific compliance. All the
2821
  hooks will run, and their output, if any, will be displayed. Any
2822
  failing hook will make the verification return an error value.
2823
- ``gnt-cluster verify`` now checks that its peers are reachable on the
2824
  primary and secondary interfaces
2825
- ``gnt-node add`` now supports the ``--readd`` option, to readd a node
2826
  that is still declared as part of the cluster and has failed.
2827
- ``gnt-* list`` commands now accept a new ``-o +field`` way of
2828
  specifying output fields, that just adds the chosen fields to the
2829
  default ones.
2830
- ``gnt-backup`` now has a new ``remove`` command to delete an existing
2831
  export from the filesystem.
2832
- New per-instance parameters hvm_acpi, hvm_pae and hvm_cdrom_image_path
2833
  have been added. Using them you can enable/disable acpi and pae
2834
  support, and specify a path for a cd image to be exported to the
2835
  instance. These parameters as the name suggest only work on HVM
2836
  clusters.
2837
- When upgrading an HVM cluster to Ganeti 1.2.4, the values for ACPI and
2838
  PAE support will be set to the previously hardcoded values, but the
2839
  (previously hardcoded) path to the CDROM ISO image will be unset and
2840
  if required, needs to be set manually with ``gnt-instance modify``
2841
  after the upgrade.
2842
- The address to which an instance's VNC console is bound is now
2843
  selectable per-instance, rather than being cluster wide. Of course
2844
  this only applies to instances controlled via VNC, so currently just
2845
  applies to HVM clusters.
2846

    
2847

    
2848
Version 1.2.3
2849
-------------
2850

    
2851
*(Released Mon, 18 Feb 2008)*
2852

    
2853
- more tweaks to the disk activation code (especially helpful for DRBD)
2854
- change the default ``gnt-instance list`` output format, now there is
2855
  one combined status field (see the manpage for the exact values this
2856
  field will have)
2857
- some more fixes for the mac export to hooks change
2858
- make Ganeti not break with DRBD 8.2.x (which changed the version
2859
  format in ``/proc/drbd``) (issue 24)
2860
- add an upgrade tool from "remote_raid1" disk template to "drbd" disk
2861
  template, allowing migration from DRBD0.7+MD to DRBD8
2862

    
2863

    
2864
Version 1.2.2
2865
-------------
2866

    
2867
*(Released Wed, 30 Jan 2008)*
2868

    
2869
- fix ``gnt-instance modify`` breakage introduced in 1.2.1 with the HVM
2870
  support (issue 23)
2871
- add command aliases infrastructure and a few aliases
2872
- allow listing of VCPUs in the ``gnt-instance list`` and improve the
2873
  man pages and the ``--help`` option of ``gnt-node
2874
  list``/``gnt-instance list``
2875
- fix ``gnt-backup list`` with down nodes (issue 21)
2876
- change the tools location (move from $pkgdatadir to $pkglibdir/tools)
2877
- fix the dist archive and add a check for including svn/git files in
2878
  the future
2879
- some developer-related changes: improve the burnin and the QA suite,
2880
  add an upload script for testing during development
2881

    
2882

    
2883
Version 1.2.1
2884
-------------
2885

    
2886
*(Released Wed, 16 Jan 2008)*
2887

    
2888
- experimental HVM support, read the install document, section
2889
  "Initializing the cluster"
2890
- allow for the PVM hypervisor per-instance kernel and initrd paths
2891
- add a new command ``gnt-cluster verify-disks`` which uses a new
2892
  algorithm to improve the reconnection of the DRBD pairs if the device
2893
  on the secondary node has gone away
2894
- make logical volume code auto-activate LVs at disk activation time
2895
- slightly improve the speed of activating disks
2896
- allow specification of the MAC address at instance creation time, and
2897
  changing it later via ``gnt-instance modify``
2898
- fix handling of external commands that generate lots of output on
2899
  stderr
2900
- update documentation with regard to minimum version of DRBD8 supported
2901

    
2902

    
2903
Version 1.2.0
2904
-------------
2905

    
2906
*(Released Tue, 4 Dec 2007)*
2907

    
2908
- Log the ``xm create`` output to the node daemon log on failure (to
2909
  help diagnosing the error)
2910
- In debug mode, log all external commands output if failed to the logs
2911
- Change parsing of lvm commands to ignore stderr
2912

    
2913

    
2914
Version 1.2 beta3
2915
-----------------
2916

    
2917
*(Released Wed, 28 Nov 2007)*
2918

    
2919
- Another round of updates to the DRBD 8 code to deal with more failures
2920
  in the replace secondary node operation
2921
- Some more logging of failures in disk operations (lvm, drbd)
2922
- A few documentation updates
2923
- QA updates
2924

    
2925

    
2926
Version 1.2 beta2
2927
-----------------
2928

    
2929
*(Released Tue, 13 Nov 2007)*
2930

    
2931
- Change configuration file format from Python's Pickle to JSON.
2932
  Upgrading is possible using the cfgupgrade utility.
2933
- Add support for DRBD 8.0 (new disk template ``drbd``) which allows for
2934
  faster replace disks and is more stable (DRBD 8 has many improvements
2935
  compared to DRBD 0.7)
2936
- Added command line tags support (see man pages for ``gnt-instance``,
2937
  ``gnt-node``, ``gnt-cluster``)
2938
- Added instance rename support
2939
- Added multi-instance startup/shutdown
2940
- Added cluster rename support
2941
- Added ``gnt-node evacuate`` to simplify some node operations
2942
- Added instance reboot operation that can speedup reboot as compared to
2943
  stop and start
2944
- Soften the requirement that hostnames are in FQDN format
2945
- The ``ganeti-watcher`` now activates drbd pairs after secondary node
2946
  reboots
2947
- Removed dependency on debian's patched fping that uses the
2948
  non-standard ``-S`` option
2949
- Now the OS definitions are searched for in multiple, configurable
2950
  paths (easier for distros to package)
2951
- Some changes to the hooks infrastructure (especially the new
2952
  post-configuration update hook)
2953
- Other small bugfixes
2954

    
2955
.. vim: set textwidth=72 syntax=rst :
2956
.. Local Variables:
2957
.. mode: rst
2958
.. fill-column: 72
2959
.. End: