Statistics
| Branch: | Tag: | Revision:

root / NEWS @ 1b84e2d7

History | View | Annotate | Download (119.3 kB)

1
News
2
====
3

    
4

    
5
Version 2.9.4
6
-------------
7

    
8
*(unreleased)*
9

    
10
- Fix the RAPI instances-multi-alloc call
11
- assign unique filenames to file-based disks
12
- gracefully handle degraded non-diskless instances with 0 disks (issue 697)
13
- noded now runs with its specified group, which is the default group,
14
  defaulting to root (issue 707)
15
- make using UUIDs to identify nodes in gnt-node consistently possible
16
  (issue 703)
17

    
18

    
19
Version 2.9.3
20
-------------
21

    
22
*(Released Mon, 27 Jan 2014)*
23

    
24
- Ensure that all the hypervisors exist in the config file (Issue 640)
25
- Correctly recognise the role as master node (Issue 687)
26
- configure: allow detection of Sphinx 1.2+ (Issue 502)
27
- gnt-instance now honors the KVM path correctly (Issue 691)
28

    
29
Inherited from the 2.8 branch:
30

    
31
- Change the list separator for the usb_devices parameter from comma to space.
32
  Commas could not work because they are already the hypervisor option
33
  separator (Issue 649)
34
- Add support for blktap2 file-driver (Issue 638)
35
- Add network tag definitions to the haskell codebase (Issue 641)
36
- Fix RAPI network tag handling
37
- Add the network tags to the tags searched by gnt-cluster search-tags
38
- Fix caching bug preventing jobs from being cancelled
39
- Start-master/stop-master was always failing if ConfD was disabled. (Issue 685)
40

    
41

    
42
Version 2.9.2
43
-------------
44

    
45
*(Released Fri, 13 Dec 2013)*
46

    
47
- use custom KVM path if set for version checking
48
- SingleNotifyPipeCondition: don't share pollers
49

    
50
Inherited from the 2.8 branch:
51

    
52
- Fixed Luxi daemon socket permissions after master-failover
53
- Improve IP version detection code directly checking for colons rather than
54
  passing the family from the cluster object
55
- Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
56
  opportunistically anymore (Issue 622)
57
- Allow link local IPv6 gateways (Issue 624)
58
- Fix error printing (Issue 616)
59
- Fix a bug in InstanceSetParams concerning names: in case no name is passed in
60
  disk modifications, keep the old one. If name=none then set disk name to
61
  None.
62
- Update build_chroot script to work with the latest hackage packages
63
- Add a packet number limit to "fping" in master-ip-setup (Issue 630)
64
- Fix evacuation out of drained node (Issue 615)
65
- Add default file_driver if missing (Issue 571)
66
- Fix job error message after unclean master shutdown (Issue 618)
67
- Lock group(s) when creating instances (Issue 621)
68
- SetDiskID() before accepting an instance (Issue 633)
69
- Allow the ext template disks to receive arbitrary parameters, both at creation
70
  time and while being modified
71
- Xen handle domain shutdown (future proofing cherry-pick)
72
- Refactor reading live data in htools (future proofing cherry-pick)
73

    
74

    
75
Version 2.9.1
76
-------------
77

    
78
*(Released Wed, 13 Nov 2013)*
79

    
80
- fix bug, that kept nodes offline when readding
81
- when verifying DRBD versions, ignore unavailable nodes
82
- fix bug that made the console unavailable on kvm in split-user
83
  setup (issue 608)
84
- DRBD: ensure peers are UpToDate for dual-primary (inherited 2.8.2)
85

    
86

    
87
Version 2.9.0
88
-------------
89

    
90
*(Released Tue, 5 Nov 2013)*
91

    
92
Incompatible/important changes
93
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
94

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

    
124
New features
125
~~~~~~~~~~~~
126

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

    
142
New dependencies
143
~~~~~~~~~~~~~~~~
144
The following new dependencies have been added.
145

    
146
Python
147

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

    
151
Haskell
152

    
153
- ``hslogger`` (http://software.complete.org/hslogger) is now always
154
  required, even if confd is not enabled.
155

    
156
Since 2.9.0 rc3
157
~~~~~~~~~~~~~~~
158

    
159
- Correctly start/stop luxid during gnt-cluster master-failover (inherited
160
  from stable-2.8)
161
- Improved error messsages (inherited from stable-2.8)
162

    
163

    
164
Version 2.9.0 rc3
165
-----------------
166

    
167
*(Released Tue, 15 Oct 2013)*
168

    
169
The third release candidate in the 2.9 series. Since 2.9.0 rc2:
170

    
171
- in implicit configuration upgrade, match ipolicy with enabled disk templates
172
- improved harep documentation (inherited from stable-2.8)
173

    
174

    
175
Version 2.9.0 rc2
176
-----------------
177

    
178
*(Released Wed, 9 Oct 2013)*
179

    
180
The second release candidate in the 2.9 series. Since 2.9.0 rc1:
181

    
182
- Fix bug in cfgupgrade that led to failure when upgrading from 2.8 with
183
  at least one DRBD instance.
184
- Fix bug in cfgupgrade that led to an invalid 2.8 configuration after
185
  downgrading.
186

    
187

    
188
Version 2.9.0 rc1
189
-----------------
190

    
191
*(Released Tue, 1 Oct 2013)*
192

    
193
The first release candidate in the 2.9 series. Since 2.9.0 beta1:
194

    
195
- various bug fixes
196
- update of the documentation, in particular installation instructions
197
- merging of LD_* constants into DT_* constants
198
- python style changes to be compatible with newer versions of pylint
199

    
200

    
201
Version 2.9.0 beta1
202
-------------------
203

    
204
*(Released Thu, 29 Aug 2013)*
205

    
206
This was the first beta release of the 2.9 series. All important changes
207
are listed in the latest 2.9 entry.
208

    
209

    
210
Version 2.8.4
211
-------------
212

    
213
*(Released Thu, 23 Jan 2014)*
214

    
215
- Change the list separator for the usb_devices parameter from comma to space.
216
  Commas could not work because they are already the hypervisor option
217
  separator (Issue 649)
218
- Add support for blktap2 file-driver (Issue 638)
219
- Add network tag definitions to the haskell codebase (Issue 641)
220
- Fix RAPI network tag handling
221
- Add the network tags to the tags searched by gnt-cluster search-tags
222
- Fix caching bug preventing jobs from being cancelled
223
- Start-master/stop-master was always failing if ConfD was disabled. (Issue 685)
224

    
225

    
226
Version 2.8.3
227
-------------
228

    
229
*(Released Thu, 12 Dec 2013)*
230

    
231
- Fixed Luxi daemon socket permissions after master-failover
232
- Improve IP version detection code directly checking for colons rather than
233
  passing the family from the cluster object
234
- Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
235
  opportunistically anymore (Issue 622)
236
- Allow link local IPv6 gateways (Issue 624)
237
- Fix error printing (Issue 616)
238
- Fix a bug in InstanceSetParams concerning names: in case no name is passed in
239
  disk modifications, keep the old one. If name=none then set disk name to
240
  None.
241
- Update build_chroot script to work with the latest hackage packages
242
- Add a packet number limit to "fping" in master-ip-setup (Issue 630)
243
- Fix evacuation out of drained node (Issue 615)
244
- Add default file_driver if missing (Issue 571)
245
- Fix job error message after unclean master shutdown (Issue 618)
246
- Lock group(s) when creating instances (Issue 621)
247
- SetDiskID() before accepting an instance (Issue 633)
248
- Allow the ext template disks to receive arbitrary parameters, both at creation
249
  time and while being modified
250
- Xen handle domain shutdown (future proofing cherry-pick)
251
- Refactor reading live data in htools (future proofing cherry-pick)
252

    
253

    
254
Version 2.8.2
255
-------------
256

    
257
*(Released Thu, 07 Nov 2013)*
258

    
259
- DRBD: ensure peers are UpToDate for dual-primary
260
- Improve error message for replace-disks
261
- More dependency checks at configure time
262
- Placate warnings on ganeti.outils_unittest.py
263

    
264

    
265
Version 2.8.1
266
-------------
267

    
268
*(Released Thu, 17 Oct 2013)*
269

    
270
- Correctly start/stop luxid during gnt-cluster master-failover
271
- Don't attempt IPv6 ssh in case of IPv4 cluster (Issue 595)
272
- Fix path for the job queue serial file
273
- Improved harep man page
274
- Minor documentation improvements
275

    
276

    
277
Version 2.8.0
278
-------------
279

    
280
*(Released Mon, 30 Sep 2013)*
281

    
282
Incompatible/important changes
283
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
284

    
285
- Instance policy can contain multiple instance specs, as described in
286
  the โ€œConstrained instance sizesโ€ section of :doc:`Partitioned Ganeti
287
  <design-partitioned>`. As a consequence, it's not possible to partially change
288
  or override instance specs. Bounding specs (min and max) can be specified as a
289
  whole using the new option ``--ipolicy-bounds-specs``, while standard
290
  specs use the new option ``--ipolicy-std-specs``.
291
- The output of the info command of gnt-cluster, gnt-group, gnt-node,
292
  gnt-instance is a valid YAML object.
293
- hail now honors network restrictions when allocating nodes. This led to an
294
  update of the IAllocator protocol. See the IAllocator documentation for
295
  details.
296
- confd now only answers static configuration request over the network. luxid
297
  was extracted, listens on the local LUXI socket and responds to live queries.
298
  This allows finer grained permissions if using separate users.
299

    
300
New features
301
~~~~~~~~~~~~
302

    
303
- The :doc:`Remote API <rapi>` daemon now supports a command line flag
304
  to always require authentication, ``--require-authentication``. It can
305
  be specified in ``$sysconfdir/default/ganeti``.
306
- A new cluster attribute 'enabled_disk_templates' is introduced. It will
307
  be used to manage the disk templates to be used by instances in the cluster.
308
  Initially, it will be set to a list that includes plain, drbd, if they were
309
  enabled by specifying a volume group name, and file and sharedfile, if those
310
  were enabled at configure time. Additionally, it will include all disk
311
  templates that are currently used by instances. The order of disk templates
312
  will be based on Ganeti's history of supporting them. In the future, the
313
  first entry of the list will be used as a default disk template on instance
314
  creation.
315
- ``cfgupgrade`` now supports a ``--downgrade`` option to bring the
316
  configuration back to the previous stable version.
317
- Disk templates in group ipolicy can be restored to the default value.
318
- Initial support for diskless instances and virtual clusters in QA.
319
- More QA and unit tests for instance policies.
320
- Every opcode now contains a reason trail (visible through ``gnt-job info``)
321
  describing why the opcode itself was executed.
322
- The monitoring daemon is now available. It allows users to query the cluster
323
  for obtaining information about the status of the system. The daemon is only
324
  responsible for providing the information over the network: the actual data
325
  gathering is performed by data collectors (currently, only the DRBD status
326
  collector is available).
327
- In order to help developers work on Ganeti, a new script
328
  (``devel/build_chroot``) is provided, for building a chroot that contains all
329
  the required development libraries and tools for compiling Ganeti on a Debian
330
  Squeeze system.
331
- A new tool, ``harep``, for performing self-repair and recreation of instances
332
  in Ganeti has been added.
333
- Split queries are enabled for tags, network, exports, cluster info, groups,
334
  jobs, nodes.
335
- New command ``show-ispecs-cmd`` for ``gnt-cluster`` and ``gnt-group``.
336
  It prints the command line to set the current policies, to ease
337
  changing them.
338
- Add the ``vnet_hdr`` HV parameter for KVM, to control whether the tap
339
  devices for KVM virtio-net interfaces will get created with VNET_HDR
340
  (IFF_VNET_HDR) support. If set to false, it disables offloading on the
341
  virtio-net interfaces, which prevents host kernel tainting and log
342
  flooding, when dealing with broken or malicious virtio-net drivers.
343
  It's set to true by default.
344
- Instance failover now supports a ``--cleanup`` parameter for fixing previous
345
  failures.
346
- Support 'viridian' parameter in Xen HVM
347
- Support DSA SSH keys in bootstrap
348
- To simplify the work of packaging frameworks that want to add the needed users
349
  and groups in a split-user setup themselves, at build time three files in
350
  ``doc/users`` will be generated. The ``groups`` files contains, one per line,
351
  the groups to be generated, the ``users`` file contains, one per line, the
352
  users to be generated, optionally followed by their primary group, where
353
  important. The ``groupmemberships`` file contains, one per line, additional
354
  user-group membership relations that need to be established. The syntax of
355
  these files will remain stable in all future versions.
356

    
357

    
358
New dependencies
359
~~~~~~~~~~~~~~~~
360
The following new dependencies have been added:
361

    
362
For Haskell:
363
- The ``curl`` library is not optional anymore for compiling the Haskell code.
364
- ``snap-server`` library (if monitoring is enabled).
365

    
366
For Python:
367
- The minimum Python version needed to run Ganeti is now 2.6.
368
- ``yaml`` library (only for running the QA).
369

    
370
Since 2.8.0 rc3
371
~~~~~~~~~~~~~~~
372
- Perform proper cleanup on termination of Haskell daemons
373
- Fix corner-case in handling of remaining retry time
374

    
375

    
376
Version 2.8.0 rc3
377
-----------------
378

    
379
*(Released Tue, 17 Sep 2013)*
380

    
381
- To simplify the work of packaging frameworks that want to add the needed users
382
  and groups in a split-user setup themselves, at build time three files in
383
  ``doc/users`` will be generated. The ``groups`` files contains, one per line,
384
  the groups to be generated, the ``users`` file contains, one per line, the
385
  users to be generated, optionally followed by their primary group, where
386
  important. The ``groupmemberships`` file contains, one per line, additional
387
  user-group membership relations that need to be established. The syntax of
388
  these files will remain stable in all future versions.
389
- Add a default to file-driver when unspecified over RAPI (Issue 571)
390
- Mark the DSA host pubkey as optional, and remove it during config downgrade
391
  (Issue 560)
392
- Some documentation fixes
393

    
394

    
395
Version 2.8.0 rc2
396
-----------------
397

    
398
*(Released Tue, 27 Aug 2013)*
399

    
400
The second release candidate of the 2.8 series. Since 2.8.0. rc1:
401

    
402
- Support 'viridian' parameter in Xen HVM (Issue 233)
403
- Include VCS version in ``gnt-cluster version``
404
- Support DSA SSH keys in bootstrap (Issue 338)
405
- Fix batch creation of instances
406
- Use FQDN to check master node status (Issue 551)
407
- Make the DRBD collector more failure-resilient
408

    
409

    
410
Version 2.8.0 rc1
411
-----------------
412

    
413
*(Released Fri, 2 Aug 2013)*
414

    
415
The first release candidate of the 2.8 series. Since 2.8.0 beta1:
416

    
417
- Fix upgrading/downgrading from 2.7
418
- Increase maximum RAPI message size
419
- Documentation updates
420
- Split ``confd`` between ``luxid`` and ``confd``
421
- Merge 2.7 series up to the 2.7.1 release
422
- Allow the ``modify_etc_hosts`` option to be changed
423
- Add better debugging for ``luxid`` queries
424
- Expose bulk parameter for GetJobs in RAPI client
425
- Expose missing ``network`` fields in RAPI
426
- Add some ``cluster verify`` tests
427
- Some unittest fixes
428
- Fix a malfunction in ``hspace``'s tiered allocation
429
- Fix query compatibility between haskell and python implementations
430
- Add the ``vnet_hdr`` HV parameter for KVM
431
- Add ``--cleanup`` to instance failover
432
- Change the connected groups format in ``gnt-network info`` output; it
433
  was previously displayed as a raw list by mistake. (Merged from 2.7)
434

    
435

    
436
Version 2.8.0 beta1
437
-------------------
438

    
439
*(Released Mon, 24 Jun 2013)*
440

    
441
This was the first beta release of the 2.8 series. All important changes
442
are listed in the latest 2.8 entry.
443

    
444

    
445
Version 2.7.2
446
-------------
447

    
448
*(Released Thu, 26 Sep 2013)*
449

    
450
- Change the connected groups format in ``gnt-network info`` output; it
451
  was previously displayed as a raw list by mistake
452
- Check disk template in right dict when copying
453
- Support multi-instance allocs without iallocator
454
- Fix some errors in the documentation
455
- Fix formatting of tuple in an error message
456

    
457

    
458
Version 2.7.1
459
-------------
460

    
461
*(Released Thu, 25 Jul 2013)*
462

    
463
- Add logrotate functionality in daemon-util
464
- Add logrotate example file
465
- Add missing fields to network queries over rapi
466
- Fix network object timestamps
467
- Add support for querying network timestamps
468
- Fix a typo in the example crontab
469
- Fix a documentation typo
470

    
471

    
472
Version 2.7.0
473
-------------
474

    
475
*(Released Thu, 04 Jul 2013)*
476

    
477
Incompatible/important changes
478
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
479

    
480
- Instance policies for disk size were documented to be on a per-disk
481
  basis, but hail applied them to the sum of all disks. This has been
482
  fixed.
483
- ``hbal`` will now exit with status 0 if, during job execution over
484
  LUXI, early exit has been requested and all jobs are successful;
485
  before, exit status 1 was used, which cannot be differentiated from
486
  "job error" case
487
- Compatibility with newer versions of rbd has been fixed
488
- ``gnt-instance batch-create`` has been changed to use the bulk create
489
  opcode from Ganeti. This lead to incompatible changes in the format of
490
  the JSON file. It's now not a custom dict anymore but a dict
491
  compatible with the ``OpInstanceCreate`` opcode.
492
- Parent directories for file storage need to be listed in
493
  ``$sysconfdir/ganeti/file-storage-paths`` now. ``cfgupgrade`` will
494
  write the file automatically based on old configuration values, but it
495
  can not distribute it across all nodes and the file contents should be
496
  verified. Use ``gnt-cluster copyfile
497
  $sysconfdir/ganeti/file-storage-paths`` once the cluster has been
498
  upgraded. The reason for requiring this list of paths now is that
499
  before it would have been possible to inject new paths via RPC,
500
  allowing files to be created in arbitrary locations. The RPC protocol
501
  is protected using SSL/X.509 certificates, but as a design principle
502
  Ganeti does not permit arbitrary paths to be passed.
503
- The parsing of the variants file for OSes (see
504
  :manpage:`ganeti-os-interface(7)`) has been slightly changed: now empty
505
  lines and comment lines (starting with ``#``) are ignored for better
506
  readability.
507
- The ``setup-ssh`` tool added in Ganeti 2.2 has been replaced and is no
508
  longer available. ``gnt-node add`` now invokes a new tool on the
509
  destination node, named ``prepare-node-join``, to configure the SSH
510
  daemon. Paramiko is no longer necessary to configure nodes' SSH
511
  daemons via ``gnt-node add``.
512
- Draining (``gnt-cluster queue drain``) and un-draining the job queue
513
  (``gnt-cluster queue undrain``) now affects all nodes in a cluster and
514
  the flag is not reset after a master failover.
515
- Python 2.4 has *not* been tested with this release. Using 2.6 or above
516
  is recommended. 2.6 will be mandatory from the 2.8 series.
517

    
518

    
519
New features
520
~~~~~~~~~~~~
521

    
522
- New network management functionality to support automatic allocation
523
  of IP addresses and managing of network parameters. See
524
  :manpage:`gnt-network(8)` for more details.
525
- New external storage backend, to allow managing arbitrary storage
526
  systems external to the cluster. See
527
  :manpage:`ganeti-extstorage-interface(7)`.
528
- New ``exclusive-storage`` node parameter added, restricted to
529
  nodegroup level. When it's set to true, physical disks are assigned in
530
  an exclusive fashion to instances, as documented in :doc:`Partitioned
531
  Ganeti <design-partitioned>`.  Currently, only instances using the
532
  ``plain`` disk template are supported.
533
- The KVM hypervisor has been updated with many new hypervisor
534
  parameters, including a generic one for passing arbitrary command line
535
  values. See a complete list in :manpage:`gnt-instance(8)`. It is now
536
  compatible up to qemu 1.4.
537
- A new tool, called ``mon-collector``, is the stand-alone executor of
538
  the data collectors for a monitoring system. As of this version, it
539
  just includes the DRBD data collector, that can be executed by calling
540
  ``mon-collector`` using the ``drbd`` parameter. See
541
  :manpage:`mon-collector(7)`.
542
- A new user option, :pyeval:`rapi.RAPI_ACCESS_READ`, has been added
543
  for RAPI users. It allows granting permissions to query for
544
  information to a specific user without giving
545
  :pyeval:`rapi.RAPI_ACCESS_WRITE` permissions.
546
- A new tool named ``node-cleanup`` has been added. It cleans remains of
547
  a cluster from a machine by stopping all daemons, removing
548
  certificates and ssconf files. Unless the ``--no-backup`` option is
549
  given, copies of the certificates are made.
550
- Instance creations now support the use of opportunistic locking,
551
  potentially speeding up the (parallel) creation of multiple instances.
552
  This feature is currently only available via the :doc:`RAPI
553
  <rapi>` interface and when an instance allocator is used. If the
554
  ``opportunistic_locking`` parameter is set the opcode will try to
555
  acquire as many locks as possible, but will not wait for any locks
556
  held by other opcodes. If not enough resources can be found to
557
  allocate the instance, the temporary error code
558
  :pyeval:`errors.ECODE_TEMP_NORES` is returned. The operation can be
559
  retried thereafter, with or without opportunistic locking.
560
- New experimental linux-ha resource scripts.
561
- Restricted-commands support: ganeti can now be asked (via command line
562
  or rapi) to perform commands on a node. These are passed via ganeti
563
  RPC rather than ssh. This functionality is restricted to commands
564
  specified on the ``$sysconfdir/ganeti/restricted-commands`` for security
565
  reasons. The file is not copied automatically.
566

    
567

    
568
Misc changes
569
~~~~~~~~~~~~
570

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

    
580
There are no significant changes from version 2.7.0~rc3.
581

    
582

    
583
Version 2.7.0 rc3
584
-----------------
585

    
586
*(Released Tue, 25 Jun 2013)*
587

    
588
- Fix permissions on the confd query socket (Issue 477)
589
- Fix permissions on the job archive dir (Issue 498)
590
- Fix handling of an internal exception in replace-disks (Issue 472)
591
- Fix gnt-node info handling of shortened names (Issue 497)
592
- Fix gnt-instance grow-disk when wiping is enabled
593
- Documentation improvements, and support for newer pandoc
594
- Fix hspace honoring ipolicy for disks (Issue 484)
595
- Improve handling of the ``kvm_extra`` HV parameter
596

    
597

    
598
Version 2.7.0 rc2
599
-----------------
600

    
601
*(Released Fri, 24 May 2013)*
602

    
603
- ``devel/upload`` now works when ``/var/run`` on the target nodes is a
604
  symlink.
605
- Disks added through ``gnt-instance modify`` or created through
606
  ``gnt-instance recreate-disks`` are wiped, if the
607
  ``prealloc_wipe_disks`` flag is set.
608
- If wiping newly created disks fails, the disks are removed. Also,
609
  partial failures in creating disks through ``gnt-instance modify``
610
  triggers a cleanup of the partially-created disks.
611
- Removing the master IP address doesn't fail if the address has been
612
  already removed.
613
- Fix ownership of the OS log dir
614
- Workaround missing SO_PEERCRED constant (Issue 191)
615

    
616

    
617
Version 2.7.0 rc1
618
-----------------
619

    
620
*(Released Fri, 3 May 2013)*
621

    
622
This was the first release candidate of the 2.7 series. Since beta3:
623

    
624
- Fix kvm compatibility with qemu 1.4 (Issue 389)
625
- Documentation updates (admin guide, upgrade notes, install
626
  instructions) (Issue 372)
627
- Fix gnt-group list nodes and instances count (Issue 436)
628
- Fix compilation without non-mandatory libraries (Issue 441)
629
- Fix xen-hvm hypervisor forcing nics to type 'ioemu' (Issue 247)
630
- Make confd logging more verbose at INFO level (Issue 435)
631
- Improve "networks" documentation in :manpage:`gnt-instance(8)`
632
- Fix failure path for instance storage type conversion (Issue 229)
633
- Update htools text backend documentation
634
- Improve the renew-crypto section of :manpage:`gnt-cluster(8)`
635
- Disable inter-cluster instance move for file-based instances, because
636
  it is dependant on instance export, which is not supported for
637
  file-based instances. (Issue 414)
638
- Fix gnt-job crashes on non-ascii characters (Issue 427)
639
- Fix volume group checks on non-vm-capable nodes (Issue 432)
640

    
641

    
642
Version 2.7.0 beta3
643
-------------------
644

    
645
*(Released Mon, 22 Apr 2013)*
646

    
647
This was the third beta release of the 2.7 series. Since beta2:
648

    
649
- Fix hail to verify disk instance policies on a per-disk basis (Issue 418).
650
- Fix data loss on wrong usage of ``gnt-instance move``
651
- Properly export errors in confd-based job queries
652
- Add ``users-setup`` tool
653
- Fix iallocator protocol to report 0 as a disk size for diskless
654
  instances. This avoids hail breaking when a diskless instance is
655
  present.
656
- Fix job queue directory permission problem that made confd job queries
657
  fail. This requires running an ``ensure-dirs --full-run`` on upgrade
658
  for access to archived jobs (Issue 406).
659
- Limit the sizes of networks supported by ``gnt-network`` to something
660
  between a ``/16`` and a ``/30`` to prevent memory bloat and crashes.
661
- Fix bugs in instance disk template conversion
662
- Fix GHC 7 compatibility
663
- Fix ``burnin`` install path (Issue 426).
664
- Allow very small disk grows (Issue 347).
665
- Fix a ``ganeti-noded`` memory bloat introduced in 2.5, by making sure
666
  that noded doesn't import masterd code (Issue 419).
667
- Make sure the default metavg at cluster init is the same as the vg, if
668
  unspecified (Issue 358).
669
- Fix cleanup of partially created disks (part of Issue 416)
670

    
671

    
672
Version 2.7.0 beta2
673
-------------------
674

    
675
*(Released Tue, 2 Apr 2013)*
676

    
677
This was the second beta release of the 2.7 series. Since beta1:
678

    
679
- Networks no longer have a "type" slot, since this information was
680
  unused in Ganeti: instead of it tags should be used.
681
- The rapi client now has a ``target_node`` option to MigrateInstance.
682
- Fix early exit return code for hbal (Issue 386).
683
- Fix ``gnt-instance migrate/failover -n`` (Issue 396).
684
- Fix ``rbd showmapped`` output parsing (Issue 312).
685
- Networks are now referenced indexed by UUID, rather than name. This
686
  will require running cfgupgrade, from 2.7.0beta1, if networks are in
687
  use.
688
- The OS environment now includes network information.
689
- Deleting of a network is now disallowed if any instance nic is using
690
  it, to prevent dangling references.
691
- External storage is now documented in man pages.
692
- The exclusive_storage flag can now only be set at nodegroup level.
693
- Hbal can now submit an explicit priority with its jobs.
694
- Many network related locking fixes.
695
- Bump up the required pylint version to 0.25.1.
696
- Fix the ``no_remember`` option in RAPI client.
697
- Many ipolicy related tests, qa, and fixes.
698
- Many documentation improvements and fixes.
699
- Fix building with ``--disable-file-storage``.
700
- Fix ``-q`` option in htools, which was broken if passed more than
701
  once.
702
- Some haskell/python interaction improvements and fixes.
703
- Fix iallocator in case of missing LVM storage.
704
- Fix confd config load in case of ``--no-lvm-storage``.
705
- The confd/query functionality is now mentioned in the security
706
  documentation.
707

    
708

    
709
Version 2.7.0 beta1
710
-------------------
711

    
712
*(Released Wed, 6 Feb 2013)*
713

    
714
This was the first beta release of the 2.7 series. All important changes
715
are listed in the latest 2.7 entry.
716

    
717

    
718
Version 2.6.2
719
-------------
720

    
721
*(Released Fri, 21 Dec 2012)*
722

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

    
728
A significant number of bug fixes in this release:
729

    
730
- Fixed disk adoption interaction with ipolicy checks.
731
- Fixed networking issues when instances are started, stopped or
732
  migrated, by forcing the tap device's MAC prefix to "fe" (issue 217).
733
- Fixed the warning in cluster verify for shared storage instances not
734
  being redundant.
735
- Fixed removal of storage directory on shared file storage (issue 262).
736
- Fixed validation of LVM volume group name in OpClusterSetParams
737
  (``gnt-cluster modify``) (issue 285).
738
- Fixed runtime memory increases (``gnt-instance modify -m``).
739
- Fixed live migration under Xen's ``xl`` mode.
740
- Fixed ``gnt-instance console`` with ``xl``.
741
- Fixed building with newer Haskell compiler/libraries.
742
- Fixed PID file writing in Haskell daemons (confd); this prevents
743
  restart issues if confd was launched manually (outside of
744
  ``daemon-util``) while another copy of it was running
745
- Fixed a type error when doing live migrations with KVM (issue 297) and
746
  the error messages for failing migrations have been improved.
747
- Fixed opcode validation for the out-of-band commands (``gnt-node
748
  power``).
749
- Fixed a type error when unsetting OS hypervisor parameters (issue
750
  311); now it's possible to unset all OS-specific hypervisor
751
  parameters.
752
- Fixed the ``dry-run`` mode for many operations: verification of
753
  results was over-zealous but didn't take into account the ``dry-run``
754
  operation, resulting in "wrong" failures.
755
- Fixed bash completion in ``gnt-job list`` when the job queue has
756
  hundreds of entries; especially with older ``bash`` versions, this
757
  results in significant CPU usage.
758

    
759
And lastly, a few other improvements have been made:
760

    
761
- Added option to force master-failover without voting (issue 282).
762
- Clarified error message on lock conflict (issue 287).
763
- Logging of newly submitted jobs has been improved (issue 290).
764
- Hostname checks have been made uniform between instance rename and
765
  create (issue 291).
766
- The ``--submit`` option is now supported by ``gnt-debug delay``.
767
- Shutting down the master daemon by sending SIGTERM now stops it from
768
  processing jobs waiting for locks; instead, those jobs will be started
769
  once again after the master daemon is started the next time (issue
770
  296).
771
- Support for Xen's ``xl`` program has been improved (besides the fixes
772
  above).
773
- Reduced logging noise in the Haskell confd daemon (only show one log
774
  entry for each config reload, instead of two).
775
- Several man page updates and typo fixes.
776

    
777

    
778
Version 2.6.1
779
-------------
780

    
781
*(Released Fri, 12 Oct 2012)*
782

    
783
A small bugfix release. Among the bugs fixed:
784

    
785
- Fixed double use of ``PRIORITY_OPT`` in ``gnt-node migrate``, that
786
  made the command unusable.
787
- Commands that issue many jobs don't fail anymore just because some jobs
788
  take so long that other jobs are archived.
789
- Failures during ``gnt-instance reinstall`` are reflected by the exit
790
  status.
791
- Issue 190 fixed. Check for DRBD in cluster verify is enabled only when
792
  DRBD is enabled.
793
- When ``always_failover`` is set, ``--allow-failover`` is not required
794
  in migrate commands anymore.
795
- ``bash_completion`` works even if extglob is disabled.
796
- Fixed bug with locks that made failover for RDB-based instances fail.
797
- Fixed bug in non-mirrored instance allocation that made Ganeti choose
798
  a random node instead of one based on the allocator metric.
799
- Support for newer versions of pylint and pep8.
800
- Hail doesn't fail anymore when trying to add an instance of type
801
  ``file``, ``sharedfile`` or ``rbd``.
802
- Added new Makefile target to rebuild the whole distribution, so that
803
  all files are included.
804

    
805

    
806
Version 2.6.0
807
-------------
808

    
809
*(Released Fri, 27 Jul 2012)*
810

    
811

    
812
.. attention:: The ``LUXI`` protocol has been made more consistent
813
   regarding its handling of command arguments. This, however, leads to
814
   incompatibility issues with previous versions. Please ensure that you
815
   restart Ganeti daemons soon after the upgrade, otherwise most
816
   ``LUXI`` calls (job submission, setting/resetting the drain flag,
817
   pausing/resuming the watcher, cancelling and archiving jobs, querying
818
   the cluster configuration) will fail.
819

    
820

    
821
New features
822
~~~~~~~~~~~~
823

    
824
Instance run status
825
+++++++++++++++++++
826

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

    
831
The rational behind this is that an instance being โ€œdownโ€ can have
832
different meanings:
833

    
834
- it could be down during a reboot
835
- it could be temporarily be down for a reinstall
836
- or it could be down because it is deprecated and kept just for its
837
  disk
838

    
839
The previous Boolean state was making it difficult to do capacity
840
calculations: should Ganeti reserve memory for a down instance? Now, the
841
tri-state field makes it clear:
842

    
843
- in ``up`` and ``down`` state, all resources are reserved for the
844
  instance, and it can be at any time brought up if it is down
845
- in ``offline`` state, only disk space is reserved for it, but not
846
  memory or CPUs
847

    
848
The field can have an extra use: since the transition between ``up`` and
849
``down`` and vice-versus is done via ``gnt-instance start/stop``, but
850
transition between ``offline`` and ``down`` is done via ``gnt-instance
851
modify``, it is possible to given different rights to users. For
852
example, owners of an instance could be allowed to start/stop it, but
853
not transition it out of the offline state.
854

    
855
Instance policies and specs
856
+++++++++++++++++++++++++++
857

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

    
865
In order to improve these workflows and to allow for example better
866
per-node group differentiation, we introduced instance specs, which
867
allow declaring:
868

    
869
- minimum instance disk size, disk count, memory size, cpu count
870
- maximum values for the above metrics
871
- and โ€œstandardโ€ values (used in ``hspace`` to calculate the standard
872
  sized instances)
873

    
874
The minimum/maximum values can be also customised at node-group level,
875
for example allowing more powerful hardware to support bigger instance
876
memory sizes.
877

    
878
Beside the instance specs, there are a few other settings belonging to
879
the instance policy framework. It is possible now to customise, per
880
cluster and node-group:
881

    
882
- the list of allowed disk templates
883
- the maximum ratio of VCPUs per PCPUs (to control CPU oversubscription)
884
- the maximum ratio of instance to spindles (see below for more
885
  information) for local storage
886

    
887
All these together should allow all tools that talk to Ganeti to know
888
what are the ranges of allowed values for instances and the
889
over-subscription that is allowed.
890

    
891
For the VCPU/PCPU ratio, we already have the VCPU configuration from the
892
instance configuration, and the physical CPU configuration from the
893
node. For the spindle ratios however, we didn't track before these
894
values, so new parameters have been added:
895

    
896
- a new node parameter ``spindle_count``, defaults to 1, customisable at
897
  node group or node level
898
- at new backend parameter (for instances), ``spindle_use`` defaults to 1
899

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

    
904
Instance migration behaviour
905
++++++++++++++++++++++++++++
906

    
907
While live-migration is in general desirable over failover, it is
908
possible that for some workloads it is actually worse, due to the
909
variable time of the โ€œsuspendโ€ phase during live migration.
910

    
911
To allow the tools to work consistently over such instances (without
912
having to hard-code instance names), a new backend parameter
913
``always_failover`` has been added to control the migration/failover
914
behaviour. When set to True, all migration requests for an instance will
915
instead fall-back to failover.
916

    
917
Instance memory ballooning
918
++++++++++++++++++++++++++
919

    
920
Initial support for memory ballooning has been added. The memory for an
921
instance is no longer fixed (backend parameter ``memory``), but instead
922
can vary between minimum and maximum values (backend parameters
923
``minmem`` and ``maxmem``). Currently we only change an instance's
924
memory when:
925

    
926
- live migrating or failing over and instance and the target node
927
  doesn't have enough memory
928
- user requests changing the memory via ``gnt-instance modify
929
  --runtime-memory``
930

    
931
Instance CPU pinning
932
++++++++++++++++++++
933

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

    
942
Disk parameters
943
+++++++++++++++
944

    
945
Another area in which Ganeti was not customisable were the parameters
946
used for storage configuration, e.g. how many stripes to use for LVM,
947
DRBD resync configuration, etc.
948

    
949
To improve this area, we've added disks parameters, which are
950
customisable at cluster and node group level, and which allow to
951
specify various parameters for disks (DRBD has the most parameters
952
currently), for example:
953

    
954
- DRBD resync algorithm and parameters (e.g. speed)
955
- the default VG for meta-data volumes for DRBD
956
- number of stripes for LVM (plain disk template)
957
- the RBD pool
958

    
959
These parameters can be modified via ``gnt-cluster modify -D โ€ฆ`` and
960
``gnt-group modify -D โ€ฆ``, and are used at either instance creation (in
961
case of LVM stripes, for example) or at disk โ€œactivationโ€ time
962
(e.g. resync speed).
963

    
964
Rados block device support
965
++++++++++++++++++++++++++
966

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

    
972
Master IP setup
973
+++++++++++++++
974

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

    
980
To allow the master IP to function well in more complex cases, the
981
system was reworked as follows:
982

    
983
- a master IP netmask setting has been added
984
- the master IP activation/turn-down code was moved from the node daemon
985
  to a separate script
986
- whether to run the Ganeti-supplied master IP script or a user-supplied
987
  on is a ``gnt-cluster init`` setting
988

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

    
993
SPICE support
994
+++++++++++++
995

    
996
The `SPICE <http://www.linux-kvm.org/page/SPICE>`_ support has been
997
improved.
998

    
999
It is now possible to use TLS-protected connections, and when renewing
1000
or changing the cluster certificates (via ``gnt-cluster renew-crypto``,
1001
it is now possible to specify spice or spice CA certificates. Also, it
1002
is possible to configure a password for SPICE sessions via the
1003
hypervisor parameter ``spice_password_file``.
1004

    
1005
There are also new parameters to control the compression and streaming
1006
options (e.g. ``spice_image_compression``, ``spice_streaming_video``,
1007
etc.). For details, see the man page :manpage:`gnt-instance(8)` and look
1008
for the spice parameters.
1009

    
1010
Lastly, it is now possible to see the SPICE connection information via
1011
``gnt-instance console``.
1012

    
1013
OVF converter
1014
+++++++++++++
1015

    
1016
A new tool (``tools/ovfconverter``) has been added that supports
1017
conversion between Ganeti and the `Open Virtualization Format
1018
<http://en.wikipedia.org/wiki/Open_Virtualization_Format>`_ (both to and
1019
from).
1020

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

    
1024
Confd daemon changes
1025
++++++++++++++++++++
1026

    
1027
The configuration query daemon (``ganeti-confd``) is now optional, and
1028
has been rewritten in Haskell; whether to use the daemon at all, use the
1029
Python (default) or the Haskell version is selectable at configure time
1030
via the ``--enable-confd`` parameter, which can take one of the
1031
``haskell``, ``python`` or ``no`` values. If not used, disabling the
1032
daemon will result in a smaller footprint; for larger systems, we
1033
welcome feedback on the Haskell version which might become the default
1034
in future versions.
1035

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

    
1039

    
1040
User interface changes
1041
~~~~~~~~~~~~~~~~~~~~~~
1042

    
1043
We have replaced the ``--disks`` option of ``gnt-instance
1044
replace-disks`` with a more flexible ``--disk`` option, which allows
1045
adding and removing disks at arbitrary indices (Issue 188). Furthermore,
1046
disk size and mode can be changed upon recreation (via ``gnt-instance
1047
recreate-disks``, which accepts the same ``--disk`` option).
1048

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

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

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

    
1061
A new command ``list-drbd`` has been added to the ``gnt-node`` script to
1062
support debugging of DRBD issues on nodes. It provides a mapping of DRBD
1063
minors to instance name.
1064

    
1065
API changes
1066
~~~~~~~~~~~
1067

    
1068
RAPI coverage has improved, with (for example) new resources for
1069
recreate-disks, node power-cycle, etc.
1070

    
1071
Compatibility
1072
~~~~~~~~~~~~~
1073

    
1074
There is partial support for ``xl`` in the Xen hypervisor; feedback is
1075
welcome.
1076

    
1077
Python 2.7 is better supported, and after Ganeti 2.6 we will investigate
1078
whether to still support Python 2.4 or move to Python 2.6 as minimum
1079
required version.
1080

    
1081
Support for Fedora has been slightly improved; the provided example
1082
init.d script should work better on it and the INSTALL file should
1083
document the needed dependencies.
1084

    
1085
Internal changes
1086
~~~~~~~~~~~~~~~~
1087

    
1088
The deprecated ``QueryLocks`` LUXI request has been removed. Use
1089
``Query(what=QR_LOCK, ...)`` instead.
1090

    
1091
The LUXI requests :pyeval:`luxi.REQ_QUERY_JOBS`,
1092
:pyeval:`luxi.REQ_QUERY_INSTANCES`, :pyeval:`luxi.REQ_QUERY_NODES`,
1093
:pyeval:`luxi.REQ_QUERY_GROUPS`, :pyeval:`luxi.REQ_QUERY_EXPORTS` and
1094
:pyeval:`luxi.REQ_QUERY_TAGS` are deprecated and will be removed in a
1095
future version. :pyeval:`luxi.REQ_QUERY` should be used instead.
1096

    
1097
RAPI client: ``CertificateError`` now derives from
1098
``GanetiApiError``. This should make it more easy to handle Ganeti
1099
errors.
1100

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

    
1105
The QA scripts now depend on Python 2.5 or above (the main code base
1106
still works with Python 2.4).
1107

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

    
1112
A number of bugs has been fixed in the cluster merge tool.
1113

    
1114
``x509`` certification verification (used in import-export) has been
1115
changed to allow the same clock skew as permitted by the cluster
1116
verification. This will remove some rare but hard to diagnose errors in
1117
import-export.
1118

    
1119

    
1120
Version 2.6.0 rc4
1121
-----------------
1122

    
1123
*(Released Thu, 19 Jul 2012)*
1124

    
1125
Very few changes from rc4 to the final release, only bugfixes:
1126

    
1127
- integrated fixes from release 2.5.2 (fix general boot flag for KVM
1128
  instance, fix CDROM booting for KVM instances)
1129
- fixed node group modification of node parameters
1130
- fixed issue in LUClusterVerifyGroup with multi-group clusters
1131
- fixed generation of bash completion to ensure a stable ordering
1132
- fixed a few typos
1133

    
1134

    
1135
Version 2.6.0 rc3
1136
-----------------
1137

    
1138
*(Released Fri, 13 Jul 2012)*
1139

    
1140
Third release candidate for 2.6. The following changes were done from
1141
rc3 to rc4:
1142

    
1143
- Fixed ``UpgradeConfig`` w.r.t. to disk parameters on disk objects.
1144
- Fixed an inconsistency in the LUXI protocol with the provided
1145
  arguments (NOT backwards compatible)
1146
- Fixed a bug with node groups ipolicy where ``min`` was greater than
1147
  the cluster ``std`` value
1148
- Implemented a new ``gnt-node list-drbd`` call to list DRBD minors for
1149
  easier instance debugging on nodes (requires ``hconfd`` to work)
1150

    
1151

    
1152
Version 2.6.0 rc2
1153
-----------------
1154

    
1155
*(Released Tue, 03 Jul 2012)*
1156

    
1157
Second release candidate for 2.6. The following changes were done from
1158
rc2 to rc3:
1159

    
1160
- Fixed ``gnt-cluster verify`` regarding ``master-ip-script`` on non
1161
  master candidates
1162
- Fixed a RAPI regression on missing beparams/memory
1163
- Fixed redistribution of files on offline nodes
1164
- Added possibility to run activate-disks even though secondaries are
1165
  offline. With this change it relaxes also the strictness on some other
1166
  commands which use activate disks internally:
1167
  * ``gnt-instance start|reboot|rename|backup|export``
1168
- Made it possible to remove safely an instance if its secondaries are
1169
  offline
1170
- Made it possible to reinstall even though secondaries are offline
1171

    
1172

    
1173
Version 2.6.0 rc1
1174
-----------------
1175

    
1176
*(Released Mon, 25 Jun 2012)*
1177

    
1178
First release candidate for 2.6. The following changes were done from
1179
rc1 to rc2:
1180

    
1181
- Fixed bugs with disk parameters and ``rbd`` templates as well as
1182
  ``instance_os_add``
1183
- Made ``gnt-instance modify`` more consistent regarding new NIC/Disk
1184
  behaviour. It supports now the modify operation
1185
- ``hcheck`` implemented to analyze cluster health and possibility of
1186
  improving health by rebalance
1187
- ``hbal`` has been improved in dealing with split instances
1188

    
1189

    
1190
Version 2.6.0 beta2
1191
-------------------
1192

    
1193
*(Released Mon, 11 Jun 2012)*
1194

    
1195
Second beta release of 2.6. The following changes were done from beta2
1196
to rc1:
1197

    
1198
- Fixed ``daemon-util`` with non-root user models
1199
- Fixed creation of plain instances with ``--no-wait-for-sync``
1200
- Fix wrong iv_names when running ``cfgupgrade``
1201
- Export more information in RAPI group queries
1202
- Fixed bug when changing instance network interfaces
1203
- Extended burnin to do NIC changes
1204
- query: Added ``<``, ``>``, ``<=``, ``>=`` comparison operators
1205
- Changed default for DRBD barriers
1206
- Fixed DRBD error reporting for syncer rate
1207
- Verify the options on disk parameters
1208

    
1209
And of course various fixes to documentation and improved unittests and
1210
QA.
1211

    
1212

    
1213
Version 2.6.0 beta1
1214
-------------------
1215

    
1216
*(Released Wed, 23 May 2012)*
1217

    
1218
First beta release of 2.6. The following changes were done from beta1 to
1219
beta2:
1220

    
1221
- integrated patch for distributions without ``start-stop-daemon``
1222
- adapted example init.d script to work on Fedora
1223
- fixed log handling in Haskell daemons
1224
- adapted checks in the watcher for pycurl linked against libnss
1225
- add partial support for ``xl`` instead of ``xm`` for Xen
1226
- fixed a type issue in cluster verification
1227
- fixed ssconf handling in the Haskell code (was breaking confd in IPv6
1228
  clusters)
1229

    
1230
Plus integrated fixes from the 2.5 branch:
1231

    
1232
- fixed ``kvm-ifup`` to use ``/bin/bash``
1233
- fixed parallel build failures
1234
- KVM live migration when using a custom keymap
1235

    
1236

    
1237
Version 2.5.2
1238
-------------
1239

    
1240
*(Released Tue, 24 Jul 2012)*
1241

    
1242
A small bugfix release, with no new features:
1243

    
1244
- fixed bash-isms in kvm-ifup, for compatibility with systems which use a
1245
  different default shell (e.g. Debian, Ubuntu)
1246
- fixed KVM startup and live migration with a custom keymap (fixes Issue
1247
  243 and Debian bug #650664)
1248
- fixed compatibility with KVM versions that don't support multiple boot
1249
  devices (fixes Issue 230 and Debian bug #624256)
1250

    
1251
Additionally, a few fixes were done to the build system (fixed parallel
1252
build failures) and to the unittests (fixed race condition in test for
1253
FileID functions, and the default enable/disable mode for QA test is now
1254
customisable).
1255

    
1256

    
1257
Version 2.5.1
1258
-------------
1259

    
1260
*(Released Fri, 11 May 2012)*
1261

    
1262
A small bugfix release.
1263

    
1264
The main issues solved are on the topic of compatibility with newer LVM
1265
releases:
1266

    
1267
- fixed parsing of ``lv_attr`` field
1268
- adapted to new ``vgreduce --removemissing`` behaviour where sometimes
1269
  the ``--force`` flag is needed
1270

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

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

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

    
1283
The fix for issue 201 (Preserve bridge MTU in KVM ifup script) was
1284
integrated into this release.
1285

    
1286
Finally, a few other miscellaneous changes were done (no new features,
1287
just small improvements):
1288

    
1289
- Fix ``gnt-group --help`` display
1290
- Fix hardcoded Xen kernel path
1291
- Fix grow-disk handling of invalid units
1292
- Update synopsis for ``gnt-cluster repair-disk-sizes``
1293
- Accept both PUT and POST in noded (makes future upgrade to 2.6 easier)
1294

    
1295

    
1296
Version 2.5.0
1297
-------------
1298

    
1299
*(Released Thu, 12 Apr 2012)*
1300

    
1301
Incompatible/important changes and bugfixes
1302
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1303

    
1304
- The default of the ``/2/instances/[instance_name]/rename`` RAPI
1305
  resource's ``ip_check`` parameter changed from ``True`` to ``False``
1306
  to match the underlying LUXI interface.
1307
- The ``/2/nodes/[node_name]/evacuate`` RAPI resource was changed to use
1308
  body parameters, see :doc:`RAPI documentation <rapi>`. The server does
1309
  not maintain backwards-compatibility as the underlying operation
1310
  changed in an incompatible way. The RAPI client can talk to old
1311
  servers, but it needs to be told so as the return value changed.
1312
- When creating file-based instances via RAPI, the ``file_driver``
1313
  parameter no longer defaults to ``loop`` and must be specified.
1314
- The deprecated ``bridge`` NIC parameter is no longer supported. Use
1315
  ``link`` instead.
1316
- Support for the undocumented and deprecated RAPI instance creation
1317
  request format version 0 has been dropped. Use version 1, supported
1318
  since Ganeti 2.1.3 and :doc:`documented <rapi>`, instead.
1319
- Pyparsing 1.4.6 or above is required, see :doc:`installation
1320
  documentation <install>`.
1321
- The "cluster-verify" hooks are now executed per group by the
1322
  ``OP_CLUSTER_VERIFY_GROUP`` opcode. This maintains the same behavior
1323
  if you just run ``gnt-cluster verify``, which generates one opcode per
1324
  group.
1325
- The environment as passed to the OS scripts is cleared, and thus no
1326
  environment variables defined in the node daemon's environment will be
1327
  inherited by the scripts.
1328
- The :doc:`iallocator <iallocator>` mode ``multi-evacuate`` has been
1329
  deprecated.
1330
- :doc:`New iallocator modes <design-multi-reloc>` have been added to
1331
  support operations involving multiple node groups.
1332
- Offline nodes are ignored when failing over an instance.
1333
- Support for KVM version 1.0, which changed the version reporting format
1334
  from 3 to 2 digits.
1335
- TCP/IP ports used by DRBD disks are returned to a pool upon instance
1336
  removal.
1337
- ``Makefile`` is now compatible with Automake 1.11.2
1338
- Includes all bugfixes made in the 2.4 series
1339

    
1340
New features
1341
~~~~~~~~~~~~
1342

    
1343
- The ganeti-htools project has been merged into the ganeti-core source
1344
  tree and will be built as part of Ganeti (see :doc:`install-quick`).
1345
- Implemented support for :doc:`shared storage <design-shared-storage>`.
1346
- Add support for disks larger than 2 TB in ``lvmstrap`` by supporting
1347
  GPT-style partition tables (requires `parted
1348
  <http://www.gnu.org/s/parted/>`_).
1349
- Added support for floppy drive and 2nd CD-ROM drive in KVM hypervisor.
1350
- Allowed adding tags on instance creation.
1351
- Export instance tags to hooks (``INSTANCE_TAGS``, see :doc:`hooks`)
1352
- Allow instances to be started in a paused state, enabling the user to
1353
  see the complete console output on boot using the console.
1354
- Added new hypervisor flag to control default reboot behaviour
1355
  (``reboot_behavior``).
1356
- Added support for KVM keymaps (hypervisor parameter ``keymap``).
1357
- Improved out-of-band management support:
1358

    
1359
  - Added ``gnt-node health`` command reporting the health status of
1360
    nodes.
1361
  - Added ``gnt-node power`` command to manage power status of nodes.
1362
  - Added command for emergency power-off (EPO), ``gnt-cluster epo``.
1363

    
1364
- Instance migration can fall back to failover if instance is not
1365
  running.
1366
- Filters can be used when listing nodes, instances, groups and locks;
1367
  see :manpage:`ganeti(7)` manpage.
1368
- Added post-execution status as variables to :doc:`hooks <hooks>`
1369
  environment.
1370
- Instance tags are exported/imported together with the instance.
1371
- When given an explicit job ID, ``gnt-job info`` will work for archived
1372
  jobs.
1373
- Jobs can define dependencies on other jobs (not yet supported via
1374
  RAPI or command line, but used by internal commands and usable via
1375
  LUXI).
1376

    
1377
  - Lock monitor (``gnt-debug locks``) shows jobs waiting for
1378
    dependencies.
1379

    
1380
- Instance failover is now available as a RAPI resource
1381
  (``/2/instances/[instance_name]/failover``).
1382
- ``gnt-instance info`` defaults to static information if primary node
1383
  is offline.
1384
- Opcodes have a new ``comment`` attribute.
1385
- Added basic SPICE support to KVM hypervisor.
1386
- ``tools/ganeti-listrunner`` allows passing of arguments to executable.
1387

    
1388
Node group improvements
1389
~~~~~~~~~~~~~~~~~~~~~~~
1390

    
1391
- ``gnt-cluster verify`` has been modified to check groups separately,
1392
  thereby improving performance.
1393
- Node group support has been added to ``gnt-cluster verify-disks``,
1394
  which now operates per node group.
1395
- Watcher has been changed to work better with node groups.
1396

    
1397
  - One process and state file per node group.
1398
  - Slow watcher in one group doesn't block other group's watcher.
1399

    
1400
- Added new command, ``gnt-group evacuate``, to move all instances in a
1401
  node group to other groups.
1402
- Added ``gnt-instance change-group`` to move an instance to another
1403
  node group.
1404
- ``gnt-cluster command`` and ``gnt-cluster copyfile`` now support
1405
  per-group operations.
1406
- Node groups can be tagged.
1407
- Some operations switch from an exclusive to a shared lock as soon as
1408
  possible.
1409
- Instance's primary and secondary nodes' groups are now available as
1410
  query fields (``pnode.group``, ``pnode.group.uuid``, ``snodes.group``
1411
  and ``snodes.group.uuid``).
1412

    
1413
Misc
1414
~~~~
1415

    
1416
- Numerous updates to documentation and manpages.
1417

    
1418
  - :doc:`RAPI <rapi>` documentation now has detailed parameter
1419
    descriptions.
1420
  - Some opcode/job results are now also documented, see :doc:`RAPI
1421
    <rapi>`.
1422

    
1423
- A lockset's internal lock is now also visible in lock monitor.
1424
- Log messages from job queue workers now contain information about the
1425
  opcode they're processing.
1426
- ``gnt-instance console`` no longer requires the instance lock.
1427
- A short delay when waiting for job changes reduces the number of LUXI
1428
  requests significantly.
1429
- DRBD metadata volumes are overwritten with zeros during disk creation.
1430
- Out-of-band commands no longer acquire the cluster lock in exclusive
1431
  mode.
1432
- ``devel/upload`` now uses correct permissions for directories.
1433

    
1434

    
1435
Version 2.5.0 rc6
1436
-----------------
1437

    
1438
*(Released Fri, 23 Mar 2012)*
1439

    
1440
This was the sixth release candidate of the 2.5 series.
1441

    
1442

    
1443
Version 2.5.0 rc5
1444
-----------------
1445

    
1446
*(Released Mon, 9 Jan 2012)*
1447

    
1448
This was the fifth release candidate of the 2.5 series.
1449

    
1450

    
1451
Version 2.5.0 rc4
1452
-----------------
1453

    
1454
*(Released Thu, 27 Oct 2011)*
1455

    
1456
This was the fourth release candidate of the 2.5 series.
1457

    
1458

    
1459
Version 2.5.0 rc3
1460
-----------------
1461

    
1462
*(Released Wed, 26 Oct 2011)*
1463

    
1464
This was the third release candidate of the 2.5 series.
1465

    
1466

    
1467
Version 2.5.0 rc2
1468
-----------------
1469

    
1470
*(Released Tue, 18 Oct 2011)*
1471

    
1472
This was the second release candidate of the 2.5 series.
1473

    
1474

    
1475
Version 2.5.0 rc1
1476
-----------------
1477

    
1478
*(Released Tue, 4 Oct 2011)*
1479

    
1480
This was the first release candidate of the 2.5 series.
1481

    
1482

    
1483
Version 2.5.0 beta3
1484
-------------------
1485

    
1486
*(Released Wed, 31 Aug 2011)*
1487

    
1488
This was the third beta release of the 2.5 series.
1489

    
1490

    
1491
Version 2.5.0 beta2
1492
-------------------
1493

    
1494
*(Released Mon, 22 Aug 2011)*
1495

    
1496
This was the second beta release of the 2.5 series.
1497

    
1498

    
1499
Version 2.5.0 beta1
1500
-------------------
1501

    
1502
*(Released Fri, 12 Aug 2011)*
1503

    
1504
This was the first beta release of the 2.5 series.
1505

    
1506

    
1507
Version 2.4.5
1508
-------------
1509

    
1510
*(Released Thu, 27 Oct 2011)*
1511

    
1512
- Fixed bug when parsing command line parameter values ending in
1513
  backslash
1514
- Fixed assertion error after unclean master shutdown
1515
- Disable HTTP client pool for RPC, significantly reducing memory usage
1516
  of master daemon
1517
- Fixed queue archive creation with wrong permissions
1518

    
1519

    
1520
Version 2.4.4
1521
-------------
1522

    
1523
*(Released Tue, 23 Aug 2011)*
1524

    
1525
Small bug-fixes:
1526

    
1527
- Fixed documentation for importing with ``--src-dir`` option
1528
- Fixed a bug in ``ensure-dirs`` with queue/archive permissions
1529
- Fixed a parsing issue with DRBD 8.3.11 in the Linux kernel
1530

    
1531

    
1532
Version 2.4.3
1533
-------------
1534

    
1535
*(Released Fri, 5 Aug 2011)*
1536

    
1537
Many bug-fixes and a few small features:
1538

    
1539
- Fixed argument order in ``ReserveLV`` and ``ReserveMAC`` which caused
1540
  issues when you tried to add an instance with two MAC addresses in one
1541
  request
1542
- KVM: fixed per-instance stored UID value
1543
- KVM: configure bridged NICs at migration start
1544
- KVM: Fix a bug where instance will not start with never KVM versions
1545
  (>= 0.14)
1546
- Added OS search path to ``gnt-cluster info``
1547
- Fixed an issue with ``file_storage_dir`` where you were forced to
1548
  provide an absolute path, but the documentation states it is a
1549
  relative path, the documentation was right
1550
- Added a new parameter to instance stop/start called ``--no-remember``
1551
  that will make the state change to not be remembered
1552
- Implemented ``no_remember`` at RAPI level
1553
- Improved the documentation
1554
- Node evacuation: don't call IAllocator if node is already empty
1555
- Fixed bug in DRBD8 replace disks on current nodes
1556
- Fixed bug in recreate-disks for DRBD instances
1557
- Moved assertion checking locks in ``gnt-instance replace-disks``
1558
  causing it to abort with not owning the right locks for some situation
1559
- Job queue: Fixed potential race condition when cancelling queued jobs
1560
- Fixed off-by-one bug in job serial generation
1561
- ``gnt-node volumes``: Fix instance names
1562
- Fixed aliases in bash completion
1563
- Fixed a bug in reopening log files after being sent a SIGHUP
1564
- Added a flag to burnin to allow specifying VCPU count
1565
- Bugfixes to non-root Ganeti configuration
1566

    
1567

    
1568
Version 2.4.2
1569
-------------
1570

    
1571
*(Released Thu, 12 May 2011)*
1572

    
1573
Many bug-fixes and a few new small features:
1574

    
1575
- Fixed a bug related to log opening failures
1576
- Fixed a bug in instance listing with orphan instances
1577
- Fixed a bug which prevented resetting the cluster-level node parameter
1578
  ``oob_program`` to the default
1579
- Many fixes related to the ``cluster-merge`` tool
1580
- Fixed a race condition in the lock monitor, which caused failures
1581
  during (at least) creation of many instances in parallel
1582
- Improved output for gnt-job info
1583
- Removed the quiet flag on some ssh calls which prevented debugging
1584
  failures
1585
- Improved the N+1 failure messages in cluster verify by actually
1586
  showing the memory values (needed and available)
1587
- Increased lock attempt timeouts so that when executing long operations
1588
  (e.g. DRBD replace-disks) other jobs do not enter 'blocking acquire'
1589
  too early and thus prevent the use of the 'fair' mechanism
1590
- Changed instance query data (``gnt-instance info``) to not acquire
1591
  locks unless needed, thus allowing its use on locked instance if only
1592
  static information is asked for
1593
- Improved behaviour with filesystems that do not support rename on an
1594
  opened file
1595
- Fixed the behaviour of ``prealloc_wipe_disks`` cluster parameter which
1596
  kept locks on all nodes during the wipe, which is unneeded
1597
- Fixed ``gnt-watcher`` handling of errors during hooks execution
1598
- Fixed bug in ``prealloc_wipe_disks`` with small disk sizes (less than
1599
  10GiB) which caused the wipe to fail right at the end in some cases
1600
- Fixed master IP activation when doing master failover with no-voting
1601
- Fixed bug in ``gnt-node add --readd`` which allowed the re-adding of
1602
  the master node itself
1603
- Fixed potential data-loss in under disk full conditions, where Ganeti
1604
  wouldn't check correctly the return code and would consider
1605
  partially-written files 'correct'
1606
- Fixed bug related to multiple VGs and DRBD disk replacing
1607
- Added new disk parameter ``metavg`` that allows placement of the meta
1608
  device for DRBD in a different volume group
1609
- Fixed error handling in the node daemon when the system libc doesn't
1610
  have major number 6 (i.e. if ``libc.so.6`` is not the actual libc)
1611
- Fixed lock release during replace-disks, which kept cluster-wide locks
1612
  when doing disk replaces with an iallocator script
1613
- Added check for missing bridges in cluster verify
1614
- Handle EPIPE errors while writing to the terminal better, so that
1615
  piping the output to e.g. ``less`` doesn't cause a backtrace
1616
- Fixed rare case where a ^C during Luxi calls could have been
1617
  interpreted as server errors, instead of simply terminating
1618
- Fixed a race condition in LUGroupAssignNodes (``gnt-group
1619
  assign-nodes``)
1620
- Added a few more parameters to the KVM hypervisor, allowing a second
1621
  CDROM, custom disk type for CDROMs and a floppy image
1622
- Removed redundant message in instance rename when the name is given
1623
  already as a FQDN
1624
- Added option to ``gnt-instance recreate-disks`` to allow creating the
1625
  disks on new nodes, allowing recreation when the original instance
1626
  nodes are completely gone
1627
- Added option when converting disk templates to DRBD to skip waiting
1628
  for the resync, in order to make the instance available sooner
1629
- Added two new variables to the OS scripts environment (containing the
1630
  instance's nodes)
1631
- Made the root_path and optional parameter for the xen-pvm hypervisor,
1632
  to allow use of ``pvgrub`` as bootloader
1633
- Changed the instance memory modifications to only check out-of-memory
1634
  conditions on memory increases, and turned the secondary node warnings
1635
  into errors (they can still be overridden via ``--force``)
1636
- Fixed the handling of a corner case when the Python installation gets
1637
  corrupted (e.g. a bad disk) while ganeti-noded is running and we try
1638
  to execute a command that doesn't exist
1639
- Fixed a bug in ``gnt-instance move`` (LUInstanceMove) when the primary
1640
  node of the instance returned failures during instance shutdown; this
1641
  adds the option ``--ignore-consistency`` to gnt-instance move
1642

    
1643
And as usual, various improvements to the error messages, documentation
1644
and man pages.
1645

    
1646

    
1647
Version 2.4.1
1648
-------------
1649

    
1650
*(Released Wed, 09 Mar 2011)*
1651

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

    
1655
The release fixes that bug (nothing else changed).
1656

    
1657

    
1658
Version 2.4.0
1659
-------------
1660

    
1661
*(Released Mon, 07 Mar 2011)*
1662

    
1663
Final 2.4.0 release. Just a few small fixes:
1664

    
1665
- Fixed RAPI node evacuate
1666
- Fixed the kvm-ifup script
1667
- Fixed internal error handling for special job cases
1668
- Updated man page to specify the escaping feature for options
1669

    
1670

    
1671
Version 2.4.0 rc3
1672
-----------------
1673

    
1674
*(Released Mon, 28 Feb 2011)*
1675

    
1676
A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
1677
that this feature wiped the disks of the wrong instance, leading to loss
1678
of data.
1679

    
1680
Other changes:
1681

    
1682
- Fixed title of query field containing instance name
1683
- Expanded the glossary in the documentation
1684
- Fixed one unittest (internal issue)
1685

    
1686

    
1687
Version 2.4.0 rc2
1688
-----------------
1689

    
1690
*(Released Mon, 21 Feb 2011)*
1691

    
1692
A number of bug fixes plus just a couple functionality changes.
1693

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

    
1699
- Offline resource: ``*``
1700
- Unavailable/not applicable: ``-``
1701
- Data missing (RPC failure): ``?``
1702
- Unknown field: ``??``
1703

    
1704
Another user-visible change is the addition of ``--force-join`` to
1705
``gnt-node add``.
1706

    
1707
As for bug fixes:
1708

    
1709
- ``tools/cluster-merge`` has seen many fixes and is now enabled again
1710
- Fixed regression in RAPI/instance reinstall where all parameters were
1711
  required (instead of optional)
1712
- Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
1713
- Fixed iallocator usage (offline nodes were not considered offline)
1714
- Fixed ``gnt-node list`` with respect to non-vm_capable nodes
1715
- Fixed hypervisor and OS parameter validation with respect to
1716
  non-vm_capable nodes
1717
- Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
1718
  cosmetic)
1719
- Fixed ``tools/listrunner`` with respect to agent-based usage
1720

    
1721

    
1722
Version 2.4.0 rc1
1723
-----------------
1724

    
1725
*(Released Fri,  4 Feb 2011)*
1726

    
1727
Many changes and fixes since the beta1 release. While there were some
1728
internal changes, the code has been mostly stabilised for the RC
1729
release.
1730

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

    
1735
Note: the 2.4 and up versions of Ganeti are not compatible with the
1736
0.2.x branch of ganeti-htools. You need to upgrade to
1737
ganeti-htools-0.3.0 (or later).
1738

    
1739
Regressions fixed from 2.3
1740
~~~~~~~~~~~~~~~~~~~~~~~~~~
1741

    
1742
- Fixed the ``gnt-cluster verify-disks`` command
1743
- Made ``gnt-cluster verify-disks`` work in parallel (as opposed to
1744
  serially on nodes)
1745
- Fixed disk adoption breakage
1746
- Fixed wrong headers in instance listing for field aliases
1747

    
1748
Other bugs fixed
1749
~~~~~~~~~~~~~~~~
1750

    
1751
- Fixed corner case in KVM handling of NICs
1752
- Fixed many cases of wrong handling of non-vm_capable nodes
1753
- Fixed a bug where a missing instance symlink was not possible to
1754
  recreate with any ``gnt-*`` command (now ``gnt-instance
1755
  activate-disks`` does it)
1756
- Fixed the volume group name as reported by ``gnt-cluster
1757
  verify-disks``
1758
- Increased timeouts for the import-export code, hopefully leading to
1759
  fewer aborts due network or instance timeouts
1760
- Fixed bug in ``gnt-node list-storage``
1761
- Fixed bug where not all daemons were started on cluster
1762
  initialisation, but only at the first watcher run
1763
- Fixed many bugs in the OOB implementation
1764
- Fixed watcher behaviour in presence of instances with offline
1765
  secondaries
1766
- Fixed instance list output for instances running on the wrong node
1767
- a few fixes to the cluster-merge tool, but it still cannot merge
1768
  multi-node groups (currently it is not recommended to use this tool)
1769

    
1770

    
1771
Improvements
1772
~~~~~~~~~~~~
1773

    
1774
- Improved network configuration for the KVM hypervisor
1775
- Added e1000 as a supported NIC for Xen-HVM
1776
- Improved the lvmstrap tool to also be able to use partitions, as
1777
  opposed to full disks
1778
- Improved speed of disk wiping (the cluster parameter
1779
  ``prealloc_wipe_disks``, so that it has a low impact on the total time
1780
  of instance creations
1781
- Added documentation for the OS parameters
1782
- Changed ``gnt-instance deactivate-disks`` so that it can work if the
1783
  hypervisor is not responding
1784
- Added display of blacklisted and hidden OS information in
1785
  ``gnt-cluster info``
1786
- Extended ``gnt-cluster verify`` to also validate hypervisor, backend,
1787
  NIC and node parameters, which might create problems with currently
1788
  invalid (but undetected) configuration files, but prevents validation
1789
  failures when unrelated parameters are modified
1790
- Changed cluster initialisation to wait for the master daemon to become
1791
  available
1792
- Expanded the RAPI interface:
1793

    
1794
  - Added config redistribution resource
1795
  - Added activation/deactivation of instance disks
1796
  - Added export of console information
1797

    
1798
- Implemented log file reopening on SIGHUP, which allows using
1799
  logrotate(8) for the Ganeti log files
1800
- Added a basic OOB helper script as an example
1801

    
1802

    
1803
Version 2.4.0 beta1
1804
-------------------
1805

    
1806
*(Released Fri, 14 Jan 2011)*
1807

    
1808
User-visible
1809
~~~~~~~~~~~~
1810

    
1811
- Fixed timezone issues when formatting timestamps
1812
- Added support for node groups, available via ``gnt-group`` and other
1813
  commands
1814
- Added out-of-band framework and management, see :doc:`design
1815
  document <design-oob>`
1816
- Removed support for roman numbers from ``gnt-node list`` and
1817
  ``gnt-instance list``.
1818
- Allowed modification of master network interface via ``gnt-cluster
1819
  modify --master-netdev``
1820
- Accept offline secondaries while shutting down instance disks
1821
- Added ``blockdev_prefix`` parameter to Xen PVM and HVM hypervisors
1822
- Added support for multiple LVM volume groups
1823
- Avoid sorting nodes for ``gnt-node list`` if specific nodes are
1824
  requested
1825
- Added commands to list available fields:
1826

    
1827
  - ``gnt-node list-fields``
1828
  - ``gnt-group list-fields``
1829
  - ``gnt-instance list-fields``
1830

    
1831
- Updated documentation and man pages
1832

    
1833
Integration
1834
~~~~~~~~~~~
1835

    
1836
- Moved ``rapi_users`` file into separate directory, now named
1837
  ``.../ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
1838
  symlink
1839
- Added new tool for running commands on many machines,
1840
  ``tools/ganeti-listrunner``
1841
- Implemented more verbose result in ``OpInstanceConsole`` opcode, also
1842
  improving the ``gnt-instance console`` output
1843
- Allowed customisation of disk index separator at ``configure`` time
1844
- Export node group allocation policy to :doc:`iallocator <iallocator>`
1845
- Added support for non-partitioned md disks in ``lvmstrap``
1846
- Added script to gracefully power off KVM instances
1847
- Split ``utils`` module into smaller parts
1848
- Changed query operations to return more detailed information, e.g.
1849
  whether an information is unavailable due to an offline node. To use
1850
  this new functionality, the LUXI call ``Query`` must be used. Field
1851
  information is now stored by the master daemon and can be retrieved
1852
  using ``QueryFields``. Instances, nodes and groups can also be queried
1853
  using the new opcodes ``OpQuery`` and ``OpQueryFields`` (not yet
1854
  exposed via RAPI). The following commands make use of this
1855
  infrastructure change:
1856

    
1857
  - ``gnt-group list``
1858
  - ``gnt-group list-fields``
1859
  - ``gnt-node list``
1860
  - ``gnt-node list-fields``
1861
  - ``gnt-instance list``
1862
  - ``gnt-instance list-fields``
1863
  - ``gnt-debug locks``
1864

    
1865
Remote API
1866
~~~~~~~~~~
1867

    
1868
- New RAPI resources (see :doc:`rapi`):
1869

    
1870
  - ``/2/modify``
1871
  - ``/2/groups``
1872
  - ``/2/groups/[group_name]``
1873
  - ``/2/groups/[group_name]/assign-nodes``
1874
  - ``/2/groups/[group_name]/modify``
1875
  - ``/2/groups/[group_name]/rename``
1876
  - ``/2/instances/[instance_name]/disk/[disk_index]/grow``
1877

    
1878
- RAPI changes:
1879

    
1880
  - Implemented ``no_install`` for instance creation
1881
  - Implemented OS parameters for instance reinstallation, allowing
1882
    use of special settings on reinstallation (e.g. for preserving data)
1883

    
1884
Misc
1885
~~~~
1886

    
1887
- Added IPv6 support in import/export
1888
- Pause DRBD synchronization while wiping disks on instance creation
1889
- Updated unittests and QA scripts
1890
- Improved network parameters passed to KVM
1891
- Converted man pages from docbook to reStructuredText
1892

    
1893

    
1894
Version 2.3.1
1895
-------------
1896

    
1897
*(Released Mon, 20 Dec 2010)*
1898

    
1899
Released version 2.3.1~rc1 without any changes.
1900

    
1901

    
1902
Version 2.3.1 rc1
1903
-----------------
1904

    
1905
*(Released Wed, 1 Dec 2010)*
1906

    
1907
- impexpd: Disable OpenSSL compression in socat if possible (backport
1908
  from master, commit e90739d625b, see :doc:`installation guide
1909
  <install-quick>` for details)
1910
- Changed unittest coverage report to exclude test scripts
1911
- Added script to check version format
1912

    
1913

    
1914
Version 2.3.0
1915
-------------
1916

    
1917
*(Released Wed, 1 Dec 2010)*
1918

    
1919
Released version 2.3.0~rc1 without any changes.
1920

    
1921

    
1922
Version 2.3.0 rc1
1923
-----------------
1924

    
1925
*(Released Fri, 19 Nov 2010)*
1926

    
1927
A number of bugfixes and documentation updates:
1928

    
1929
- Update ganeti-os-interface documentation
1930
- Fixed a bug related to duplicate MACs or similar items which should be
1931
  unique
1932
- Fix breakage in OS state modify
1933
- Reinstall instance: disallow offline secondaries (fixes bug related to
1934
  OS changing but reinstall failing)
1935
- plus all the other fixes between 2.2.1 and 2.2.2
1936

    
1937

    
1938
Version 2.3.0 rc0
1939
-----------------
1940

    
1941
*(Released Tue, 2 Nov 2010)*
1942

    
1943
- Fixed clearing of the default iallocator using ``gnt-cluster modify``
1944
- Fixed master failover race with watcher
1945
- Fixed a bug in ``gnt-node modify`` which could lead to an inconsistent
1946
  configuration
1947
- Accept previously stopped instance for export with instance removal
1948
- Simplify and extend the environment variables for instance OS scripts
1949
- Added new node flags, ``master_capable`` and ``vm_capable``
1950
- Added optional instance disk wiping prior during allocation. This is a
1951
  cluster-wide option and can be set/modified using
1952
  ``gnt-cluster {init,modify} --prealloc-wipe-disks``.
1953
- Added IPv6 support, see :doc:`design document <design-2.3>` and
1954
  :doc:`install-quick`
1955
- Added a new watcher option (``--ignore-pause``)
1956
- Added option to ignore offline node on instance start/stop
1957
  (``--ignore-offline``)
1958
- Allow overriding OS parameters with ``gnt-instance reinstall``
1959
- Added ability to change node's secondary IP address using ``gnt-node
1960
  modify``
1961
- Implemented privilege separation for all daemons except
1962
  ``ganeti-noded``, see ``configure`` options
1963
- Complain if an instance's disk is marked faulty in ``gnt-cluster
1964
  verify``
1965
- Implemented job priorities (see ``ganeti(7)`` manpage)
1966
- Ignore failures while shutting down instances during failover from
1967
  offline node
1968
- Exit daemon's bootstrap process only once daemon is ready
1969
- Export more information via ``LUInstanceQuery``/remote API
1970
- Improved documentation, QA and unittests
1971
- RAPI daemon now watches ``rapi_users`` all the time and doesn't need a
1972
  restart if the file was created or changed
1973
- Added LUXI protocol version sent with each request and response,
1974
  allowing detection of server/client mismatches
1975
- Moved the Python scripts among gnt-* and ganeti-* into modules
1976
- Moved all code related to setting up SSH to an external script,
1977
  ``setup-ssh``
1978
- Infrastructure changes for node group support in future versions
1979

    
1980

    
1981
Version 2.2.2
1982
-------------
1983

    
1984
*(Released Fri, 19 Nov 2010)*
1985

    
1986
A few small bugs fixed, and some improvements to the build system:
1987

    
1988
- Fix documentation regarding conversion to drbd
1989
- Fix validation of parameters in cluster modify (``gnt-cluster modify
1990
  -B``)
1991
- Fix error handling in node modify with multiple changes
1992
- Allow remote imports without checked names
1993

    
1994

    
1995
Version 2.2.1
1996
-------------
1997

    
1998
*(Released Tue, 19 Oct 2010)*
1999

    
2000
- Disable SSL session ID cache in RPC client
2001

    
2002

    
2003
Version 2.2.1 rc1
2004
-----------------
2005

    
2006
*(Released Thu, 14 Oct 2010)*
2007

    
2008
- Fix interaction between Curl/GnuTLS and the Python's HTTP server
2009
  (thanks Apollon Oikonomopoulos!), finally allowing the use of Curl
2010
  with GnuTLS
2011
- Fix problems with interaction between Curl and Python's HTTP server,
2012
  resulting in increased speed in many RPC calls
2013
- Improve our release script to prevent breakage with older aclocal and
2014
  Python 2.6
2015

    
2016

    
2017
Version 2.2.1 rc0
2018
-----------------
2019

    
2020
*(Released Thu, 7 Oct 2010)*
2021

    
2022
- Fixed issue 125, replace hardcoded "xenvg" in ``gnt-cluster`` with
2023
  value retrieved from master
2024
- Added support for blacklisted or hidden OS definitions
2025
- Added simple lock monitor (accessible via (``gnt-debug locks``)
2026
- Added support for -mem-path in KVM hypervisor abstraction layer
2027
- Allow overriding instance parameters in tool for inter-cluster
2028
  instance moves (``tools/move-instance``)
2029
- Improved opcode summaries (e.g. in ``gnt-job list``)
2030
- Improve consistency of OS listing by sorting it
2031
- Documentation updates
2032

    
2033

    
2034
Version 2.2.0.1
2035
---------------
2036

    
2037
*(Released Fri, 8 Oct 2010)*
2038

    
2039
- Rebuild with a newer autotools version, to fix python 2.6 compatibility
2040

    
2041

    
2042
Version 2.2.0
2043
-------------
2044

    
2045
*(Released Mon, 4 Oct 2010)*
2046

    
2047
- Fixed regression in ``gnt-instance rename``
2048

    
2049

    
2050
Version 2.2.0 rc2
2051
-----------------
2052

    
2053
*(Released Wed, 22 Sep 2010)*
2054

    
2055
- Fixed OS_VARIANT variable for OS scripts
2056
- Fixed cluster tag operations via RAPI
2057
- Made ``setup-ssh`` exit with non-zero code if an error occurred
2058
- Disabled RAPI CA checks in watcher
2059

    
2060

    
2061
Version 2.2.0 rc1
2062
-----------------
2063

    
2064
*(Released Mon, 23 Aug 2010)*
2065

    
2066
- Support DRBD versions of the format "a.b.c.d"
2067
- Updated manpages
2068
- Re-introduce support for usage from multiple threads in RAPI client
2069
- Instance renames and modify via RAPI
2070
- Work around race condition between processing and archival in job
2071
  queue
2072
- Mark opcodes following failed one as failed, too
2073
- Job field ``lock_status`` was removed due to difficulties making it
2074
  work with the changed job queue in Ganeti 2.2; a better way to monitor
2075
  locks is expected for a later 2.2.x release
2076
- Fixed dry-run behaviour with many commands
2077
- Support ``ssh-agent`` again when adding nodes
2078
- Many additional bugfixes
2079

    
2080

    
2081
Version 2.2.0 rc0
2082
-----------------
2083

    
2084
*(Released Fri, 30 Jul 2010)*
2085

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

    
2095
  python -c 'import pycurl; print pycurl.version'
2096

    
2097
can be used to determine the libraries PycURL and cURL are linked
2098
against.
2099

    
2100
Other significant changes:
2101

    
2102
- Rewrote much of the internals of the job queue, in order to achieve
2103
  better parallelism; this decouples job query operations from the job
2104
  processing, and it should allow much nicer behaviour of the master
2105
  daemon under load, and it also has uncovered some long-standing bugs
2106
  related to the job serialisation (now fixed)
2107
- Added a default iallocator setting to the cluster parameters,
2108
  eliminating the need to always pass nodes or an iallocator for
2109
  operations that require selection of new node(s)
2110
- Added experimental support for the LXC virtualization method
2111
- Added support for OS parameters, which allows the installation of
2112
  instances to pass parameter to OS scripts in order to customise the
2113
  instance
2114
- Added a hypervisor parameter controlling the migration type (live or
2115
  non-live), since hypervisors have various levels of reliability; this
2116
  has renamed the 'live' parameter to 'mode'
2117
- Added a cluster parameter ``reserved_lvs`` that denotes reserved
2118
  logical volumes, meaning that cluster verify will ignore them and not
2119
  flag their presence as errors
2120
- The watcher will now reset the error count for failed instances after
2121
  8 hours, thus allowing self-healing if the problem that caused the
2122
  instances to be down/fail to start has cleared in the meantime
2123
- Added a cluster parameter ``drbd_usermode_helper`` that makes Ganeti
2124
  check for, and warn, if the drbd module parameter ``usermode_helper``
2125
  is not consistent with the cluster-wide setting; this is needed to
2126
  make diagnose easier of failed drbd creations
2127
- Started adding base IPv6 support, but this is not yet
2128
  enabled/available for use
2129
- Rename operations (cluster, instance) will now return the new name,
2130
  which is especially useful if a short name was passed in
2131
- Added support for instance migration in RAPI
2132
- Added a tool to pre-configure nodes for the SSH setup, before joining
2133
  them to the cluster; this will allow in the future a simplified model
2134
  for node joining (but not yet fully enabled in 2.2); this needs the
2135
  paramiko python library
2136
- Fixed handling of name-resolving errors
2137
- Fixed consistency of job results on the error path
2138
- Fixed master-failover race condition when executed multiple times in
2139
  sequence
2140
- Fixed many bugs related to the job queue (mostly introduced during the
2141
  2.2 development cycle, so not all are impacting 2.1)
2142
- Fixed instance migration with missing disk symlinks
2143
- Fixed handling of unknown jobs in ``gnt-job archive``
2144
- And many other small fixes/improvements
2145

    
2146
Internal changes:
2147

    
2148
- Enhanced both the unittest and the QA coverage
2149
- Switched the opcode validation to a generic model, and extended the
2150
  validation to all opcode parameters
2151
- Changed more parts of the code that write shell scripts to use the
2152
  same class for this
2153
- Switched the master daemon to use the asyncore library for the Luxi
2154
  server endpoint
2155

    
2156

    
2157
Version 2.2.0 beta0
2158
-------------------
2159

    
2160
*(Released Thu, 17 Jun 2010)*
2161

    
2162
- Added tool (``move-instance``) and infrastructure to move instances
2163
  between separate clusters (see :doc:`separate documentation
2164
  <move-instance>` and :doc:`design document <design-2.2>`)
2165
- Added per-request RPC timeout
2166
- RAPI now requires a Content-Type header for requests with a body (e.g.
2167
  ``PUT`` or ``POST``) which must be set to ``application/json`` (see
2168
  :rfc:`2616` (HTTP/1.1), section 7.2.1)
2169
- ``ganeti-watcher`` attempts to restart ``ganeti-rapi`` if RAPI is not
2170
  reachable
2171
- Implemented initial support for running Ganeti daemons as separate
2172
  users, see configure-time flags ``--with-user-prefix`` and
2173
  ``--with-group-prefix`` (only ``ganeti-rapi`` is supported at this
2174
  time)
2175
- Instances can be removed after export (``gnt-backup export
2176
  --remove-instance``)
2177
- Self-signed certificates generated by Ganeti now use a 2048 bit RSA
2178
  key (instead of 1024 bit)
2179
- Added new cluster configuration file for cluster domain secret
2180
- Import/export now use SSL instead of SSH
2181
- Added support for showing estimated time when exporting an instance,
2182
  see the ``ganeti-os-interface(7)`` manpage and look for
2183
  ``EXP_SIZE_FD``
2184

    
2185

    
2186
Version 2.1.8
2187
-------------
2188

    
2189
*(Released Tue, 16 Nov 2010)*
2190

    
2191
Some more bugfixes. Unless critical bugs occur, this will be the last
2192
2.1 release:
2193

    
2194
- Fix case of MAC special-values
2195
- Fix mac checker regex
2196
- backend: Fix typo causing "out of range" error
2197
- Add missing --units in gnt-instance list man page
2198

    
2199

    
2200
Version 2.1.7
2201
-------------
2202

    
2203
*(Released Tue, 24 Aug 2010)*
2204

    
2205
Bugfixes only:
2206
  - Don't ignore secondary node silently on non-mirrored disk templates
2207
    (issue 113)
2208
  - Fix --master-netdev arg name in gnt-cluster(8) (issue 114)
2209
  - Fix usb_mouse parameter breaking with vnc_console (issue 109)
2210
  - Properly document the usb_mouse parameter
2211
  - Fix path in ganeti-rapi(8) (issue 116)
2212
  - Adjust error message when the ganeti user's .ssh directory is
2213
    missing
2214
  - Add same-node-check when changing the disk template to drbd
2215

    
2216

    
2217
Version 2.1.6
2218
-------------
2219

    
2220
*(Released Fri, 16 Jul 2010)*
2221

    
2222
Bugfixes only:
2223
  - Add an option to only select some reboot types during qa/burnin.
2224
    (on some hypervisors consequent reboots are not supported)
2225
  - Fix infrequent race condition in master failover. Sometimes the old
2226
    master ip address would be still detected as up for a short time
2227
    after it was removed, causing failover to fail.
2228
  - Decrease mlockall warnings when the ctypes module is missing. On
2229
    Python 2.4 we support running even if no ctypes module is installed,
2230
    but we were too verbose about this issue.
2231
  - Fix building on old distributions, on which man doesn't have a
2232
    --warnings option.
2233
  - Fix RAPI not to ignore the MAC address on instance creation
2234
  - Implement the old instance creation format in the RAPI client.
2235

    
2236

    
2237
Version 2.1.5
2238
-------------
2239

    
2240
*(Released Thu, 01 Jul 2010)*
2241

    
2242
A small bugfix release:
2243
  - Fix disk adoption: broken by strict --disk option checking in 2.1.4
2244
  - Fix batch-create: broken in the whole 2.1 series due to a lookup on
2245
    a non-existing option
2246
  - Fix instance create: the --force-variant option was ignored
2247
  - Improve pylint 0.21 compatibility and warnings with Python 2.6
2248
  - Fix modify node storage with non-FQDN arguments
2249
  - Fix RAPI client to authenticate under Python 2.6 when used
2250
    for more than 5 requests needing authentication
2251
  - Fix gnt-instance modify -t (storage) giving a wrong error message
2252
    when converting a non-shutdown drbd instance to plain
2253

    
2254

    
2255
Version 2.1.4
2256
-------------
2257

    
2258
*(Released Fri, 18 Jun 2010)*
2259

    
2260
A small bugfix release:
2261

    
2262
  - Fix live migration of KVM instances started with older Ganeti
2263
    versions which had fewer hypervisor parameters
2264
  - Fix gnt-instance grow-disk on down instances
2265
  - Fix an error-reporting bug during instance migration
2266
  - Better checking of the ``--net`` and ``--disk`` values, to avoid
2267
    silently ignoring broken ones
2268
  - Fix an RPC error reporting bug affecting, for example, RAPI client
2269
    users
2270
  - Fix bug triggered by different API version os-es on different nodes
2271
  - Fix a bug in instance startup with custom hvparams: OS level
2272
    parameters would fail to be applied.
2273
  - Fix the RAPI client under Python 2.6 (but more work is needed to
2274
    make it work completely well with OpenSSL)
2275
  - Fix handling of errors when resolving names from DNS
2276

    
2277

    
2278
Version 2.1.3
2279
-------------
2280

    
2281
*(Released Thu, 3 Jun 2010)*
2282

    
2283
A medium sized development cycle. Some new features, and some
2284
fixes/small improvements/cleanups.
2285

    
2286
Significant features
2287
~~~~~~~~~~~~~~~~~~~~
2288

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

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

    
2299
KVM: Add instance chrooting feature. If you use privilege dropping for
2300
your VMs you can also now force them to chroot to an empty directory,
2301
before starting the emulated guest.
2302

    
2303
KVM: Add maximum migration bandwith and maximum downtime tweaking
2304
support (requires a new-enough version of qemu-kvm).
2305

    
2306
Cluster verify will now warn if the master node doesn't have the master
2307
ip configured on it.
2308

    
2309
Add a new (incompatible) instance creation request format to RAPI which
2310
supports all parameters (previously only a subset was supported, and it
2311
wasn't possible to extend the old format to accomodate all the new
2312
features. The old format is still supported, and a client can check for
2313
this feature, before using it, by checking for its presence in the
2314
``features`` RAPI resource.
2315

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

    
2320
Other changes
2321
~~~~~~~~~~~~~
2322

    
2323
As usual many internal code refactorings, documentation updates, and
2324
such. Among others:
2325

    
2326
  - Lots of improvements and cleanups to the experimental Remote API
2327
    (RAPI) client library.
2328
  - A new unit test suite for the core daemon libraries.
2329
  - A fix to creating missing directories makes sure the umask is not
2330
    applied anymore. This enforces the same directory permissions
2331
    everywhere.
2332
  - Better handling terminating daemons with ctrl+c (used when running
2333
    them in debugging mode).
2334
  - Fix a race condition in live migrating a KVM instance, when stat()
2335
    on the old proc status file returned EINVAL, which is an unexpected
2336
    value.
2337
  - Fixed manpage checking with newer man and utf-8 charachters. But now
2338
    you need the en_US.UTF-8 locale enabled to build Ganeti from git.
2339

    
2340

    
2341
Version 2.1.2.1
2342
---------------
2343

    
2344
*(Released Fri, 7 May 2010)*
2345

    
2346
Fix a bug which prevented untagged KVM instances from starting.
2347

    
2348

    
2349
Version 2.1.2
2350
-------------
2351

    
2352
*(Released Fri, 7 May 2010)*
2353

    
2354
Another release with a long development cycle, during which many
2355
different features were added.
2356

    
2357
Significant features
2358
~~~~~~~~~~~~~~~~~~~~
2359

    
2360
The KVM hypervisor now can run the individual instances as non-root, to
2361
reduce the impact of a VM being hijacked due to bugs in the
2362
hypervisor. It is possible to run all instances as a single (non-root)
2363
user, to manually specify a user for each instance, or to dynamically
2364
allocate a user out of a cluster-wide pool to each instance, with the
2365
guarantee that no two instances will run under the same user ID on any
2366
given node.
2367

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

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

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

    
2382
Another disk improvement is the possibility to convert between redundant
2383
(DRBD) and plain (LVM) disk configuration for an instance. This should
2384
allow better scalability (starting with one node and growing the
2385
cluster, or shrinking a two-node cluster to one node).
2386

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

    
2396
Instance export/import now will reuse the original instance
2397
specifications for all parameters; that means exporting an instance,
2398
deleting it and the importing it back should give an almost identical
2399
instance. Note that the default import behaviour has changed from
2400
before, where it created only one NIC; now it recreates the original
2401
number of NICs.
2402

    
2403
Cluster verify has added a few new checks: SSL certificates validity,
2404
/etc/hosts consistency across the cluster, etc.
2405

    
2406
Other changes
2407
~~~~~~~~~~~~~
2408

    
2409
As usual, many internal changes were done, documentation fixes,
2410
etc. Among others:
2411

    
2412
- Fixed cluster initialization with disabled cluster storage (regression
2413
  introduced in 2.1.1)
2414
- File-based storage supports growing the disks
2415
- Fixed behaviour of node role changes
2416
- Fixed cluster verify for some corner cases, plus a general rewrite of
2417
  cluster verify to allow future extension with more checks
2418
- Fixed log spamming by watcher and node daemon (regression introduced
2419
  in 2.1.1)
2420
- Fixed possible validation issues when changing the list of enabled
2421
  hypervisors
2422
- Fixed cleanup of /etc/hosts during node removal
2423
- Fixed RAPI response for invalid methods
2424
- Fixed bug with hashed passwords in ``ganeti-rapi`` daemon
2425
- Multiple small improvements to the KVM hypervisor (VNC usage, booting
2426
  from ide disks, etc.)
2427
- Allow OS changes without re-installation (to record a changed OS
2428
  outside of Ganeti, or to allow OS renames)
2429
- Allow instance creation without OS installation (useful for example if
2430
  the OS will be installed manually, or restored from a backup not in
2431
  Ganeti format)
2432
- Implemented option to make cluster ``copyfile`` use the replication
2433
  network
2434
- Added list of enabled hypervisors to ssconf (possibly useful for
2435
  external scripts)
2436
- Added a new tool (``tools/cfgupgrade12``) that allows upgrading from
2437
  1.2 clusters
2438
- A partial form of node re-IP is possible via node readd, which now
2439
  allows changed node primary IP
2440
- Command line utilities now show an informational message if the job is
2441
  waiting for a lock
2442
- The logs of the master daemon now show the PID/UID/GID of the
2443
  connected client
2444

    
2445

    
2446
Version 2.1.1
2447
-------------
2448

    
2449
*(Released Fri, 12 Mar 2010)*
2450

    
2451
During the 2.1.0 long release candidate cycle, a lot of improvements and
2452
changes have accumulated with were released later as 2.1.1.
2453

    
2454
Major changes
2455
~~~~~~~~~~~~~
2456

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

    
2468
Another important change is increased validation of node and instance
2469
names. This might create problems in special cases, if invalid host
2470
names are being used.
2471

    
2472
Also, a new layer of hypervisor parameters has been added, that sits at
2473
OS level between the cluster defaults and the instance ones. This allows
2474
customisation of virtualization parameters depending on the installed
2475
OS. For example instances with OS 'X' may have a different KVM kernel
2476
(or any other parameter) than the cluster defaults. This is intended to
2477
help managing a multiple OSes on the same cluster, without manual
2478
modification of each instance's parameters.
2479

    
2480
A tool for merging clusters, ``cluster-merge``, has been added in the
2481
tools sub-directory.
2482

    
2483
Bug fixes
2484
~~~~~~~~~
2485

    
2486
- Improved the int/float conversions that should make the code more
2487
  robust in face of errors from the node daemons
2488
- Fixed the remove node code in case of internal configuration errors
2489
- Fixed the node daemon behaviour in face of inconsistent queue
2490
  directory (e.g. read-only file-system where we can't open the files
2491
  read-write, etc.)
2492
- Fixed the behaviour of gnt-node modify for master candidate demotion;
2493
  now it either aborts cleanly or, if given the new "auto_promote"
2494
  parameter, will automatically promote other nodes as needed
2495
- Fixed compatibility with (unreleased yet) Python 2.6.5 that would
2496
  completely prevent Ganeti from working
2497
- Fixed bug for instance export when not all disks were successfully
2498
  exported
2499
- Fixed behaviour of node add when the new node is slow in starting up
2500
  the node daemon
2501
- Fixed handling of signals in the LUXI client, which should improve
2502
  behaviour of command-line scripts
2503
- Added checks for invalid node/instance names in the configuration (now
2504
  flagged during cluster verify)
2505
- Fixed watcher behaviour for disk activation errors
2506
- Fixed two potentially endless loops in http library, which led to the
2507
  RAPI daemon hanging and consuming 100% CPU in some cases
2508
- Fixed bug in RAPI daemon related to hashed passwords
2509
- Fixed bug for unintended qemu-level bridging of multi-NIC KVM
2510
  instances
2511
- Enhanced compatibility with non-Debian OSes, but not using absolute
2512
  path in some commands and allowing customisation of the ssh
2513
  configuration directory
2514
- Fixed possible future issue with new Python versions by abiding to the
2515
  proper use of ``__slots__`` attribute on classes
2516
- Added checks that should prevent directory traversal attacks
2517
- Many documentation fixes based on feedback from users
2518

    
2519
New features
2520
~~~~~~~~~~~~
2521

    
2522
- Added an "early_release" more for instance replace disks and node
2523
  evacuate, where we release locks earlier and thus allow higher
2524
  parallelism within the cluster
2525
- Added watcher hooks, intended to allow the watcher to restart other
2526
  daemons (e.g. from the ganeti-nbma project), but they can be used of
2527
  course for any other purpose
2528
- Added a compile-time disable for DRBD barriers, to increase
2529
  performance if the administrator trusts the power supply or the
2530
  storage system to not lose writes
2531
- Added the option of using syslog for logging instead of, or in
2532
  addition to, Ganeti's own log files
2533
- Removed boot restriction for paravirtual NICs for KVM, recent versions
2534
  can indeed boot from a paravirtual NIC
2535
- Added a generic debug level for many operations; while this is not
2536
  used widely yet, it allows one to pass the debug value all the way to
2537
  the OS scripts
2538
- Enhanced the hooks environment for instance moves (failovers,
2539
  migrations) where the primary/secondary nodes changed during the
2540
  operation, by adding {NEW,OLD}_{PRIMARY,SECONDARY} vars
2541
- Enhanced data validations for many user-supplied values; one important
2542
  item is the restrictions imposed on instance and node names, which
2543
  might reject some (invalid) host names
2544
- Add a configure-time option to disable file-based storage, if it's not
2545
  needed; this allows greater security separation between the master
2546
  node and the other nodes from the point of view of the inter-node RPC
2547
  protocol
2548
- Added user notification in interactive tools if job is waiting in the
2549
  job queue or trying to acquire locks
2550
- Added log messages when a job is waiting for locks
2551
- Added filtering by node tags in instance operations which admit
2552
  multiple instances (start, stop, reboot, reinstall)
2553
- Added a new tool for cluster mergers, ``cluster-merge``
2554
- Parameters from command line which are of the form ``a=b,c=d`` can now
2555
  use backslash escapes to pass in values which contain commas,
2556
  e.g. ``a=b\\c,d=e`` where the 'a' parameter would get the value
2557
  ``b,c``
2558
- For KVM, the instance name is the first parameter passed to KVM, so
2559
  that it's more visible in the process list
2560

    
2561

    
2562
Version 2.1.0
2563
-------------
2564

    
2565
*(Released Tue, 2 Mar 2010)*
2566

    
2567
Ganeti 2.1 brings many improvements with it. Major changes:
2568

    
2569
- Added infrastructure to ease automated disk repairs
2570
- Added new daemon to export configuration data in a cheaper way than
2571
  using the remote API
2572
- Instance NICs can now be routed instead of being associated with a
2573
  networking bridge
2574
- Improved job locking logic to reduce impact of jobs acquiring multiple
2575
  locks waiting for other long-running jobs
2576

    
2577
In-depth implementation details can be found in the Ganeti 2.1 design
2578
document.
2579

    
2580
Details
2581
~~~~~~~
2582

    
2583
- Added chroot hypervisor
2584
- Added more options to xen-hvm hypervisor (``kernel_path`` and
2585
  ``device_model``)
2586
- Added more options to xen-pvm hypervisor (``use_bootloader``,
2587
  ``bootloader_path`` and ``bootloader_args``)
2588
- Added the ``use_localtime`` option for the xen-hvm and kvm
2589
  hypervisors, and the default value for this has changed to false (in
2590
  2.0 xen-hvm always enabled it)
2591
- Added luxi call to submit multiple jobs in one go
2592
- Added cluster initialization option to not modify ``/etc/hosts``
2593
  file on nodes
2594
- Added network interface parameters
2595
- Added dry run mode to some LUs
2596
- Added RAPI resources:
2597

    
2598
  - ``/2/instances/[instance_name]/info``
2599
  - ``/2/instances/[instance_name]/replace-disks``
2600
  - ``/2/nodes/[node_name]/evacuate``
2601
  - ``/2/nodes/[node_name]/migrate``
2602
  - ``/2/nodes/[node_name]/role``
2603
  - ``/2/nodes/[node_name]/storage``
2604
  - ``/2/nodes/[node_name]/storage/modify``
2605
  - ``/2/nodes/[node_name]/storage/repair``
2606

    
2607
- Added OpCodes to evacuate or migrate all instances on a node
2608
- Added new command to list storage elements on nodes (``gnt-node
2609
  list-storage``) and modify them (``gnt-node modify-storage``)
2610
- Added new ssconf files with master candidate IP address
2611
  (``ssconf_master_candidates_ips``), node primary IP address
2612
  (``ssconf_node_primary_ips``) and node secondary IP address
2613
  (``ssconf_node_secondary_ips``)
2614
- Added ``ganeti-confd`` and a client library to query the Ganeti
2615
  configuration via UDP
2616
- Added ability to run hooks after cluster initialization and before
2617
  cluster destruction
2618
- Added automatic mode for disk replace (``gnt-instance replace-disks
2619
  --auto``)
2620
- Added ``gnt-instance recreate-disks`` to re-create (empty) disks
2621
  after catastrophic data-loss
2622
- Added ``gnt-node repair-storage`` command to repair damaged LVM volume
2623
  groups
2624
- Added ``gnt-instance move`` command to move instances
2625
- Added ``gnt-cluster watcher`` command to control watcher
2626
- Added ``gnt-node powercycle`` command to powercycle nodes
2627
- Added new job status field ``lock_status``
2628
- Added parseable error codes to cluster verification (``gnt-cluster
2629
  verify --error-codes``) and made output less verbose (use
2630
  ``--verbose`` to restore previous behaviour)
2631
- Added UUIDs to the main config entities (cluster, nodes, instances)
2632
- Added support for OS variants
2633
- Added support for hashed passwords in the Ganeti remote API users file
2634
  (``rapi_users``)
2635
- Added option to specify maximum timeout on instance shutdown
2636
- Added ``--no-ssh-init`` option to ``gnt-cluster init``
2637
- Added new helper script to start and stop Ganeti daemons
2638
  (``daemon-util``), with the intent to reduce the work necessary to
2639
  adjust Ganeti for non-Debian distributions and to start/stop daemons
2640
  from one place
2641
- Added more unittests
2642
- Fixed critical bug in ganeti-masterd startup
2643
- Removed the configure-time ``kvm-migration-port`` parameter, this is
2644
  now customisable at the cluster level for both the KVM and Xen
2645
  hypervisors using the new ``migration_port`` parameter
2646
- Pass ``INSTANCE_REINSTALL`` variable to OS installation script when
2647
  reinstalling an instance
2648
- Allowed ``@`` in tag names
2649
- Migrated to Sphinx (http://sphinx.pocoo.org/) for documentation
2650
- Many documentation updates
2651
- Distribute hypervisor files on ``gnt-cluster redist-conf``
2652
- ``gnt-instance reinstall`` can now reinstall multiple instances
2653
- Updated many command line parameters
2654
- Introduced new OS API version 15
2655
- No longer support a default hypervisor
2656
- Treat virtual LVs as inexistent
2657
- Improved job locking logic to reduce lock contention
2658
- Match instance and node names case insensitively
2659
- Reimplemented bash completion script to be more complete
2660
- Improved burnin
2661

    
2662

    
2663
Version 2.0.6
2664
-------------
2665

    
2666
*(Released Thu, 4 Feb 2010)*
2667

    
2668
- Fix cleaner behaviour on nodes not in a cluster (Debian bug 568105)
2669
- Fix a string formatting bug
2670
- Improve safety of the code in some error paths
2671
- Improve data validation in the master of values returned from nodes
2672

    
2673

    
2674
Version 2.0.5
2675
-------------
2676

    
2677
*(Released Thu, 17 Dec 2009)*
2678

    
2679
- Fix security issue due to missing validation of iallocator names; this
2680
  allows local and remote execution of arbitrary executables
2681
- Fix failure of gnt-node list during instance removal
2682
- Ship the RAPI documentation in the archive
2683

    
2684

    
2685
Version 2.0.4
2686
-------------
2687

    
2688
*(Released Wed, 30 Sep 2009)*
2689

    
2690
- Fixed many wrong messages
2691
- Fixed a few bugs related to the locking library
2692
- Fixed MAC checking at instance creation time
2693
- Fixed a DRBD parsing bug related to gaps in /proc/drbd
2694
- Fixed a few issues related to signal handling in both daemons and
2695
  scripts
2696
- Fixed the example startup script provided
2697
- Fixed insserv dependencies in the example startup script (patch from
2698
  Debian)
2699
- Fixed handling of drained nodes in the iallocator framework
2700
- Fixed handling of KERNEL_PATH parameter for xen-hvm (Debian bug
2701
  #528618)
2702
- Fixed error related to invalid job IDs in job polling
2703
- Fixed job/opcode persistence on unclean master shutdown
2704
- Fixed handling of partial job processing after unclean master
2705
  shutdown
2706
- Fixed error reporting from LUs, previously all errors were converted
2707
  into execution errors
2708
- Fixed error reporting from burnin
2709
- Decreased significantly the memory usage of the job queue
2710
- Optimised slightly multi-job submission
2711
- Optimised slightly opcode loading
2712
- Backported the multi-job submit framework from the development
2713
  branch; multi-instance start and stop should be faster
2714
- Added script to clean archived jobs after 21 days; this will reduce
2715
  the size of the queue directory
2716
- Added some extra checks in disk size tracking
2717
- Added an example ethers hook script
2718
- Added a cluster parameter that prevents Ganeti from modifying of
2719
  /etc/hosts
2720
- Added more node information to RAPI responses
2721
- Added a ``gnt-job watch`` command that allows following the ouput of a
2722
  job
2723
- Added a bind-address option to ganeti-rapi
2724
- Added more checks to the configuration verify
2725
- Enhanced the burnin script such that some operations can be retried
2726
  automatically
2727
- Converted instance reinstall to multi-instance model
2728

    
2729

    
2730
Version 2.0.3
2731
-------------
2732

    
2733
*(Released Fri, 7 Aug 2009)*
2734

    
2735
- Added ``--ignore-size`` to the ``gnt-instance activate-disks`` command
2736
  to allow using the pre-2.0.2 behaviour in activation, if any existing
2737
  instances have mismatched disk sizes in the configuration
2738
- Added ``gnt-cluster repair-disk-sizes`` command to check and update
2739
  any configuration mismatches for disk sizes
2740
- Added ``gnt-master cluste-failover --no-voting`` to allow master
2741
  failover to work on two-node clusters
2742
- Fixed the ``--net`` option of ``gnt-backup import``, which was
2743
  unusable
2744
- Fixed detection of OS script errors in ``gnt-backup export``
2745
- Fixed exit code of ``gnt-backup export``
2746

    
2747

    
2748
Version 2.0.2
2749
-------------
2750

    
2751
*(Released Fri, 17 Jul 2009)*
2752

    
2753
- Added experimental support for stripped logical volumes; this should
2754
  enhance performance but comes with a higher complexity in the block
2755
  device handling; stripping is only enabled when passing
2756
  ``--with-lvm-stripecount=N`` to ``configure``, but codepaths are
2757
  affected even in the non-stripped mode
2758
- Improved resiliency against transient failures at the end of DRBD
2759
  resyncs, and in general of DRBD resync checks
2760
- Fixed a couple of issues with exports and snapshot errors
2761
- Fixed a couple of issues in instance listing
2762
- Added display of the disk size in ``gnt-instance info``
2763
- Fixed checking for valid OSes in instance creation
2764
- Fixed handling of the "vcpus" parameter in instance listing and in
2765
  general of invalid parameters
2766
- Fixed http server library, and thus RAPI, to handle invalid
2767
  username/password combinations correctly; this means that now they
2768
  report unauthorized for queries too, not only for modifications,
2769
  allowing earlier detect of configuration problems
2770
- Added a new "role" node list field, equivalent to the master/master
2771
  candidate/drained/offline flags combinations
2772
- Fixed cluster modify and changes of candidate pool size
2773
- Fixed cluster verify error messages for wrong files on regular nodes
2774
- Fixed a couple of issues with node demotion from master candidate role
2775
- Fixed node readd issues
2776
- Added non-interactive mode for ``ganeti-masterd --no-voting`` startup
2777
- Added a new ``--no-voting`` option for masterfailover to fix failover
2778
  on two-nodes clusters when the former master node is unreachable
2779
- Added instance reinstall over RAPI
2780

    
2781

    
2782
Version 2.0.1
2783
-------------
2784

    
2785
*(Released Tue, 16 Jun 2009)*
2786

    
2787
- added ``-H``/``-B`` startup parameters to ``gnt-instance``, which will
2788
  allow re-adding the start in single-user option (regression from 1.2)
2789
- the watcher writes the instance status to a file, to allow monitoring
2790
  to report the instance status (from the master) based on cached
2791
  results of the watcher's queries; while this can get stale if the
2792
  watcher is being locked due to other work on the cluster, this is
2793
  still an improvement
2794
- the watcher now also restarts the node daemon and the rapi daemon if
2795
  they died
2796
- fixed the watcher to handle full and drained queue cases
2797
- hooks export more instance data in the environment, which helps if
2798
  hook scripts need to take action based on the instance's properties
2799
  (no longer need to query back into ganeti)
2800
- instance failovers when the instance is stopped do not check for free
2801
  RAM, so that failing over a stopped instance is possible in low memory
2802
  situations
2803
- rapi uses queries for tags instead of jobs (for less job traffic), and
2804
  for cluster tags it won't talk to masterd at all but read them from
2805
  ssconf
2806
- a couple of error handling fixes in RAPI
2807
- drbd handling: improved the error handling of inconsistent disks after
2808
  resync to reduce the frequency of "there are some degraded disks for
2809
  this instance" messages
2810
- fixed a bug in live migration when DRBD doesn't want to reconnect (the
2811
  error handling path called a wrong function name)
2812

    
2813

    
2814
Version 2.0.0
2815
-------------
2816

    
2817
*(Released Wed, 27 May 2009)*
2818

    
2819
- no changes from rc5
2820

    
2821

    
2822
Version 2.0 rc5
2823
---------------
2824

    
2825
*(Released Wed, 20 May 2009)*
2826

    
2827
- fix a couple of bugs (validation, argument checks)
2828
- fix ``gnt-cluster getmaster`` on non-master nodes (regression)
2829
- some small improvements to RAPI and IAllocator
2830
- make watcher automatically start the master daemon if down
2831

    
2832

    
2833
Version 2.0 rc4
2834
---------------
2835

    
2836
*(Released Mon, 27 Apr 2009)*
2837

    
2838
- change the OS list to not require locks; this helps with big clusters
2839
- fix ``gnt-cluster verify`` and ``gnt-cluster verify-disks`` when the
2840
  volume group is broken
2841
- ``gnt-instance info``, without any arguments, doesn't run for all
2842
  instances anymore; either pass ``--all`` or pass the desired
2843
  instances; this helps against mistakes on big clusters where listing
2844
  the information for all instances takes a long time
2845
- miscellaneous doc and man pages fixes
2846

    
2847

    
2848
Version 2.0 rc3
2849
---------------
2850

    
2851
*(Released Wed, 8 Apr 2009)*
2852

    
2853
- Change the internal locking model of some ``gnt-node`` commands, in
2854
  order to reduce contention (and blocking of master daemon) when
2855
  batching many creation/reinstall jobs
2856
- Fixes to Xen soft reboot
2857
- No longer build documentation at build time, instead distribute it in
2858
  the archive, in order to reduce the need for the whole docbook/rst
2859
  toolchains
2860

    
2861

    
2862
Version 2.0 rc2
2863
---------------
2864

    
2865
*(Released Fri, 27 Mar 2009)*
2866

    
2867
- Now the cfgupgrade scripts works and can upgrade 1.2.7 clusters to 2.0
2868
- Fix watcher startup sequence, improves the behaviour of busy clusters
2869
- Some other fixes in ``gnt-cluster verify``, ``gnt-instance
2870
  replace-disks``, ``gnt-instance add``, ``gnt-cluster queue``, KVM VNC
2871
  bind address and other places
2872
- Some documentation fixes and updates
2873

    
2874

    
2875
Version 2.0 rc1
2876
---------------
2877

    
2878
*(Released Mon, 2 Mar 2009)*
2879

    
2880
- More documentation updates, now all docs should be more-or-less
2881
  up-to-date
2882
- A couple of small fixes (mixed hypervisor clusters, offline nodes,
2883
  etc.)
2884
- Added a customizable HV_KERNEL_ARGS hypervisor parameter (for Xen PVM
2885
  and KVM)
2886
- Fix an issue related to $libdir/run/ganeti and cluster creation
2887

    
2888

    
2889
Version 2.0 beta2
2890
-----------------
2891

    
2892
*(Released Thu, 19 Feb 2009)*
2893

    
2894
- Xen PVM and KVM have switched the default value for the instance root
2895
  disk to the first partition on the first drive, instead of the whole
2896
  drive; this means that the OS installation scripts must be changed
2897
  accordingly
2898
- Man pages have been updated
2899
- RAPI has been switched by default to HTTPS, and the exported functions
2900
  should all work correctly
2901
- RAPI v1 has been removed
2902
- Many improvements to the KVM hypervisor
2903
- Block device errors are now better reported
2904
- Many other bugfixes and small improvements
2905

    
2906

    
2907
Version 2.0 beta1
2908
-----------------
2909

    
2910
*(Released Mon, 26 Jan 2009)*
2911

    
2912
- Version 2 is a general rewrite of the code and therefore the
2913
  differences are too many to list, see the design document for 2.0 in
2914
  the ``doc/`` subdirectory for more details
2915
- In this beta version there is not yet a migration path from 1.2 (there
2916
  will be one in the final 2.0 release)
2917
- A few significant changes are:
2918

    
2919
  - all commands are executed by a daemon (``ganeti-masterd``) and the
2920
    various ``gnt-*`` commands are just front-ends to it
2921
  - all the commands are entered into, and executed from a job queue,
2922
    see the ``gnt-job(8)`` manpage
2923
  - the RAPI daemon supports read-write operations, secured by basic
2924
    HTTP authentication on top of HTTPS
2925
  - DRBD version 0.7 support has been removed, DRBD 8 is the only
2926
    supported version (when migrating from Ganeti 1.2 to 2.0, you need
2927
    to migrate to DRBD 8 first while still running Ganeti 1.2)
2928
  - DRBD devices are using statically allocated minor numbers, which
2929
    will be assigned to existing instances during the migration process
2930
  - there is support for both Xen PVM and Xen HVM instances running on
2931
    the same cluster
2932
  - KVM virtualization is supported too
2933
  - file-based storage has been implemented, which means that it is
2934
    possible to run the cluster without LVM and DRBD storage, for
2935
    example using a shared filesystem exported from shared storage (and
2936
    still have live migration)
2937

    
2938

    
2939
Version 1.2.7
2940
-------------
2941

    
2942
*(Released Tue, 13 Jan 2009)*
2943

    
2944
- Change the default reboot type in ``gnt-instance reboot`` to "hard"
2945
- Reuse the old instance mac address by default on instance import, if
2946
  the instance name is the same.
2947
- Handle situations in which the node info rpc returns incomplete
2948
  results (issue 46)
2949
- Add checks for tcp/udp ports collisions in ``gnt-cluster verify``
2950
- Improved version of batcher:
2951

    
2952
  - state file support
2953
  - instance mac address support
2954
  - support for HVM clusters/instances
2955

    
2956
- Add an option to show the number of cpu sockets and nodes in
2957
  ``gnt-node list``
2958
- Support OSes that handle more than one version of the OS api (but do
2959
  not change the current API in any other way)
2960
- Fix ``gnt-node migrate``
2961
- ``gnt-debug`` man page
2962
- Fixes various more typos and small issues
2963
- Increase disk resync maximum speed to 60MB/s (from 30MB/s)
2964

    
2965

    
2966
Version 1.2.6
2967
-------------
2968

    
2969
*(Released Wed, 24 Sep 2008)*
2970

    
2971
- new ``--hvm-nic-type`` and ``--hvm-disk-type`` flags to control the
2972
  type of disk exported to fully virtualized instances.
2973
- provide access to the serial console of HVM instances
2974
- instance auto_balance flag, set by default. If turned off it will
2975
  avoid warnings on cluster verify if there is not enough memory to fail
2976
  over an instance. in the future it will prevent automatically failing
2977
  it over when we will support that.
2978
- batcher tool for instance creation, see ``tools/README.batcher``
2979
- ``gnt-instance reinstall --select-os`` to interactively select a new
2980
  operating system when reinstalling an instance.
2981
- when changing the memory amount on instance modify a check has been
2982
  added that the instance will be able to start. also warnings are
2983
  emitted if the instance will not be able to fail over, if auto_balance
2984
  is true.
2985
- documentation fixes
2986
- sync fields between ``gnt-instance list/modify/add/import``
2987
- fix a race condition in drbd when the sync speed was set after giving
2988
  the device a remote peer.
2989

    
2990

    
2991
Version 1.2.5
2992
-------------
2993

    
2994
*(Released Tue, 22 Jul 2008)*
2995

    
2996
- note: the allowed size and number of tags per object were reduced
2997
- fix a bug in ``gnt-cluster verify`` with inconsistent volume groups
2998
- fixed twisted 8.x compatibility
2999
- fixed ``gnt-instance replace-disks`` with iallocator
3000
- add TCP keepalives on twisted connections to detect restarted nodes
3001
- disk increase support, see ``gnt-instance grow-disk``
3002
- implement bulk node/instance query for RAPI
3003
- add tags in node/instance listing (optional)
3004
- experimental migration (and live migration) support, read the man page
3005
  for ``gnt-instance migrate``
3006
- the ``ganeti-watcher`` logs are now timestamped, and the watcher also
3007
  has some small improvements in handling its state file
3008

    
3009

    
3010
Version 1.2.4
3011
-------------
3012

    
3013
*(Released Fri, 13 Jun 2008)*
3014

    
3015
- Experimental readonly, REST-based remote API implementation;
3016
  automatically started on master node, TCP port 5080, if enabled by
3017
  ``--enable-rapi`` parameter to configure script.
3018
- Instance allocator support. Add and import instance accept a
3019
  ``--iallocator`` parameter, and call that instance allocator to decide
3020
  which node to use for the instance. The iallocator document describes
3021
  what's expected from an allocator script.
3022
- ``gnt-cluster verify`` N+1 memory redundancy checks: Unless passed the
3023
  ``--no-nplus1-mem`` option ``gnt-cluster verify`` now checks that if a
3024
  node is lost there is still enough memory to fail over the instances
3025
  that reside on it.
3026
- ``gnt-cluster verify`` hooks: it is now possible to add post-hooks to
3027
  ``gnt-cluster verify``, to check for site-specific compliance. All the
3028
  hooks will run, and their output, if any, will be displayed. Any
3029
  failing hook will make the verification return an error value.
3030
- ``gnt-cluster verify`` now checks that its peers are reachable on the
3031
  primary and secondary interfaces
3032
- ``gnt-node add`` now supports the ``--readd`` option, to readd a node
3033
  that is still declared as part of the cluster and has failed.
3034
- ``gnt-* list`` commands now accept a new ``-o +field`` way of
3035
  specifying output fields, that just adds the chosen fields to the
3036
  default ones.
3037
- ``gnt-backup`` now has a new ``remove`` command to delete an existing
3038
  export from the filesystem.
3039
- New per-instance parameters hvm_acpi, hvm_pae and hvm_cdrom_image_path
3040
  have been added. Using them you can enable/disable acpi and pae
3041
  support, and specify a path for a cd image to be exported to the
3042
  instance. These parameters as the name suggest only work on HVM
3043
  clusters.
3044
- When upgrading an HVM cluster to Ganeti 1.2.4, the values for ACPI and
3045
  PAE support will be set to the previously hardcoded values, but the
3046
  (previously hardcoded) path to the CDROM ISO image will be unset and
3047
  if required, needs to be set manually with ``gnt-instance modify``
3048
  after the upgrade.
3049
- The address to which an instance's VNC console is bound is now
3050
  selectable per-instance, rather than being cluster wide. Of course
3051
  this only applies to instances controlled via VNC, so currently just
3052
  applies to HVM clusters.
3053

    
3054

    
3055
Version 1.2.3
3056
-------------
3057

    
3058
*(Released Mon, 18 Feb 2008)*
3059

    
3060
- more tweaks to the disk activation code (especially helpful for DRBD)
3061
- change the default ``gnt-instance list`` output format, now there is
3062
  one combined status field (see the manpage for the exact values this
3063
  field will have)
3064
- some more fixes for the mac export to hooks change
3065
- make Ganeti not break with DRBD 8.2.x (which changed the version
3066
  format in ``/proc/drbd``) (issue 24)
3067
- add an upgrade tool from "remote_raid1" disk template to "drbd" disk
3068
  template, allowing migration from DRBD0.7+MD to DRBD8
3069

    
3070

    
3071
Version 1.2.2
3072
-------------
3073

    
3074
*(Released Wed, 30 Jan 2008)*
3075

    
3076
- fix ``gnt-instance modify`` breakage introduced in 1.2.1 with the HVM
3077
  support (issue 23)
3078
- add command aliases infrastructure and a few aliases
3079
- allow listing of VCPUs in the ``gnt-instance list`` and improve the
3080
  man pages and the ``--help`` option of ``gnt-node
3081
  list``/``gnt-instance list``
3082
- fix ``gnt-backup list`` with down nodes (issue 21)
3083
- change the tools location (move from $pkgdatadir to $pkglibdir/tools)
3084
- fix the dist archive and add a check for including svn/git files in
3085
  the future
3086
- some developer-related changes: improve the burnin and the QA suite,
3087
  add an upload script for testing during development
3088

    
3089

    
3090
Version 1.2.1
3091
-------------
3092

    
3093
*(Released Wed, 16 Jan 2008)*
3094

    
3095
- experimental HVM support, read the install document, section
3096
  "Initializing the cluster"
3097
- allow for the PVM hypervisor per-instance kernel and initrd paths
3098
- add a new command ``gnt-cluster verify-disks`` which uses a new
3099
  algorithm to improve the reconnection of the DRBD pairs if the device
3100
  on the secondary node has gone away
3101
- make logical volume code auto-activate LVs at disk activation time
3102
- slightly improve the speed of activating disks
3103
- allow specification of the MAC address at instance creation time, and
3104
  changing it later via ``gnt-instance modify``
3105
- fix handling of external commands that generate lots of output on
3106
  stderr
3107
- update documentation with regard to minimum version of DRBD8 supported
3108

    
3109

    
3110
Version 1.2.0
3111
-------------
3112

    
3113
*(Released Tue, 4 Dec 2007)*
3114

    
3115
- Log the ``xm create`` output to the node daemon log on failure (to
3116
  help diagnosing the error)
3117
- In debug mode, log all external commands output if failed to the logs
3118
- Change parsing of lvm commands to ignore stderr
3119

    
3120

    
3121
Version 1.2 beta3
3122
-----------------
3123

    
3124
*(Released Wed, 28 Nov 2007)*
3125

    
3126
- Another round of updates to the DRBD 8 code to deal with more failures
3127
  in the replace secondary node operation
3128
- Some more logging of failures in disk operations (lvm, drbd)
3129
- A few documentation updates
3130
- QA updates
3131

    
3132

    
3133
Version 1.2 beta2
3134
-----------------
3135

    
3136
*(Released Tue, 13 Nov 2007)*
3137

    
3138
- Change configuration file format from Python's Pickle to JSON.
3139
  Upgrading is possible using the cfgupgrade utility.
3140
- Add support for DRBD 8.0 (new disk template ``drbd``) which allows for
3141
  faster replace disks and is more stable (DRBD 8 has many improvements
3142
  compared to DRBD 0.7)
3143
- Added command line tags support (see man pages for ``gnt-instance``,
3144
  ``gnt-node``, ``gnt-cluster``)
3145
- Added instance rename support
3146
- Added multi-instance startup/shutdown
3147
- Added cluster rename support
3148
- Added ``gnt-node evacuate`` to simplify some node operations
3149
- Added instance reboot operation that can speedup reboot as compared to
3150
  stop and start
3151
- Soften the requirement that hostnames are in FQDN format
3152
- The ``ganeti-watcher`` now activates drbd pairs after secondary node
3153
  reboots
3154
- Removed dependency on debian's patched fping that uses the
3155
  non-standard ``-S`` option
3156
- Now the OS definitions are searched for in multiple, configurable
3157
  paths (easier for distros to package)
3158
- Some changes to the hooks infrastructure (especially the new
3159
  post-configuration update hook)
3160
- Other small bugfixes
3161

    
3162
.. vim: set textwidth=72 syntax=rst :
3163
.. Local Variables:
3164
.. mode: rst
3165
.. fill-column: 72
3166
.. End: