Revision 727ee1ec INSTALL

b/INSTALL
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

Also available in: Unified diff