Statistics
| Branch: | Tag: | Revision:

root / NEWS @ 7f93570a

History | View | Annotate | Download (38.7 kB)

1 61b5e342 Michael Hanselmann
News
2 61b5e342 Michael Hanselmann
====
3 920a91bf Michael Hanselmann
4 a0a470fa Michael Hanselmann
Version 2.2.0 beta 0
5 a0a470fa Michael Hanselmann
--------------------
6 a0a470fa Michael Hanselmann
7 a0a470fa Michael Hanselmann
*(Released Thu, 17 Jun 2010)*
8 ab221ddf Michael Hanselmann
9 e0897adf Michael Hanselmann
- Added tool (``move-instance``) and infrastructure to move instances
10 e0897adf Michael Hanselmann
  between separate clusters (see :doc:`separate documentation
11 e0897adf Michael Hanselmann
  <move-instance>` and :doc:`design document <design-2.2>`)
12 e0897adf Michael Hanselmann
- Added per-request RPC timeout
13 ab221ddf Michael Hanselmann
- RAPI now requires a Content-Type header for requests with a body (e.g.
14 ab221ddf Michael Hanselmann
  ``PUT`` or ``POST``) which must be set to ``application/json`` (see
15 ab221ddf Michael Hanselmann
  RFC2616 (HTTP/1.1), section 7.2.1)
16 e0897adf Michael Hanselmann
- ``ganeti-watcher`` attempts to restart ``ganeti-rapi`` if RAPI is not
17 e0897adf Michael Hanselmann
  reachable
18 e0897adf Michael Hanselmann
- Implemented initial support for running Ganeti daemons as separate
19 e0897adf Michael Hanselmann
  users, see configure-time flags ``--with-user-prefix`` and
20 e0897adf Michael Hanselmann
  ``--with-group-prefix`` (only ``ganeti-rapi`` is supported at this
21 e0897adf Michael Hanselmann
  time)
22 e0897adf Michael Hanselmann
- Instances can be removed after export (``gnt-backup export
23 e0897adf Michael Hanselmann
  --remove-instance``)
24 e0897adf Michael Hanselmann
- Self-signed certificates generated by Ganeti now use a 2048 bit RSA
25 e0897adf Michael Hanselmann
  key (instead of 1024 bit)
26 e0897adf Michael Hanselmann
- Added new cluster configuration file for cluster domain secret
27 e0897adf Michael Hanselmann
- Import/export now use SSL instead of SSH
28 e0897adf Michael Hanselmann
- Added support for showing estimated time when exporting an instance,
29 e0897adf Michael Hanselmann
  see the ``ganeti-os-interface(7)`` manpage and look for
30 e0897adf Michael Hanselmann
  ``EXP_SIZE_FD``
31 ab221ddf Michael Hanselmann
32 920a91bf Michael Hanselmann
33 ae828011 Guido Trotter
Version 2.1.6
34 ae828011 Guido Trotter
-------------
35 ae828011 Guido Trotter
36 ae828011 Guido Trotter
*(Released Fri, 16 Jul 2010)*
37 ae828011 Guido Trotter
38 ae828011 Guido Trotter
Bugfixes only:
39 ae828011 Guido Trotter
  - Add an option to only select some reboot types during qa/burnin.
40 ae828011 Guido Trotter
    (on some hypervisors consequent reboots are not supported)
41 ae828011 Guido Trotter
  - Fix infrequent race condition in master failover. Sometimes the old
42 ae828011 Guido Trotter
    master ip address would be still detected as up for a short time
43 ae828011 Guido Trotter
    after it was removed, causing failover to fail.
44 ae828011 Guido Trotter
  - Decrease mlockall warnings when the ctypes module is missing. On
45 ae828011 Guido Trotter
    Python 2.4 we support running even if no ctypes module is installed,
46 ae828011 Guido Trotter
    but we were too verbose about this issue.
47 ae828011 Guido Trotter
  - Fix building on old distributions, on which man doesn't have a
48 ae828011 Guido Trotter
    --warnings option.
49 ae828011 Guido Trotter
  - Fix RAPI not to ignore the MAC address on instance creation
50 ae828011 Guido Trotter
  - Implement the old instance creation format in the RAPI client.
51 ae828011 Guido Trotter
52 ae828011 Guido Trotter
53 71cba20b Guido Trotter
Version 2.1.5
54 71cba20b Guido Trotter
-------------
55 71cba20b Guido Trotter
56 1d4c743d Guido Trotter
*(Released Thu, 01 Jul 2010)*
57 71cba20b Guido Trotter
58 71cba20b Guido Trotter
A small bugfix release:
59 71cba20b Guido Trotter
  - Fix disk adoption: broken by strict --disk option checking in 2.1.4
60 71cba20b Guido Trotter
  - Fix batch-create: broken in the whole 2.1 series due to a lookup on
61 71cba20b Guido Trotter
    a non-existing option
62 71cba20b Guido Trotter
  - Fix instance create: the --force-variant option was ignored
63 1d4c743d Guido Trotter
  - Improve pylint 0.21 compatibility and warnings with Python 2.6
64 1d4c743d Guido Trotter
  - Fix modify node storage with non-FQDN arguments
65 1d4c743d Guido Trotter
  - Fix RAPI client to authenticate under Python 2.6 when used
66 1d4c743d Guido Trotter
    for more than 5 requests needing authentication
67 1d4c743d Guido Trotter
  - Fix gnt-instance modify -t (storage) giving a wrong error message
68 1d4c743d Guido Trotter
    when converting a non-shutdown drbd instance to plain
69 71cba20b Guido Trotter
70 801b6a33 Guido Trotter
71 c1a25b88 Guido Trotter
Version 2.1.4
72 c1a25b88 Guido Trotter
-------------
73 c1a25b88 Guido Trotter
74 3ef56ab6 Guido Trotter
*(Released Fri, 18 Jun 2010)*
75 c1a25b88 Guido Trotter
76 c1a25b88 Guido Trotter
A small bugfix release:
77 c1a25b88 Guido Trotter
78 c1a25b88 Guido Trotter
  - Fix live migration of KVM instances started with older Ganeti
79 c1a25b88 Guido Trotter
    versions which had fewer hypervisor parameters
80 c1a25b88 Guido Trotter
  - Fix gnt-instance grow-disk on down instances
81 c1a25b88 Guido Trotter
  - Fix an error-reporting bug during instance migration
82 c1a25b88 Guido Trotter
  - Better checking of the ``--net`` and ``--disk`` values, to avoid
83 c1a25b88 Guido Trotter
    silently ignoring broken ones
84 c1a25b88 Guido Trotter
  - Fix an RPC error reporting bug affecting, for example, RAPI client
85 c1a25b88 Guido Trotter
    users
86 c1a25b88 Guido Trotter
  - Fix bug triggered by different API version os-es on different nodes
87 c1a25b88 Guido Trotter
  - Fix a bug in instance startup with custom hvparams: OS level
88 c1a25b88 Guido Trotter
    parameters would fail to be applied.
89 3ef56ab6 Guido Trotter
  - Fix the RAPI client under Python 2.6 (but more work is needed to
90 3ef56ab6 Guido Trotter
    make it work completely well with OpenSSL)
91 3ef56ab6 Guido Trotter
  - Fix handling of errors when resolving names from DNS
92 c1a25b88 Guido Trotter
93 626f4e45 Guido Trotter
94 14d91053 Guido Trotter
Version 2.1.3
95 14d91053 Guido Trotter
-------------
96 14d91053 Guido Trotter
97 7cf722ea Guido Trotter
*(Released Thu, 3 Jun 2010)*
98 14d91053 Guido Trotter
99 14d91053 Guido Trotter
A medium sized development cycle. Some new features, and some
100 14d91053 Guido Trotter
fixes/small improvements/cleanups.
101 14d91053 Guido Trotter
102 14d91053 Guido Trotter
Significant features
103 14d91053 Guido Trotter
~~~~~~~~~~~~~~~~~~~~
104 14d91053 Guido Trotter
105 14d91053 Guido Trotter
The node deamon now tries to mlock itself into memory, unless the
106 14d91053 Guido Trotter
``--no-mlock`` flag is passed. It also doesn't fail if it can't write
107 14d91053 Guido Trotter
its logs, and falls back to console logging. This allows emergency
108 14d91053 Guido Trotter
features such as ``gnt-node powercycle`` to work even in the event of a
109 14d91053 Guido Trotter
broken node disk (tested offlining the disk hosting the node's
110 722702e3 Guido Trotter
filesystem and dropping its memory caches; don't try this at home)
111 14d91053 Guido Trotter
112 14d91053 Guido Trotter
KVM: add vhost-net acceleration support. It can be tested with a new
113 14d91053 Guido Trotter
enough version of the kernel and of qemu-kvm.
114 14d91053 Guido Trotter
115 14d91053 Guido Trotter
KVM: Add instance chrooting feature. If you use privilege dropping for
116 14d91053 Guido Trotter
your VMs you can also now force them to chroot to an empty directory,
117 14d91053 Guido Trotter
before starting the emulated guest.
118 14d91053 Guido Trotter
119 14d91053 Guido Trotter
KVM: Add maximum migration bandwith and maximum downtime tweaking
120 14d91053 Guido Trotter
support (requires a new-enough version of qemu-kvm).
121 14d91053 Guido Trotter
122 14d91053 Guido Trotter
Cluster verify will now warn if the master node doesn't have the master
123 14d91053 Guido Trotter
ip configured on it.
124 14d91053 Guido Trotter
125 14d91053 Guido Trotter
Add a new (incompatible) instance creation request format to RAPI which
126 14d91053 Guido Trotter
supports all parameters (previously only a subset was supported, and it
127 14d91053 Guido Trotter
wasn't possible to extend the old format to accomodate all the new
128 14d91053 Guido Trotter
features. The old format is still supported, and a client can check for
129 14d91053 Guido Trotter
this feature, before using it, by checking for its presence in the
130 14d91053 Guido Trotter
``features`` RAPI resource.
131 14d91053 Guido Trotter
132 14d91053 Guido Trotter
Now with ancient latin support. Try it passing the ``--roman`` option to
133 722702e3 Guido Trotter
``gnt-instance info``, ``gnt-cluster info`` or ``gnt-node list``
134 722702e3 Guido Trotter
(requires the python-roman module to be installed, in order to work).
135 14d91053 Guido Trotter
136 14d91053 Guido Trotter
Other changes
137 14d91053 Guido Trotter
~~~~~~~~~~~~~
138 14d91053 Guido Trotter
139 14d91053 Guido Trotter
As usual many internal code refactorings, documentation updates, and
140 14d91053 Guido Trotter
such. Among others:
141 14d91053 Guido Trotter
142 14d91053 Guido Trotter
  - Lots of improvements and cleanups to the experimental Remote API
143 14d91053 Guido Trotter
    (RAPI) client library.
144 14d91053 Guido Trotter
  - A new unit test suite for the core daemon libraries.
145 14d91053 Guido Trotter
  - A fix to creating missing directories makes sure the umask is not
146 14d91053 Guido Trotter
    applied anymore. This enforces the same directory permissions
147 14d91053 Guido Trotter
    everywhere.
148 14d91053 Guido Trotter
  - Better handling terminating daemons with ctrl+c (used when running
149 14d91053 Guido Trotter
    them in debugging mode).
150 14d91053 Guido Trotter
  - Fix a race condition in live migrating a KVM instance, when stat()
151 14d91053 Guido Trotter
    on the old proc status file returned EINVAL, which is an unexpected
152 14d91053 Guido Trotter
    value.
153 1de45c78 Guido Trotter
  - Fixed manpage checking with newer man and utf-8 charachters. But now
154 1de45c78 Guido Trotter
    you need the en_US.UTF-8 locale enabled to build Ganeti from git.
155 14d91053 Guido Trotter
156 14d91053 Guido Trotter
157 23f983f4 Guido Trotter
Version 2.1.2.1
158 23f983f4 Guido Trotter
---------------
159 23f983f4 Guido Trotter
160 23f983f4 Guido Trotter
*(Released Fri, 7 May 2010)*
161 23f983f4 Guido Trotter
162 23f983f4 Guido Trotter
Fix a bug which prevented untagged KVM instances from starting.
163 23f983f4 Guido Trotter
164 507fd05a Guido Trotter
165 ba538816 Iustin Pop
Version 2.1.2
166 ba538816 Iustin Pop
-------------
167 ba538816 Iustin Pop
168 ace6cbe8 Iustin Pop
*(Released Fri, 7 May 2010)*
169 ba538816 Iustin Pop
170 ba538816 Iustin Pop
Another release with a long development cycle, during which many
171 ba538816 Iustin Pop
different features were added.
172 ba538816 Iustin Pop
173 ba538816 Iustin Pop
Significant features
174 ba538816 Iustin Pop
~~~~~~~~~~~~~~~~~~~~
175 ba538816 Iustin Pop
176 ba538816 Iustin Pop
The KVM hypervisor now can run the individual instances as non-root, to
177 ba538816 Iustin Pop
reduce the impact of a VM being hijacked due to bugs in the
178 ba538816 Iustin Pop
hypervisor. It is possible to run all instances as a single (non-root)
179 ba538816 Iustin Pop
user, to manually specify a user for each instance, or to dynamically
180 ba538816 Iustin Pop
allocate a user out of a cluster-wide pool to each instance, with the
181 ba538816 Iustin Pop
guarantee that no two instances will run under the same user ID on any
182 ba538816 Iustin Pop
given node.
183 ba538816 Iustin Pop
184 ba538816 Iustin Pop
An experimental RAPI client library, that can be used standalone
185 ba538816 Iustin Pop
(without the other Ganeti libraries), is provided in the source tree as
186 ba538816 Iustin Pop
``lib/rapi/client.py``. Note this client might change its interface in
187 ba538816 Iustin Pop
the future, as we iterate on its capabilities.
188 ba538816 Iustin Pop
189 ba538816 Iustin Pop
A new command, ``gnt-cluster renew-crypto`` has been added to easily
190 ba538816 Iustin Pop
replace the cluster's certificates and crypto keys. This might help in
191 ba538816 Iustin Pop
case they have been compromised, or have simply expired.
192 ba538816 Iustin Pop
193 ba538816 Iustin Pop
A new disk option for instance creation has been added that allows one
194 ba538816 Iustin Pop
to "adopt" currently existing logical volumes, with data
195 ba538816 Iustin Pop
preservation. This should allow easier migration to Ganeti from
196 ba538816 Iustin Pop
unmanaged (or managed via other software) instances.
197 ba538816 Iustin Pop
198 ba538816 Iustin Pop
Another disk improvement is the possibility to convert between redundant
199 ba538816 Iustin Pop
(DRBD) and plain (LVM) disk configuration for an instance. This should
200 ba538816 Iustin Pop
allow better scalability (starting with one node and growing the
201 ba538816 Iustin Pop
cluster, or shrinking a two-node cluster to one node).
202 ba538816 Iustin Pop
203 ba538816 Iustin Pop
A new feature that could help with automated node failovers has been
204 ba538816 Iustin Pop
implemented: if a node sees itself as offline (by querying the master
205 ba538816 Iustin Pop
candidates), it will try to shutdown (hard) all instances and any active
206 ba538816 Iustin Pop
DRBD devices. This reduces the risk of duplicate instances if an
207 ba538816 Iustin Pop
external script automatically failovers the instances on such nodes. To
208 ba538816 Iustin Pop
enable this, the cluster parameter ``maintain_node_health`` should be
209 ba538816 Iustin Pop
enabled; in the future this option (per the name) will enable other
210 ba538816 Iustin Pop
automatic maintenance features.
211 ba538816 Iustin Pop
212 ba538816 Iustin Pop
Instance export/import now will reuse the original instance
213 ba538816 Iustin Pop
specifications for all parameters; that means exporting an instance,
214 ba538816 Iustin Pop
deleting it and the importing it back should give an almost identical
215 ba538816 Iustin Pop
instance. Note that the default import behaviour has changed from
216 ba538816 Iustin Pop
before, where it created only one NIC; now it recreates the original
217 ba538816 Iustin Pop
number of NICs.
218 ba538816 Iustin Pop
219 ba538816 Iustin Pop
Cluster verify has added a few new checks: SSL certificates validity,
220 ba538816 Iustin Pop
/etc/hosts consistency across the cluster, etc.
221 ba538816 Iustin Pop
222 ba538816 Iustin Pop
Other changes
223 ba538816 Iustin Pop
~~~~~~~~~~~~~
224 ba538816 Iustin Pop
225 ba538816 Iustin Pop
As usual, many internal changes were done, documentation fixes,
226 ba538816 Iustin Pop
etc. Among others:
227 ba538816 Iustin Pop
228 ba538816 Iustin Pop
- Fixed cluster initialization with disabled cluster storage (regression
229 ba538816 Iustin Pop
  introduced in 2.1.1)
230 ba538816 Iustin Pop
- File-based storage supports growing the disks
231 ba538816 Iustin Pop
- Fixed behaviour of node role changes
232 ba538816 Iustin Pop
- Fixed cluster verify for some corner cases, plus a general rewrite of
233 ba538816 Iustin Pop
  cluster verify to allow future extension with more checks
234 ba538816 Iustin Pop
- Fixed log spamming by watcher and node daemon (regression introduced
235 ba538816 Iustin Pop
  in 2.1.1)
236 ba538816 Iustin Pop
- Fixed possible validation issues when changing the list of enabled
237 ba538816 Iustin Pop
  hypervisors
238 ba538816 Iustin Pop
- Fixed cleanup of /etc/hosts during node removal
239 ba538816 Iustin Pop
- Fixed RAPI response for invalid methods
240 ba538816 Iustin Pop
- Fixed bug with hashed passwords in ``ganeti-rapi`` daemon
241 ba538816 Iustin Pop
- Multiple small improvements to the KVM hypervisor (VNC usage, booting
242 ba538816 Iustin Pop
  from ide disks, etc.)
243 ba538816 Iustin Pop
- Allow OS changes without re-installation (to record a changed OS
244 ba538816 Iustin Pop
  outside of Ganeti, or to allow OS renames)
245 ba538816 Iustin Pop
- Allow instance creation without OS installation (useful for example if
246 ba538816 Iustin Pop
  the OS will be installed manually, or restored from a backup not in
247 ba538816 Iustin Pop
  Ganeti format)
248 ba538816 Iustin Pop
- Implemented option to make cluster ``copyfile`` use the replication
249 ba538816 Iustin Pop
  network
250 ba538816 Iustin Pop
- Added list of enabled hypervisors to ssconf (possibly useful for
251 ba538816 Iustin Pop
  external scripts)
252 ba538816 Iustin Pop
- Added a new tool (``tools/cfgupgrade12``) that allows upgrading from
253 ba538816 Iustin Pop
  1.2 clusters
254 ba538816 Iustin Pop
- A partial form of node re-IP is possible via node readd, which now
255 ba538816 Iustin Pop
  allows changed node primary IP
256 ba538816 Iustin Pop
- Command line utilities now show an informational message if the job is
257 ba538816 Iustin Pop
  waiting for a lock
258 ba538816 Iustin Pop
- The logs of the master daemon now show the PID/UID/GID of the
259 ba538816 Iustin Pop
  connected client
260 ba538816 Iustin Pop
261 ba538816 Iustin Pop
262 c655522d Iustin Pop
Version 2.1.1
263 c655522d Iustin Pop
-------------
264 c655522d Iustin Pop
265 bdc93557 Iustin Pop
*(Released Fri, 12 Mar 2010)*
266 bdc93557 Iustin Pop
267 c655522d Iustin Pop
During the 2.1.0 long release candidate cycle, a lot of improvements and
268 c655522d Iustin Pop
changes have accumulated with were released later as 2.1.1.
269 c655522d Iustin Pop
270 c655522d Iustin Pop
Major changes
271 c655522d Iustin Pop
~~~~~~~~~~~~~
272 c655522d Iustin Pop
273 c655522d Iustin Pop
The node evacuate command (``gnt-node evacuate``) was significantly
274 c655522d Iustin Pop
rewritten, and as such the IAllocator protocol was changed - a new
275 c655522d Iustin Pop
request type has been added. This unfortunate change during a stable
276 c655522d Iustin Pop
series is designed to improve performance of node evacuations; on
277 c655522d Iustin Pop
clusters with more than about five nodes and which are well-balanced,
278 c655522d Iustin Pop
evacuation should proceed in parallel for all instances of the node
279 c655522d Iustin Pop
being evacuated. As such, any existing IAllocator scripts need to be
280 c655522d Iustin Pop
updated, otherwise the above command will fail due to the unknown
281 c655522d Iustin Pop
request. The provided "dumb" allocator has not been updated; but the
282 c655522d Iustin Pop
ganeti-htools package supports the new protocol since version 0.2.4.
283 c655522d Iustin Pop
284 c655522d Iustin Pop
Another important change is increased validation of node and instance
285 c655522d Iustin Pop
names. This might create problems in special cases, if invalid host
286 c655522d Iustin Pop
names are being used.
287 c655522d Iustin Pop
288 c655522d Iustin Pop
Also, a new layer of hypervisor parameters has been added, that sits at
289 c655522d Iustin Pop
OS level between the cluster defaults and the instance ones. This allows
290 c655522d Iustin Pop
customisation of virtualization parameters depending on the installed
291 c655522d Iustin Pop
OS. For example instances with OS 'X' may have a different KVM kernel
292 c655522d Iustin Pop
(or any other parameter) than the cluster defaults. This is intended to
293 c655522d Iustin Pop
help managing a multiple OSes on the same cluster, without manual
294 c655522d Iustin Pop
modification of each instance's parameters.
295 c655522d Iustin Pop
296 c655522d Iustin Pop
A tool for merging clusters, ``cluster-merge``, has been added in the
297 c655522d Iustin Pop
tools sub-directory.
298 c655522d Iustin Pop
299 c655522d Iustin Pop
Bug fixes
300 c655522d Iustin Pop
~~~~~~~~~
301 c655522d Iustin Pop
302 c655522d Iustin Pop
- Improved the int/float conversions that should make the code more
303 c655522d Iustin Pop
  robust in face of errors from the node daemons
304 c655522d Iustin Pop
- Fixed the remove node code in case of internal configuration errors
305 c655522d Iustin Pop
- Fixed the node daemon behaviour in face of inconsistent queue
306 c655522d Iustin Pop
  directory (e.g. read-only file-system where we can't open the files
307 c655522d Iustin Pop
  read-write, etc.)
308 c655522d Iustin Pop
- Fixed the behaviour of gnt-node modify for master candidate demotion;
309 c655522d Iustin Pop
  now it either aborts cleanly or, if given the new โ€œauto_promoteโ€
310 c655522d Iustin Pop
  parameter, will automatically promote other nodes as needed
311 c655522d Iustin Pop
- Fixed compatibility with (unreleased yet) Python 2.6.5 that would
312 c655522d Iustin Pop
  completely prevent Ganeti from working
313 c655522d Iustin Pop
- Fixed bug for instance export when not all disks were successfully
314 c655522d Iustin Pop
  exported
315 c655522d Iustin Pop
- Fixed behaviour of node add when the new node is slow in starting up
316 c655522d Iustin Pop
  the node daemon
317 c655522d Iustin Pop
- Fixed handling of signals in the LUXI client, which should improve
318 c655522d Iustin Pop
  behaviour of command-line scripts
319 c655522d Iustin Pop
- Added checks for invalid node/instance names in the configuration (now
320 c655522d Iustin Pop
  flagged during cluster verify)
321 c655522d Iustin Pop
- Fixed watcher behaviour for disk activation errors
322 c655522d Iustin Pop
- Fixed two potentially endless loops in http library, which led to the
323 c655522d Iustin Pop
  RAPI daemon hanging and consuming 100% CPU in some cases
324 c655522d Iustin Pop
- Fixed bug in RAPI daemon related to hashed passwords
325 c655522d Iustin Pop
- Fixed bug for unintended qemu-level bridging of multi-NIC KVM
326 c655522d Iustin Pop
  instances
327 c655522d Iustin Pop
- Enhanced compatibility with non-Debian OSes, but not using absolute
328 c655522d Iustin Pop
  path in some commands and allowing customisation of the ssh
329 c655522d Iustin Pop
  configuration directory
330 c655522d Iustin Pop
- Fixed possible future issue with new Python versions by abiding to the
331 c655522d Iustin Pop
  proper use of ``__slots__`` attribute on classes
332 c655522d Iustin Pop
- Added checks that should prevent directory traversal attacks
333 c655522d Iustin Pop
- Many documentation fixes based on feedback from users
334 c655522d Iustin Pop
335 c655522d Iustin Pop
New features
336 c655522d Iustin Pop
~~~~~~~~~~~~
337 c655522d Iustin Pop
338 c655522d Iustin Pop
- Added an โ€œearly_releaseโ€ more for instance replace disks and node
339 c655522d Iustin Pop
  evacuate, where we release locks earlier and thus allow higher
340 c655522d Iustin Pop
  parallelism within the cluster
341 c655522d Iustin Pop
- Added watcher hooks, intended to allow the watcher to restart other
342 c655522d Iustin Pop
  daemons (e.g. from the ganeti-nbma project), but they can be used of
343 c655522d Iustin Pop
  course for any other purpose
344 c655522d Iustin Pop
- Added a compile-time disable for DRBD barriers, to increase
345 c655522d Iustin Pop
  performance if the administrator trusts the power supply or the
346 c655522d Iustin Pop
  storage system to not lose writes
347 c655522d Iustin Pop
- Added the option of using syslog for logging instead of, or in
348 c655522d Iustin Pop
  addition to, Ganeti's own log files
349 c655522d Iustin Pop
- Removed boot restriction for paravirtual NICs for KVM, recent versions
350 c655522d Iustin Pop
  can indeed boot from a paravirtual NIC
351 c655522d Iustin Pop
- Added a generic debug level for many operations; while this is not
352 c655522d Iustin Pop
  used widely yet, it allows one to pass the debug value all the way to
353 c655522d Iustin Pop
  the OS scripts
354 c655522d Iustin Pop
- Enhanced the hooks environment for instance moves (failovers,
355 c655522d Iustin Pop
  migrations) where the primary/secondary nodes changed during the
356 c655522d Iustin Pop
  operation, by adding {NEW,OLD}_{PRIMARY,SECONDARY} vars
357 c655522d Iustin Pop
- Enhanced data validations for many user-supplied values; one important
358 c655522d Iustin Pop
  item is the restrictions imposed on instance and node names, which
359 c655522d Iustin Pop
  might reject some (invalid) host names
360 c655522d Iustin Pop
- Add a configure-time option to disable file-based storage, if it's not
361 c655522d Iustin Pop
  needed; this allows greater security separation between the master
362 c655522d Iustin Pop
  node and the other nodes from the point of view of the inter-node RPC
363 c655522d Iustin Pop
  protocol
364 c655522d Iustin Pop
- Added user notification in interactive tools if job is waiting in the
365 c655522d Iustin Pop
  job queue or trying to acquire locks
366 c655522d Iustin Pop
- Added log messages when a job is waiting for locks
367 c655522d Iustin Pop
- Added filtering by node tags in instance operations which admit
368 c655522d Iustin Pop
  multiple instances (start, stop, reboot, reinstall)
369 c655522d Iustin Pop
- Added a new tool for cluster mergers, ``cluster-merge``
370 c655522d Iustin Pop
- Parameters from command line which are of the form ``a=b,c=d`` can now
371 c655522d Iustin Pop
  use backslash escapes to pass in values which contain commas,
372 c655522d Iustin Pop
  e.g. ``a=b\\c,d=e`` where the 'a' parameter would get the value
373 c655522d Iustin Pop
  ``b,c``
374 c655522d Iustin Pop
- For KVM, the instance name is the first parameter passed to KVM, so
375 c655522d Iustin Pop
  that it's more visible in the process list
376 c655522d Iustin Pop
377 c655522d Iustin Pop
378 920a91bf Michael Hanselmann
Version 2.1.0
379 920a91bf Michael Hanselmann
-------------
380 920a91bf Michael Hanselmann
381 bdc93557 Iustin Pop
*(Released Tue, 2 Mar 2010)*
382 bdc93557 Iustin Pop
383 920a91bf Michael Hanselmann
Ganeti 2.1 brings many improvements with it. Major changes:
384 920a91bf Michael Hanselmann
385 920a91bf Michael Hanselmann
- Added infrastructure to ease automated disk repairs
386 920a91bf Michael Hanselmann
- Added new daemon to export configuration data in a cheaper way than
387 920a91bf Michael Hanselmann
  using the remote API
388 920a91bf Michael Hanselmann
- Instance NICs can now be routed instead of being associated with a
389 920a91bf Michael Hanselmann
  networking bridge
390 920a91bf Michael Hanselmann
- Improved job locking logic to reduce impact of jobs acquiring multiple
391 920a91bf Michael Hanselmann
  locks waiting for other long-running jobs
392 920a91bf Michael Hanselmann
393 bfe61b0b Iustin Pop
In-depth implementation details can be found in the Ganeti 2.1 design
394 920a91bf Michael Hanselmann
document.
395 920a91bf Michael Hanselmann
396 920a91bf Michael Hanselmann
Details
397 920a91bf Michael Hanselmann
~~~~~~~
398 920a91bf Michael Hanselmann
399 920a91bf Michael Hanselmann
- Added chroot hypervisor
400 920a91bf Michael Hanselmann
- Added more options to xen-hvm hypervisor (``kernel_path`` and
401 920a91bf Michael Hanselmann
  ``device_model``)
402 920a91bf Michael Hanselmann
- Added more options to xen-pvm hypervisor (``use_bootloader``,
403 920a91bf Michael Hanselmann
  ``bootloader_path`` and ``bootloader_args``)
404 bfe61b0b Iustin Pop
- Added the ``use_localtime`` option for the xen-hvm and kvm
405 bfe61b0b Iustin Pop
  hypervisors, and the default value for this has changed to false (in
406 bfe61b0b Iustin Pop
  2.0 xen-hvm always enabled it)
407 920a91bf Michael Hanselmann
- Added luxi call to submit multiple jobs in one go
408 bfe61b0b Iustin Pop
- Added cluster initialization option to not modify ``/etc/hosts``
409 920a91bf Michael Hanselmann
  file on nodes
410 920a91bf Michael Hanselmann
- Added network interface parameters
411 920a91bf Michael Hanselmann
- Added dry run mode to some LUs
412 920a91bf Michael Hanselmann
- Added RAPI resources:
413 920a91bf Michael Hanselmann
414 920a91bf Michael Hanselmann
  - ``/2/instances/[instance_name]/info``
415 920a91bf Michael Hanselmann
  - ``/2/instances/[instance_name]/replace-disks``
416 920a91bf Michael Hanselmann
  - ``/2/nodes/[node_name]/evacuate``
417 920a91bf Michael Hanselmann
  - ``/2/nodes/[node_name]/migrate``
418 920a91bf Michael Hanselmann
  - ``/2/nodes/[node_name]/role``
419 920a91bf Michael Hanselmann
  - ``/2/nodes/[node_name]/storage``
420 920a91bf Michael Hanselmann
  - ``/2/nodes/[node_name]/storage/modify``
421 920a91bf Michael Hanselmann
  - ``/2/nodes/[node_name]/storage/repair``
422 920a91bf Michael Hanselmann
423 920a91bf Michael Hanselmann
- Added OpCodes to evacuate or migrate all instances on a node
424 9b94905f Iustin Pop
- Added new command to list storage elements on nodes (``gnt-node
425 9b94905f Iustin Pop
  list-storage``) and modify them (``gnt-node modify-storage``)
426 920a91bf Michael Hanselmann
- Added new ssconf files with master candidate IP address
427 920a91bf Michael Hanselmann
  (``ssconf_master_candidates_ips``), node primary IP address
428 920a91bf Michael Hanselmann
  (``ssconf_node_primary_ips``) and node secondary IP address
429 920a91bf Michael Hanselmann
  (``ssconf_node_secondary_ips``)
430 920a91bf Michael Hanselmann
- Added ``ganeti-confd`` and a client library to query the Ganeti
431 920a91bf Michael Hanselmann
  configuration via UDP
432 920a91bf Michael Hanselmann
- Added ability to run hooks after cluster initialization and before
433 920a91bf Michael Hanselmann
  cluster destruction
434 920a91bf Michael Hanselmann
- Added automatic mode for disk replace (``gnt-instance replace-disks
435 920a91bf Michael Hanselmann
  --auto``)
436 cc291012 Iustin Pop
- Added ``gnt-instance recreate-disks`` to re-create (empty) disks
437 cc291012 Iustin Pop
  after catastrophic data-loss
438 9b94905f Iustin Pop
- Added ``gnt-node repair-storage`` command to repair damaged LVM volume
439 920a91bf Michael Hanselmann
  groups
440 920a91bf Michael Hanselmann
- Added ``gnt-instance move`` command to move instances
441 920a91bf Michael Hanselmann
- Added ``gnt-cluster watcher`` command to control watcher
442 920a91bf Michael Hanselmann
- Added ``gnt-node powercycle`` command to powercycle nodes
443 920a91bf Michael Hanselmann
- Added new job status field ``lock_status``
444 920a91bf Michael Hanselmann
- Added parseable error codes to cluster verification (``gnt-cluster
445 920a91bf Michael Hanselmann
  verify --error-codes``) and made output less verbose (use
446 920a91bf Michael Hanselmann
  ``--verbose`` to restore previous behaviour)
447 cc291012 Iustin Pop
- Added UUIDs to the main config entities (cluster, nodes, instances)
448 920a91bf Michael Hanselmann
- Added support for OS variants
449 936f3c59 Michael Hanselmann
- Added support for hashed passwords in the Ganeti remote API users file
450 936f3c59 Michael Hanselmann
  (``rapi_users``)
451 936f3c59 Michael Hanselmann
- Added option to specify maximum timeout on instance shutdown
452 936f3c59 Michael Hanselmann
- Added ``--no-ssh-init`` option to ``gnt-cluster init``
453 f154a7a3 Michael Hanselmann
- Added new helper script to start and stop Ganeti daemons
454 f154a7a3 Michael Hanselmann
  (``daemon-util``), with the intent to reduce the work necessary to
455 f154a7a3 Michael Hanselmann
  adjust Ganeti for non-Debian distributions and to start/stop daemons
456 f154a7a3 Michael Hanselmann
  from one place
457 920a91bf Michael Hanselmann
- Added more unittests
458 920a91bf Michael Hanselmann
- Fixed critical bug in ganeti-masterd startup
459 bfe61b0b Iustin Pop
- Removed the configure-time ``kvm-migration-port`` parameter, this is
460 bfe61b0b Iustin Pop
  now customisable at the cluster level for both the KVM and Xen
461 bfe61b0b Iustin Pop
  hypervisors using the new ``migration_port`` parameter
462 920a91bf Michael Hanselmann
- Pass ``INSTANCE_REINSTALL`` variable to OS installation script when
463 920a91bf Michael Hanselmann
  reinstalling an instance
464 3e5af833 Michael Hanselmann
- Allowed ``@`` in tag names
465 936f3c59 Michael Hanselmann
- Migrated to Sphinx (http://sphinx.pocoo.org/) for documentation
466 920a91bf Michael Hanselmann
- Many documentation updates
467 920a91bf Michael Hanselmann
- Distribute hypervisor files on ``gnt-cluster redist-conf``
468 920a91bf Michael Hanselmann
- ``gnt-instance reinstall`` can now reinstall multiple instances
469 920a91bf Michael Hanselmann
- Updated many command line parameters
470 920a91bf Michael Hanselmann
- Introduced new OS API version 15
471 920a91bf Michael Hanselmann
- No longer support a default hypervisor
472 920a91bf Michael Hanselmann
- Treat virtual LVs as inexistent
473 920a91bf Michael Hanselmann
- Improved job locking logic to reduce lock contention
474 920a91bf Michael Hanselmann
- Match instance and node names case insensitively
475 920a91bf Michael Hanselmann
- Reimplemented bash completion script to be more complete
476 920a91bf Michael Hanselmann
- Improved burnin
477 920a91bf Michael Hanselmann
478 920a91bf Michael Hanselmann
479 e8cd4796 Iustin Pop
Version 2.0.6
480 7b8f3fcd Michael Hanselmann
-------------
481 7b8f3fcd Michael Hanselmann
482 bdc93557 Iustin Pop
*(Released Thu, 4 Feb 2010)*
483 bdc93557 Iustin Pop
484 7b8f3fcd Michael Hanselmann
- Fix cleaner behaviour on nodes not in a cluster (Debian bug 568105)
485 7b8f3fcd Michael Hanselmann
- Fix a string formatting bug
486 7b8f3fcd Michael Hanselmann
- Improve safety of the code in some error paths
487 7b8f3fcd Michael Hanselmann
- Improve data validation in the master of values returned from nodes
488 7b8f3fcd Michael Hanselmann
489 e8cd4796 Iustin Pop
490 e5823b7e Iustin Pop
Version 2.0.5
491 5c0433d6 Iustin Pop
-------------
492 5c0433d6 Iustin Pop
493 bdc93557 Iustin Pop
*(Released Thu, 17 Dec 2009)*
494 bdc93557 Iustin Pop
495 5c0433d6 Iustin Pop
- Fix security issue due to missing validation of iallocator names; this
496 5c0433d6 Iustin Pop
  allows local and remote execution of arbitrary executables
497 5c0433d6 Iustin Pop
- Fix failure of gnt-node list during instance removal
498 5c0433d6 Iustin Pop
- Ship the RAPI documentation in the archive
499 5c0433d6 Iustin Pop
500 e5823b7e Iustin Pop
501 7579eb06 Iustin Pop
Version 2.0.4
502 c8872a0b Iustin Pop
-------------
503 c8872a0b Iustin Pop
504 bdc93557 Iustin Pop
*(Released Wed, 30 Sep 2009)*
505 bdc93557 Iustin Pop
506 c8872a0b Iustin Pop
- Fixed many wrong messages
507 c8872a0b Iustin Pop
- Fixed a few bugs related to the locking library
508 c8872a0b Iustin Pop
- Fixed MAC checking at instance creation time
509 c8872a0b Iustin Pop
- Fixed a DRBD parsing bug related to gaps in /proc/drbd
510 c8872a0b Iustin Pop
- Fixed a few issues related to signal handling in both daemons and
511 c8872a0b Iustin Pop
  scripts
512 c8872a0b Iustin Pop
- Fixed the example startup script provided
513 c8872a0b Iustin Pop
- Fixed insserv dependencies in the example startup script (patch from
514 c8872a0b Iustin Pop
  Debian)
515 c8872a0b Iustin Pop
- Fixed handling of drained nodes in the iallocator framework
516 c8872a0b Iustin Pop
- Fixed handling of KERNEL_PATH parameter for xen-hvm (Debian bug
517 c8872a0b Iustin Pop
  #528618)
518 c8872a0b Iustin Pop
- Fixed error related to invalid job IDs in job polling
519 c8872a0b Iustin Pop
- Fixed job/opcode persistence on unclean master shutdown
520 c8872a0b Iustin Pop
- Fixed handling of partial job processing after unclean master
521 c8872a0b Iustin Pop
  shutdown
522 c8872a0b Iustin Pop
- Fixed error reporting from LUs, previously all errors were converted
523 c8872a0b Iustin Pop
  into execution errors
524 c8872a0b Iustin Pop
- Fixed error reporting from burnin
525 c8872a0b Iustin Pop
- Decreased significantly the memory usage of the job queue
526 c8872a0b Iustin Pop
- Optimised slightly multi-job submission
527 c8872a0b Iustin Pop
- Optimised slightly opcode loading
528 c8872a0b Iustin Pop
- Backported the multi-job submit framework from the development
529 c8872a0b Iustin Pop
  branch; multi-instance start and stop should be faster
530 c8872a0b Iustin Pop
- Added script to clean archived jobs after 21 days; this will reduce
531 c8872a0b Iustin Pop
  the size of the queue directory
532 c8872a0b Iustin Pop
- Added some extra checks in disk size tracking
533 c8872a0b Iustin Pop
- Added an example ethers hook script
534 c8872a0b Iustin Pop
- Added a cluster parameter that prevents Ganeti from modifying of
535 c8872a0b Iustin Pop
  /etc/hosts
536 c8872a0b Iustin Pop
- Added more node information to RAPI responses
537 aa287e8c Michael Hanselmann
- Added a ``gnt-job watch`` command that allows following the ouput of a
538 c8872a0b Iustin Pop
  job
539 c8872a0b Iustin Pop
- Added a bind-address option to ganeti-rapi
540 c8872a0b Iustin Pop
- Added more checks to the configuration verify
541 c8872a0b Iustin Pop
- Enhanced the burnin script such that some operations can be retried
542 c8872a0b Iustin Pop
  automatically
543 c8872a0b Iustin Pop
- Converted instance reinstall to multi-instance model
544 61b5e342 Michael Hanselmann
545 aa287e8c Michael Hanselmann
546 9d725d41 Iustin Pop
Version 2.0.3
547 61b5e342 Michael Hanselmann
-------------
548 61b5e342 Michael Hanselmann
549 bdc93557 Iustin Pop
*(Released Fri, 7 Aug 2009)*
550 bdc93557 Iustin Pop
551 61b5e342 Michael Hanselmann
- Added ``--ignore-size`` to the ``gnt-instance activate-disks`` command
552 61b5e342 Michael Hanselmann
  to allow using the pre-2.0.2 behaviour in activation, if any existing
553 61b5e342 Michael Hanselmann
  instances have mismatched disk sizes in the configuration
554 7faf5110 Michael Hanselmann
- Added ``gnt-cluster repair-disk-sizes`` command to check and update
555 7faf5110 Michael Hanselmann
  any configuration mismatches for disk sizes
556 61b5e342 Michael Hanselmann
- Added ``gnt-master cluste-failover --no-voting`` to allow master
557 61b5e342 Michael Hanselmann
  failover to work on two-node clusters
558 aa287e8c Michael Hanselmann
- Fixed the ``--net`` option of ``gnt-backup import``, which was
559 aa287e8c Michael Hanselmann
  unusable
560 61b5e342 Michael Hanselmann
- Fixed detection of OS script errors in ``gnt-backup export``
561 61b5e342 Michael Hanselmann
- Fixed exit code of ``gnt-backup export``
562 61b5e342 Michael Hanselmann
563 9d725d41 Iustin Pop
564 550a995a Iustin Pop
Version 2.0.2
565 61b5e342 Michael Hanselmann
-------------
566 61b5e342 Michael Hanselmann
567 bdc93557 Iustin Pop
*(Released Fri, 17 Jul 2009)*
568 bdc93557 Iustin Pop
569 61b5e342 Michael Hanselmann
- Added experimental support for stripped logical volumes; this should
570 61b5e342 Michael Hanselmann
  enhance performance but comes with a higher complexity in the block
571 61b5e342 Michael Hanselmann
  device handling; stripping is only enabled when passing
572 61b5e342 Michael Hanselmann
  ``--with-lvm-stripecount=N`` to ``configure``, but codepaths are
573 61b5e342 Michael Hanselmann
  affected even in the non-stripped mode
574 61b5e342 Michael Hanselmann
- Improved resiliency against transient failures at the end of DRBD
575 61b5e342 Michael Hanselmann
  resyncs, and in general of DRBD resync checks
576 61b5e342 Michael Hanselmann
- Fixed a couple of issues with exports and snapshot errors
577 61b5e342 Michael Hanselmann
- Fixed a couple of issues in instance listing
578 61b5e342 Michael Hanselmann
- Added display of the disk size in ``gnt-instance info``
579 61b5e342 Michael Hanselmann
- Fixed checking for valid OSes in instance creation
580 aa287e8c Michael Hanselmann
- Fixed handling of the "vcpus" parameter in instance listing and in
581 61b5e342 Michael Hanselmann
  general of invalid parameters
582 61b5e342 Michael Hanselmann
- Fixed http server library, and thus RAPI, to handle invalid
583 61b5e342 Michael Hanselmann
  username/password combinations correctly; this means that now they
584 61b5e342 Michael Hanselmann
  report unauthorized for queries too, not only for modifications,
585 61b5e342 Michael Hanselmann
  allowing earlier detect of configuration problems
586 aa287e8c Michael Hanselmann
- Added a new "role" node list field, equivalent to the master/master
587 61b5e342 Michael Hanselmann
  candidate/drained/offline flags combinations
588 61b5e342 Michael Hanselmann
- Fixed cluster modify and changes of candidate pool size
589 61b5e342 Michael Hanselmann
- Fixed cluster verify error messages for wrong files on regular nodes
590 61b5e342 Michael Hanselmann
- Fixed a couple of issues with node demotion from master candidate role
591 61b5e342 Michael Hanselmann
- Fixed node readd issues
592 61b5e342 Michael Hanselmann
- Added non-interactive mode for ``ganeti-masterd --no-voting`` startup
593 aa287e8c Michael Hanselmann
- Added a new ``--no-voting`` option for masterfailover to fix failover
594 aa287e8c Michael Hanselmann
  on two-nodes clusters when the former master node is unreachable
595 61b5e342 Michael Hanselmann
- Added instance reinstall over RAPI
596 61b5e342 Michael Hanselmann
597 550a995a Iustin Pop
598 0dea942c Iustin Pop
Version 2.0.1
599 61b5e342 Michael Hanselmann
-------------
600 61b5e342 Michael Hanselmann
601 bdc93557 Iustin Pop
*(Released Tue, 16 Jun 2009)*
602 bdc93557 Iustin Pop
603 61b5e342 Michael Hanselmann
- added ``-H``/``-B`` startup parameters to ``gnt-instance``, which will
604 61b5e342 Michael Hanselmann
  allow re-adding the start in single-user option (regression from 1.2)
605 61b5e342 Michael Hanselmann
- the watcher writes the instance status to a file, to allow monitoring
606 61b5e342 Michael Hanselmann
  to report the instance status (from the master) based on cached
607 61b5e342 Michael Hanselmann
  results of the watcher's queries; while this can get stale if the
608 61b5e342 Michael Hanselmann
  watcher is being locked due to other work on the cluster, this is
609 61b5e342 Michael Hanselmann
  still an improvement
610 61b5e342 Michael Hanselmann
- the watcher now also restarts the node daemon and the rapi daemon if
611 61b5e342 Michael Hanselmann
  they died
612 61b5e342 Michael Hanselmann
- fixed the watcher to handle full and drained queue cases
613 7faf5110 Michael Hanselmann
- hooks export more instance data in the environment, which helps if
614 7faf5110 Michael Hanselmann
  hook scripts need to take action based on the instance's properties
615 7faf5110 Michael Hanselmann
  (no longer need to query back into ganeti)
616 61b5e342 Michael Hanselmann
- instance failovers when the instance is stopped do not check for free
617 61b5e342 Michael Hanselmann
  RAM, so that failing over a stopped instance is possible in low memory
618 61b5e342 Michael Hanselmann
  situations
619 61b5e342 Michael Hanselmann
- rapi uses queries for tags instead of jobs (for less job traffic), and
620 61b5e342 Michael Hanselmann
  for cluster tags it won't talk to masterd at all but read them from
621 61b5e342 Michael Hanselmann
  ssconf
622 61b5e342 Michael Hanselmann
- a couple of error handling fixes in RAPI
623 61b5e342 Michael Hanselmann
- drbd handling: improved the error handling of inconsistent disks after
624 61b5e342 Michael Hanselmann
  resync to reduce the frequency of "there are some degraded disks for
625 61b5e342 Michael Hanselmann
  this instance" messages
626 61b5e342 Michael Hanselmann
- fixed a bug in live migration when DRBD doesn't want to reconnect (the
627 61b5e342 Michael Hanselmann
  error handling path called a wrong function name)
628 61b5e342 Michael Hanselmann
629 0dea942c Iustin Pop
630 7a8994d4 Iustin Pop
Version 2.0.0 final
631 61b5e342 Michael Hanselmann
-------------------
632 61b5e342 Michael Hanselmann
633 bdc93557 Iustin Pop
*(Released Wed, 27 May 2009)*
634 bdc93557 Iustin Pop
635 61b5e342 Michael Hanselmann
- no changes from rc5
636 61b5e342 Michael Hanselmann
637 7a8994d4 Iustin Pop
638 b926bd98 Iustin Pop
Version 2.0 release candidate 5
639 61b5e342 Michael Hanselmann
-------------------------------
640 61b5e342 Michael Hanselmann
641 bdc93557 Iustin Pop
*(Released Wed, 20 May 2009)*
642 bdc93557 Iustin Pop
643 61b5e342 Michael Hanselmann
- fix a couple of bugs (validation, argument checks)
644 61b5e342 Michael Hanselmann
- fix ``gnt-cluster getmaster`` on non-master nodes (regression)
645 61b5e342 Michael Hanselmann
- some small improvements to RAPI and IAllocator
646 61b5e342 Michael Hanselmann
- make watcher automatically start the master daemon if down
647 61b5e342 Michael Hanselmann
648 b926bd98 Iustin Pop
649 d1908b41 Iustin Pop
Version 2.0 release candidate 4
650 61b5e342 Michael Hanselmann
-------------------------------
651 61b5e342 Michael Hanselmann
652 bdc93557 Iustin Pop
*(Released Mon, 27 Apr 2009)*
653 bdc93557 Iustin Pop
654 61b5e342 Michael Hanselmann
- change the OS list to not require locks; this helps with big clusters
655 61b5e342 Michael Hanselmann
- fix ``gnt-cluster verify`` and ``gnt-cluster verify-disks`` when the
656 61b5e342 Michael Hanselmann
  volume group is broken
657 61b5e342 Michael Hanselmann
- ``gnt-instance info``, without any arguments, doesn't run for all
658 61b5e342 Michael Hanselmann
  instances anymore; either pass ``--all`` or pass the desired
659 61b5e342 Michael Hanselmann
  instances; this helps against mistakes on big clusters where listing
660 61b5e342 Michael Hanselmann
  the information for all instances takes a long time
661 61b5e342 Michael Hanselmann
- miscellaneous doc and man pages fixes
662 61b5e342 Michael Hanselmann
663 d1908b41 Iustin Pop
664 5bbefdec Iustin Pop
Version 2.0 release candidate 3
665 61b5e342 Michael Hanselmann
-------------------------------
666 61b5e342 Michael Hanselmann
667 bdc93557 Iustin Pop
*(Released Wed, 8 Apr 2009)*
668 bdc93557 Iustin Pop
669 61b5e342 Michael Hanselmann
- Change the internal locking model of some ``gnt-node`` commands, in
670 61b5e342 Michael Hanselmann
  order to reduce contention (and blocking of master daemon) when
671 61b5e342 Michael Hanselmann
  batching many creation/reinstall jobs
672 61b5e342 Michael Hanselmann
- Fixes to Xen soft reboot
673 61b5e342 Michael Hanselmann
- No longer build documentation at build time, instead distribute it in
674 61b5e342 Michael Hanselmann
  the archive, in order to reduce the need for the whole docbook/rst
675 61b5e342 Michael Hanselmann
  toolchains
676 61b5e342 Michael Hanselmann
677 5bbefdec Iustin Pop
678 f06d91f2 Iustin Pop
Version 2.0 release candidate 2
679 61b5e342 Michael Hanselmann
-------------------------------
680 61b5e342 Michael Hanselmann
681 bdc93557 Iustin Pop
*(Released Fri, 27 Mar 2009)*
682 bdc93557 Iustin Pop
683 61b5e342 Michael Hanselmann
- Now the cfgupgrade scripts works and can upgrade 1.2.7 clusters to 2.0
684 61b5e342 Michael Hanselmann
- Fix watcher startup sequence, improves the behaviour of busy clusters
685 61b5e342 Michael Hanselmann
- Some other fixes in ``gnt-cluster verify``, ``gnt-instance
686 61b5e342 Michael Hanselmann
  replace-disks``, ``gnt-instance add``, ``gnt-cluster queue``, KVM VNC
687 61b5e342 Michael Hanselmann
  bind address and other places
688 61b5e342 Michael Hanselmann
- Some documentation fixes and updates
689 61b5e342 Michael Hanselmann
690 f06d91f2 Iustin Pop
691 a2370b24 Iustin Pop
Version 2.0 release candidate 1
692 61b5e342 Michael Hanselmann
-------------------------------
693 61b5e342 Michael Hanselmann
694 bdc93557 Iustin Pop
*(Released Mon, 2 Mar 2009)*
695 bdc93557 Iustin Pop
696 61b5e342 Michael Hanselmann
- More documentation updates, now all docs should be more-or-less
697 61b5e342 Michael Hanselmann
  up-to-date
698 61b5e342 Michael Hanselmann
- A couple of small fixes (mixed hypervisor clusters, offline nodes,
699 61b5e342 Michael Hanselmann
  etc.)
700 61b5e342 Michael Hanselmann
- Added a customizable HV_KERNEL_ARGS hypervisor parameter (for Xen PVM
701 61b5e342 Michael Hanselmann
  and KVM)
702 61b5e342 Michael Hanselmann
- Fix an issue related to $libdir/run/ganeti and cluster creation
703 61b5e342 Michael Hanselmann
704 a2370b24 Iustin Pop
705 2fb85b64 Iustin Pop
Version 2.0 beta 2
706 61b5e342 Michael Hanselmann
------------------
707 61b5e342 Michael Hanselmann
708 bdc93557 Iustin Pop
*(Released Thu, 19 Feb 2009)*
709 bdc93557 Iustin Pop
710 61b5e342 Michael Hanselmann
- Xen PVM and KVM have switched the default value for the instance root
711 61b5e342 Michael Hanselmann
  disk to the first partition on the first drive, instead of the whole
712 61b5e342 Michael Hanselmann
  drive; this means that the OS installation scripts must be changed
713 61b5e342 Michael Hanselmann
  accordingly
714 61b5e342 Michael Hanselmann
- Man pages have been updated
715 61b5e342 Michael Hanselmann
- RAPI has been switched by default to HTTPS, and the exported functions
716 61b5e342 Michael Hanselmann
  should all work correctly
717 61b5e342 Michael Hanselmann
- RAPI v1 has been removed
718 61b5e342 Michael Hanselmann
- Many improvements to the KVM hypervisor
719 61b5e342 Michael Hanselmann
- Block device errors are now better reported
720 61b5e342 Michael Hanselmann
- Many other bugfixes and small improvements
721 61b5e342 Michael Hanselmann
722 2fb85b64 Iustin Pop
723 10f31783 Iustin Pop
Version 2.0 beta 1
724 61b5e342 Michael Hanselmann
------------------
725 61b5e342 Michael Hanselmann
726 bdc93557 Iustin Pop
*(Released Mon, 26 Jan 2009)*
727 bdc93557 Iustin Pop
728 61b5e342 Michael Hanselmann
- Version 2 is a general rewrite of the code and therefore the
729 61b5e342 Michael Hanselmann
  differences are too many to list, see the design document for 2.0 in
730 61b5e342 Michael Hanselmann
  the ``doc/`` subdirectory for more details
731 61b5e342 Michael Hanselmann
- In this beta version there is not yet a migration path from 1.2 (there
732 61b5e342 Michael Hanselmann
  will be one in the final 2.0 release)
733 61b5e342 Michael Hanselmann
- A few significant changes are:
734 61b5e342 Michael Hanselmann
735 61b5e342 Michael Hanselmann
  - all commands are executed by a daemon (``ganeti-masterd``) and the
736 61b5e342 Michael Hanselmann
    various ``gnt-*`` commands are just front-ends to it
737 7faf5110 Michael Hanselmann
  - all the commands are entered into, and executed from a job queue,
738 7faf5110 Michael Hanselmann
    see the ``gnt-job(8)`` manpage
739 7faf5110 Michael Hanselmann
  - the RAPI daemon supports read-write operations, secured by basic
740 7faf5110 Michael Hanselmann
    HTTP authentication on top of HTTPS
741 61b5e342 Michael Hanselmann
  - DRBD version 0.7 support has been removed, DRBD 8 is the only
742 61b5e342 Michael Hanselmann
    supported version (when migrating from Ganeti 1.2 to 2.0, you need
743 61b5e342 Michael Hanselmann
    to migrate to DRBD 8 first while still running Ganeti 1.2)
744 61b5e342 Michael Hanselmann
  - DRBD devices are using statically allocated minor numbers, which
745 61b5e342 Michael Hanselmann
    will be assigned to existing instances during the migration process
746 61b5e342 Michael Hanselmann
  - there is support for both Xen PVM and Xen HVM instances running on
747 61b5e342 Michael Hanselmann
    the same cluster
748 61b5e342 Michael Hanselmann
  - KVM virtualization is supported too
749 61b5e342 Michael Hanselmann
  - file-based storage has been implemented, which means that it is
750 61b5e342 Michael Hanselmann
    possible to run the cluster without LVM and DRBD storage, for
751 61b5e342 Michael Hanselmann
    example using a shared filesystem exported from shared storage (and
752 61b5e342 Michael Hanselmann
    still have live migration)
753 61b5e342 Michael Hanselmann
754 10f31783 Iustin Pop
755 10f31783 Iustin Pop
Version 1.2.7
756 61b5e342 Michael Hanselmann
-------------
757 61b5e342 Michael Hanselmann
758 bdc93557 Iustin Pop
*(Released Tue, 13 Jan 2009)*
759 bdc93557 Iustin Pop
760 61b5e342 Michael Hanselmann
- Change the default reboot type in ``gnt-instance reboot`` to "hard"
761 61b5e342 Michael Hanselmann
- Reuse the old instance mac address by default on instance import, if
762 61b5e342 Michael Hanselmann
  the instance name is the same.
763 7faf5110 Michael Hanselmann
- Handle situations in which the node info rpc returns incomplete
764 7faf5110 Michael Hanselmann
  results (issue 46)
765 61b5e342 Michael Hanselmann
- Add checks for tcp/udp ports collisions in ``gnt-cluster verify``
766 61b5e342 Michael Hanselmann
- Improved version of batcher:
767 61b5e342 Michael Hanselmann
768 61b5e342 Michael Hanselmann
  - state file support
769 61b5e342 Michael Hanselmann
  - instance mac address support
770 61b5e342 Michael Hanselmann
  - support for HVM clusters/instances
771 61b5e342 Michael Hanselmann
772 61b5e342 Michael Hanselmann
- Add an option to show the number of cpu sockets and nodes in
773 61b5e342 Michael Hanselmann
  ``gnt-node list``
774 61b5e342 Michael Hanselmann
- Support OSes that handle more than one version of the OS api (but do
775 61b5e342 Michael Hanselmann
  not change the current API in any other way)
776 61b5e342 Michael Hanselmann
- Fix ``gnt-node migrate``
777 61b5e342 Michael Hanselmann
- ``gnt-debug`` man page
778 61b5e342 Michael Hanselmann
- Fixes various more typos and small issues
779 61b5e342 Michael Hanselmann
- Increase disk resync maximum speed to 60MB/s (from 30MB/s)
780 61b5e342 Michael Hanselmann
781 10f31783 Iustin Pop
782 10f31783 Iustin Pop
Version 1.2.6
783 61b5e342 Michael Hanselmann
-------------
784 61b5e342 Michael Hanselmann
785 bdc93557 Iustin Pop
*(Released Wed, 24 Sep 2008)*
786 bdc93557 Iustin Pop
787 61b5e342 Michael Hanselmann
- new ``--hvm-nic-type`` and ``--hvm-disk-type`` flags to control the
788 61b5e342 Michael Hanselmann
  type of disk exported to fully virtualized instances.
789 61b5e342 Michael Hanselmann
- provide access to the serial console of HVM instances
790 7faf5110 Michael Hanselmann
- instance auto_balance flag, set by default. If turned off it will
791 7faf5110 Michael Hanselmann
  avoid warnings on cluster verify if there is not enough memory to fail
792 7faf5110 Michael Hanselmann
  over an instance. in the future it will prevent automatically failing
793 7faf5110 Michael Hanselmann
  it over when we will support that.
794 61b5e342 Michael Hanselmann
- batcher tool for instance creation, see ``tools/README.batcher``
795 61b5e342 Michael Hanselmann
- ``gnt-instance reinstall --select-os`` to interactively select a new
796 61b5e342 Michael Hanselmann
  operating system when reinstalling an instance.
797 61b5e342 Michael Hanselmann
- when changing the memory amount on instance modify a check has been
798 61b5e342 Michael Hanselmann
  added that the instance will be able to start. also warnings are
799 61b5e342 Michael Hanselmann
  emitted if the instance will not be able to fail over, if auto_balance
800 61b5e342 Michael Hanselmann
  is true.
801 61b5e342 Michael Hanselmann
- documentation fixes
802 61b5e342 Michael Hanselmann
- sync fields between ``gnt-instance list/modify/add/import``
803 61b5e342 Michael Hanselmann
- fix a race condition in drbd when the sync speed was set after giving
804 61b5e342 Michael Hanselmann
  the device a remote peer.
805 61b5e342 Michael Hanselmann
806 10f31783 Iustin Pop
807 10f31783 Iustin Pop
Version 1.2.5
808 61b5e342 Michael Hanselmann
-------------
809 61b5e342 Michael Hanselmann
810 bdc93557 Iustin Pop
*(Released Tue, 22 Jul 2008)*
811 bdc93557 Iustin Pop
812 61b5e342 Michael Hanselmann
- note: the allowed size and number of tags per object were reduced
813 61b5e342 Michael Hanselmann
- fix a bug in ``gnt-cluster verify`` with inconsistent volume groups
814 61b5e342 Michael Hanselmann
- fixed twisted 8.x compatibility
815 61b5e342 Michael Hanselmann
- fixed ``gnt-instance replace-disks`` with iallocator
816 61b5e342 Michael Hanselmann
- add TCP keepalives on twisted connections to detect restarted nodes
817 61b5e342 Michael Hanselmann
- disk increase support, see ``gnt-instance grow-disk``
818 61b5e342 Michael Hanselmann
- implement bulk node/instance query for RAPI
819 61b5e342 Michael Hanselmann
- add tags in node/instance listing (optional)
820 61b5e342 Michael Hanselmann
- experimental migration (and live migration) support, read the man page
821 61b5e342 Michael Hanselmann
  for ``gnt-instance migrate``
822 61b5e342 Michael Hanselmann
- the ``ganeti-watcher`` logs are now timestamped, and the watcher also
823 61b5e342 Michael Hanselmann
  has some small improvements in handling its state file
824 61b5e342 Michael Hanselmann
825 10f31783 Iustin Pop
826 10f31783 Iustin Pop
Version 1.2.4
827 61b5e342 Michael Hanselmann
-------------
828 61b5e342 Michael Hanselmann
829 bdc93557 Iustin Pop
*(Released Fri, 13 Jun 2008)*
830 bdc93557 Iustin Pop
831 61b5e342 Michael Hanselmann
- Experimental readonly, REST-based remote API implementation;
832 61b5e342 Michael Hanselmann
  automatically started on master node, TCP port 5080, if enabled by
833 61b5e342 Michael Hanselmann
  ``--enable-rapi`` parameter to configure script.
834 61b5e342 Michael Hanselmann
- Instance allocator support. Add and import instance accept a
835 61b5e342 Michael Hanselmann
  ``--iallocator`` parameter, and call that instance allocator to decide
836 61b5e342 Michael Hanselmann
  which node to use for the instance. The iallocator document describes
837 61b5e342 Michael Hanselmann
  what's expected from an allocator script.
838 61b5e342 Michael Hanselmann
- ``gnt-cluster verify`` N+1 memory redundancy checks: Unless passed the
839 61b5e342 Michael Hanselmann
  ``--no-nplus1-mem`` option ``gnt-cluster verify`` now checks that if a
840 61b5e342 Michael Hanselmann
  node is lost there is still enough memory to fail over the instances
841 61b5e342 Michael Hanselmann
  that reside on it.
842 61b5e342 Michael Hanselmann
- ``gnt-cluster verify`` hooks: it is now possible to add post-hooks to
843 61b5e342 Michael Hanselmann
  ``gnt-cluster verify``, to check for site-specific compliance. All the
844 61b5e342 Michael Hanselmann
  hooks will run, and their output, if any, will be displayed. Any
845 61b5e342 Michael Hanselmann
  failing hook will make the verification return an error value.
846 61b5e342 Michael Hanselmann
- ``gnt-cluster verify`` now checks that its peers are reachable on the
847 61b5e342 Michael Hanselmann
  primary and secondary interfaces
848 61b5e342 Michael Hanselmann
- ``gnt-node add`` now supports the ``--readd`` option, to readd a node
849 61b5e342 Michael Hanselmann
  that is still declared as part of the cluster and has failed.
850 61b5e342 Michael Hanselmann
- ``gnt-* list`` commands now accept a new ``-o +field`` way of
851 61b5e342 Michael Hanselmann
  specifying output fields, that just adds the chosen fields to the
852 61b5e342 Michael Hanselmann
  default ones.
853 61b5e342 Michael Hanselmann
- ``gnt-backup`` now has a new ``remove`` command to delete an existing
854 61b5e342 Michael Hanselmann
  export from the filesystem.
855 61b5e342 Michael Hanselmann
- New per-instance parameters hvm_acpi, hvm_pae and hvm_cdrom_image_path
856 61b5e342 Michael Hanselmann
  have been added. Using them you can enable/disable acpi and pae
857 61b5e342 Michael Hanselmann
  support, and specify a path for a cd image to be exported to the
858 61b5e342 Michael Hanselmann
  instance. These parameters as the name suggest only work on HVM
859 61b5e342 Michael Hanselmann
  clusters.
860 61b5e342 Michael Hanselmann
- When upgrading an HVM cluster to Ganeti 1.2.4, the values for ACPI and
861 61b5e342 Michael Hanselmann
  PAE support will be set to the previously hardcoded values, but the
862 61b5e342 Michael Hanselmann
  (previously hardcoded) path to the CDROM ISO image will be unset and
863 61b5e342 Michael Hanselmann
  if required, needs to be set manually with ``gnt-instance modify``
864 61b5e342 Michael Hanselmann
  after the upgrade.
865 61b5e342 Michael Hanselmann
- The address to which an instance's VNC console is bound is now
866 61b5e342 Michael Hanselmann
  selectable per-instance, rather than being cluster wide. Of course
867 61b5e342 Michael Hanselmann
  this only applies to instances controlled via VNC, so currently just
868 61b5e342 Michael Hanselmann
  applies to HVM clusters.
869 61b5e342 Michael Hanselmann
870 10f31783 Iustin Pop
871 bae27f68 Iustin Pop
Version 1.2.3
872 61b5e342 Michael Hanselmann
-------------
873 61b5e342 Michael Hanselmann
874 bdc93557 Iustin Pop
*(Released Mon, 18 Feb 2008)*
875 bdc93557 Iustin Pop
876 61b5e342 Michael Hanselmann
- more tweaks to the disk activation code (especially helpful for DRBD)
877 61b5e342 Michael Hanselmann
- change the default ``gnt-instance list`` output format, now there is
878 61b5e342 Michael Hanselmann
  one combined status field (see the manpage for the exact values this
879 61b5e342 Michael Hanselmann
  field will have)
880 61b5e342 Michael Hanselmann
- some more fixes for the mac export to hooks change
881 61b5e342 Michael Hanselmann
- make Ganeti not break with DRBD 8.2.x (which changed the version
882 61b5e342 Michael Hanselmann
  format in ``/proc/drbd``) (issue 24)
883 61b5e342 Michael Hanselmann
- add an upgrade tool from "remote_raid1" disk template to "drbd" disk
884 61b5e342 Michael Hanselmann
  template, allowing migration from DRBD0.7+MD to DRBD8
885 61b5e342 Michael Hanselmann
886 bae27f68 Iustin Pop
887 e709baee Iustin Pop
Version 1.2.2
888 61b5e342 Michael Hanselmann
-------------
889 61b5e342 Michael Hanselmann
890 bdc93557 Iustin Pop
*(Released Wed, 30 Jan 2008)*
891 bdc93557 Iustin Pop
892 61b5e342 Michael Hanselmann
- fix ``gnt-instance modify`` breakage introduced in 1.2.1 with the HVM
893 61b5e342 Michael Hanselmann
  support (issue 23)
894 61b5e342 Michael Hanselmann
- add command aliases infrastructure and a few aliases
895 61b5e342 Michael Hanselmann
- allow listing of VCPUs in the ``gnt-instance list`` and improve the
896 61b5e342 Michael Hanselmann
  man pages and the ``--help`` option of ``gnt-node
897 61b5e342 Michael Hanselmann
  list``/``gnt-instance list``
898 61b5e342 Michael Hanselmann
- fix ``gnt-backup list`` with down nodes (issue 21)
899 61b5e342 Michael Hanselmann
- change the tools location (move from $pkgdatadir to $pkglibdir/tools)
900 61b5e342 Michael Hanselmann
- fix the dist archive and add a check for including svn/git files in
901 61b5e342 Michael Hanselmann
  the future
902 61b5e342 Michael Hanselmann
- some developer-related changes: improve the burnin and the QA suite,
903 61b5e342 Michael Hanselmann
  add an upload script for testing during development
904 61b5e342 Michael Hanselmann
905 e709baee Iustin Pop
906 31b9055c Iustin Pop
Version 1.2.1
907 61b5e342 Michael Hanselmann
-------------
908 61b5e342 Michael Hanselmann
909 bdc93557 Iustin Pop
*(Released Wed, 16 Jan 2008)*
910 bdc93557 Iustin Pop
911 61b5e342 Michael Hanselmann
- experimental HVM support, read the install document, section
912 61b5e342 Michael Hanselmann
  "Initializing the cluster"
913 61b5e342 Michael Hanselmann
- allow for the PVM hypervisor per-instance kernel and initrd paths
914 61b5e342 Michael Hanselmann
- add a new command ``gnt-cluster verify-disks`` which uses a new
915 61b5e342 Michael Hanselmann
  algorithm to improve the reconnection of the DRBD pairs if the device
916 61b5e342 Michael Hanselmann
  on the secondary node has gone away
917 61b5e342 Michael Hanselmann
- make logical volume code auto-activate LVs at disk activation time
918 61b5e342 Michael Hanselmann
- slightly improve the speed of activating disks
919 61b5e342 Michael Hanselmann
- allow specification of the MAC address at instance creation time, and
920 61b5e342 Michael Hanselmann
  changing it later via ``gnt-instance modify``
921 61b5e342 Michael Hanselmann
- fix handling of external commands that generate lots of output on
922 61b5e342 Michael Hanselmann
  stderr
923 61b5e342 Michael Hanselmann
- update documentation with regard to minimum version of DRBD8 supported
924 61b5e342 Michael Hanselmann
925 31b9055c Iustin Pop
926 ce628bb4 Iustin Pop
Version 1.2.0
927 61b5e342 Michael Hanselmann
-------------
928 61b5e342 Michael Hanselmann
929 bdc93557 Iustin Pop
*(Released Tue, 4 Dec 2007)*
930 bdc93557 Iustin Pop
931 7faf5110 Michael Hanselmann
- Log the ``xm create`` output to the node daemon log on failure (to
932 7faf5110 Michael Hanselmann
  help diagnosing the error)
933 61b5e342 Michael Hanselmann
- In debug mode, log all external commands output if failed to the logs
934 61b5e342 Michael Hanselmann
- Change parsing of lvm commands to ignore stderr
935 61b5e342 Michael Hanselmann
936 ce628bb4 Iustin Pop
937 3d492b09 Iustin Pop
Version 1.2b3
938 61b5e342 Michael Hanselmann
-------------
939 61b5e342 Michael Hanselmann
940 bdc93557 Iustin Pop
*(Released Wed, 28 Nov 2007)*
941 bdc93557 Iustin Pop
942 61b5e342 Michael Hanselmann
- Another round of updates to the DRBD 8 code to deal with more failures
943 61b5e342 Michael Hanselmann
  in the replace secondary node operation
944 61b5e342 Michael Hanselmann
- Some more logging of failures in disk operations (lvm, drbd)
945 61b5e342 Michael Hanselmann
- A few documentation updates
946 61b5e342 Michael Hanselmann
- QA updates
947 61b5e342 Michael Hanselmann
948 3d492b09 Iustin Pop
949 6c4811dc Iustin Pop
Version 1.2b2
950 61b5e342 Michael Hanselmann
-------------
951 61b5e342 Michael Hanselmann
952 bdc93557 Iustin Pop
*(Released Tue, 13 Nov 2007)*
953 bdc93557 Iustin Pop
954 61b5e342 Michael Hanselmann
- Change configuration file format from Python's Pickle to JSON.
955 61b5e342 Michael Hanselmann
  Upgrading is possible using the cfgupgrade utility.
956 61b5e342 Michael Hanselmann
- Add support for DRBD 8.0 (new disk template ``drbd``) which allows for
957 61b5e342 Michael Hanselmann
  faster replace disks and is more stable (DRBD 8 has many improvements
958 61b5e342 Michael Hanselmann
  compared to DRBD 0.7)
959 61b5e342 Michael Hanselmann
- Added command line tags support (see man pages for ``gnt-instance``,
960 61b5e342 Michael Hanselmann
  ``gnt-node``, ``gnt-cluster``)
961 61b5e342 Michael Hanselmann
- Added instance rename support
962 61b5e342 Michael Hanselmann
- Added multi-instance startup/shutdown
963 61b5e342 Michael Hanselmann
- Added cluster rename support
964 61b5e342 Michael Hanselmann
- Added ``gnt-node evacuate`` to simplify some node operations
965 61b5e342 Michael Hanselmann
- Added instance reboot operation that can speedup reboot as compared to
966 61b5e342 Michael Hanselmann
  stop and start
967 61b5e342 Michael Hanselmann
- Soften the requirement that hostnames are in FQDN format
968 61b5e342 Michael Hanselmann
- The ``ganeti-watcher`` now activates drbd pairs after secondary node
969 61b5e342 Michael Hanselmann
  reboots
970 61b5e342 Michael Hanselmann
- Removed dependency on debian's patched fping that uses the
971 61b5e342 Michael Hanselmann
  non-standard ``-S`` option
972 7faf5110 Michael Hanselmann
- Now the OS definitions are searched for in multiple, configurable
973 7faf5110 Michael Hanselmann
  paths (easier for distros to package)
974 61b5e342 Michael Hanselmann
- Some changes to the hooks infrastructure (especially the new
975 61b5e342 Michael Hanselmann
  post-configuration update hook)
976 61b5e342 Michael Hanselmann
- Other small bugfixes
977 558fd122 Michael Hanselmann
978 558fd122 Michael Hanselmann
.. vim: set textwidth=72 :
979 9b94905f Iustin Pop
.. Local Variables:
980 9b94905f Iustin Pop
.. mode: rst
981 9b94905f Iustin Pop
.. fill-column: 72
982 9b94905f Iustin Pop
.. End: