Statistics
| Branch: | Tag: | Revision:

root / NEWS @ 245c0610

History | View | Annotate | Download (117.9 kB)

1
News
2
====
3

    
4

    
5
Version 2.11.0 alpha1
6
---------------------
7

    
8
*(unreleased)*
9

    
10
Incompatible/important changes
11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12

    
13
- Over luxi, syntactially incorrect queries are now rejected as a whole;
14
  before, a 'SumbmitManyJobs' request was partially executed, if the outer
15
  structure of the request was syntactically correct. As the luxi protocol
16
  is internal (external applications are expected to use RAPI), the impact
17
  of this incompatible change should be limited.
18

    
19
New features
20
~~~~~~~~~~~~
21

    
22
- Instance moves, backups and imports can now use compression to transfer the
23
  instance data.
24

    
25

    
26
Version 2.10.0 alpha1
27
---------------------
28

    
29
*(unreleased)*
30

    
31
Incompatible/important changes
32
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33

    
34
- Adding disks with 'gnt-instance modify' now waits for the disks to sync per
35
  default. Specify --no-wait-for-sync to override this behavior.
36
- The Ganeti python code now adheres to a private-module layout. In particular,
37
  the module 'ganeti' is no longer in the python search path.
38
- On instance allocation, the iallocator now considers non-LVM storage
39
  properly. In particular, actual file storage space information is used
40
  when allocating space for a file/sharedfile instance.
41
- When disabling disk templates cluster-wide, the cluster now first
42
  checks whether there are instances still using those templates.
43
- 'gnt-node list-storage' now also reports storage information about
44
  file-based storage types.
45

    
46
New features
47
~~~~~~~~~~~~
48

    
49
- KVM hypervisors can now access RBD storage directly without having to
50
  go through a block device.
51
- A new command 'gnt-cluster upgrade' was added that automates the upgrade
52
  procedure between two Ganeti versions that are both 2.10 or higher.
53
- The move-instance command can now change disk templates when moving
54
  instances, and does not require any node placement options to be
55
  specified if the destination cluster has a default iallocator.
56
- Users can now change the soundhw and cpuid settings for XEN hypervisors.
57
- Hail and hbal now have the (optional) capability of accessing average CPU
58
  load information through the monitoring deamon, and to use it to dynamically
59
  adapt the allocation of instances.
60
- Hotplug support. Introduce new option '--hotplug' to ``gnt-instance modify``
61
  so that disk and NIC modifications take effect without the need of actual
62
  reboot. There are a couple of constrains currently for this feature:
63

    
64
   - only KVM hypervisor (versions >= 1.0) supports it,
65
   - one can not (yet) hotplug a disk using userspace access mode for RBD
66
   - in case of a downgrade instances should suffer a reboot in order to
67
     be migratable (due to core change of runtime files)
68

    
69
Misc changes
70
~~~~~~~~~~~~
71

    
72
- A new test framework for logical units was introduced and the test
73
  coverage for logical units was improved significantly.
74
- Opcodes are entirely generated from Haskell using the tool 'hs2py' and
75
  the module 'src/Ganeti/OpCodes.hs'.
76
- Constants are also generated from Haskell using the tool
77
  'hs2py-constants' and the module 'src/Ganeti/HsConstants.hs', with the
78
  exception of socket related constants, which require changing the
79
  cluster configuration file, and HVS related constants, because they
80
  are part of a port of instance queries to Haskell.  As a result, these
81
  changes will be part of the next release of Ganeti.
82

    
83
New dependencies
84
~~~~~~~~~~~~~~~~
85

    
86
The following new dependencies have been added/updated.
87

    
88
Python
89

    
90
- The version requirements for ``python-mock`` have increased to at least
91
  version 1.0.1. It is still used for testing only.
92

    
93

    
94
Version 2.9.0
95
-------------
96

    
97
*(Released Tue, 5 Nov 2013)*
98

    
99
Incompatible/important changes
100
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101

    
102
- hroller now also plans for capacity to move non-redundant instances off
103
  any node to be rebooted; the old behavior of completely ignoring any
104
  non-redundant instances can be restored by adding the --ignore-non-redundant
105
  option.
106
- The cluster option '--no-lvm-storage' was removed in favor of the new option
107
  '--enabled-disk-templates'.
108
- On instance creation, disk templates no longer need to be specified
109
  with '-t'. The default disk template will be taken from the list of
110
  enabled disk templates.
111
- The monitoring daemon is now running as root, in order to be able to collect
112
  information only available to root (such as the state of Xen instances).
113
- The ConfD client is now IPv6 compatible.
114
- File and shared file storage is no longer dis/enabled at configure time,
115
  but using the option '--enabled-disk-templates' at cluster initialization and
116
  modification.
117
- The default directories for file and shared file storage are not anymore
118
  specified at configure time, but taken from the cluster's configuration.
119
  They can be set at cluster initialization and modification with
120
  '--file-storage-dir' and '--shared-file-storage-dir'.
121
- Cluster verification now includes stricter checks regarding the
122
  default file and shared file storage directories. It now checks that
123
  the directories are explicitely allowed in the 'file-storage-paths' file and
124
  that the directories exist on all nodes.
125
- The list of allowed disk templates in the instance policy and the list
126
  of cluster-wide enabled disk templates is now checked for consistency
127
  on cluster or group modification. On cluster initialization, the ipolicy
128
  disk templates are ensured to be a subset of the cluster-wide enabled
129
  disk templates.
130

    
131
New features
132
~~~~~~~~~~~~
133

    
134
- DRBD 8.4 support. Depending on the installed DRBD version, Ganeti now uses
135
  the correct command syntax. It is possible to use different DRBD versions
136
  on different nodes as long as they are compatible to each other. This
137
  enables rolling upgrades of DRBD with no downtime. As permanent operation
138
  of different DRBD versions within a node group is discouraged,
139
  ``gnt-cluster verify`` will emit a warning if it detects such a situation.
140
- New "inst-status-xen" data collector for the monitoring daemon, providing
141
  information about the state of the xen instances on the nodes.
142
- New "lv" data collector for the monitoring daemon, collecting data about the
143
  logical volumes on the nodes, and pairing them with the name of the instances
144
  they belong to.
145
- New "diskstats" data collector, collecting the data from /proc/diskstats and
146
  presenting them over the monitoring daemon interface.
147
- The ConfD client is now IPv6 compatible.
148

    
149
New dependencies
150
~~~~~~~~~~~~~~~~
151
The following new dependencies have been added.
152

    
153
Python
154

    
155
- ``python-mock`` (http://www.voidspace.org.uk/python/mock/) is now a required
156
  for the unit tests (and only used for testing).
157

    
158
Haskell
159

    
160
- ``hslogger`` (http://software.complete.org/hslogger) is now always
161
  required, even if confd is not enabled.
162

    
163
Since 2.9.0 rc3
164
~~~~~~~~~~~~~~~
165

    
166
- Correctly start/stop luxid during gnt-cluster master-failover (inherited
167
  from stable-2.8)
168
- Improved error messsages (inherited from stable-2.8)
169

    
170

    
171
Version 2.9.0 rc3
172
-----------------
173

    
174
*(Released Tue, 15 Oct 2013)*
175

    
176
The third release candidate in the 2.9 series. Since 2.9.0 rc2:
177

    
178
- in implicit configuration upgrade, match ipolicy with enabled disk templates
179
- improved harep documentation (inherited from stable-2.8)
180

    
181

    
182
Version 2.9.0 rc2
183
-----------------
184

    
185
*(Released Wed, 9 Oct 2013)*
186

    
187
The second release candidate in the 2.9 series. Since 2.9.0 rc1:
188

    
189
- Fix bug in cfgupgrade that led to failure when upgrading from 2.8 with
190
  at least one DRBD instance.
191
- Fix bug in cfgupgrade that led to an invalid 2.8 configuration after
192
  downgrading.
193

    
194

    
195
Version 2.9.0 rc1
196
-----------------
197

    
198
*(Released Tue, 1 Oct 2013)*
199

    
200
The first release candidate in the 2.9 series. Since 2.9.0 beta1:
201

    
202
- various bug fixes
203
- update of the documentation, in particular installation instructions
204
- merging of LD_* constants into DT_* constants
205
- python style changes to be compatible with newer versions of pylint
206

    
207

    
208
Version 2.9.0 beta1
209
-------------------
210

    
211
*(Released Thu, 29 Aug 2013)*
212

    
213
This was the first beta release of the 2.9 series. All important changes
214
are listed in the latest 2.9 entry.
215

    
216

    
217
Version 2.8.1
218
-------------
219

    
220
*(Released Thu, 17 Oct 2013)*
221

    
222
- Correctly start/stop luxid during gnt-cluster master-failover
223
- Don't attempt IPv6 ssh in case of IPv4 cluster (Issue 595)
224
- Fix path for the job queue serial file
225
- Improved harep man page
226
- Minor documentation improvements
227

    
228

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

    
232
*(Released Mon, 30 Sep 2013)*
233

    
234
Incompatible/important changes
235
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
236

    
237
- Instance policy can contain multiple instance specs, as described in
238
  the “Constrained instance sizes” section of :doc:`Partitioned Ganeti
239
  <design-partitioned>`. As a consequence, it's not possible to partially change
240
  or override instance specs. Bounding specs (min and max) can be specified as a
241
  whole using the new option ``--ipolicy-bounds-specs``, while standard
242
  specs use the new option ``--ipolicy-std-specs``.
243
- The output of the info command of gnt-cluster, gnt-group, gnt-node,
244
  gnt-instance is a valid YAML object.
245
- hail now honors network restrictions when allocating nodes. This led to an
246
  update of the IAllocator protocol. See the IAllocator documentation for
247
  details.
248
- confd now only answers static configuration request over the network. luxid
249
  was extracted, listens on the local LUXI socket and responds to live queries.
250
  This allows finer grained permissions if using separate users.
251

    
252
New features
253
~~~~~~~~~~~~
254

    
255
- The :doc:`Remote API <rapi>` daemon now supports a command line flag
256
  to always require authentication, ``--require-authentication``. It can
257
  be specified in ``$sysconfdir/default/ganeti``.
258
- A new cluster attribute 'enabled_disk_templates' is introduced. It will
259
  be used to manage the disk templates to be used by instances in the cluster.
260
  Initially, it will be set to a list that includes plain, drbd, if they were
261
  enabled by specifying a volume group name, and file and sharedfile, if those
262
  were enabled at configure time. Additionally, it will include all disk
263
  templates that are currently used by instances. The order of disk templates
264
  will be based on Ganeti's history of supporting them. In the future, the
265
  first entry of the list will be used as a default disk template on instance
266
  creation.
267
- ``cfgupgrade`` now supports a ``--downgrade`` option to bring the
268
  configuration back to the previous stable version.
269
- Disk templates in group ipolicy can be restored to the default value.
270
- Initial support for diskless instances and virtual clusters in QA.
271
- More QA and unit tests for instance policies.
272
- Every opcode now contains a reason trail (visible through ``gnt-job info``)
273
  describing why the opcode itself was executed.
274
- The monitoring daemon is now available. It allows users to query the cluster
275
  for obtaining information about the status of the system. The daemon is only
276
  responsible for providing the information over the network: the actual data
277
  gathering is performed by data collectors (currently, only the DRBD status
278
  collector is available).
279
- In order to help developers work on Ganeti, a new script
280
  (``devel/build_chroot``) is provided, for building a chroot that contains all
281
  the required development libraries and tools for compiling Ganeti on a Debian
282
  Squeeze system.
283
- A new tool, ``harep``, for performing self-repair and recreation of instances
284
  in Ganeti has been added.
285
- Split queries are enabled for tags, network, exports, cluster info, groups,
286
  jobs, nodes.
287
- New command ``show-ispecs-cmd`` for ``gnt-cluster`` and ``gnt-group``.
288
  It prints the command line to set the current policies, to ease
289
  changing them.
290
- Add the ``vnet_hdr`` HV parameter for KVM, to control whether the tap
291
  devices for KVM virtio-net interfaces will get created with VNET_HDR
292
  (IFF_VNET_HDR) support. If set to false, it disables offloading on the
293
  virtio-net interfaces, which prevents host kernel tainting and log
294
  flooding, when dealing with broken or malicious virtio-net drivers.
295
  It's set to true by default.
296
- Instance failover now supports a ``--cleanup`` parameter for fixing previous
297
  failures.
298
- Support 'viridian' parameter in Xen HVM
299
- Support DSA SSH keys in bootstrap
300
- To simplify the work of packaging frameworks that want to add the needed users
301
  and groups in a split-user setup themselves, at build time three files in
302
  ``doc/users`` will be generated. The ``groups`` files contains, one per line,
303
  the groups to be generated, the ``users`` file contains, one per line, the
304
  users to be generated, optionally followed by their primary group, where
305
  important. The ``groupmemberships`` file contains, one per line, additional
306
  user-group membership relations that need to be established. The syntax of
307
  these files will remain stable in all future versions.
308

    
309

    
310
New dependencies
311
~~~~~~~~~~~~~~~~
312
The following new dependencies have been added:
313

    
314
For Haskell:
315
- The ``curl`` library is not optional anymore for compiling the Haskell code.
316
- ``snap-server`` library (if monitoring is enabled).
317

    
318
For Python:
319
- The minimum Python version needed to run Ganeti is now 2.6.
320
- ``yaml`` library (only for running the QA).
321

    
322
Since 2.8.0 rc3
323
~~~~~~~~~~~~~~~
324
- Perform proper cleanup on termination of Haskell daemons
325
- Fix corner-case in handling of remaining retry time
326

    
327

    
328
Version 2.8.0 rc3
329
-----------------
330

    
331
*(Released Tue, 17 Sep 2013)*
332

    
333
- To simplify the work of packaging frameworks that want to add the needed users
334
  and groups in a split-user setup themselves, at build time three files in
335
  ``doc/users`` will be generated. The ``groups`` files contains, one per line,
336
  the groups to be generated, the ``users`` file contains, one per line, the
337
  users to be generated, optionally followed by their primary group, where
338
  important. The ``groupmemberships`` file contains, one per line, additional
339
  user-group membership relations that need to be established. The syntax of
340
  these files will remain stable in all future versions.
341
- Add a default to file-driver when unspecified over RAPI (Issue 571)
342
- Mark the DSA host pubkey as optional, and remove it during config downgrade
343
  (Issue 560)
344
- Some documentation fixes
345

    
346

    
347
Version 2.8.0 rc2
348
-----------------
349

    
350
*(Released Tue, 27 Aug 2013)*
351

    
352
The second release candidate of the 2.8 series. Since 2.8.0. rc1:
353

    
354
- Support 'viridian' parameter in Xen HVM (Issue 233)
355
- Include VCS version in ``gnt-cluster version``
356
- Support DSA SSH keys in bootstrap (Issue 338)
357
- Fix batch creation of instances
358
- Use FQDN to check master node status (Issue 551)
359
- Make the DRBD collector more failure-resilient
360

    
361

    
362
Version 2.8.0 rc1
363
-----------------
364

    
365
*(Released Fri, 2 Aug 2013)*
366

    
367
The first release candidate of the 2.8 series. Since 2.8.0 beta1:
368

    
369
- Fix upgrading/downgrading from 2.7
370
- Increase maximum RAPI message size
371
- Documentation updates
372
- Split ``confd`` between ``luxid`` and ``confd``
373
- Merge 2.7 series up to the 2.7.1 release
374
- Allow the ``modify_etc_hosts`` option to be changed
375
- Add better debugging for ``luxid`` queries
376
- Expose bulk parameter for GetJobs in RAPI client
377
- Expose missing ``network`` fields in RAPI
378
- Add some ``cluster verify`` tests
379
- Some unittest fixes
380
- Fix a malfunction in ``hspace``'s tiered allocation
381
- Fix query compatibility between haskell and python implementations
382
- Add the ``vnet_hdr`` HV parameter for KVM
383
- Add ``--cleanup`` to instance failover
384
- Change the connected groups format in ``gnt-network info`` output; it
385
  was previously displayed as a raw list by mistake. (Merged from 2.7)
386

    
387

    
388
Version 2.8.0 beta1
389
-------------------
390

    
391
*(Released Mon, 24 Jun 2013)*
392

    
393
This was the first beta release of the 2.8 series. All important changes
394
are listed in the latest 2.8 entry.
395

    
396

    
397
Version 2.7.2
398
-------------
399

    
400
*(Released Thu, 26 Sep 2013)*
401

    
402
- Change the connected groups format in ``gnt-network info`` output; it
403
  was previously displayed as a raw list by mistake
404
- Check disk template in right dict when copying
405
- Support multi-instance allocs without iallocator
406
- Fix some errors in the documentation
407
- Fix formatting of tuple in an error message
408

    
409

    
410
Version 2.7.1
411
-------------
412

    
413
*(Released Thu, 25 Jul 2013)*
414

    
415
- Add logrotate functionality in daemon-util
416
- Add logrotate example file
417
- Add missing fields to network queries over rapi
418
- Fix network object timestamps
419
- Add support for querying network timestamps
420
- Fix a typo in the example crontab
421
- Fix a documentation typo
422

    
423

    
424
Version 2.7.0
425
-------------
426

    
427
*(Released Thu, 04 Jul 2013)*
428

    
429
Incompatible/important changes
430
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
431

    
432
- Instance policies for disk size were documented to be on a per-disk
433
  basis, but hail applied them to the sum of all disks. This has been
434
  fixed.
435
- ``hbal`` will now exit with status 0 if, during job execution over
436
  LUXI, early exit has been requested and all jobs are successful;
437
  before, exit status 1 was used, which cannot be differentiated from
438
  "job error" case
439
- Compatibility with newer versions of rbd has been fixed
440
- ``gnt-instance batch-create`` has been changed to use the bulk create
441
  opcode from Ganeti. This lead to incompatible changes in the format of
442
  the JSON file. It's now not a custom dict anymore but a dict
443
  compatible with the ``OpInstanceCreate`` opcode.
444
- Parent directories for file storage need to be listed in
445
  ``$sysconfdir/ganeti/file-storage-paths`` now. ``cfgupgrade`` will
446
  write the file automatically based on old configuration values, but it
447
  can not distribute it across all nodes and the file contents should be
448
  verified. Use ``gnt-cluster copyfile
449
  $sysconfdir/ganeti/file-storage-paths`` once the cluster has been
450
  upgraded. The reason for requiring this list of paths now is that
451
  before it would have been possible to inject new paths via RPC,
452
  allowing files to be created in arbitrary locations. The RPC protocol
453
  is protected using SSL/X.509 certificates, but as a design principle
454
  Ganeti does not permit arbitrary paths to be passed.
455
- The parsing of the variants file for OSes (see
456
  :manpage:`ganeti-os-interface(7)`) has been slightly changed: now empty
457
  lines and comment lines (starting with ``#``) are ignored for better
458
  readability.
459
- The ``setup-ssh`` tool added in Ganeti 2.2 has been replaced and is no
460
  longer available. ``gnt-node add`` now invokes a new tool on the
461
  destination node, named ``prepare-node-join``, to configure the SSH
462
  daemon. Paramiko is no longer necessary to configure nodes' SSH
463
  daemons via ``gnt-node add``.
464
- Draining (``gnt-cluster queue drain``) and un-draining the job queue
465
  (``gnt-cluster queue undrain``) now affects all nodes in a cluster and
466
  the flag is not reset after a master failover.
467
- Python 2.4 has *not* been tested with this release. Using 2.6 or above
468
  is recommended. 2.6 will be mandatory from the 2.8 series.
469

    
470

    
471
New features
472
~~~~~~~~~~~~
473

    
474
- New network management functionality to support automatic allocation
475
  of IP addresses and managing of network parameters. See
476
  :manpage:`gnt-network(8)` for more details.
477
- New external storage backend, to allow managing arbitrary storage
478
  systems external to the cluster. See
479
  :manpage:`ganeti-extstorage-interface(7)`.
480
- New ``exclusive-storage`` node parameter added, restricted to
481
  nodegroup level. When it's set to true, physical disks are assigned in
482
  an exclusive fashion to instances, as documented in :doc:`Partitioned
483
  Ganeti <design-partitioned>`.  Currently, only instances using the
484
  ``plain`` disk template are supported.
485
- The KVM hypervisor has been updated with many new hypervisor
486
  parameters, including a generic one for passing arbitrary command line
487
  values. See a complete list in :manpage:`gnt-instance(8)`. It is now
488
  compatible up to qemu 1.4.
489
- A new tool, called ``mon-collector``, is the stand-alone executor of
490
  the data collectors for a monitoring system. As of this version, it
491
  just includes the DRBD data collector, that can be executed by calling
492
  ``mon-collector`` using the ``drbd`` parameter. See
493
  :manpage:`mon-collector(7)`.
494
- A new user option, :pyeval:`rapi.RAPI_ACCESS_READ`, has been added
495
  for RAPI users. It allows granting permissions to query for
496
  information to a specific user without giving
497
  :pyeval:`rapi.RAPI_ACCESS_WRITE` permissions.
498
- A new tool named ``node-cleanup`` has been added. It cleans remains of
499
  a cluster from a machine by stopping all daemons, removing
500
  certificates and ssconf files. Unless the ``--no-backup`` option is
501
  given, copies of the certificates are made.
502
- Instance creations now support the use of opportunistic locking,
503
  potentially speeding up the (parallel) creation of multiple instances.
504
  This feature is currently only available via the :doc:`RAPI
505
  <rapi>` interface and when an instance allocator is used. If the
506
  ``opportunistic_locking`` parameter is set the opcode will try to
507
  acquire as many locks as possible, but will not wait for any locks
508
  held by other opcodes. If not enough resources can be found to
509
  allocate the instance, the temporary error code
510
  :pyeval:`errors.ECODE_TEMP_NORES` is returned. The operation can be
511
  retried thereafter, with or without opportunistic locking.
512
- New experimental linux-ha resource scripts.
513
- Restricted-commands support: ganeti can now be asked (via command line
514
  or rapi) to perform commands on a node. These are passed via ganeti
515
  RPC rather than ssh. This functionality is restricted to commands
516
  specified on the ``$sysconfdir/ganeti/restricted-commands`` for security
517
  reasons. The file is not copied automatically.
518

    
519

    
520
Misc changes
521
~~~~~~~~~~~~
522

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

    
532
There are no significant changes from version 2.7.0~rc3.
533

    
534

    
535
Version 2.7.0 rc3
536
-----------------
537

    
538
*(Released Tue, 25 Jun 2013)*
539

    
540
- Fix permissions on the confd query socket (Issue 477)
541
- Fix permissions on the job archive dir (Issue 498)
542
- Fix handling of an internal exception in replace-disks (Issue 472)
543
- Fix gnt-node info handling of shortened names (Issue 497)
544
- Fix gnt-instance grow-disk when wiping is enabled
545
- Documentation improvements, and support for newer pandoc
546
- Fix hspace honoring ipolicy for disks (Issue 484)
547
- Improve handling of the ``kvm_extra`` HV parameter
548

    
549

    
550
Version 2.7.0 rc2
551
-----------------
552

    
553
*(Released Fri, 24 May 2013)*
554

    
555
- ``devel/upload`` now works when ``/var/run`` on the target nodes is a
556
  symlink.
557
- Disks added through ``gnt-instance modify`` or created through
558
  ``gnt-instance recreate-disks`` are wiped, if the
559
  ``prealloc_wipe_disks`` flag is set.
560
- If wiping newly created disks fails, the disks are removed. Also,
561
  partial failures in creating disks through ``gnt-instance modify``
562
  triggers a cleanup of the partially-created disks.
563
- Removing the master IP address doesn't fail if the address has been
564
  already removed.
565
- Fix ownership of the OS log dir
566
- Workaround missing SO_PEERCRED constant (Issue 191)
567

    
568

    
569
Version 2.7.0 rc1
570
-----------------
571

    
572
*(Released Fri, 3 May 2013)*
573

    
574
This was the first release candidate of the 2.7 series. Since beta3:
575

    
576
- Fix kvm compatibility with qemu 1.4 (Issue 389)
577
- Documentation updates (admin guide, upgrade notes, install
578
  instructions) (Issue 372)
579
- Fix gnt-group list nodes and instances count (Issue 436)
580
- Fix compilation without non-mandatory libraries (Issue 441)
581
- Fix xen-hvm hypervisor forcing nics to type 'ioemu' (Issue 247)
582
- Make confd logging more verbose at INFO level (Issue 435)
583
- Improve "networks" documentation in :manpage:`gnt-instance(8)`
584
- Fix failure path for instance storage type conversion (Issue 229)
585
- Update htools text backend documentation
586
- Improve the renew-crypto section of :manpage:`gnt-cluster(8)`
587
- Disable inter-cluster instance move for file-based instances, because
588
  it is dependant on instance export, which is not supported for
589
  file-based instances. (Issue 414)
590
- Fix gnt-job crashes on non-ascii characters (Issue 427)
591
- Fix volume group checks on non-vm-capable nodes (Issue 432)
592

    
593

    
594
Version 2.7.0 beta3
595
-------------------
596

    
597
*(Released Mon, 22 Apr 2013)*
598

    
599
This was the third beta release of the 2.7 series. Since beta2:
600

    
601
- Fix hail to verify disk instance policies on a per-disk basis (Issue 418).
602
- Fix data loss on wrong usage of ``gnt-instance move``
603
- Properly export errors in confd-based job queries
604
- Add ``users-setup`` tool
605
- Fix iallocator protocol to report 0 as a disk size for diskless
606
  instances. This avoids hail breaking when a diskless instance is
607
  present.
608
- Fix job queue directory permission problem that made confd job queries
609
  fail. This requires running an ``ensure-dirs --full-run`` on upgrade
610
  for access to archived jobs (Issue 406).
611
- Limit the sizes of networks supported by ``gnt-network`` to something
612
  between a ``/16`` and a ``/30`` to prevent memory bloat and crashes.
613
- Fix bugs in instance disk template conversion
614
- Fix GHC 7 compatibility
615
- Fix ``burnin`` install path (Issue 426).
616
- Allow very small disk grows (Issue 347).
617
- Fix a ``ganeti-noded`` memory bloat introduced in 2.5, by making sure
618
  that noded doesn't import masterd code (Issue 419).
619
- Make sure the default metavg at cluster init is the same as the vg, if
620
  unspecified (Issue 358).
621
- Fix cleanup of partially created disks (part of Issue 416)
622

    
623

    
624
Version 2.7.0 beta2
625
-------------------
626

    
627
*(Released Tue, 2 Apr 2013)*
628

    
629
This was the second beta release of the 2.7 series. Since beta1:
630

    
631
- Networks no longer have a "type" slot, since this information was
632
  unused in Ganeti: instead of it tags should be used.
633
- The rapi client now has a ``target_node`` option to MigrateInstance.
634
- Fix early exit return code for hbal (Issue 386).
635
- Fix ``gnt-instance migrate/failover -n`` (Issue 396).
636
- Fix ``rbd showmapped`` output parsing (Issue 312).
637
- Networks are now referenced indexed by UUID, rather than name. This
638
  will require running cfgupgrade, from 2.7.0beta1, if networks are in
639
  use.
640
- The OS environment now includes network information.
641
- Deleting of a network is now disallowed if any instance nic is using
642
  it, to prevent dangling references.
643
- External storage is now documented in man pages.
644
- The exclusive_storage flag can now only be set at nodegroup level.
645
- Hbal can now submit an explicit priority with its jobs.
646
- Many network related locking fixes.
647
- Bump up the required pylint version to 0.25.1.
648
- Fix the ``no_remember`` option in RAPI client.
649
- Many ipolicy related tests, qa, and fixes.
650
- Many documentation improvements and fixes.
651
- Fix building with ``--disable-file-storage``.
652
- Fix ``-q`` option in htools, which was broken if passed more than
653
  once.
654
- Some haskell/python interaction improvements and fixes.
655
- Fix iallocator in case of missing LVM storage.
656
- Fix confd config load in case of ``--no-lvm-storage``.
657
- The confd/query functionality is now mentioned in the security
658
  documentation.
659

    
660

    
661
Version 2.7.0 beta1
662
-------------------
663

    
664
*(Released Wed, 6 Feb 2013)*
665

    
666
This was the first beta release of the 2.7 series. All important changes
667
are listed in the latest 2.7 entry.
668

    
669

    
670
Version 2.6.2
671
-------------
672

    
673
*(Released Fri, 21 Dec 2012)*
674

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

    
680
A significant number of bug fixes in this release:
681

    
682
- Fixed disk adoption interaction with ipolicy checks.
683
- Fixed networking issues when instances are started, stopped or
684
  migrated, by forcing the tap device's MAC prefix to "fe" (issue 217).
685
- Fixed the warning in cluster verify for shared storage instances not
686
  being redundant.
687
- Fixed removal of storage directory on shared file storage (issue 262).
688
- Fixed validation of LVM volume group name in OpClusterSetParams
689
  (``gnt-cluster modify``) (issue 285).
690
- Fixed runtime memory increases (``gnt-instance modify -m``).
691
- Fixed live migration under Xen's ``xl`` mode.
692
- Fixed ``gnt-instance console`` with ``xl``.
693
- Fixed building with newer Haskell compiler/libraries.
694
- Fixed PID file writing in Haskell daemons (confd); this prevents
695
  restart issues if confd was launched manually (outside of
696
  ``daemon-util``) while another copy of it was running
697
- Fixed a type error when doing live migrations with KVM (issue 297) and
698
  the error messages for failing migrations have been improved.
699
- Fixed opcode validation for the out-of-band commands (``gnt-node
700
  power``).
701
- Fixed a type error when unsetting OS hypervisor parameters (issue
702
  311); now it's possible to unset all OS-specific hypervisor
703
  parameters.
704
- Fixed the ``dry-run`` mode for many operations: verification of
705
  results was over-zealous but didn't take into account the ``dry-run``
706
  operation, resulting in "wrong" failures.
707
- Fixed bash completion in ``gnt-job list`` when the job queue has
708
  hundreds of entries; especially with older ``bash`` versions, this
709
  results in significant CPU usage.
710

    
711
And lastly, a few other improvements have been made:
712

    
713
- Added option to force master-failover without voting (issue 282).
714
- Clarified error message on lock conflict (issue 287).
715
- Logging of newly submitted jobs has been improved (issue 290).
716
- Hostname checks have been made uniform between instance rename and
717
  create (issue 291).
718
- The ``--submit`` option is now supported by ``gnt-debug delay``.
719
- Shutting down the master daemon by sending SIGTERM now stops it from
720
  processing jobs waiting for locks; instead, those jobs will be started
721
  once again after the master daemon is started the next time (issue
722
  296).
723
- Support for Xen's ``xl`` program has been improved (besides the fixes
724
  above).
725
- Reduced logging noise in the Haskell confd daemon (only show one log
726
  entry for each config reload, instead of two).
727
- Several man page updates and typo fixes.
728

    
729

    
730
Version 2.6.1
731
-------------
732

    
733
*(Released Fri, 12 Oct 2012)*
734

    
735
A small bugfix release. Among the bugs fixed:
736

    
737
- Fixed double use of ``PRIORITY_OPT`` in ``gnt-node migrate``, that
738
  made the command unusable.
739
- Commands that issue many jobs don't fail anymore just because some jobs
740
  take so long that other jobs are archived.
741
- Failures during ``gnt-instance reinstall`` are reflected by the exit
742
  status.
743
- Issue 190 fixed. Check for DRBD in cluster verify is enabled only when
744
  DRBD is enabled.
745
- When ``always_failover`` is set, ``--allow-failover`` is not required
746
  in migrate commands anymore.
747
- ``bash_completion`` works even if extglob is disabled.
748
- Fixed bug with locks that made failover for RDB-based instances fail.
749
- Fixed bug in non-mirrored instance allocation that made Ganeti choose
750
  a random node instead of one based on the allocator metric.
751
- Support for newer versions of pylint and pep8.
752
- Hail doesn't fail anymore when trying to add an instance of type
753
  ``file``, ``sharedfile`` or ``rbd``.
754
- Added new Makefile target to rebuild the whole distribution, so that
755
  all files are included.
756

    
757

    
758
Version 2.6.0
759
-------------
760

    
761
*(Released Fri, 27 Jul 2012)*
762

    
763

    
764
.. attention:: The ``LUXI`` protocol has been made more consistent
765
   regarding its handling of command arguments. This, however, leads to
766
   incompatibility issues with previous versions. Please ensure that you
767
   restart Ganeti daemons soon after the upgrade, otherwise most
768
   ``LUXI`` calls (job submission, setting/resetting the drain flag,
769
   pausing/resuming the watcher, cancelling and archiving jobs, querying
770
   the cluster configuration) will fail.
771

    
772

    
773
New features
774
~~~~~~~~~~~~
775

    
776
Instance run status
777
+++++++++++++++++++
778

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

    
783
The rational behind this is that an instance being “down” can have
784
different meanings:
785

    
786
- it could be down during a reboot
787
- it could be temporarily be down for a reinstall
788
- or it could be down because it is deprecated and kept just for its
789
  disk
790

    
791
The previous Boolean state was making it difficult to do capacity
792
calculations: should Ganeti reserve memory for a down instance? Now, the
793
tri-state field makes it clear:
794

    
795
- in ``up`` and ``down`` state, all resources are reserved for the
796
  instance, and it can be at any time brought up if it is down
797
- in ``offline`` state, only disk space is reserved for it, but not
798
  memory or CPUs
799

    
800
The field can have an extra use: since the transition between ``up`` and
801
``down`` and vice-versus is done via ``gnt-instance start/stop``, but
802
transition between ``offline`` and ``down`` is done via ``gnt-instance
803
modify``, it is possible to given different rights to users. For
804
example, owners of an instance could be allowed to start/stop it, but
805
not transition it out of the offline state.
806

    
807
Instance policies and specs
808
+++++++++++++++++++++++++++
809

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

    
817
In order to improve these workflows and to allow for example better
818
per-node group differentiation, we introduced instance specs, which
819
allow declaring:
820

    
821
- minimum instance disk size, disk count, memory size, cpu count
822
- maximum values for the above metrics
823
- and “standard” values (used in ``hspace`` to calculate the standard
824
  sized instances)
825

    
826
The minimum/maximum values can be also customised at node-group level,
827
for example allowing more powerful hardware to support bigger instance
828
memory sizes.
829

    
830
Beside the instance specs, there are a few other settings belonging to
831
the instance policy framework. It is possible now to customise, per
832
cluster and node-group:
833

    
834
- the list of allowed disk templates
835
- the maximum ratio of VCPUs per PCPUs (to control CPU oversubscription)
836
- the maximum ratio of instance to spindles (see below for more
837
  information) for local storage
838

    
839
All these together should allow all tools that talk to Ganeti to know
840
what are the ranges of allowed values for instances and the
841
over-subscription that is allowed.
842

    
843
For the VCPU/PCPU ratio, we already have the VCPU configuration from the
844
instance configuration, and the physical CPU configuration from the
845
node. For the spindle ratios however, we didn't track before these
846
values, so new parameters have been added:
847

    
848
- a new node parameter ``spindle_count``, defaults to 1, customisable at
849
  node group or node level
850
- at new backend parameter (for instances), ``spindle_use`` defaults to 1
851

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

    
856
Instance migration behaviour
857
++++++++++++++++++++++++++++
858

    
859
While live-migration is in general desirable over failover, it is
860
possible that for some workloads it is actually worse, due to the
861
variable time of the “suspend” phase during live migration.
862

    
863
To allow the tools to work consistently over such instances (without
864
having to hard-code instance names), a new backend parameter
865
``always_failover`` has been added to control the migration/failover
866
behaviour. When set to True, all migration requests for an instance will
867
instead fall-back to failover.
868

    
869
Instance memory ballooning
870
++++++++++++++++++++++++++
871

    
872
Initial support for memory ballooning has been added. The memory for an
873
instance is no longer fixed (backend parameter ``memory``), but instead
874
can vary between minimum and maximum values (backend parameters
875
``minmem`` and ``maxmem``). Currently we only change an instance's
876
memory when:
877

    
878
- live migrating or failing over and instance and the target node
879
  doesn't have enough memory
880
- user requests changing the memory via ``gnt-instance modify
881
  --runtime-memory``
882

    
883
Instance CPU pinning
884
++++++++++++++++++++
885

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

    
894
Disk parameters
895
+++++++++++++++
896

    
897
Another area in which Ganeti was not customisable were the parameters
898
used for storage configuration, e.g. how many stripes to use for LVM,
899
DRBD resync configuration, etc.
900

    
901
To improve this area, we've added disks parameters, which are
902
customisable at cluster and node group level, and which allow to
903
specify various parameters for disks (DRBD has the most parameters
904
currently), for example:
905

    
906
- DRBD resync algorithm and parameters (e.g. speed)
907
- the default VG for meta-data volumes for DRBD
908
- number of stripes for LVM (plain disk template)
909
- the RBD pool
910

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

    
916
Rados block device support
917
++++++++++++++++++++++++++
918

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

    
924
Master IP setup
925
+++++++++++++++
926

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

    
932
To allow the master IP to function well in more complex cases, the
933
system was reworked as follows:
934

    
935
- a master IP netmask setting has been added
936
- the master IP activation/turn-down code was moved from the node daemon
937
  to a separate script
938
- whether to run the Ganeti-supplied master IP script or a user-supplied
939
  on is a ``gnt-cluster init`` setting
940

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

    
945
SPICE support
946
+++++++++++++
947

    
948
The `SPICE <http://www.linux-kvm.org/page/SPICE>`_ support has been
949
improved.
950

    
951
It is now possible to use TLS-protected connections, and when renewing
952
or changing the cluster certificates (via ``gnt-cluster renew-crypto``,
953
it is now possible to specify spice or spice CA certificates. Also, it
954
is possible to configure a password for SPICE sessions via the
955
hypervisor parameter ``spice_password_file``.
956

    
957
There are also new parameters to control the compression and streaming
958
options (e.g. ``spice_image_compression``, ``spice_streaming_video``,
959
etc.). For details, see the man page :manpage:`gnt-instance(8)` and look
960
for the spice parameters.
961

    
962
Lastly, it is now possible to see the SPICE connection information via
963
``gnt-instance console``.
964

    
965
OVF converter
966
+++++++++++++
967

    
968
A new tool (``tools/ovfconverter``) has been added that supports
969
conversion between Ganeti and the `Open Virtualization Format
970
<http://en.wikipedia.org/wiki/Open_Virtualization_Format>`_ (both to and
971
from).
972

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

    
976
Confd daemon changes
977
++++++++++++++++++++
978

    
979
The configuration query daemon (``ganeti-confd``) is now optional, and
980
has been rewritten in Haskell; whether to use the daemon at all, use the
981
Python (default) or the Haskell version is selectable at configure time
982
via the ``--enable-confd`` parameter, which can take one of the
983
``haskell``, ``python`` or ``no`` values. If not used, disabling the
984
daemon will result in a smaller footprint; for larger systems, we
985
welcome feedback on the Haskell version which might become the default
986
in future versions.
987

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

    
991

    
992
User interface changes
993
~~~~~~~~~~~~~~~~~~~~~~
994

    
995
We have replaced the ``--disks`` option of ``gnt-instance
996
replace-disks`` with a more flexible ``--disk`` option, which allows
997
adding and removing disks at arbitrary indices (Issue 188). Furthermore,
998
disk size and mode can be changed upon recreation (via ``gnt-instance
999
recreate-disks``, which accepts the same ``--disk`` option).
1000

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

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

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

    
1013
A new command ``list-drbd`` has been added to the ``gnt-node`` script to
1014
support debugging of DRBD issues on nodes. It provides a mapping of DRBD
1015
minors to instance name.
1016

    
1017
API changes
1018
~~~~~~~~~~~
1019

    
1020
RAPI coverage has improved, with (for example) new resources for
1021
recreate-disks, node power-cycle, etc.
1022

    
1023
Compatibility
1024
~~~~~~~~~~~~~
1025

    
1026
There is partial support for ``xl`` in the Xen hypervisor; feedback is
1027
welcome.
1028

    
1029
Python 2.7 is better supported, and after Ganeti 2.6 we will investigate
1030
whether to still support Python 2.4 or move to Python 2.6 as minimum
1031
required version.
1032

    
1033
Support for Fedora has been slightly improved; the provided example
1034
init.d script should work better on it and the INSTALL file should
1035
document the needed dependencies.
1036

    
1037
Internal changes
1038
~~~~~~~~~~~~~~~~
1039

    
1040
The deprecated ``QueryLocks`` LUXI request has been removed. Use
1041
``Query(what=QR_LOCK, ...)`` instead.
1042

    
1043
The LUXI requests :pyeval:`luxi.REQ_QUERY_JOBS`,
1044
:pyeval:`luxi.REQ_QUERY_INSTANCES`, :pyeval:`luxi.REQ_QUERY_NODES`,
1045
:pyeval:`luxi.REQ_QUERY_GROUPS`, :pyeval:`luxi.REQ_QUERY_EXPORTS` and
1046
:pyeval:`luxi.REQ_QUERY_TAGS` are deprecated and will be removed in a
1047
future version. :pyeval:`luxi.REQ_QUERY` should be used instead.
1048

    
1049
RAPI client: ``CertificateError`` now derives from
1050
``GanetiApiError``. This should make it more easy to handle Ganeti
1051
errors.
1052

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

    
1057
The QA scripts now depend on Python 2.5 or above (the main code base
1058
still works with Python 2.4).
1059

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

    
1064
A number of bugs has been fixed in the cluster merge tool.
1065

    
1066
``x509`` certification verification (used in import-export) has been
1067
changed to allow the same clock skew as permitted by the cluster
1068
verification. This will remove some rare but hard to diagnose errors in
1069
import-export.
1070

    
1071

    
1072
Version 2.6.0 rc4
1073
-----------------
1074

    
1075
*(Released Thu, 19 Jul 2012)*
1076

    
1077
Very few changes from rc4 to the final release, only bugfixes:
1078

    
1079
- integrated fixes from release 2.5.2 (fix general boot flag for KVM
1080
  instance, fix CDROM booting for KVM instances)
1081
- fixed node group modification of node parameters
1082
- fixed issue in LUClusterVerifyGroup with multi-group clusters
1083
- fixed generation of bash completion to ensure a stable ordering
1084
- fixed a few typos
1085

    
1086

    
1087
Version 2.6.0 rc3
1088
-----------------
1089

    
1090
*(Released Fri, 13 Jul 2012)*
1091

    
1092
Third release candidate for 2.6. The following changes were done from
1093
rc3 to rc4:
1094

    
1095
- Fixed ``UpgradeConfig`` w.r.t. to disk parameters on disk objects.
1096
- Fixed an inconsistency in the LUXI protocol with the provided
1097
  arguments (NOT backwards compatible)
1098
- Fixed a bug with node groups ipolicy where ``min`` was greater than
1099
  the cluster ``std`` value
1100
- Implemented a new ``gnt-node list-drbd`` call to list DRBD minors for
1101
  easier instance debugging on nodes (requires ``hconfd`` to work)
1102

    
1103

    
1104
Version 2.6.0 rc2
1105
-----------------
1106

    
1107
*(Released Tue, 03 Jul 2012)*
1108

    
1109
Second release candidate for 2.6. The following changes were done from
1110
rc2 to rc3:
1111

    
1112
- Fixed ``gnt-cluster verify`` regarding ``master-ip-script`` on non
1113
  master candidates
1114
- Fixed a RAPI regression on missing beparams/memory
1115
- Fixed redistribution of files on offline nodes
1116
- Added possibility to run activate-disks even though secondaries are
1117
  offline. With this change it relaxes also the strictness on some other
1118
  commands which use activate disks internally:
1119
  * ``gnt-instance start|reboot|rename|backup|export``
1120
- Made it possible to remove safely an instance if its secondaries are
1121
  offline
1122
- Made it possible to reinstall even though secondaries are offline
1123

    
1124

    
1125
Version 2.6.0 rc1
1126
-----------------
1127

    
1128
*(Released Mon, 25 Jun 2012)*
1129

    
1130
First release candidate for 2.6. The following changes were done from
1131
rc1 to rc2:
1132

    
1133
- Fixed bugs with disk parameters and ``rbd`` templates as well as
1134
  ``instance_os_add``
1135
- Made ``gnt-instance modify`` more consistent regarding new NIC/Disk
1136
  behaviour. It supports now the modify operation
1137
- ``hcheck`` implemented to analyze cluster health and possibility of
1138
  improving health by rebalance
1139
- ``hbal`` has been improved in dealing with split instances
1140

    
1141

    
1142
Version 2.6.0 beta2
1143
-------------------
1144

    
1145
*(Released Mon, 11 Jun 2012)*
1146

    
1147
Second beta release of 2.6. The following changes were done from beta2
1148
to rc1:
1149

    
1150
- Fixed ``daemon-util`` with non-root user models
1151
- Fixed creation of plain instances with ``--no-wait-for-sync``
1152
- Fix wrong iv_names when running ``cfgupgrade``
1153
- Export more information in RAPI group queries
1154
- Fixed bug when changing instance network interfaces
1155
- Extended burnin to do NIC changes
1156
- query: Added ``<``, ``>``, ``<=``, ``>=`` comparison operators
1157
- Changed default for DRBD barriers
1158
- Fixed DRBD error reporting for syncer rate
1159
- Verify the options on disk parameters
1160

    
1161
And of course various fixes to documentation and improved unittests and
1162
QA.
1163

    
1164

    
1165
Version 2.6.0 beta1
1166
-------------------
1167

    
1168
*(Released Wed, 23 May 2012)*
1169

    
1170
First beta release of 2.6. The following changes were done from beta1 to
1171
beta2:
1172

    
1173
- integrated patch for distributions without ``start-stop-daemon``
1174
- adapted example init.d script to work on Fedora
1175
- fixed log handling in Haskell daemons
1176
- adapted checks in the watcher for pycurl linked against libnss
1177
- add partial support for ``xl`` instead of ``xm`` for Xen
1178
- fixed a type issue in cluster verification
1179
- fixed ssconf handling in the Haskell code (was breaking confd in IPv6
1180
  clusters)
1181

    
1182
Plus integrated fixes from the 2.5 branch:
1183

    
1184
- fixed ``kvm-ifup`` to use ``/bin/bash``
1185
- fixed parallel build failures
1186
- KVM live migration when using a custom keymap
1187

    
1188

    
1189
Version 2.5.2
1190
-------------
1191

    
1192
*(Released Tue, 24 Jul 2012)*
1193

    
1194
A small bugfix release, with no new features:
1195

    
1196
- fixed bash-isms in kvm-ifup, for compatibility with systems which use a
1197
  different default shell (e.g. Debian, Ubuntu)
1198
- fixed KVM startup and live migration with a custom keymap (fixes Issue
1199
  243 and Debian bug #650664)
1200
- fixed compatibility with KVM versions that don't support multiple boot
1201
  devices (fixes Issue 230 and Debian bug #624256)
1202

    
1203
Additionally, a few fixes were done to the build system (fixed parallel
1204
build failures) and to the unittests (fixed race condition in test for
1205
FileID functions, and the default enable/disable mode for QA test is now
1206
customisable).
1207

    
1208

    
1209
Version 2.5.1
1210
-------------
1211

    
1212
*(Released Fri, 11 May 2012)*
1213

    
1214
A small bugfix release.
1215

    
1216
The main issues solved are on the topic of compatibility with newer LVM
1217
releases:
1218

    
1219
- fixed parsing of ``lv_attr`` field
1220
- adapted to new ``vgreduce --removemissing`` behaviour where sometimes
1221
  the ``--force`` flag is needed
1222

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

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

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

    
1235
The fix for issue 201 (Preserve bridge MTU in KVM ifup script) was
1236
integrated into this release.
1237

    
1238
Finally, a few other miscellaneous changes were done (no new features,
1239
just small improvements):
1240

    
1241
- Fix ``gnt-group --help`` display
1242
- Fix hardcoded Xen kernel path
1243
- Fix grow-disk handling of invalid units
1244
- Update synopsis for ``gnt-cluster repair-disk-sizes``
1245
- Accept both PUT and POST in noded (makes future upgrade to 2.6 easier)
1246

    
1247

    
1248
Version 2.5.0
1249
-------------
1250

    
1251
*(Released Thu, 12 Apr 2012)*
1252

    
1253
Incompatible/important changes and bugfixes
1254
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1255

    
1256
- The default of the ``/2/instances/[instance_name]/rename`` RAPI
1257
  resource's ``ip_check`` parameter changed from ``True`` to ``False``
1258
  to match the underlying LUXI interface.
1259
- The ``/2/nodes/[node_name]/evacuate`` RAPI resource was changed to use
1260
  body parameters, see :doc:`RAPI documentation <rapi>`. The server does
1261
  not maintain backwards-compatibility as the underlying operation
1262
  changed in an incompatible way. The RAPI client can talk to old
1263
  servers, but it needs to be told so as the return value changed.
1264
- When creating file-based instances via RAPI, the ``file_driver``
1265
  parameter no longer defaults to ``loop`` and must be specified.
1266
- The deprecated ``bridge`` NIC parameter is no longer supported. Use
1267
  ``link`` instead.
1268
- Support for the undocumented and deprecated RAPI instance creation
1269
  request format version 0 has been dropped. Use version 1, supported
1270
  since Ganeti 2.1.3 and :doc:`documented <rapi>`, instead.
1271
- Pyparsing 1.4.6 or above is required, see :doc:`installation
1272
  documentation <install>`.
1273
- The "cluster-verify" hooks are now executed per group by the
1274
  ``OP_CLUSTER_VERIFY_GROUP`` opcode. This maintains the same behavior
1275
  if you just run ``gnt-cluster verify``, which generates one opcode per
1276
  group.
1277
- The environment as passed to the OS scripts is cleared, and thus no
1278
  environment variables defined in the node daemon's environment will be
1279
  inherited by the scripts.
1280
- The :doc:`iallocator <iallocator>` mode ``multi-evacuate`` has been
1281
  deprecated.
1282
- :doc:`New iallocator modes <design-multi-reloc>` have been added to
1283
  support operations involving multiple node groups.
1284
- Offline nodes are ignored when failing over an instance.
1285
- Support for KVM version 1.0, which changed the version reporting format
1286
  from 3 to 2 digits.
1287
- TCP/IP ports used by DRBD disks are returned to a pool upon instance
1288
  removal.
1289
- ``Makefile`` is now compatible with Automake 1.11.2
1290
- Includes all bugfixes made in the 2.4 series
1291

    
1292
New features
1293
~~~~~~~~~~~~
1294

    
1295
- The ganeti-htools project has been merged into the ganeti-core source
1296
  tree and will be built as part of Ganeti (see :doc:`install-quick`).
1297
- Implemented support for :doc:`shared storage <design-shared-storage>`.
1298
- Add support for disks larger than 2 TB in ``lvmstrap`` by supporting
1299
  GPT-style partition tables (requires `parted
1300
  <http://www.gnu.org/s/parted/>`_).
1301
- Added support for floppy drive and 2nd CD-ROM drive in KVM hypervisor.
1302
- Allowed adding tags on instance creation.
1303
- Export instance tags to hooks (``INSTANCE_TAGS``, see :doc:`hooks`)
1304
- Allow instances to be started in a paused state, enabling the user to
1305
  see the complete console output on boot using the console.
1306
- Added new hypervisor flag to control default reboot behaviour
1307
  (``reboot_behavior``).
1308
- Added support for KVM keymaps (hypervisor parameter ``keymap``).
1309
- Improved out-of-band management support:
1310

    
1311
  - Added ``gnt-node health`` command reporting the health status of
1312
    nodes.
1313
  - Added ``gnt-node power`` command to manage power status of nodes.
1314
  - Added command for emergency power-off (EPO), ``gnt-cluster epo``.
1315

    
1316
- Instance migration can fall back to failover if instance is not
1317
  running.
1318
- Filters can be used when listing nodes, instances, groups and locks;
1319
  see :manpage:`ganeti(7)` manpage.
1320
- Added post-execution status as variables to :doc:`hooks <hooks>`
1321
  environment.
1322
- Instance tags are exported/imported together with the instance.
1323
- When given an explicit job ID, ``gnt-job info`` will work for archived
1324
  jobs.
1325
- Jobs can define dependencies on other jobs (not yet supported via
1326
  RAPI or command line, but used by internal commands and usable via
1327
  LUXI).
1328

    
1329
  - Lock monitor (``gnt-debug locks``) shows jobs waiting for
1330
    dependencies.
1331

    
1332
- Instance failover is now available as a RAPI resource
1333
  (``/2/instances/[instance_name]/failover``).
1334
- ``gnt-instance info`` defaults to static information if primary node
1335
  is offline.
1336
- Opcodes have a new ``comment`` attribute.
1337
- Added basic SPICE support to KVM hypervisor.
1338
- ``tools/ganeti-listrunner`` allows passing of arguments to executable.
1339

    
1340
Node group improvements
1341
~~~~~~~~~~~~~~~~~~~~~~~
1342

    
1343
- ``gnt-cluster verify`` has been modified to check groups separately,
1344
  thereby improving performance.
1345
- Node group support has been added to ``gnt-cluster verify-disks``,
1346
  which now operates per node group.
1347
- Watcher has been changed to work better with node groups.
1348

    
1349
  - One process and state file per node group.
1350
  - Slow watcher in one group doesn't block other group's watcher.
1351

    
1352
- Added new command, ``gnt-group evacuate``, to move all instances in a
1353
  node group to other groups.
1354
- Added ``gnt-instance change-group`` to move an instance to another
1355
  node group.
1356
- ``gnt-cluster command`` and ``gnt-cluster copyfile`` now support
1357
  per-group operations.
1358
- Node groups can be tagged.
1359
- Some operations switch from an exclusive to a shared lock as soon as
1360
  possible.
1361
- Instance's primary and secondary nodes' groups are now available as
1362
  query fields (``pnode.group``, ``pnode.group.uuid``, ``snodes.group``
1363
  and ``snodes.group.uuid``).
1364

    
1365
Misc
1366
~~~~
1367

    
1368
- Numerous updates to documentation and manpages.
1369

    
1370
  - :doc:`RAPI <rapi>` documentation now has detailed parameter
1371
    descriptions.
1372
  - Some opcode/job results are now also documented, see :doc:`RAPI
1373
    <rapi>`.
1374

    
1375
- A lockset's internal lock is now also visible in lock monitor.
1376
- Log messages from job queue workers now contain information about the
1377
  opcode they're processing.
1378
- ``gnt-instance console`` no longer requires the instance lock.
1379
- A short delay when waiting for job changes reduces the number of LUXI
1380
  requests significantly.
1381
- DRBD metadata volumes are overwritten with zeros during disk creation.
1382
- Out-of-band commands no longer acquire the cluster lock in exclusive
1383
  mode.
1384
- ``devel/upload`` now uses correct permissions for directories.
1385

    
1386

    
1387
Version 2.5.0 rc6
1388
-----------------
1389

    
1390
*(Released Fri, 23 Mar 2012)*
1391

    
1392
This was the sixth release candidate of the 2.5 series.
1393

    
1394

    
1395
Version 2.5.0 rc5
1396
-----------------
1397

    
1398
*(Released Mon, 9 Jan 2012)*
1399

    
1400
This was the fifth release candidate of the 2.5 series.
1401

    
1402

    
1403
Version 2.5.0 rc4
1404
-----------------
1405

    
1406
*(Released Thu, 27 Oct 2011)*
1407

    
1408
This was the fourth release candidate of the 2.5 series.
1409

    
1410

    
1411
Version 2.5.0 rc3
1412
-----------------
1413

    
1414
*(Released Wed, 26 Oct 2011)*
1415

    
1416
This was the third release candidate of the 2.5 series.
1417

    
1418

    
1419
Version 2.5.0 rc2
1420
-----------------
1421

    
1422
*(Released Tue, 18 Oct 2011)*
1423

    
1424
This was the second release candidate of the 2.5 series.
1425

    
1426

    
1427
Version 2.5.0 rc1
1428
-----------------
1429

    
1430
*(Released Tue, 4 Oct 2011)*
1431

    
1432
This was the first release candidate of the 2.5 series.
1433

    
1434

    
1435
Version 2.5.0 beta3
1436
-------------------
1437

    
1438
*(Released Wed, 31 Aug 2011)*
1439

    
1440
This was the third beta release of the 2.5 series.
1441

    
1442

    
1443
Version 2.5.0 beta2
1444
-------------------
1445

    
1446
*(Released Mon, 22 Aug 2011)*
1447

    
1448
This was the second beta release of the 2.5 series.
1449

    
1450

    
1451
Version 2.5.0 beta1
1452
-------------------
1453

    
1454
*(Released Fri, 12 Aug 2011)*
1455

    
1456
This was the first beta release of the 2.5 series.
1457

    
1458

    
1459
Version 2.4.5
1460
-------------
1461

    
1462
*(Released Thu, 27 Oct 2011)*
1463

    
1464
- Fixed bug when parsing command line parameter values ending in
1465
  backslash
1466
- Fixed assertion error after unclean master shutdown
1467
- Disable HTTP client pool for RPC, significantly reducing memory usage
1468
  of master daemon
1469
- Fixed queue archive creation with wrong permissions
1470

    
1471

    
1472
Version 2.4.4
1473
-------------
1474

    
1475
*(Released Tue, 23 Aug 2011)*
1476

    
1477
Small bug-fixes:
1478

    
1479
- Fixed documentation for importing with ``--src-dir`` option
1480
- Fixed a bug in ``ensure-dirs`` with queue/archive permissions
1481
- Fixed a parsing issue with DRBD 8.3.11 in the Linux kernel
1482

    
1483

    
1484
Version 2.4.3
1485
-------------
1486

    
1487
*(Released Fri, 5 Aug 2011)*
1488

    
1489
Many bug-fixes and a few small features:
1490

    
1491
- Fixed argument order in ``ReserveLV`` and ``ReserveMAC`` which caused
1492
  issues when you tried to add an instance with two MAC addresses in one
1493
  request
1494
- KVM: fixed per-instance stored UID value
1495
- KVM: configure bridged NICs at migration start
1496
- KVM: Fix a bug where instance will not start with never KVM versions
1497
  (>= 0.14)
1498
- Added OS search path to ``gnt-cluster info``
1499
- Fixed an issue with ``file_storage_dir`` where you were forced to
1500
  provide an absolute path, but the documentation states it is a
1501
  relative path, the documentation was right
1502
- Added a new parameter to instance stop/start called ``--no-remember``
1503
  that will make the state change to not be remembered
1504
- Implemented ``no_remember`` at RAPI level
1505
- Improved the documentation
1506
- Node evacuation: don't call IAllocator if node is already empty
1507
- Fixed bug in DRBD8 replace disks on current nodes
1508
- Fixed bug in recreate-disks for DRBD instances
1509
- Moved assertion checking locks in ``gnt-instance replace-disks``
1510
  causing it to abort with not owning the right locks for some situation
1511
- Job queue: Fixed potential race condition when cancelling queued jobs
1512
- Fixed off-by-one bug in job serial generation
1513
- ``gnt-node volumes``: Fix instance names
1514
- Fixed aliases in bash completion
1515
- Fixed a bug in reopening log files after being sent a SIGHUP
1516
- Added a flag to burnin to allow specifying VCPU count
1517
- Bugfixes to non-root Ganeti configuration
1518

    
1519

    
1520
Version 2.4.2
1521
-------------
1522

    
1523
*(Released Thu, 12 May 2011)*
1524

    
1525
Many bug-fixes and a few new small features:
1526

    
1527
- Fixed a bug related to log opening failures
1528
- Fixed a bug in instance listing with orphan instances
1529
- Fixed a bug which prevented resetting the cluster-level node parameter
1530
  ``oob_program`` to the default
1531
- Many fixes related to the ``cluster-merge`` tool
1532
- Fixed a race condition in the lock monitor, which caused failures
1533
  during (at least) creation of many instances in parallel
1534
- Improved output for gnt-job info
1535
- Removed the quiet flag on some ssh calls which prevented debugging
1536
  failures
1537
- Improved the N+1 failure messages in cluster verify by actually
1538
  showing the memory values (needed and available)
1539
- Increased lock attempt timeouts so that when executing long operations
1540
  (e.g. DRBD replace-disks) other jobs do not enter 'blocking acquire'
1541
  too early and thus prevent the use of the 'fair' mechanism
1542
- Changed instance query data (``gnt-instance info``) to not acquire
1543
  locks unless needed, thus allowing its use on locked instance if only
1544
  static information is asked for
1545
- Improved behaviour with filesystems that do not support rename on an
1546
  opened file
1547
- Fixed the behaviour of ``prealloc_wipe_disks`` cluster parameter which
1548
  kept locks on all nodes during the wipe, which is unneeded
1549
- Fixed ``gnt-watcher`` handling of errors during hooks execution
1550
- Fixed bug in ``prealloc_wipe_disks`` with small disk sizes (less than
1551
  10GiB) which caused the wipe to fail right at the end in some cases
1552
- Fixed master IP activation when doing master failover with no-voting
1553
- Fixed bug in ``gnt-node add --readd`` which allowed the re-adding of
1554
  the master node itself
1555
- Fixed potential data-loss in under disk full conditions, where Ganeti
1556
  wouldn't check correctly the return code and would consider
1557
  partially-written files 'correct'
1558
- Fixed bug related to multiple VGs and DRBD disk replacing
1559
- Added new disk parameter ``metavg`` that allows placement of the meta
1560
  device for DRBD in a different volume group
1561
- Fixed error handling in the node daemon when the system libc doesn't
1562
  have major number 6 (i.e. if ``libc.so.6`` is not the actual libc)
1563
- Fixed lock release during replace-disks, which kept cluster-wide locks
1564
  when doing disk replaces with an iallocator script
1565
- Added check for missing bridges in cluster verify
1566
- Handle EPIPE errors while writing to the terminal better, so that
1567
  piping the output to e.g. ``less`` doesn't cause a backtrace
1568
- Fixed rare case where a ^C during Luxi calls could have been
1569
  interpreted as server errors, instead of simply terminating
1570
- Fixed a race condition in LUGroupAssignNodes (``gnt-group
1571
  assign-nodes``)
1572
- Added a few more parameters to the KVM hypervisor, allowing a second
1573
  CDROM, custom disk type for CDROMs and a floppy image
1574
- Removed redundant message in instance rename when the name is given
1575
  already as a FQDN
1576
- Added option to ``gnt-instance recreate-disks`` to allow creating the
1577
  disks on new nodes, allowing recreation when the original instance
1578
  nodes are completely gone
1579
- Added option when converting disk templates to DRBD to skip waiting
1580
  for the resync, in order to make the instance available sooner
1581
- Added two new variables to the OS scripts environment (containing the
1582
  instance's nodes)
1583
- Made the root_path and optional parameter for the xen-pvm hypervisor,
1584
  to allow use of ``pvgrub`` as bootloader
1585
- Changed the instance memory modifications to only check out-of-memory
1586
  conditions on memory increases, and turned the secondary node warnings
1587
  into errors (they can still be overridden via ``--force``)
1588
- Fixed the handling of a corner case when the Python installation gets
1589
  corrupted (e.g. a bad disk) while ganeti-noded is running and we try
1590
  to execute a command that doesn't exist
1591
- Fixed a bug in ``gnt-instance move`` (LUInstanceMove) when the primary
1592
  node of the instance returned failures during instance shutdown; this
1593
  adds the option ``--ignore-consistency`` to gnt-instance move
1594

    
1595
And as usual, various improvements to the error messages, documentation
1596
and man pages.
1597

    
1598

    
1599
Version 2.4.1
1600
-------------
1601

    
1602
*(Released Wed, 09 Mar 2011)*
1603

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

    
1607
The release fixes that bug (nothing else changed).
1608

    
1609

    
1610
Version 2.4.0
1611
-------------
1612

    
1613
*(Released Mon, 07 Mar 2011)*
1614

    
1615
Final 2.4.0 release. Just a few small fixes:
1616

    
1617
- Fixed RAPI node evacuate
1618
- Fixed the kvm-ifup script
1619
- Fixed internal error handling for special job cases
1620
- Updated man page to specify the escaping feature for options
1621

    
1622

    
1623
Version 2.4.0 rc3
1624
-----------------
1625

    
1626
*(Released Mon, 28 Feb 2011)*
1627

    
1628
A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
1629
that this feature wiped the disks of the wrong instance, leading to loss
1630
of data.
1631

    
1632
Other changes:
1633

    
1634
- Fixed title of query field containing instance name
1635
- Expanded the glossary in the documentation
1636
- Fixed one unittest (internal issue)
1637

    
1638

    
1639
Version 2.4.0 rc2
1640
-----------------
1641

    
1642
*(Released Mon, 21 Feb 2011)*
1643

    
1644
A number of bug fixes plus just a couple functionality changes.
1645

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

    
1651
- Offline resource: ``*``
1652
- Unavailable/not applicable: ``-``
1653
- Data missing (RPC failure): ``?``
1654
- Unknown field: ``??``
1655

    
1656
Another user-visible change is the addition of ``--force-join`` to
1657
``gnt-node add``.
1658

    
1659
As for bug fixes:
1660

    
1661
- ``tools/cluster-merge`` has seen many fixes and is now enabled again
1662
- Fixed regression in RAPI/instance reinstall where all parameters were
1663
  required (instead of optional)
1664
- Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
1665
- Fixed iallocator usage (offline nodes were not considered offline)
1666
- Fixed ``gnt-node list`` with respect to non-vm_capable nodes
1667
- Fixed hypervisor and OS parameter validation with respect to
1668
  non-vm_capable nodes
1669
- Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
1670
  cosmetic)
1671
- Fixed ``tools/listrunner`` with respect to agent-based usage
1672

    
1673

    
1674
Version 2.4.0 rc1
1675
-----------------
1676

    
1677
*(Released Fri,  4 Feb 2011)*
1678

    
1679
Many changes and fixes since the beta1 release. While there were some
1680
internal changes, the code has been mostly stabilised for the RC
1681
release.
1682

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

    
1687
Note: the 2.4 and up versions of Ganeti are not compatible with the
1688
0.2.x branch of ganeti-htools. You need to upgrade to
1689
ganeti-htools-0.3.0 (or later).
1690

    
1691
Regressions fixed from 2.3
1692
~~~~~~~~~~~~~~~~~~~~~~~~~~
1693

    
1694
- Fixed the ``gnt-cluster verify-disks`` command
1695
- Made ``gnt-cluster verify-disks`` work in parallel (as opposed to
1696
  serially on nodes)
1697
- Fixed disk adoption breakage
1698
- Fixed wrong headers in instance listing for field aliases
1699

    
1700
Other bugs fixed
1701
~~~~~~~~~~~~~~~~
1702

    
1703
- Fixed corner case in KVM handling of NICs
1704
- Fixed many cases of wrong handling of non-vm_capable nodes
1705
- Fixed a bug where a missing instance symlink was not possible to
1706
  recreate with any ``gnt-*`` command (now ``gnt-instance
1707
  activate-disks`` does it)
1708
- Fixed the volume group name as reported by ``gnt-cluster
1709
  verify-disks``
1710
- Increased timeouts for the import-export code, hopefully leading to
1711
  fewer aborts due network or instance timeouts
1712
- Fixed bug in ``gnt-node list-storage``
1713
- Fixed bug where not all daemons were started on cluster
1714
  initialisation, but only at the first watcher run
1715
- Fixed many bugs in the OOB implementation
1716
- Fixed watcher behaviour in presence of instances with offline
1717
  secondaries
1718
- Fixed instance list output for instances running on the wrong node
1719
- a few fixes to the cluster-merge tool, but it still cannot merge
1720
  multi-node groups (currently it is not recommended to use this tool)
1721

    
1722

    
1723
Improvements
1724
~~~~~~~~~~~~
1725

    
1726
- Improved network configuration for the KVM hypervisor
1727
- Added e1000 as a supported NIC for Xen-HVM
1728
- Improved the lvmstrap tool to also be able to use partitions, as
1729
  opposed to full disks
1730
- Improved speed of disk wiping (the cluster parameter
1731
  ``prealloc_wipe_disks``, so that it has a low impact on the total time
1732
  of instance creations
1733
- Added documentation for the OS parameters
1734
- Changed ``gnt-instance deactivate-disks`` so that it can work if the
1735
  hypervisor is not responding
1736
- Added display of blacklisted and hidden OS information in
1737
  ``gnt-cluster info``
1738
- Extended ``gnt-cluster verify`` to also validate hypervisor, backend,
1739
  NIC and node parameters, which might create problems with currently
1740
  invalid (but undetected) configuration files, but prevents validation
1741
  failures when unrelated parameters are modified
1742
- Changed cluster initialisation to wait for the master daemon to become
1743
  available
1744
- Expanded the RAPI interface:
1745

    
1746
  - Added config redistribution resource
1747
  - Added activation/deactivation of instance disks
1748
  - Added export of console information
1749

    
1750
- Implemented log file reopening on SIGHUP, which allows using
1751
  logrotate(8) for the Ganeti log files
1752
- Added a basic OOB helper script as an example
1753

    
1754

    
1755
Version 2.4.0 beta1
1756
-------------------
1757

    
1758
*(Released Fri, 14 Jan 2011)*
1759

    
1760
User-visible
1761
~~~~~~~~~~~~
1762

    
1763
- Fixed timezone issues when formatting timestamps
1764
- Added support for node groups, available via ``gnt-group`` and other
1765
  commands
1766
- Added out-of-band framework and management, see :doc:`design
1767
  document <design-oob>`
1768
- Removed support for roman numbers from ``gnt-node list`` and
1769
  ``gnt-instance list``.
1770
- Allowed modification of master network interface via ``gnt-cluster
1771
  modify --master-netdev``
1772
- Accept offline secondaries while shutting down instance disks
1773
- Added ``blockdev_prefix`` parameter to Xen PVM and HVM hypervisors
1774
- Added support for multiple LVM volume groups
1775
- Avoid sorting nodes for ``gnt-node list`` if specific nodes are
1776
  requested
1777
- Added commands to list available fields:
1778

    
1779
  - ``gnt-node list-fields``
1780
  - ``gnt-group list-fields``
1781
  - ``gnt-instance list-fields``
1782

    
1783
- Updated documentation and man pages
1784

    
1785
Integration
1786
~~~~~~~~~~~
1787

    
1788
- Moved ``rapi_users`` file into separate directory, now named
1789
  ``.../ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
1790
  symlink
1791
- Added new tool for running commands on many machines,
1792
  ``tools/ganeti-listrunner``
1793
- Implemented more verbose result in ``OpInstanceConsole`` opcode, also
1794
  improving the ``gnt-instance console`` output
1795
- Allowed customisation of disk index separator at ``configure`` time
1796
- Export node group allocation policy to :doc:`iallocator <iallocator>`
1797
- Added support for non-partitioned md disks in ``lvmstrap``
1798
- Added script to gracefully power off KVM instances
1799
- Split ``utils`` module into smaller parts
1800
- Changed query operations to return more detailed information, e.g.
1801
  whether an information is unavailable due to an offline node. To use
1802
  this new functionality, the LUXI call ``Query`` must be used. Field
1803
  information is now stored by the master daemon and can be retrieved
1804
  using ``QueryFields``. Instances, nodes and groups can also be queried
1805
  using the new opcodes ``OpQuery`` and ``OpQueryFields`` (not yet
1806
  exposed via RAPI). The following commands make use of this
1807
  infrastructure change:
1808

    
1809
  - ``gnt-group list``
1810
  - ``gnt-group list-fields``
1811
  - ``gnt-node list``
1812
  - ``gnt-node list-fields``
1813
  - ``gnt-instance list``
1814
  - ``gnt-instance list-fields``
1815
  - ``gnt-debug locks``
1816

    
1817
Remote API
1818
~~~~~~~~~~
1819

    
1820
- New RAPI resources (see :doc:`rapi`):
1821

    
1822
  - ``/2/modify``
1823
  - ``/2/groups``
1824
  - ``/2/groups/[group_name]``
1825
  - ``/2/groups/[group_name]/assign-nodes``
1826
  - ``/2/groups/[group_name]/modify``
1827
  - ``/2/groups/[group_name]/rename``
1828
  - ``/2/instances/[instance_name]/disk/[disk_index]/grow``
1829

    
1830
- RAPI changes:
1831

    
1832
  - Implemented ``no_install`` for instance creation
1833
  - Implemented OS parameters for instance reinstallation, allowing
1834
    use of special settings on reinstallation (e.g. for preserving data)
1835

    
1836
Misc
1837
~~~~
1838

    
1839
- Added IPv6 support in import/export
1840
- Pause DRBD synchronization while wiping disks on instance creation
1841
- Updated unittests and QA scripts
1842
- Improved network parameters passed to KVM
1843
- Converted man pages from docbook to reStructuredText
1844

    
1845

    
1846
Version 2.3.1
1847
-------------
1848

    
1849
*(Released Mon, 20 Dec 2010)*
1850

    
1851
Released version 2.3.1~rc1 without any changes.
1852

    
1853

    
1854
Version 2.3.1 rc1
1855
-----------------
1856

    
1857
*(Released Wed, 1 Dec 2010)*
1858

    
1859
- impexpd: Disable OpenSSL compression in socat if possible (backport
1860
  from master, commit e90739d625b, see :doc:`installation guide
1861
  <install-quick>` for details)
1862
- Changed unittest coverage report to exclude test scripts
1863
- Added script to check version format
1864

    
1865

    
1866
Version 2.3.0
1867
-------------
1868

    
1869
*(Released Wed, 1 Dec 2010)*
1870

    
1871
Released version 2.3.0~rc1 without any changes.
1872

    
1873

    
1874
Version 2.3.0 rc1
1875
-----------------
1876

    
1877
*(Released Fri, 19 Nov 2010)*
1878

    
1879
A number of bugfixes and documentation updates:
1880

    
1881
- Update ganeti-os-interface documentation
1882
- Fixed a bug related to duplicate MACs or similar items which should be
1883
  unique
1884
- Fix breakage in OS state modify
1885
- Reinstall instance: disallow offline secondaries (fixes bug related to
1886
  OS changing but reinstall failing)
1887
- plus all the other fixes between 2.2.1 and 2.2.2
1888

    
1889

    
1890
Version 2.3.0 rc0
1891
-----------------
1892

    
1893
*(Released Tue, 2 Nov 2010)*
1894

    
1895
- Fixed clearing of the default iallocator using ``gnt-cluster modify``
1896
- Fixed master failover race with watcher
1897
- Fixed a bug in ``gnt-node modify`` which could lead to an inconsistent
1898
  configuration
1899
- Accept previously stopped instance for export with instance removal
1900
- Simplify and extend the environment variables for instance OS scripts
1901
- Added new node flags, ``master_capable`` and ``vm_capable``
1902
- Added optional instance disk wiping prior during allocation. This is a
1903
  cluster-wide option and can be set/modified using
1904
  ``gnt-cluster {init,modify} --prealloc-wipe-disks``.
1905
- Added IPv6 support, see :doc:`design document <design-2.3>` and
1906
  :doc:`install-quick`
1907
- Added a new watcher option (``--ignore-pause``)
1908
- Added option to ignore offline node on instance start/stop
1909
  (``--ignore-offline``)
1910
- Allow overriding OS parameters with ``gnt-instance reinstall``
1911
- Added ability to change node's secondary IP address using ``gnt-node
1912
  modify``
1913
- Implemented privilege separation for all daemons except
1914
  ``ganeti-noded``, see ``configure`` options
1915
- Complain if an instance's disk is marked faulty in ``gnt-cluster
1916
  verify``
1917
- Implemented job priorities (see ``ganeti(7)`` manpage)
1918
- Ignore failures while shutting down instances during failover from
1919
  offline node
1920
- Exit daemon's bootstrap process only once daemon is ready
1921
- Export more information via ``LUInstanceQuery``/remote API
1922
- Improved documentation, QA and unittests
1923
- RAPI daemon now watches ``rapi_users`` all the time and doesn't need a
1924
  restart if the file was created or changed
1925
- Added LUXI protocol version sent with each request and response,
1926
  allowing detection of server/client mismatches
1927
- Moved the Python scripts among gnt-* and ganeti-* into modules
1928
- Moved all code related to setting up SSH to an external script,
1929
  ``setup-ssh``
1930
- Infrastructure changes for node group support in future versions
1931

    
1932

    
1933
Version 2.2.2
1934
-------------
1935

    
1936
*(Released Fri, 19 Nov 2010)*
1937

    
1938
A few small bugs fixed, and some improvements to the build system:
1939

    
1940
- Fix documentation regarding conversion to drbd
1941
- Fix validation of parameters in cluster modify (``gnt-cluster modify
1942
  -B``)
1943
- Fix error handling in node modify with multiple changes
1944
- Allow remote imports without checked names
1945

    
1946

    
1947
Version 2.2.1
1948
-------------
1949

    
1950
*(Released Tue, 19 Oct 2010)*
1951

    
1952
- Disable SSL session ID cache in RPC client
1953

    
1954

    
1955
Version 2.2.1 rc1
1956
-----------------
1957

    
1958
*(Released Thu, 14 Oct 2010)*
1959

    
1960
- Fix interaction between Curl/GnuTLS and the Python's HTTP server
1961
  (thanks Apollon Oikonomopoulos!), finally allowing the use of Curl
1962
  with GnuTLS
1963
- Fix problems with interaction between Curl and Python's HTTP server,
1964
  resulting in increased speed in many RPC calls
1965
- Improve our release script to prevent breakage with older aclocal and
1966
  Python 2.6
1967

    
1968

    
1969
Version 2.2.1 rc0
1970
-----------------
1971

    
1972
*(Released Thu, 7 Oct 2010)*
1973

    
1974
- Fixed issue 125, replace hardcoded "xenvg" in ``gnt-cluster`` with
1975
  value retrieved from master
1976
- Added support for blacklisted or hidden OS definitions
1977
- Added simple lock monitor (accessible via (``gnt-debug locks``)
1978
- Added support for -mem-path in KVM hypervisor abstraction layer
1979
- Allow overriding instance parameters in tool for inter-cluster
1980
  instance moves (``tools/move-instance``)
1981
- Improved opcode summaries (e.g. in ``gnt-job list``)
1982
- Improve consistency of OS listing by sorting it
1983
- Documentation updates
1984

    
1985

    
1986
Version 2.2.0.1
1987
---------------
1988

    
1989
*(Released Fri, 8 Oct 2010)*
1990

    
1991
- Rebuild with a newer autotools version, to fix python 2.6 compatibility
1992

    
1993

    
1994
Version 2.2.0
1995
-------------
1996

    
1997
*(Released Mon, 4 Oct 2010)*
1998

    
1999
- Fixed regression in ``gnt-instance rename``
2000

    
2001

    
2002
Version 2.2.0 rc2
2003
-----------------
2004

    
2005
*(Released Wed, 22 Sep 2010)*
2006

    
2007
- Fixed OS_VARIANT variable for OS scripts
2008
- Fixed cluster tag operations via RAPI
2009
- Made ``setup-ssh`` exit with non-zero code if an error occurred
2010
- Disabled RAPI CA checks in watcher
2011

    
2012

    
2013
Version 2.2.0 rc1
2014
-----------------
2015

    
2016
*(Released Mon, 23 Aug 2010)*
2017

    
2018
- Support DRBD versions of the format "a.b.c.d"
2019
- Updated manpages
2020
- Re-introduce support for usage from multiple threads in RAPI client
2021
- Instance renames and modify via RAPI
2022
- Work around race condition between processing and archival in job
2023
  queue
2024
- Mark opcodes following failed one as failed, too
2025
- Job field ``lock_status`` was removed due to difficulties making it
2026
  work with the changed job queue in Ganeti 2.2; a better way to monitor
2027
  locks is expected for a later 2.2.x release
2028
- Fixed dry-run behaviour with many commands
2029
- Support ``ssh-agent`` again when adding nodes
2030
- Many additional bugfixes
2031

    
2032

    
2033
Version 2.2.0 rc0
2034
-----------------
2035

    
2036
*(Released Fri, 30 Jul 2010)*
2037

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

    
2047
  python -c 'import pycurl; print pycurl.version'
2048

    
2049
can be used to determine the libraries PycURL and cURL are linked
2050
against.
2051

    
2052
Other significant changes:
2053

    
2054
- Rewrote much of the internals of the job queue, in order to achieve
2055
  better parallelism; this decouples job query operations from the job
2056
  processing, and it should allow much nicer behaviour of the master
2057
  daemon under load, and it also has uncovered some long-standing bugs
2058
  related to the job serialisation (now fixed)
2059
- Added a default iallocator setting to the cluster parameters,
2060
  eliminating the need to always pass nodes or an iallocator for
2061
  operations that require selection of new node(s)
2062
- Added experimental support for the LXC virtualization method
2063
- Added support for OS parameters, which allows the installation of
2064
  instances to pass parameter to OS scripts in order to customise the
2065
  instance
2066
- Added a hypervisor parameter controlling the migration type (live or
2067
  non-live), since hypervisors have various levels of reliability; this
2068
  has renamed the 'live' parameter to 'mode'
2069
- Added a cluster parameter ``reserved_lvs`` that denotes reserved
2070
  logical volumes, meaning that cluster verify will ignore them and not
2071
  flag their presence as errors
2072
- The watcher will now reset the error count for failed instances after
2073
  8 hours, thus allowing self-healing if the problem that caused the
2074
  instances to be down/fail to start has cleared in the meantime
2075
- Added a cluster parameter ``drbd_usermode_helper`` that makes Ganeti
2076
  check for, and warn, if the drbd module parameter ``usermode_helper``
2077
  is not consistent with the cluster-wide setting; this is needed to
2078
  make diagnose easier of failed drbd creations
2079
- Started adding base IPv6 support, but this is not yet
2080
  enabled/available for use
2081
- Rename operations (cluster, instance) will now return the new name,
2082
  which is especially useful if a short name was passed in
2083
- Added support for instance migration in RAPI
2084
- Added a tool to pre-configure nodes for the SSH setup, before joining
2085
  them to the cluster; this will allow in the future a simplified model
2086
  for node joining (but not yet fully enabled in 2.2); this needs the
2087
  paramiko python library
2088
- Fixed handling of name-resolving errors
2089
- Fixed consistency of job results on the error path
2090
- Fixed master-failover race condition when executed multiple times in
2091
  sequence
2092
- Fixed many bugs related to the job queue (mostly introduced during the
2093
  2.2 development cycle, so not all are impacting 2.1)
2094
- Fixed instance migration with missing disk symlinks
2095
- Fixed handling of unknown jobs in ``gnt-job archive``
2096
- And many other small fixes/improvements
2097

    
2098
Internal changes:
2099

    
2100
- Enhanced both the unittest and the QA coverage
2101
- Switched the opcode validation to a generic model, and extended the
2102
  validation to all opcode parameters
2103
- Changed more parts of the code that write shell scripts to use the
2104
  same class for this
2105
- Switched the master daemon to use the asyncore library for the Luxi
2106
  server endpoint
2107

    
2108

    
2109
Version 2.2.0 beta0
2110
-------------------
2111

    
2112
*(Released Thu, 17 Jun 2010)*
2113

    
2114
- Added tool (``move-instance``) and infrastructure to move instances
2115
  between separate clusters (see :doc:`separate documentation
2116
  <move-instance>` and :doc:`design document <design-2.2>`)
2117
- Added per-request RPC timeout
2118
- RAPI now requires a Content-Type header for requests with a body (e.g.
2119
  ``PUT`` or ``POST``) which must be set to ``application/json`` (see
2120
  :rfc:`2616` (HTTP/1.1), section 7.2.1)
2121
- ``ganeti-watcher`` attempts to restart ``ganeti-rapi`` if RAPI is not
2122
  reachable
2123
- Implemented initial support for running Ganeti daemons as separate
2124
  users, see configure-time flags ``--with-user-prefix`` and
2125
  ``--with-group-prefix`` (only ``ganeti-rapi`` is supported at this
2126
  time)
2127
- Instances can be removed after export (``gnt-backup export
2128
  --remove-instance``)
2129
- Self-signed certificates generated by Ganeti now use a 2048 bit RSA
2130
  key (instead of 1024 bit)
2131
- Added new cluster configuration file for cluster domain secret
2132
- Import/export now use SSL instead of SSH
2133
- Added support for showing estimated time when exporting an instance,
2134
  see the ``ganeti-os-interface(7)`` manpage and look for
2135
  ``EXP_SIZE_FD``
2136

    
2137

    
2138
Version 2.1.8
2139
-------------
2140

    
2141
*(Released Tue, 16 Nov 2010)*
2142

    
2143
Some more bugfixes. Unless critical bugs occur, this will be the last
2144
2.1 release:
2145

    
2146
- Fix case of MAC special-values
2147
- Fix mac checker regex
2148
- backend: Fix typo causing "out of range" error
2149
- Add missing --units in gnt-instance list man page
2150

    
2151

    
2152
Version 2.1.7
2153
-------------
2154

    
2155
*(Released Tue, 24 Aug 2010)*
2156

    
2157
Bugfixes only:
2158
  - Don't ignore secondary node silently on non-mirrored disk templates
2159
    (issue 113)
2160
  - Fix --master-netdev arg name in gnt-cluster(8) (issue 114)
2161
  - Fix usb_mouse parameter breaking with vnc_console (issue 109)
2162
  - Properly document the usb_mouse parameter
2163
  - Fix path in ganeti-rapi(8) (issue 116)
2164
  - Adjust error message when the ganeti user's .ssh directory is
2165
    missing
2166
  - Add same-node-check when changing the disk template to drbd
2167

    
2168

    
2169
Version 2.1.6
2170
-------------
2171

    
2172
*(Released Fri, 16 Jul 2010)*
2173

    
2174
Bugfixes only:
2175
  - Add an option to only select some reboot types during qa/burnin.
2176
    (on some hypervisors consequent reboots are not supported)
2177
  - Fix infrequent race condition in master failover. Sometimes the old
2178
    master ip address would be still detected as up for a short time
2179
    after it was removed, causing failover to fail.
2180
  - Decrease mlockall warnings when the ctypes module is missing. On
2181
    Python 2.4 we support running even if no ctypes module is installed,
2182
    but we were too verbose about this issue.
2183
  - Fix building on old distributions, on which man doesn't have a
2184
    --warnings option.
2185
  - Fix RAPI not to ignore the MAC address on instance creation
2186
  - Implement the old instance creation format in the RAPI client.
2187

    
2188

    
2189
Version 2.1.5
2190
-------------
2191

    
2192
*(Released Thu, 01 Jul 2010)*
2193

    
2194
A small bugfix release:
2195
  - Fix disk adoption: broken by strict --disk option checking in 2.1.4
2196
  - Fix batch-create: broken in the whole 2.1 series due to a lookup on
2197
    a non-existing option
2198
  - Fix instance create: the --force-variant option was ignored
2199
  - Improve pylint 0.21 compatibility and warnings with Python 2.6
2200
  - Fix modify node storage with non-FQDN arguments
2201
  - Fix RAPI client to authenticate under Python 2.6 when used
2202
    for more than 5 requests needing authentication
2203
  - Fix gnt-instance modify -t (storage) giving a wrong error message
2204
    when converting a non-shutdown drbd instance to plain
2205

    
2206

    
2207
Version 2.1.4
2208
-------------
2209

    
2210
*(Released Fri, 18 Jun 2010)*
2211

    
2212
A small bugfix release:
2213

    
2214
  - Fix live migration of KVM instances started with older Ganeti
2215
    versions which had fewer hypervisor parameters
2216
  - Fix gnt-instance grow-disk on down instances
2217
  - Fix an error-reporting bug during instance migration
2218
  - Better checking of the ``--net`` and ``--disk`` values, to avoid
2219
    silently ignoring broken ones
2220
  - Fix an RPC error reporting bug affecting, for example, RAPI client
2221
    users
2222
  - Fix bug triggered by different API version os-es on different nodes
2223
  - Fix a bug in instance startup with custom hvparams: OS level
2224
    parameters would fail to be applied.
2225
  - Fix the RAPI client under Python 2.6 (but more work is needed to
2226
    make it work completely well with OpenSSL)
2227
  - Fix handling of errors when resolving names from DNS
2228

    
2229

    
2230
Version 2.1.3
2231
-------------
2232

    
2233
*(Released Thu, 3 Jun 2010)*
2234

    
2235
A medium sized development cycle. Some new features, and some
2236
fixes/small improvements/cleanups.
2237

    
2238
Significant features
2239
~~~~~~~~~~~~~~~~~~~~
2240

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

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

    
2251
KVM: Add instance chrooting feature. If you use privilege dropping for
2252
your VMs you can also now force them to chroot to an empty directory,
2253
before starting the emulated guest.
2254

    
2255
KVM: Add maximum migration bandwith and maximum downtime tweaking
2256
support (requires a new-enough version of qemu-kvm).
2257

    
2258
Cluster verify will now warn if the master node doesn't have the master
2259
ip configured on it.
2260

    
2261
Add a new (incompatible) instance creation request format to RAPI which
2262
supports all parameters (previously only a subset was supported, and it
2263
wasn't possible to extend the old format to accomodate all the new
2264
features. The old format is still supported, and a client can check for
2265
this feature, before using it, by checking for its presence in the
2266
``features`` RAPI resource.
2267

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

    
2272
Other changes
2273
~~~~~~~~~~~~~
2274

    
2275
As usual many internal code refactorings, documentation updates, and
2276
such. Among others:
2277

    
2278
  - Lots of improvements and cleanups to the experimental Remote API
2279
    (RAPI) client library.
2280
  - A new unit test suite for the core daemon libraries.
2281
  - A fix to creating missing directories makes sure the umask is not
2282
    applied anymore. This enforces the same directory permissions
2283
    everywhere.
2284
  - Better handling terminating daemons with ctrl+c (used when running
2285
    them in debugging mode).
2286
  - Fix a race condition in live migrating a KVM instance, when stat()
2287
    on the old proc status file returned EINVAL, which is an unexpected
2288
    value.
2289
  - Fixed manpage checking with newer man and utf-8 charachters. But now
2290
    you need the en_US.UTF-8 locale enabled to build Ganeti from git.
2291

    
2292

    
2293
Version 2.1.2.1
2294
---------------
2295

    
2296
*(Released Fri, 7 May 2010)*
2297

    
2298
Fix a bug which prevented untagged KVM instances from starting.
2299

    
2300

    
2301
Version 2.1.2
2302
-------------
2303

    
2304
*(Released Fri, 7 May 2010)*
2305

    
2306
Another release with a long development cycle, during which many
2307
different features were added.
2308

    
2309
Significant features
2310
~~~~~~~~~~~~~~~~~~~~
2311

    
2312
The KVM hypervisor now can run the individual instances as non-root, to
2313
reduce the impact of a VM being hijacked due to bugs in the
2314
hypervisor. It is possible to run all instances as a single (non-root)
2315
user, to manually specify a user for each instance, or to dynamically
2316
allocate a user out of a cluster-wide pool to each instance, with the
2317
guarantee that no two instances will run under the same user ID on any
2318
given node.
2319

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

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

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

    
2334
Another disk improvement is the possibility to convert between redundant
2335
(DRBD) and plain (LVM) disk configuration for an instance. This should
2336
allow better scalability (starting with one node and growing the
2337
cluster, or shrinking a two-node cluster to one node).
2338

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

    
2348
Instance export/import now will reuse the original instance
2349
specifications for all parameters; that means exporting an instance,
2350
deleting it and the importing it back should give an almost identical
2351
instance. Note that the default import behaviour has changed from
2352
before, where it created only one NIC; now it recreates the original
2353
number of NICs.
2354

    
2355
Cluster verify has added a few new checks: SSL certificates validity,
2356
/etc/hosts consistency across the cluster, etc.
2357

    
2358
Other changes
2359
~~~~~~~~~~~~~
2360

    
2361
As usual, many internal changes were done, documentation fixes,
2362
etc. Among others:
2363

    
2364
- Fixed cluster initialization with disabled cluster storage (regression
2365
  introduced in 2.1.1)
2366
- File-based storage supports growing the disks
2367
- Fixed behaviour of node role changes
2368
- Fixed cluster verify for some corner cases, plus a general rewrite of
2369
  cluster verify to allow future extension with more checks
2370
- Fixed log spamming by watcher and node daemon (regression introduced
2371
  in 2.1.1)
2372
- Fixed possible validation issues when changing the list of enabled
2373
  hypervisors
2374
- Fixed cleanup of /etc/hosts during node removal
2375
- Fixed RAPI response for invalid methods
2376
- Fixed bug with hashed passwords in ``ganeti-rapi`` daemon
2377
- Multiple small improvements to the KVM hypervisor (VNC usage, booting
2378
  from ide disks, etc.)
2379
- Allow OS changes without re-installation (to record a changed OS
2380
  outside of Ganeti, or to allow OS renames)
2381
- Allow instance creation without OS installation (useful for example if
2382
  the OS will be installed manually, or restored from a backup not in
2383
  Ganeti format)
2384
- Implemented option to make cluster ``copyfile`` use the replication
2385
  network
2386
- Added list of enabled hypervisors to ssconf (possibly useful for
2387
  external scripts)
2388
- Added a new tool (``tools/cfgupgrade12``) that allows upgrading from
2389
  1.2 clusters
2390
- A partial form of node re-IP is possible via node readd, which now
2391
  allows changed node primary IP
2392
- Command line utilities now show an informational message if the job is
2393
  waiting for a lock
2394
- The logs of the master daemon now show the PID/UID/GID of the
2395
  connected client
2396

    
2397

    
2398
Version 2.1.1
2399
-------------
2400

    
2401
*(Released Fri, 12 Mar 2010)*
2402

    
2403
During the 2.1.0 long release candidate cycle, a lot of improvements and
2404
changes have accumulated with were released later as 2.1.1.
2405

    
2406
Major changes
2407
~~~~~~~~~~~~~
2408

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

    
2420
Another important change is increased validation of node and instance
2421
names. This might create problems in special cases, if invalid host
2422
names are being used.
2423

    
2424
Also, a new layer of hypervisor parameters has been added, that sits at
2425
OS level between the cluster defaults and the instance ones. This allows
2426
customisation of virtualization parameters depending on the installed
2427
OS. For example instances with OS 'X' may have a different KVM kernel
2428
(or any other parameter) than the cluster defaults. This is intended to
2429
help managing a multiple OSes on the same cluster, without manual
2430
modification of each instance's parameters.
2431

    
2432
A tool for merging clusters, ``cluster-merge``, has been added in the
2433
tools sub-directory.
2434

    
2435
Bug fixes
2436
~~~~~~~~~
2437

    
2438
- Improved the int/float conversions that should make the code more
2439
  robust in face of errors from the node daemons
2440
- Fixed the remove node code in case of internal configuration errors
2441
- Fixed the node daemon behaviour in face of inconsistent queue
2442
  directory (e.g. read-only file-system where we can't open the files
2443
  read-write, etc.)
2444
- Fixed the behaviour of gnt-node modify for master candidate demotion;
2445
  now it either aborts cleanly or, if given the new "auto_promote"
2446
  parameter, will automatically promote other nodes as needed
2447
- Fixed compatibility with (unreleased yet) Python 2.6.5 that would
2448
  completely prevent Ganeti from working
2449
- Fixed bug for instance export when not all disks were successfully
2450
  exported
2451
- Fixed behaviour of node add when the new node is slow in starting up
2452
  the node daemon
2453
- Fixed handling of signals in the LUXI client, which should improve
2454
  behaviour of command-line scripts
2455
- Added checks for invalid node/instance names in the configuration (now
2456
  flagged during cluster verify)
2457
- Fixed watcher behaviour for disk activation errors
2458
- Fixed two potentially endless loops in http library, which led to the
2459
  RAPI daemon hanging and consuming 100% CPU in some cases
2460
- Fixed bug in RAPI daemon related to hashed passwords
2461
- Fixed bug for unintended qemu-level bridging of multi-NIC KVM
2462
  instances
2463
- Enhanced compatibility with non-Debian OSes, but not using absolute
2464
  path in some commands and allowing customisation of the ssh
2465
  configuration directory
2466
- Fixed possible future issue with new Python versions by abiding to the
2467
  proper use of ``__slots__`` attribute on classes
2468
- Added checks that should prevent directory traversal attacks
2469
- Many documentation fixes based on feedback from users
2470

    
2471
New features
2472
~~~~~~~~~~~~
2473

    
2474
- Added an "early_release" more for instance replace disks and node
2475
  evacuate, where we release locks earlier and thus allow higher
2476
  parallelism within the cluster
2477
- Added watcher hooks, intended to allow the watcher to restart other
2478
  daemons (e.g. from the ganeti-nbma project), but they can be used of
2479
  course for any other purpose
2480
- Added a compile-time disable for DRBD barriers, to increase
2481
  performance if the administrator trusts the power supply or the
2482
  storage system to not lose writes
2483
- Added the option of using syslog for logging instead of, or in
2484
  addition to, Ganeti's own log files
2485
- Removed boot restriction for paravirtual NICs for KVM, recent versions
2486
  can indeed boot from a paravirtual NIC
2487
- Added a generic debug level for many operations; while this is not
2488
  used widely yet, it allows one to pass the debug value all the way to
2489
  the OS scripts
2490
- Enhanced the hooks environment for instance moves (failovers,
2491
  migrations) where the primary/secondary nodes changed during the
2492
  operation, by adding {NEW,OLD}_{PRIMARY,SECONDARY} vars
2493
- Enhanced data validations for many user-supplied values; one important
2494
  item is the restrictions imposed on instance and node names, which
2495
  might reject some (invalid) host names
2496
- Add a configure-time option to disable file-based storage, if it's not
2497
  needed; this allows greater security separation between the master
2498
  node and the other nodes from the point of view of the inter-node RPC
2499
  protocol
2500
- Added user notification in interactive tools if job is waiting in the
2501
  job queue or trying to acquire locks
2502
- Added log messages when a job is waiting for locks
2503
- Added filtering by node tags in instance operations which admit
2504
  multiple instances (start, stop, reboot, reinstall)
2505
- Added a new tool for cluster mergers, ``cluster-merge``
2506
- Parameters from command line which are of the form ``a=b,c=d`` can now
2507
  use backslash escapes to pass in values which contain commas,
2508
  e.g. ``a=b\\c,d=e`` where the 'a' parameter would get the value
2509
  ``b,c``
2510
- For KVM, the instance name is the first parameter passed to KVM, so
2511
  that it's more visible in the process list
2512

    
2513

    
2514
Version 2.1.0
2515
-------------
2516

    
2517
*(Released Tue, 2 Mar 2010)*
2518

    
2519
Ganeti 2.1 brings many improvements with it. Major changes:
2520

    
2521
- Added infrastructure to ease automated disk repairs
2522
- Added new daemon to export configuration data in a cheaper way than
2523
  using the remote API
2524
- Instance NICs can now be routed instead of being associated with a
2525
  networking bridge
2526
- Improved job locking logic to reduce impact of jobs acquiring multiple
2527
  locks waiting for other long-running jobs
2528

    
2529
In-depth implementation details can be found in the Ganeti 2.1 design
2530
document.
2531

    
2532
Details
2533
~~~~~~~
2534

    
2535
- Added chroot hypervisor
2536
- Added more options to xen-hvm hypervisor (``kernel_path`` and
2537
  ``device_model``)
2538
- Added more options to xen-pvm hypervisor (``use_bootloader``,
2539
  ``bootloader_path`` and ``bootloader_args``)
2540
- Added the ``use_localtime`` option for the xen-hvm and kvm
2541
  hypervisors, and the default value for this has changed to false (in
2542
  2.0 xen-hvm always enabled it)
2543
- Added luxi call to submit multiple jobs in one go
2544
- Added cluster initialization option to not modify ``/etc/hosts``
2545
  file on nodes
2546
- Added network interface parameters
2547
- Added dry run mode to some LUs
2548
- Added RAPI resources:
2549

    
2550
  - ``/2/instances/[instance_name]/info``
2551
  - ``/2/instances/[instance_name]/replace-disks``
2552
  - ``/2/nodes/[node_name]/evacuate``
2553
  - ``/2/nodes/[node_name]/migrate``
2554
  - ``/2/nodes/[node_name]/role``
2555
  - ``/2/nodes/[node_name]/storage``
2556
  - ``/2/nodes/[node_name]/storage/modify``
2557
  - ``/2/nodes/[node_name]/storage/repair``
2558

    
2559
- Added OpCodes to evacuate or migrate all instances on a node
2560
- Added new command to list storage elements on nodes (``gnt-node
2561
  list-storage``) and modify them (``gnt-node modify-storage``)
2562
- Added new ssconf files with master candidate IP address
2563
  (``ssconf_master_candidates_ips``), node primary IP address
2564
  (``ssconf_node_primary_ips``) and node secondary IP address
2565
  (``ssconf_node_secondary_ips``)
2566
- Added ``ganeti-confd`` and a client library to query the Ganeti
2567
  configuration via UDP
2568
- Added ability to run hooks after cluster initialization and before
2569
  cluster destruction
2570
- Added automatic mode for disk replace (``gnt-instance replace-disks
2571
  --auto``)
2572
- Added ``gnt-instance recreate-disks`` to re-create (empty) disks
2573
  after catastrophic data-loss
2574
- Added ``gnt-node repair-storage`` command to repair damaged LVM volume
2575
  groups
2576
- Added ``gnt-instance move`` command to move instances
2577
- Added ``gnt-cluster watcher`` command to control watcher
2578
- Added ``gnt-node powercycle`` command to powercycle nodes
2579
- Added new job status field ``lock_status``
2580
- Added parseable error codes to cluster verification (``gnt-cluster
2581
  verify --error-codes``) and made output less verbose (use
2582
  ``--verbose`` to restore previous behaviour)
2583
- Added UUIDs to the main config entities (cluster, nodes, instances)
2584
- Added support for OS variants
2585
- Added support for hashed passwords in the Ganeti remote API users file
2586
  (``rapi_users``)
2587
- Added option to specify maximum timeout on instance shutdown
2588
- Added ``--no-ssh-init`` option to ``gnt-cluster init``
2589
- Added new helper script to start and stop Ganeti daemons
2590
  (``daemon-util``), with the intent to reduce the work necessary to
2591
  adjust Ganeti for non-Debian distributions and to start/stop daemons
2592
  from one place
2593
- Added more unittests
2594
- Fixed critical bug in ganeti-masterd startup
2595
- Removed the configure-time ``kvm-migration-port`` parameter, this is
2596
  now customisable at the cluster level for both the KVM and Xen
2597
  hypervisors using the new ``migration_port`` parameter
2598
- Pass ``INSTANCE_REINSTALL`` variable to OS installation script when
2599
  reinstalling an instance
2600
- Allowed ``@`` in tag names
2601
- Migrated to Sphinx (http://sphinx.pocoo.org/) for documentation
2602
- Many documentation updates
2603
- Distribute hypervisor files on ``gnt-cluster redist-conf``
2604
- ``gnt-instance reinstall`` can now reinstall multiple instances
2605
- Updated many command line parameters
2606
- Introduced new OS API version 15
2607
- No longer support a default hypervisor
2608
- Treat virtual LVs as inexistent
2609
- Improved job locking logic to reduce lock contention
2610
- Match instance and node names case insensitively
2611
- Reimplemented bash completion script to be more complete
2612
- Improved burnin
2613

    
2614

    
2615
Version 2.0.6
2616
-------------
2617

    
2618
*(Released Thu, 4 Feb 2010)*
2619

    
2620
- Fix cleaner behaviour on nodes not in a cluster (Debian bug 568105)
2621
- Fix a string formatting bug
2622
- Improve safety of the code in some error paths
2623
- Improve data validation in the master of values returned from nodes
2624

    
2625

    
2626
Version 2.0.5
2627
-------------
2628

    
2629
*(Released Thu, 17 Dec 2009)*
2630

    
2631
- Fix security issue due to missing validation of iallocator names; this
2632
  allows local and remote execution of arbitrary executables
2633
- Fix failure of gnt-node list during instance removal
2634
- Ship the RAPI documentation in the archive
2635

    
2636

    
2637
Version 2.0.4
2638
-------------
2639

    
2640
*(Released Wed, 30 Sep 2009)*
2641

    
2642
- Fixed many wrong messages
2643
- Fixed a few bugs related to the locking library
2644
- Fixed MAC checking at instance creation time
2645
- Fixed a DRBD parsing bug related to gaps in /proc/drbd
2646
- Fixed a few issues related to signal handling in both daemons and
2647
  scripts
2648
- Fixed the example startup script provided
2649
- Fixed insserv dependencies in the example startup script (patch from
2650
  Debian)
2651
- Fixed handling of drained nodes in the iallocator framework
2652
- Fixed handling of KERNEL_PATH parameter for xen-hvm (Debian bug
2653
  #528618)
2654
- Fixed error related to invalid job IDs in job polling
2655
- Fixed job/opcode persistence on unclean master shutdown
2656
- Fixed handling of partial job processing after unclean master
2657
  shutdown
2658
- Fixed error reporting from LUs, previously all errors were converted
2659
  into execution errors
2660
- Fixed error reporting from burnin
2661
- Decreased significantly the memory usage of the job queue
2662
- Optimised slightly multi-job submission
2663
- Optimised slightly opcode loading
2664
- Backported the multi-job submit framework from the development
2665
  branch; multi-instance start and stop should be faster
2666
- Added script to clean archived jobs after 21 days; this will reduce
2667
  the size of the queue directory
2668
- Added some extra checks in disk size tracking
2669
- Added an example ethers hook script
2670
- Added a cluster parameter that prevents Ganeti from modifying of
2671
  /etc/hosts
2672
- Added more node information to RAPI responses
2673
- Added a ``gnt-job watch`` command that allows following the ouput of a
2674
  job
2675
- Added a bind-address option to ganeti-rapi
2676
- Added more checks to the configuration verify
2677
- Enhanced the burnin script such that some operations can be retried
2678
  automatically
2679
- Converted instance reinstall to multi-instance model
2680

    
2681

    
2682
Version 2.0.3
2683
-------------
2684

    
2685
*(Released Fri, 7 Aug 2009)*
2686

    
2687
- Added ``--ignore-size`` to the ``gnt-instance activate-disks`` command
2688
  to allow using the pre-2.0.2 behaviour in activation, if any existing
2689
  instances have mismatched disk sizes in the configuration
2690
- Added ``gnt-cluster repair-disk-sizes`` command to check and update
2691
  any configuration mismatches for disk sizes
2692
- Added ``gnt-master cluste-failover --no-voting`` to allow master
2693
  failover to work on two-node clusters
2694
- Fixed the ``--net`` option of ``gnt-backup import``, which was
2695
  unusable
2696
- Fixed detection of OS script errors in ``gnt-backup export``
2697
- Fixed exit code of ``gnt-backup export``
2698

    
2699

    
2700
Version 2.0.2
2701
-------------
2702

    
2703
*(Released Fri, 17 Jul 2009)*
2704

    
2705
- Added experimental support for stripped logical volumes; this should
2706
  enhance performance but comes with a higher complexity in the block
2707
  device handling; stripping is only enabled when passing
2708
  ``--with-lvm-stripecount=N`` to ``configure``, but codepaths are
2709
  affected even in the non-stripped mode
2710
- Improved resiliency against transient failures at the end of DRBD
2711
  resyncs, and in general of DRBD resync checks
2712
- Fixed a couple of issues with exports and snapshot errors
2713
- Fixed a couple of issues in instance listing
2714
- Added display of the disk size in ``gnt-instance info``
2715
- Fixed checking for valid OSes in instance creation
2716
- Fixed handling of the "vcpus" parameter in instance listing and in
2717
  general of invalid parameters
2718
- Fixed http server library, and thus RAPI, to handle invalid
2719
  username/password combinations correctly; this means that now they
2720
  report unauthorized for queries too, not only for modifications,
2721
  allowing earlier detect of configuration problems
2722
- Added a new "role" node list field, equivalent to the master/master
2723
  candidate/drained/offline flags combinations
2724
- Fixed cluster modify and changes of candidate pool size
2725
- Fixed cluster verify error messages for wrong files on regular nodes
2726
- Fixed a couple of issues with node demotion from master candidate role
2727
- Fixed node readd issues
2728
- Added non-interactive mode for ``ganeti-masterd --no-voting`` startup
2729
- Added a new ``--no-voting`` option for masterfailover to fix failover
2730
  on two-nodes clusters when the former master node is unreachable
2731
- Added instance reinstall over RAPI
2732

    
2733

    
2734
Version 2.0.1
2735
-------------
2736

    
2737
*(Released Tue, 16 Jun 2009)*
2738

    
2739
- added ``-H``/``-B`` startup parameters to ``gnt-instance``, which will
2740
  allow re-adding the start in single-user option (regression from 1.2)
2741
- the watcher writes the instance status to a file, to allow monitoring
2742
  to report the instance status (from the master) based on cached
2743
  results of the watcher's queries; while this can get stale if the
2744
  watcher is being locked due to other work on the cluster, this is
2745
  still an improvement
2746
- the watcher now also restarts the node daemon and the rapi daemon if
2747
  they died
2748
- fixed the watcher to handle full and drained queue cases
2749
- hooks export more instance data in the environment, which helps if
2750
  hook scripts need to take action based on the instance's properties
2751
  (no longer need to query back into ganeti)
2752
- instance failovers when the instance is stopped do not check for free
2753
  RAM, so that failing over a stopped instance is possible in low memory
2754
  situations
2755
- rapi uses queries for tags instead of jobs (for less job traffic), and
2756
  for cluster tags it won't talk to masterd at all but read them from
2757
  ssconf
2758
- a couple of error handling fixes in RAPI
2759
- drbd handling: improved the error handling of inconsistent disks after
2760
  resync to reduce the frequency of "there are some degraded disks for
2761
  this instance" messages
2762
- fixed a bug in live migration when DRBD doesn't want to reconnect (the
2763
  error handling path called a wrong function name)
2764

    
2765

    
2766
Version 2.0.0
2767
-------------
2768

    
2769
*(Released Wed, 27 May 2009)*
2770

    
2771
- no changes from rc5
2772

    
2773

    
2774
Version 2.0 rc5
2775
---------------
2776

    
2777
*(Released Wed, 20 May 2009)*
2778

    
2779
- fix a couple of bugs (validation, argument checks)
2780
- fix ``gnt-cluster getmaster`` on non-master nodes (regression)
2781
- some small improvements to RAPI and IAllocator
2782
- make watcher automatically start the master daemon if down
2783

    
2784

    
2785
Version 2.0 rc4
2786
---------------
2787

    
2788
*(Released Mon, 27 Apr 2009)*
2789

    
2790
- change the OS list to not require locks; this helps with big clusters
2791
- fix ``gnt-cluster verify`` and ``gnt-cluster verify-disks`` when the
2792
  volume group is broken
2793
- ``gnt-instance info``, without any arguments, doesn't run for all
2794
  instances anymore; either pass ``--all`` or pass the desired
2795
  instances; this helps against mistakes on big clusters where listing
2796
  the information for all instances takes a long time
2797
- miscellaneous doc and man pages fixes
2798

    
2799

    
2800
Version 2.0 rc3
2801
---------------
2802

    
2803
*(Released Wed, 8 Apr 2009)*
2804

    
2805
- Change the internal locking model of some ``gnt-node`` commands, in
2806
  order to reduce contention (and blocking of master daemon) when
2807
  batching many creation/reinstall jobs
2808
- Fixes to Xen soft reboot
2809
- No longer build documentation at build time, instead distribute it in
2810
  the archive, in order to reduce the need for the whole docbook/rst
2811
  toolchains
2812

    
2813

    
2814
Version 2.0 rc2
2815
---------------
2816

    
2817
*(Released Fri, 27 Mar 2009)*
2818

    
2819
- Now the cfgupgrade scripts works and can upgrade 1.2.7 clusters to 2.0
2820
- Fix watcher startup sequence, improves the behaviour of busy clusters
2821
- Some other fixes in ``gnt-cluster verify``, ``gnt-instance
2822
  replace-disks``, ``gnt-instance add``, ``gnt-cluster queue``, KVM VNC
2823
  bind address and other places
2824
- Some documentation fixes and updates
2825

    
2826

    
2827
Version 2.0 rc1
2828
---------------
2829

    
2830
*(Released Mon, 2 Mar 2009)*
2831

    
2832
- More documentation updates, now all docs should be more-or-less
2833
  up-to-date
2834
- A couple of small fixes (mixed hypervisor clusters, offline nodes,
2835
  etc.)
2836
- Added a customizable HV_KERNEL_ARGS hypervisor parameter (for Xen PVM
2837
  and KVM)
2838
- Fix an issue related to $libdir/run/ganeti and cluster creation
2839

    
2840

    
2841
Version 2.0 beta2
2842
-----------------
2843

    
2844
*(Released Thu, 19 Feb 2009)*
2845

    
2846
- Xen PVM and KVM have switched the default value for the instance root
2847
  disk to the first partition on the first drive, instead of the whole
2848
  drive; this means that the OS installation scripts must be changed
2849
  accordingly
2850
- Man pages have been updated
2851
- RAPI has been switched by default to HTTPS, and the exported functions
2852
  should all work correctly
2853
- RAPI v1 has been removed
2854
- Many improvements to the KVM hypervisor
2855
- Block device errors are now better reported
2856
- Many other bugfixes and small improvements
2857

    
2858

    
2859
Version 2.0 beta1
2860
-----------------
2861

    
2862
*(Released Mon, 26 Jan 2009)*
2863

    
2864
- Version 2 is a general rewrite of the code and therefore the
2865
  differences are too many to list, see the design document for 2.0 in
2866
  the ``doc/`` subdirectory for more details
2867
- In this beta version there is not yet a migration path from 1.2 (there
2868
  will be one in the final 2.0 release)
2869
- A few significant changes are:
2870

    
2871
  - all commands are executed by a daemon (``ganeti-masterd``) and the
2872
    various ``gnt-*`` commands are just front-ends to it
2873
  - all the commands are entered into, and executed from a job queue,
2874
    see the ``gnt-job(8)`` manpage
2875
  - the RAPI daemon supports read-write operations, secured by basic
2876
    HTTP authentication on top of HTTPS
2877
  - DRBD version 0.7 support has been removed, DRBD 8 is the only
2878
    supported version (when migrating from Ganeti 1.2 to 2.0, you need
2879
    to migrate to DRBD 8 first while still running Ganeti 1.2)
2880
  - DRBD devices are using statically allocated minor numbers, which
2881
    will be assigned to existing instances during the migration process
2882
  - there is support for both Xen PVM and Xen HVM instances running on
2883
    the same cluster
2884
  - KVM virtualization is supported too
2885
  - file-based storage has been implemented, which means that it is
2886
    possible to run the cluster without LVM and DRBD storage, for
2887
    example using a shared filesystem exported from shared storage (and
2888
    still have live migration)
2889

    
2890

    
2891
Version 1.2.7
2892
-------------
2893

    
2894
*(Released Tue, 13 Jan 2009)*
2895

    
2896
- Change the default reboot type in ``gnt-instance reboot`` to "hard"
2897
- Reuse the old instance mac address by default on instance import, if
2898
  the instance name is the same.
2899
- Handle situations in which the node info rpc returns incomplete
2900
  results (issue 46)
2901
- Add checks for tcp/udp ports collisions in ``gnt-cluster verify``
2902
- Improved version of batcher:
2903

    
2904
  - state file support
2905
  - instance mac address support
2906
  - support for HVM clusters/instances
2907

    
2908
- Add an option to show the number of cpu sockets and nodes in
2909
  ``gnt-node list``
2910
- Support OSes that handle more than one version of the OS api (but do
2911
  not change the current API in any other way)
2912
- Fix ``gnt-node migrate``
2913
- ``gnt-debug`` man page
2914
- Fixes various more typos and small issues
2915
- Increase disk resync maximum speed to 60MB/s (from 30MB/s)
2916

    
2917

    
2918
Version 1.2.6
2919
-------------
2920

    
2921
*(Released Wed, 24 Sep 2008)*
2922

    
2923
- new ``--hvm-nic-type`` and ``--hvm-disk-type`` flags to control the
2924
  type of disk exported to fully virtualized instances.
2925
- provide access to the serial console of HVM instances
2926
- instance auto_balance flag, set by default. If turned off it will
2927
  avoid warnings on cluster verify if there is not enough memory to fail
2928
  over an instance. in the future it will prevent automatically failing
2929
  it over when we will support that.
2930
- batcher tool for instance creation, see ``tools/README.batcher``
2931
- ``gnt-instance reinstall --select-os`` to interactively select a new
2932
  operating system when reinstalling an instance.
2933
- when changing the memory amount on instance modify a check has been
2934
  added that the instance will be able to start. also warnings are
2935
  emitted if the instance will not be able to fail over, if auto_balance
2936
  is true.
2937
- documentation fixes
2938
- sync fields between ``gnt-instance list/modify/add/import``
2939
- fix a race condition in drbd when the sync speed was set after giving
2940
  the device a remote peer.
2941

    
2942

    
2943
Version 1.2.5
2944
-------------
2945

    
2946
*(Released Tue, 22 Jul 2008)*
2947

    
2948
- note: the allowed size and number of tags per object were reduced
2949
- fix a bug in ``gnt-cluster verify`` with inconsistent volume groups
2950
- fixed twisted 8.x compatibility
2951
- fixed ``gnt-instance replace-disks`` with iallocator
2952
- add TCP keepalives on twisted connections to detect restarted nodes
2953
- disk increase support, see ``gnt-instance grow-disk``
2954
- implement bulk node/instance query for RAPI
2955
- add tags in node/instance listing (optional)
2956
- experimental migration (and live migration) support, read the man page
2957
  for ``gnt-instance migrate``
2958
- the ``ganeti-watcher`` logs are now timestamped, and the watcher also
2959
  has some small improvements in handling its state file
2960

    
2961

    
2962
Version 1.2.4
2963
-------------
2964

    
2965
*(Released Fri, 13 Jun 2008)*
2966

    
2967
- Experimental readonly, REST-based remote API implementation;
2968
  automatically started on master node, TCP port 5080, if enabled by
2969
  ``--enable-rapi`` parameter to configure script.
2970
- Instance allocator support. Add and import instance accept a
2971
  ``--iallocator`` parameter, and call that instance allocator to decide
2972
  which node to use for the instance. The iallocator document describes
2973
  what's expected from an allocator script.
2974
- ``gnt-cluster verify`` N+1 memory redundancy checks: Unless passed the
2975
  ``--no-nplus1-mem`` option ``gnt-cluster verify`` now checks that if a
2976
  node is lost there is still enough memory to fail over the instances
2977
  that reside on it.
2978
- ``gnt-cluster verify`` hooks: it is now possible to add post-hooks to
2979
  ``gnt-cluster verify``, to check for site-specific compliance. All the
2980
  hooks will run, and their output, if any, will be displayed. Any
2981
  failing hook will make the verification return an error value.
2982
- ``gnt-cluster verify`` now checks that its peers are reachable on the
2983
  primary and secondary interfaces
2984
- ``gnt-node add`` now supports the ``--readd`` option, to readd a node
2985
  that is still declared as part of the cluster and has failed.
2986
- ``gnt-* list`` commands now accept a new ``-o +field`` way of
2987
  specifying output fields, that just adds the chosen fields to the
2988
  default ones.
2989
- ``gnt-backup`` now has a new ``remove`` command to delete an existing
2990
  export from the filesystem.
2991
- New per-instance parameters hvm_acpi, hvm_pae and hvm_cdrom_image_path
2992
  have been added. Using them you can enable/disable acpi and pae
2993
  support, and specify a path for a cd image to be exported to the
2994
  instance. These parameters as the name suggest only work on HVM
2995
  clusters.
2996
- When upgrading an HVM cluster to Ganeti 1.2.4, the values for ACPI and
2997
  PAE support will be set to the previously hardcoded values, but the
2998
  (previously hardcoded) path to the CDROM ISO image will be unset and
2999
  if required, needs to be set manually with ``gnt-instance modify``
3000
  after the upgrade.
3001
- The address to which an instance's VNC console is bound is now
3002
  selectable per-instance, rather than being cluster wide. Of course
3003
  this only applies to instances controlled via VNC, so currently just
3004
  applies to HVM clusters.
3005

    
3006

    
3007
Version 1.2.3
3008
-------------
3009

    
3010
*(Released Mon, 18 Feb 2008)*
3011

    
3012
- more tweaks to the disk activation code (especially helpful for DRBD)
3013
- change the default ``gnt-instance list`` output format, now there is
3014
  one combined status field (see the manpage for the exact values this
3015
  field will have)
3016
- some more fixes for the mac export to hooks change
3017
- make Ganeti not break with DRBD 8.2.x (which changed the version
3018
  format in ``/proc/drbd``) (issue 24)
3019
- add an upgrade tool from "remote_raid1" disk template to "drbd" disk
3020
  template, allowing migration from DRBD0.7+MD to DRBD8
3021

    
3022

    
3023
Version 1.2.2
3024
-------------
3025

    
3026
*(Released Wed, 30 Jan 2008)*
3027

    
3028
- fix ``gnt-instance modify`` breakage introduced in 1.2.1 with the HVM
3029
  support (issue 23)
3030
- add command aliases infrastructure and a few aliases
3031
- allow listing of VCPUs in the ``gnt-instance list`` and improve the
3032
  man pages and the ``--help`` option of ``gnt-node
3033
  list``/``gnt-instance list``
3034
- fix ``gnt-backup list`` with down nodes (issue 21)
3035
- change the tools location (move from $pkgdatadir to $pkglibdir/tools)
3036
- fix the dist archive and add a check for including svn/git files in
3037
  the future
3038
- some developer-related changes: improve the burnin and the QA suite,
3039
  add an upload script for testing during development
3040

    
3041

    
3042
Version 1.2.1
3043
-------------
3044

    
3045
*(Released Wed, 16 Jan 2008)*
3046

    
3047
- experimental HVM support, read the install document, section
3048
  "Initializing the cluster"
3049
- allow for the PVM hypervisor per-instance kernel and initrd paths
3050
- add a new command ``gnt-cluster verify-disks`` which uses a new
3051
  algorithm to improve the reconnection of the DRBD pairs if the device
3052
  on the secondary node has gone away
3053
- make logical volume code auto-activate LVs at disk activation time
3054
- slightly improve the speed of activating disks
3055
- allow specification of the MAC address at instance creation time, and
3056
  changing it later via ``gnt-instance modify``
3057
- fix handling of external commands that generate lots of output on
3058
  stderr
3059
- update documentation with regard to minimum version of DRBD8 supported
3060

    
3061

    
3062
Version 1.2.0
3063
-------------
3064

    
3065
*(Released Tue, 4 Dec 2007)*
3066

    
3067
- Log the ``xm create`` output to the node daemon log on failure (to
3068
  help diagnosing the error)
3069
- In debug mode, log all external commands output if failed to the logs
3070
- Change parsing of lvm commands to ignore stderr
3071

    
3072

    
3073
Version 1.2 beta3
3074
-----------------
3075

    
3076
*(Released Wed, 28 Nov 2007)*
3077

    
3078
- Another round of updates to the DRBD 8 code to deal with more failures
3079
  in the replace secondary node operation
3080
- Some more logging of failures in disk operations (lvm, drbd)
3081
- A few documentation updates
3082
- QA updates
3083

    
3084

    
3085
Version 1.2 beta2
3086
-----------------
3087

    
3088
*(Released Tue, 13 Nov 2007)*
3089

    
3090
- Change configuration file format from Python's Pickle to JSON.
3091
  Upgrading is possible using the cfgupgrade utility.
3092
- Add support for DRBD 8.0 (new disk template ``drbd``) which allows for
3093
  faster replace disks and is more stable (DRBD 8 has many improvements
3094
  compared to DRBD 0.7)
3095
- Added command line tags support (see man pages for ``gnt-instance``,
3096
  ``gnt-node``, ``gnt-cluster``)
3097
- Added instance rename support
3098
- Added multi-instance startup/shutdown
3099
- Added cluster rename support
3100
- Added ``gnt-node evacuate`` to simplify some node operations
3101
- Added instance reboot operation that can speedup reboot as compared to
3102
  stop and start
3103
- Soften the requirement that hostnames are in FQDN format
3104
- The ``ganeti-watcher`` now activates drbd pairs after secondary node
3105
  reboots
3106
- Removed dependency on debian's patched fping that uses the
3107
  non-standard ``-S`` option
3108
- Now the OS definitions are searched for in multiple, configurable
3109
  paths (easier for distros to package)
3110
- Some changes to the hooks infrastructure (especially the new
3111
  post-configuration update hook)
3112
- Other small bugfixes
3113

    
3114
.. vim: set textwidth=72 syntax=rst :
3115
.. Local Variables:
3116
.. mode: rst
3117
.. fill-column: 72
3118
.. End: