9 |
9 |
Software Requirements
|
10 |
10 |
---------------------
|
11 |
11 |
|
|
12 |
.. highlight:: shell-example
|
|
13 |
|
12 |
14 |
Before installing, please verify that you have the following programs:
|
13 |
15 |
|
14 |
16 |
- `Xen Hypervisor <http://www.xen.org/>`_, version 3.0 or above, if
|
... | ... | |
16 |
18 |
- `KVM Hypervisor <http://www.linux-kvm.org>`_, version 72 or above, if
|
17 |
19 |
running on KVM. In order to use advanced features, such as live
|
18 |
20 |
migration, virtio, etc, an even newer version is recommended (qemu-kvm
|
19 |
|
versions 0.11.X or above have shown good behavior).
|
|
21 |
versions 0.11.X and above have shown good behavior).
|
20 |
22 |
- `DRBD <http://www.drbd.org/>`_, kernel module and userspace utils,
|
21 |
|
version 8.0.7 or above
|
22 |
|
- `RBD <http://ceph.newdream.net/>`_, kernel modules (rbd.ko/libceph.ko)
|
23 |
|
and userspace utils (ceph-common)
|
|
23 |
version 8.0.7 or above; note that Ganeti doesn't yet support version 8.4
|
|
24 |
- `RBD <http://ceph.newdream.net/>`_, kernel modules
|
|
25 |
(``rbd.ko``/``libceph.ko``) and userspace utils (``ceph-common``)
|
24 |
26 |
- `LVM2 <http://sourceware.org/lvm2/>`_
|
25 |
27 |
- `OpenSSH <http://www.openssh.com/portable.html>`_
|
26 |
28 |
- `bridge utilities <http://www.linuxfoundation.org/en/Net:Bridge>`_
|
... | ... | |
44 |
46 |
- `affinity Python module <http://pypi.python.org/pypi/affinity/0.1.0>`_,
|
45 |
47 |
optional python package for supporting CPU pinning under KVM
|
46 |
48 |
- `ElementTree Python module <http://effbot.org/zone/element-index.htm>`_,
|
47 |
|
if running python 2.4 (optional, used by ovfconverter tool)
|
48 |
|
- `qemu-img <http://qemu.org/>`_, if you want to use ovfconverter
|
|
49 |
if running python 2.4 (optional, used by the ``ovfconverter`` tool)
|
|
50 |
- `qemu-img <http://qemu.org/>`_, if you want to use ``ovfconverter``
|
49 |
51 |
- `fping <http://fping.sourceforge.net/>`_
|
50 |
52 |
|
51 |
53 |
These programs are supplied as part of most Linux distributions, so
|
... | ... | |
60 |
62 |
python-pyinotify python-pycurl socat \
|
61 |
63 |
python-elementtree qemu
|
62 |
64 |
|
63 |
|
If you want to also enable the `htools` components, which is recommended
|
64 |
|
on bigger deployments (they give you automatic instance placement,
|
65 |
|
cluster balancing, etc.), then you need to have a Haskell compiler
|
66 |
|
installed. More specifically:
|
|
65 |
If you want to build from source, please see doc/devnotes.rst for more
|
|
66 |
dependencies.
|
|
67 |
|
|
68 |
.. _socat-note:
|
|
69 |
.. note::
|
|
70 |
Ganeti's import/export functionality uses ``socat`` with OpenSSL for
|
|
71 |
transferring data between nodes. By default, OpenSSL 0.9.8 and above
|
|
72 |
employ transparent compression of all data using zlib if supported by
|
|
73 |
both sides of a connection. In cases where a lot of data is
|
|
74 |
transferred, this can lead to an increased CPU usage. Additionally,
|
|
75 |
Ganeti already compresses all data using ``gzip`` where it makes sense
|
|
76 |
(for inter-cluster instance moves).
|
|
77 |
|
|
78 |
To remedey this situation, patches implementing a new ``socat`` option
|
|
79 |
for disabling OpenSSL compression have been contributed and will
|
|
80 |
likely be included in the next feature release. Until then, users or
|
|
81 |
distributions need to apply the patches on their own.
|
|
82 |
|
|
83 |
Ganeti will use the option if it's detected by the ``configure``
|
|
84 |
script; auto-detection can be disabled by explicitely passing
|
|
85 |
``--enable-socat-compress`` (use the option to disable compression) or
|
|
86 |
``--disable-socat-compress`` (don't use the option).
|
|
87 |
|
|
88 |
The patches and more information can be found on
|
|
89 |
http://www.dest-unreach.org/socat/contrib/socat-opensslcompress.html.
|
|
90 |
|
|
91 |
Haskell requirements
|
|
92 |
~~~~~~~~~~~~~~~~~~~~
|
|
93 |
|
|
94 |
If you want to enable the `htools` component, which is recommended on
|
|
95 |
bigger deployments (this give you automatic instance placement, cluster
|
|
96 |
balancing, etc.), then you need to have a Haskell compiler installed on
|
|
97 |
your build machine (but this is not required on the machines which are
|
|
98 |
just going to run Ganeti). More specifically:
|
67 |
99 |
|
68 |
100 |
- `GHC <http://www.haskell.org/ghc/>`_ version 6.12 or higher
|
69 |
101 |
- or even better, `The Haskell Platform
|
... | ... | |
89 |
121 |
$ apt-get install ghc libghc-json-dev libghc-network-dev \
|
90 |
122 |
libghc-parallel-dev libghc-curl-dev
|
91 |
123 |
|
|
124 |
If using a distribution which does not provide them, the first install
|
|
125 |
the Haskell platform and then install the additional libraries via
|
|
126 |
``cabal``::
|
|
127 |
|
|
128 |
$ cabal install json network parallel curl
|
|
129 |
|
92 |
130 |
The compilation of the htools components is automatically enabled when
|
93 |
131 |
the compiler and the requisite libraries are found. You can use the
|
94 |
132 |
``--enable-htools`` configure flag to force the selection (at which
|
95 |
133 |
point ``./configure`` will fail if it doesn't find the prerequisites).
|
96 |
134 |
|
97 |
|
If you want to build from source, please see doc/devnotes.rst for more
|
98 |
|
dependencies.
|
|
135 |
In Ganeti version 2.6, one of the daemons (``ganeti-confd``) is shipped
|
|
136 |
in two versions: the Python default version (which has no extra
|
|
137 |
dependencies), and an experimental Haskell version. This latter version
|
|
138 |
can be enabled via the ``./configure`` flag ``--enable-confd=haskell``
|
|
139 |
and a few has extra dependencies:
|
99 |
140 |
|
100 |
|
.. _socat-note:
|
101 |
|
.. note::
|
102 |
|
Ganeti's import/export functionality uses ``socat`` with OpenSSL for
|
103 |
|
transferring data between nodes. By default, OpenSSL 0.9.8 and above
|
104 |
|
employ transparent compression of all data using zlib if supported by
|
105 |
|
both sides of a connection. In cases where a lot of data is
|
106 |
|
transferred, this can lead to an increased CPU usage. Additionally,
|
107 |
|
Ganeti already compresses all data using ``gzip`` where it makes sense
|
108 |
|
(for inter-cluster instance moves).
|
|
141 |
- `hslogger <http://software.complete.org/hslogger>`_, version 1.1 and
|
|
142 |
above (note that Debian Squeeze only has version 1.0.9)
|
|
143 |
- `Crypto <http://hackage.haskell.org/package/Crypto>`_, tested with
|
|
144 |
version 4.2.4
|
|
145 |
- `text <http://hackage.haskell.org/package/text>`_
|
|
146 |
- ``bytestring``, which usually comes with the compiler
|
109 |
147 |
|
110 |
|
To remedey this situation, patches implementing a new ``socat`` option
|
111 |
|
for disabling OpenSSL compression have been contributed and will
|
112 |
|
likely be included in the next feature release. Until then, users or
|
113 |
|
distributions need to apply the patches on their own.
|
|
148 |
These libraries are available in Debian Wheezy (but not in Squeeze), so
|
|
149 |
you can use either apt::
|
114 |
150 |
|
115 |
|
Ganeti will use the option if it's detected by the ``configure``
|
116 |
|
script; auto-detection can be disabled by explicitely passing
|
117 |
|
``--enable-socat-compress`` (use the option to disable compression) or
|
118 |
|
``--disable-socat-compress`` (don't use the option).
|
|
151 |
$ apt-get install libghc-hslogger-dev libghc-crypto-dev libghc-text-dev
|
119 |
152 |
|
120 |
|
The patches and more information can be found on
|
121 |
|
http://www.dest-unreach.org/socat/contrib/socat-opensslcompress.html.
|
|
153 |
or ``cabal``::
|
|
154 |
|
|
155 |
$ cabal install hslogger Crypto text
|
122 |
156 |
|
|
157 |
to install them.
|
123 |
158 |
|
124 |
159 |
Installation of the software
|
125 |
160 |
----------------------------
|
126 |
161 |
|
127 |
162 |
To install, simply run the following command::
|
128 |
163 |
|
129 |
|
./configure --localstatedir=/var --sysconfdir=/etc && \
|
130 |
|
make && \
|
131 |
|
make install
|
|
164 |
$ ./configure --localstatedir=/var --sysconfdir=/etc && \
|
|
165 |
make && \
|
|
166 |
make install
|
132 |
167 |
|
133 |
168 |
This will install the software under ``/usr/local``. You then need to
|
134 |
169 |
copy ``doc/examples/ganeti.initd`` to ``/etc/init.d/ganeti`` and
|