Commit 328201a5 authored by Guido Trotter's avatar Guido Trotter

Merge branch 'stable-2.7' into stable-2.8

* stable-2.7:
  Bump up version for 2.7.0~rc2 release
  Add NEWS entry for SO_PEERCRED fix
  Workaround missing SO_PEERCRED
  Add debugging clause to _ExpandCheckDisks error
  Mention hail network incompatibility in manpages
  Remove obsolete Debian-related documentation
  Update NEWS for 2.7.0 rc2
  Improve installation documentation
  Fix owner of the OS log dir

Conflicts:
	lib/cmdlib.py: port to cmdlib/instance_storage.py
	lib/tools/ensure_dirs.py: trivial
Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
parents fab0cf66 75d25240
......@@ -2,8 +2,9 @@ Ganeti quick installation guide
===============================
Please note that a more detailed installation procedure is described in
the :doc:`install`. A glossary of terms can be found in the
:doc:`glossary`.
the :doc:`install`. Refer to it if you are setting up Ganeti the first time.
This quick installation guide is mainly meant as reference for experienced
users. A glossary of terms can be found in the :doc:`glossary`.
Software Requirements
......
......@@ -27,24 +27,7 @@ Version 2.8.0 beta1
Version 2.7.0 rc2
-----------------
*(unreleased)*
- ``devel/upload`` now works when ``/var/run`` on the target nodes is a
symlink.
- Disks added through ``gnt-instance modify`` or created through
``gnt-instance recreate-disks`` are wiped, if the
``prealloc_wipe_disks`` flag is set.
- If wiping newly created disks fails, the disks are removed. Also,
partial failures in creating disks through ``gnt-instance modify``
triggers a cleanup of the partially-created disks.
- Removing the master IP address doesn't fail if the address has been
already removed.
Version 2.7.0 rc1
-----------------
*(Released Fri, 3 May 2013)*
*(Released Fri, 24 May 2013)*
Incompatible/important changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......@@ -149,8 +132,28 @@ Misc changes
- The functionality for allocating multiple instances at once has been
overhauled and is now also available through :doc:`RAPI <rapi>`.
Since rc1:
- ``devel/upload`` now works when ``/var/run`` on the target nodes is a
symlink.
- Disks added through ``gnt-instance modify`` or created through
``gnt-instance recreate-disks`` are wiped, if the
``prealloc_wipe_disks`` flag is set.
- If wiping newly created disks fails, the disks are removed. Also,
partial failures in creating disks through ``gnt-instance modify``
triggers a cleanup of the partially-created disks.
- Removing the master IP address doesn't fail if the address has been
already removed.
- Fix ownership of the OS log dir
- Workaround missing SO_PEERCRED constant (Issue 191)
Version 2.7.0 rc1
-----------------
*(Released Fri, 3 May 2013)*
Since beta3:
This was the first release candidate of the 2.7 series. Since beta3:
- Fix kvm compatibility with qemu 1.4 (Issue 389)
- Documentation updates (admin guide, upgrade notes, install
......
......@@ -2,7 +2,7 @@
m4_define([gnt_version_major], [2])
m4_define([gnt_version_minor], [7])
m4_define([gnt_version_revision], [0])
m4_define([gnt_version_suffix], [~rc1])
m4_define([gnt_version_suffix], [~rc2])
m4_define([gnt_version_full],
m4_format([%d.%d.%d%s],
gnt_version_major, gnt_version_minor,
......
......@@ -171,7 +171,11 @@ the file ``/etc/xen/xend-config.sxp`` by setting the value
For optimum performance when running both CPU and I/O intensive
instances, it's also recommended that the dom0 is restricted to one CPU
only, for example by booting with the kernel parameter ``maxcpus=1``.
only. For example you can add ``dom0_max_vcpus=1,dom0_vcpus_pin`` to your
kernels boot command line and set ``dom0-cpus`` in
``/etc/xen/xend-config.sxp`` like this::
(dom0-cpus 1)
It is recommended that you disable xen's automatic save of virtual
machines at system shutdown and subsequent restore of them at reboot.
......@@ -195,32 +199,6 @@ The second line assumes that the hypervisor parameter
line assumes that all your nodes have secondary IPs in the
192.0.2.0/24 network, adjust it accordingly to your setup.
.. admonition:: Debian
Besides the ballooning change which you need to set in
``/etc/xen/xend-config.sxp``, you need to set the memory and nosmp
parameters in the file ``/boot/grub/menu.lst``. You need to modify
the variable ``xenhopt`` to add ``dom0_mem=1024M`` like this:
.. code-block:: text
## Xen hypervisor options to use with the default Xen boot option
# xenhopt=dom0_mem=1024M
and the ``xenkopt`` needs to include the ``maxcpus`` option like
this:
.. code-block:: text
## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=maxcpus=1
Any existing parameters can be left in place: it's ok to have
``xenkopt=console=tty0 maxcpus=1``, for example. After modifying the
files, you need to run::
$ /sbin/update-grub
If you want to run HVM instances too with Ganeti and want VNC access to
the console of your instances, set the following two entries in
``/etc/xen/xend-config.sxp``:
......@@ -312,8 +290,8 @@ instances on a node.
$ depmod -a
$ modprobe drbd minor_count=128 usermode_helper=/bin/true
It is also recommended that you comment out the default resources in
the ``/etc/drbd.conf`` file, so that the init script doesn't try to
It is also recommended that you comment out the default resources (if any)
in the ``/etc/drbd.conf`` file, so that the init script doesn't try to
configure any drbd devices. You can do this by prefixing all
*resource* lines in the file with the keyword *skip*, like this:
......@@ -418,7 +396,9 @@ For more information, please see the `Ceph Docs
Other required software
+++++++++++++++++++++++
See :doc:`install-quick`.
Please install all software requirements mentioned in :doc:`install-quick`.
If you want to build Ganeti from source, don't forget to follow the steps
required for that as well.
Setting up the environment for Ganeti
-------------------------------------
......@@ -620,14 +600,14 @@ To be able to install instances you need to have an Operating System
installation script. An example OS that works under Debian and can
install Debian and Ubuntu instace OSes is provided on the project web
site. Download it from the project page and follow the instructions in
the ``README`` file. Here is the installation procedure (replace 0.9
the ``README`` file. Here is the installation procedure (replace 0.12
with the latest version that is compatible with your ganeti version)::
$ cd /usr/local/src/
$ wget http://ganeti.googlecode.com/files/ganeti-instance-debootstrap-%0.9%.tar.gz
$ tar xzf ganeti-instance-debootstrap-%0.9%.tar.gz
$ cd ganeti-instance-debootstrap-%0.9%
$ ./configure
$ wget http://ganeti.googlecode.com/files/ganeti-instance-debootstrap-%0.12%.tar.gz
$ tar xzf ganeti-instance-debootstrap-%0.12%.tar.gz
$ cd ganeti-instance-debootstrap-%0.12%
$ ./configure --with-os-dir=/srv/ganeti/os
$ make
$ make install
......@@ -662,6 +642,9 @@ installed.
``kbd`` can be used instead of ``console-tools``, and more packages
can be added, of course, if needed.
Please refer to the ``README`` file of ``ganeti-instance-debootstrap`` for
further documentation.
Alternatively, you can create your own OS definitions. See the manpage
:manpage:`ganeti-os-interface(7)`.
......@@ -671,8 +654,9 @@ Initializing the cluster
**Mandatory** once per cluster, on the first node.
The last step is to initialize the cluster. After you have repeated the
above process on all of your nodes, choose one as the master, and
execute::
above process on all of your nodes and choose one as the master. Make sure
there is a SSH key pair on the master node (optionally generating one using
``ssh-keygen``). Finally execute::
$ gnt-cluster init %CLUSTERNAME%
......
......@@ -1049,7 +1049,8 @@ def ExpandCheckDisks(instance, disks):
else:
if not set(disks).issubset(instance.disks):
raise errors.ProgrammerError("Can only act on disks belonging to the"
" target instance")
" target instance: expected a subset of %r,"
" got %r" % (instance.disks, disks))
return disks
......
......@@ -52,6 +52,12 @@ from ganeti import vcluster
_STRUCT_UCRED = "iII"
_STRUCT_UCRED_SIZE = struct.calcsize(_STRUCT_UCRED)
# Workaround a bug in some linux distributions that don't define SO_PEERCRED
try:
_SO_PEERCRED = IN.SO_PEERCRED
except AttributeError:
_SO_PEERCRED = 17
# Regexes used to find IP addresses in the output of ip.
_IP_RE_TEXT = r"[.:a-z0-9]+" # separate for testing purposes
_IP_FAMILY_RE = re.compile(r"(?P<family>inet6?)\s+(?P<ip>%s)/" % _IP_RE_TEXT,
......@@ -93,7 +99,7 @@ def GetSocketCredentials(sock):
@return: The PID, UID and GID of the connected foreign process.
"""
peercred = sock.getsockopt(socket.SOL_SOCKET, IN.SO_PEERCRED,
peercred = sock.getsockopt(socket.SOL_SOCKET, _SO_PEERCRED,
_STRUCT_UCRED_SIZE)
return struct.unpack(_STRUCT_UCRED, peercred)
......
......@@ -194,7 +194,7 @@ def GetPaths():
(confd_log, FILE, 0600, getent.confd_uid, getent.masterd_gid, False),
(noded_log, FILE, 0600, getent.noded_uid, getent.masterd_gid, False),
(rapi_log, FILE, 0600, getent.rapi_uid, getent.masterd_gid, False),
(pathutils.LOG_OS_DIR, DIR, 0750, getent.masterd_uid, getent.daemons_gid),
(pathutils.LOG_OS_DIR, DIR, 0750, getent.noded_uid, getent.daemons_gid),
(pathutils.LOG_XEN_DIR, DIR, 0750, getent.noded_uid, getent.daemons_gid),
(cleaner_log_dir, DIR, 0750, getent.noded_uid, getent.noded_gid),
(master_cleaner_log_dir, DIR, 0750, getent.masterd_uid, getent.masterd_gid),
......
......@@ -19,6 +19,14 @@ administration in the Ganeti system. Each instance NIC can be connected
to a network via the ``network`` NIC parameter. See **gnt-instance**\(8)
for more details.
BUGS
----
The ``hail`` iallocator hasn't been updated to take networks into
account in Ganeti 2.7. The only way to guarantee that it works correctly
is having your networks connected to all nodegroups. This will be fixed
in a future version.
COMMANDS
--------
......
......@@ -118,6 +118,14 @@ EXIT STATUS
The exist status of the command will be zero, unless for some reason
the algorithm fatally failed (e.g. wrong node or instance data).
BUGS
----
Networks (as configured by **gnt-network**\(8)) are not taken into
account in Ganeti 2.7. The only way to guarantee that they work
correctly is having your networks connected to all nodegroups. This will
be fixed in a future version.
.. vim: set textwidth=72 :
.. Local Variables:
.. mode: rst
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment