Statistics
| Branch: | Tag: | Revision:

root / INSTALL @ 72bb6b4e

History | View | Annotate | Download (6.3 kB)

1 c27ba1cc Michael Hanselmann
Ganeti quick installation guide
2 c27ba1cc Michael Hanselmann
===============================
3 4096472d Iustin Pop
4 c27ba1cc Michael Hanselmann
Please note that a more detailed installation procedure is described in
5 c27ba1cc Michael Hanselmann
the :doc:`install`. A glossary of terms can be found in the
6 c27ba1cc Michael Hanselmann
:doc:`glossary`.
7 4096472d Iustin Pop
8 4096472d Iustin Pop
9 bd785ecd Michael Hanselmann
Software Requirements
10 c27ba1cc Michael Hanselmann
---------------------
11 a8083063 Iustin Pop
12 a8083063 Iustin Pop
Before installing, please verify that you have the following programs:
13 c27ba1cc Michael Hanselmann
14 c4b2b2e2 Guido Trotter
- `Xen Hypervisor <http://www.xen.org/>`_, version 3.0 or above, if
15 c4b2b2e2 Guido Trotter
  running on Xen
16 c4b2b2e2 Guido Trotter
- `KVM Hypervisor <http://www.linux-kvm.org>`_, version 72 or above, if
17 c4b2b2e2 Guido Trotter
  running on KVM. In order to use advanced features, such as live
18 c4b2b2e2 Guido Trotter
  migration, virtio, etc, an even newer version is recommended (qemu-kvm
19 c4b2b2e2 Guido Trotter
  versions 0.11.X or above have shown good behavior).
20 c27ba1cc Michael Hanselmann
- `DRBD <http://www.drbd.org/>`_, kernel module and userspace utils,
21 c27ba1cc Michael Hanselmann
  version 8.0.7 or above
22 c27ba1cc Michael Hanselmann
- `LVM2 <http://sourceware.org/lvm2/>`_
23 c27ba1cc Michael Hanselmann
- `OpenSSH <http://www.openssh.com/portable.html>`_
24 c27ba1cc Michael Hanselmann
- `bridge utilities <http://www.linuxfoundation.org/en/Net:Bridge>`_
25 c27ba1cc Michael Hanselmann
- `iproute2 <http://www.linuxfoundation.org/en/Net:Iproute2>`_
26 c27ba1cc Michael Hanselmann
- `arping <http://www.skbuff.net/iputils/>`_ (part of iputils)
27 69affe73 Manuel Franceschini
- `ndisc6 <http://www.remlab.net/ndisc6/>`_ (if using IPv6)
28 c27ba1cc Michael Hanselmann
- `Python <http://www.python.org/>`_, version 2.4 or above, not 3.0
29 c27ba1cc Michael Hanselmann
- `Python OpenSSL bindings <http://pyopenssl.sourceforge.net/>`_
30 c27ba1cc Michael Hanselmann
- `simplejson Python module <http://code.google.com/p/simplejson/>`_
31 7578ab0a Michael Hanselmann
- `pyparsing Python module <http://pyparsing.wikispaces.com/>`_, version
32 7578ab0a Michael Hanselmann
  1.4.6 or above
33 c27ba1cc Michael Hanselmann
- `pyinotify Python module <http://trac.dbzteam.org/pyinotify/>`_
34 2a7c3583 Michael Hanselmann
- `PycURL Python module <http://pycurl.sourceforge.net/>`_
35 b447ab51 Luca Bigliardi
- `ctypes Python module
36 b447ab51 Luca Bigliardi
  <http://starship.python.net/crew/theller/ctypes/>`_, if running on
37 b447ab51 Luca Bigliardi
  python 2.4 (optional, used for node daemon memory locking)
38 e90739d6 Michael Hanselmann
- `socat <http://www.dest-unreach.org/socat/>`_, see :ref:`note
39 e90739d6 Michael Hanselmann
  <socat-note>` below
40 a40b1fc4 René Nussbaumer
- `Paramiko <http://www.lag.net/paramiko/>`_, if you want automated SSH
41 a40b1fc4 René Nussbaumer
  setup; optional otherwise but manual setup of the nodes required
42 0cd2fe76 Tsachy Shacham
- `affinity Python module <http://pypi.python.org/pypi/affinity/0.1.0>`_,
43 0cd2fe76 Tsachy Shacham
  optional python package for supporting CPU pinning under KVM
44 daa4dcc1 Agata Murawska
- `ElementTree Python module <http://effbot.org/zone/element-index.htm>`_,
45 daa4dcc1 Agata Murawska
  if running python 2.4 (optional, used by ovfconverter tool)
46 6567f1d9 Agata Murawska
- `qemu-img <http://qemu.org/>`_, if you want to use ovfconverter
47 c27ba1cc Michael Hanselmann
48 c27ba1cc Michael Hanselmann
These programs are supplied as part of most Linux distributions, so
49 c27ba1cc Michael Hanselmann
usually they can be installed via the standard package manager. Also
50 c27ba1cc Michael Hanselmann
many of them will already be installed on a standard machine. On
51 c27ba1cc Michael Hanselmann
Debian/Ubuntu, you can use this command line to install all required
52 c27ba1cc Michael Hanselmann
packages, except for DRBD and Xen::
53 c27ba1cc Michael Hanselmann
54 c27ba1cc Michael Hanselmann
  $ apt-get install lvm2 ssh bridge-utils iproute iputils-arping \
55 69affe73 Manuel Franceschini
                    ndisc6 python python-pyopenssl openssl \
56 69affe73 Manuel Franceschini
                    python-pyparsing python-simplejson \
57 daa4dcc1 Agata Murawska
                    python-pyinotify python-pycurl socat \
58 6567f1d9 Agata Murawska
                    python-elementtree qemu
59 c27ba1cc Michael Hanselmann
60 77a180f6 Iustin Pop
If you want to also enable the `htools` components, which is recommended
61 77a180f6 Iustin Pop
on bigger deployments (they give you automatic instance placement,
62 77a180f6 Iustin Pop
cluster balancing, etc.), then you need to have a Haskell compiler
63 77a180f6 Iustin Pop
installed. More specifically:
64 77a180f6 Iustin Pop
65 77a180f6 Iustin Pop
- `GHC <http://www.haskell.org/ghc/>`_ version 6.10 or higher
66 77a180f6 Iustin Pop
- or even better, `The Haskell Platform
67 77a180f6 Iustin Pop
  <http://hackage.haskell.org/platform/>`_ which gives you a simple way
68 77a180f6 Iustin Pop
  to bootstrap Haskell
69 77a180f6 Iustin Pop
- `json <http://hackage.haskell.org/package/json>`_, a JSON library
70 77a180f6 Iustin Pop
- `network <http://hackage.haskell.org/package/network>`_, a basic
71 77a180f6 Iustin Pop
  network library
72 ee041788 Iustin Pop
- `parallel <http://hackage.haskell.org/package/parallel>`_, a parallel
73 ee041788 Iustin Pop
  programming library (note: tested with up to version 3.x)
74 77a180f6 Iustin Pop
- `curl <http://hackage.haskell.org/package/curl>`_, bindings for the
75 77a180f6 Iustin Pop
  curl library, only needed if you want these tools to connect to remote
76 77a180f6 Iustin Pop
  clusters (as opposed to the local one)
77 77a180f6 Iustin Pop
78 77a180f6 Iustin Pop
All of these are also available as package in Debian/Ubuntu::
79 77a180f6 Iustin Pop
80 77a180f6 Iustin Pop
  $ apt-get install ghc6 libghc6-json-dev libghc6-network-dev \
81 77a180f6 Iustin Pop
                    libghc6-parallel-dev libghc6-curl-dev
82 77a180f6 Iustin Pop
83 ee041788 Iustin Pop
Note that more recent version have switched to GHC 7.x and the packages
84 ee041788 Iustin Pop
were renamed::
85 ee041788 Iustin Pop
86 ee041788 Iustin Pop
  $ apt-get install ghc libghc-json-dev libghc-network-dev \
87 ee041788 Iustin Pop
                    libghc-parallel-dev libghc-curl-dev
88 ee041788 Iustin Pop
89 1ebe6dbd Iustin Pop
The compilation of the htools components is automatically enabled when
90 1ebe6dbd Iustin Pop
the compiler and the requisite libraries are found. You can use the
91 1ebe6dbd Iustin Pop
``--enable-htools`` configure flag to force the selection (at which
92 1ebe6dbd Iustin Pop
point ``./configure`` will fail if it doesn't find the prerequisites).
93 1ebe6dbd Iustin Pop
94 c27ba1cc Michael Hanselmann
If you want to build from source, please see doc/devnotes.rst for more
95 c27ba1cc Michael Hanselmann
dependencies.
96 5cd0d9c0 Iustin Pop
97 e90739d6 Michael Hanselmann
.. _socat-note:
98 e90739d6 Michael Hanselmann
.. note::
99 e90739d6 Michael Hanselmann
  Ganeti's import/export functionality uses ``socat`` with OpenSSL for
100 e90739d6 Michael Hanselmann
  transferring data between nodes. By default, OpenSSL 0.9.8 and above
101 e90739d6 Michael Hanselmann
  employ transparent compression of all data using zlib if supported by
102 e90739d6 Michael Hanselmann
  both sides of a connection. In cases where a lot of data is
103 e90739d6 Michael Hanselmann
  transferred, this can lead to an increased CPU usage. Additionally,
104 e90739d6 Michael Hanselmann
  Ganeti already compresses all data using ``gzip`` where it makes sense
105 e90739d6 Michael Hanselmann
  (for inter-cluster instance moves).
106 e90739d6 Michael Hanselmann
107 e90739d6 Michael Hanselmann
  To remedey this situation, patches implementing a new ``socat`` option
108 e90739d6 Michael Hanselmann
  for disabling OpenSSL compression have been contributed and will
109 e90739d6 Michael Hanselmann
  likely be included in the next feature release. Until then, users or
110 e90739d6 Michael Hanselmann
  distributions need to apply the patches on their own.
111 e90739d6 Michael Hanselmann
112 e90739d6 Michael Hanselmann
  Ganeti will use the option if it's detected by the ``configure``
113 e90739d6 Michael Hanselmann
  script; auto-detection can be disabled by explicitely passing
114 e90739d6 Michael Hanselmann
  ``--enable-socat-compress`` (use the option to disable compression) or
115 e90739d6 Michael Hanselmann
  ``--disable-socat-compress`` (don't use the option).
116 e90739d6 Michael Hanselmann
117 e90739d6 Michael Hanselmann
  The patches and more information can be found on
118 e90739d6 Michael Hanselmann
  http://www.dest-unreach.org/socat/contrib/socat-opensslcompress.html.
119 e90739d6 Michael Hanselmann
120 bd785ecd Michael Hanselmann
121 bd785ecd Michael Hanselmann
Installation of the software
122 c27ba1cc Michael Hanselmann
----------------------------
123 c27ba1cc Michael Hanselmann
124 c27ba1cc Michael Hanselmann
To install, simply run the following command::
125 a8083063 Iustin Pop
126 c27ba1cc Michael Hanselmann
  ./configure --localstatedir=/var --sysconfdir=/etc && \
127 c27ba1cc Michael Hanselmann
  make && \
128 c27ba1cc Michael Hanselmann
  make install
129 a8083063 Iustin Pop
130 c27ba1cc Michael Hanselmann
This will install the software under ``/usr/local``. You then need to
131 c27ba1cc Michael Hanselmann
copy ``doc/examples/ganeti.initd`` to ``/etc/init.d/ganeti`` and
132 c27ba1cc Michael Hanselmann
integrate it into your boot sequence (``chkconfig``, ``update-rc.d``,
133 c27ba1cc Michael Hanselmann
etc.).
134 a8083063 Iustin Pop
135 bd785ecd Michael Hanselmann
136 a8083063 Iustin Pop
Cluster initialisation
137 c27ba1cc Michael Hanselmann
----------------------
138 a8083063 Iustin Pop
139 c27ba1cc Michael Hanselmann
Before initialising the cluster, on each node you need to create the
140 c27ba1cc Michael Hanselmann
following directories:
141 a8083063 Iustin Pop
142 c27ba1cc Michael Hanselmann
- ``/etc/ganeti``
143 c27ba1cc Michael Hanselmann
- ``/var/lib/ganeti``
144 c27ba1cc Michael Hanselmann
- ``/var/log/ganeti``
145 c27ba1cc Michael Hanselmann
- ``/srv/ganeti``
146 c27ba1cc Michael Hanselmann
- ``/srv/ganeti/os``
147 c27ba1cc Michael Hanselmann
- ``/srv/ganeti/export``
148 a8083063 Iustin Pop
149 a8083063 Iustin Pop
After this, use ``gnt-cluster init``.
150 c27ba1cc Michael Hanselmann
151 c27ba1cc Michael Hanselmann
.. vim: set textwidth=72 syntax=rst :
152 c27ba1cc Michael Hanselmann
.. Local Variables:
153 c27ba1cc Michael Hanselmann
.. mode: rst
154 c27ba1cc Michael Hanselmann
.. fill-column: 72
155 c27ba1cc Michael Hanselmann
.. End: