Revision 5d6dd340 docs/installing.sgml

b/docs/installing.sgml
9 9
  <sect1>
10 10
    <title>Introduction</title>
11 11

  
12
    <para>Ganeti is a cluster virtualization management system. This document
13
    explains how to bootstrap a Ganeti node and create a running cluster. You
14
    need to repeat most of the steps in this document for every node you want to
15
    install, but of course we recommend creating some semi-automatic procedure
16
    if you plan to deploy Ganeti on a medium/large scale.
12
    <para>
13
      Ganeti is a cluster virtualization management system. This
14
      document explains how to bootstrap a Ganeti node and create a
15
      running cluster. You need to repeat most of the steps in this
16
      document for every node you want to install, but of course we
17
      recommend creating some semi-automatic procedure if you plan to
18
      deploy Ganeti on a medium/large scale.
17 19
    </para>
18 20

  
19 21
    <para>This document is divided into two main sections:
20 22

  
21 23
      <itemizedlist>
22 24
        <listitem>
23
          <simpara>Installation of the core system and base components</simpara>
25
          <simpara>Installation of the core system and base
26
          components</simpara>
24 27
        </listitem>
25 28
        <listitem>
26
          <simpara>Configuration of the environment for Ganeti</simpara>
29
          <simpara>Configuration of the environment for
30
          Ganeti</simpara>
27 31
        </listitem>
28 32
      </itemizedlist>
29 33

  
30
    Each of these is divided into sub-sections. While a full Ganeti system will
31
    need all of the steps specified, some are not strictly required for every
32
    environment. Which ones they are, and why, is specified in the
33
    corresponding sections.
34
    Each of these is divided into sub-sections. While a full Ganeti
35
    system will need all of the steps specified, some are not strictly
36
    required for every environment. Which ones they are, and why, is
37
    specified in the corresponding sections.
34 38
    </para>
35 39

  
36
    <para>While Ganeti itself is distribution-agnostic most of the examples in
37
      this document will be targeted at Debian or debian derived distributions.
38
      You are expected to be familiar with your distribution, its package
39
      management system, and Xen before trying to use Ganeti.
40
    <para>
41
      While Ganeti itself is distribution-agnostic most of the
42
      examples in this document will be targeted at Debian or
43
      Debian-derived distributions. You are expected to be familiar
44
      with your distribution, its package management system, and Xen
45
      before trying to use Ganeti.
40 46
    </para>
41 47

  
42
    <para>A basic Ganeti terminology glossary is provided in the introductory
43
      section of the "admin guide". Please refer to that if you are uncertain
44
      about the terms we are using.
48
    <para>
49
      A basic Ganeti terminology glossary is provided in the
50
      introductory section of the "admin guide". Please refer to that
51
      if you are uncertain about the terms we are using.
45 52
    </para>
46 53

  
47 54
  </sect1>
......
52 59
    <sect2>
53 60
      <title>Installing the base system</title>
54 61

  
55
      <para>Mandatory.
56
      </para>
62
      <para><emphasis role="strong">Mandatory.</emphasis></para>
57 63

  
58
      <para>Please install your operating system as you would normally do. The
59
        only requirement you need to be aware of at this stage is to partition
60
        leaving enough space for a big LVM volume group which will then host
61
        your instance file systems. You can even create the volume group at
62
        installation time, of course: the default volume group name Ganeti 1.2
63
        uses is "xenvg" but you may name it differently should you wish to, as
64
        long as the name is the same for all the nodes in the cluster.
64
      <para>
65
        Please install your operating system as you would normally
66
        do. The only requirement you need to be aware of at this stage
67
        is to partition leaving enough space for a big LVM volume
68
        group which will then host your instance file systems. You can
69
        even create the volume group at installation time, of course:
70
        the default volume group name Ganeti 1.2 uses is "xenvg" but
71
        you may name it differently should you wish to, as long as the
72
        name is the same for all the nodes in the cluster.
65 73
      </para>
66 74

  
67 75
    </sect2>
......
69 77
    <sect2>
70 78
      <title>Installing Xen</title>
71 79

  
72
      <para>Mandatory: While Ganeti is developed with the ability to modularly
73
      run on different virtualization environments in mind the only one
74
      currently useable on a live system is Xen.
80
      <para>
81
        <emphasis role="strong">Mandatory:</emphasis> While Ganeti is
82
        developed with the ability to modularly run on different
83
        virtualization environments in mind the only one currently
84
        useable on a live system is Xen.
75 85
      </para>
76 86

  
77
      <para>Please follow your distribution's recommended way to install and set
78
      up Xen, or install Xen from the upstream source, if you wish, following
79
      their manual.
87
      <para>
88
        Please follow your distribution's recommended way to install
89
        and set up Xen, or install Xen from the upstream source, if
90
        you wish, following their manual.
80 91
      </para>
81 92

  
82
      <para>For example under Debian 4.0 or 3.1+backports you can install the
83
      relevant xen-linux-system package, which will pull in both the hypervisor
84
      and the relevant kernel. On Ubuntu (from Gutsy on) the package is called
85
      ubuntu-xen-server.
93
      <para>
94
        For example under Debian 4.0 or 3.1+backports you can install
95
        the relevant xen-linux-system package, which will pull in both
96
        the hypervisor and the relevant kernel. On Ubuntu (from Gutsy
97
        on) the package is called ubuntu-xen-server.
86 98
      </para>
87 99

  
88
      <para>After installing Xen you need to reboot into your xenified dom0
89
      system. Again on some distributions this might involve configuring GRUB
90
      appropriately.
100
      <para>
101
        After installing Xen you need to reboot into your xenified
102
        dom0 system. Again on some distributions this might involve
103
        configuring GRUB appropriately.
91 104
      </para>
92 105

  
93 106
    </sect2>
......
95 108
    <sect2>
96 109
      <title>Installing DRBD</title>
97 110

  
98
      <para>Recommended: DRBD is required if you want to use the high
99
        availability (HA) features of Ganeti, but optional if you don't require
100
        HA or only run Ganeti on single-node clusters. You can upgrade a non-HA
101
        cluster to an HA one later, but you might need to export and reimport
102
        all your instances to take advantage of the new features.
111
      <para>
112
        Recommended: DRBD is required if you want to use the high
113
        availability (HA) features of Ganeti, but optional if you
114
        don't require HA or only run Ganeti on single-node
115
        clusters. You can upgrade a non-HA cluster to an HA one later,
116
        but you might need to export and reimport all your instances
117
        to take advantage of the new features.
103 118
      </para>
104 119

  
105
      <para>Now the bad news: unless your distribution already provides it
106
      installing DRBD might involve recompiling your kernel or anyway fiddling
107
      with it. Hopefully at least the xenified kernel source to start from will
108
      be provided.
120
      <para>
121
        Now the bad news: unless your distribution already provides it
122
        installing DRBD might involve recompiling your kernel or
123
        anyway fiddling with it. Hopefully at least the xenified
124
        kernel source to start from will be provided.
109 125
      </para>
110 126

  
111
      <para>Under Debian you can just install the drbd0.7-module-source and
112
      drbd0.7-utils packages, and your kernel source, and then run
113
      module-assistant to compile the drbd0.7 module. The commands:
127
      <para>
128
        Under Debian you can just install the drbd0.7-module-source
129
        and drbd0.7-utils packages, and your kernel source, and then
130
        run module-assistant to compile the drbd0.7 module. The
131
        following commands should do it:
132
      </para>
114 133

  
115
      <programlisting>
134
      <screen>
116 135
m-a update
117 136
m-a a-i drbd0.7
118
      </programlisting>
119

  
120
      should do it for you.
121
      </para>
137
      </screen>
122 138

  
123
      <para>The good news is that you don't need to configure DRBD at all.
124
      Ganeti will do it for you for every instance you set up.  If you have the
125
      DRBD utils installed and the module in your kernel you're fine. Please
126
      check that your system is configured to load the module at every boot.
139
      <para>
140
        The good news is that you don't need to configure DRBD at all.
141
        Ganeti will do it for you for every instance you set up.  If
142
        you have the DRBD utils installed and the module in your
143
        kernel you're fine. Please check that your system is
144
        configured to load the module at every boot.
127 145
      </para>
128 146

  
129 147
    </sect2>
......
144 162
      </para>
145 163

  
146 164
      <para>
147
      In Debian, in order to enable the default Xen behaviour, you have to edit
148
      /etc/xen/xend-config.sxp and replace (network-script network-dummy) with
149
      (network-script network-bridge). The recommended Debian way to configure
150
      things, though, is to edit your /etc/network/interfaces file and
151
      substitute your normal ethernet stanza with something like:
152

  
153
      <programlisting>
165
      In Debian, in order to enable the default Xen behaviour, you
166
      have to edit <filename>/etc/xen/xend-config.sxp</filename> and
167
      replace <computeroutput>(network-script
168
      network-dummy)</computeroutput> with
169
      <computeroutput>(network-script
170
      network-bridge)</computeroutput>. The recommended Debian way to
171
      configure things, though, is to edit your
172
      <filename>/etc/network/interfaces</filename> file and substitute
173
      your normal ethernet stanza with something like:</para>
174

  
175
      <screen>
154 176
auto br0
155 177
iface br0 inet static
156
        address YOUR_IP_ADDRESS
157
        netmask YOUR_NETMASK
158
        network YOUR_NETWORK
159
        broadcast YOUR_BROADCAST_ADDRSS
160
        gateway YOUR_GATEWAY
161
        # dns-* options are implemented by the resolvconf package, if installed
162
        dns-nameservers YOUR_DNS_SERVERS
163
        dns-search YOUR_SEARCH_PATH
164
        bridge_ports eth0
178
        address <replaceable>YOUR_IP_ADDRESS</replaceable>
179
        netmask <replaceable>YOUR_NETMASK</replaceable>
180
        network <replaceable>YOUR_NETWORK</replaceable>
181
        broadcast <replaceable>YOUR_BROADCAST_ADDRESS</replaceable>
182
        gateway <replaceable>YOUR_GATEWAY</replaceable>
183
        bridge_ports <replaceable>eth0</replaceable>
165 184
        bridge_stp off
166 185
        bridge_fd 0
167
      </programlisting>
168

  
169
    </para>
186
      </screen>
170 187

  
171 188
    <para>
172
      Beware that the default name Ganeti uses is xen-br0 (which was used in
173
      Xen 2.0) while Xen 3.0 uses xenbr0 by default. The default bridge your
174
      cluster will use for new instances can be specified at cluster
175
      initialization time.
189
      Beware that the default name Ganeti uses is
190
      <hardware>xen-br0</hardware> (which was used in Xen 2.0)
191
      while Xen 3.0 uses <hardware>xenbr0</hardware> by
192
      default. The default bridge your cluster will use for new
193
      instances can be specified at cluster initialization time.
176 194
    </para>
177 195

  
178 196
    </sect2>
......
181 199
      <title>Configuring LVM</title>
182 200

  
183 201
      <para>
184
        If you haven't configured your LVM volume group at install time you need
185
        to do it before trying to initialize the Ganeti cluster. This is done by
186
        formatting the devices/partitions you want to use for it and then adding
187
        them to the relevant volume group:
188

  
189
       <programlisting>
202
        If you haven't configured your LVM volume group at install
203
        time you need to do it before trying to initialize the Ganeti
204
        cluster. This is done by formatting the devices/partitions you
205
        want to use for it and then adding them to the relevant volume
206
        group:
207
       </para>
208

  
209
       <screen>
190 210
pvcreate /dev/sda4
191 211
pvcreate /dev/sdb
192 212
pvcreate /dev/sdc1
193 213
vgcreate xenvg /dev/sda4 /dev/sdb /dev/sdc1
194
       </programlisting>
195
      </para>
214
       </screen>
196 215

  
197 216
      <para>
198
	If you want to add a device later you can do so with the 
217
	If you want to add a device later you can do so with the
199 218
	<citerefentry><refentrytitle>vgextend</refentrytitle>
200
	<manvolnum>8</manvolnum></citerefentry> command.
201
        <programlisting>
219
	<manvolnum>8</manvolnum></citerefentry> command:
220
      </para>
221

  
222
      <screen>
202 223
pvcreate /dev/sdd
203 224
vgextend xenvg /dev/sdd
204
        </programlisting>
205
      </para>
225
      </screen>
206 226

  
207 227
      <para>
208 228
        As said before you may choose a different name for the volume group,
......
213 233
    <sect2>
214 234
      <title>Installing Ganeti</title>
215 235

  
216
      <para>It's now time to install the Ganeti software itself if you haven't
217
        done it yet. You can do it from source, with the usual steps:
236
      <para>It's now time to install the Ganeti software itself if you
237
      haven't done it yet. You can do it from source, with the usual
238
      steps (note that the <option>localstatedir</option> options must
239
      be set to <filename class="directory">/var</filename>):
218 240

  
219
        <programlisting>
220
./configure
241
        <screen>
242
./configure --localstatedir=/var
221 243
make
222 244
make install
223
        </programlisting>
245
        </screen>
224 246

  
225 247
        or you can install the package relevant to your distribution, for
226 248
        example in Debian/Ubuntu:
227 249

  
228
        <programlisting>
250
        <screen>
229 251
dpkg -i ganeti_VERSION_all.deb
230
        </programlisting>
252
        </screen>
231 253

  
232 254
        or, if you have a source repository that holds the Ganeti software:
233 255

  
234
        <programlisting>
256
        <screen>
235 257
apt-get install ganeti
236
        </programlisting>
258
        </screen>
237 259
      </para>
238 260

  
239 261
    </sect2>
......
251 273
    <sect2>
252 274
      <title>Initializing the cluster</title>
253 275

  
254
      <para>Mandatory: only on one node per cluster.
255
      </para>
276
      <para><emphasis role="strong">Mandatory:</emphasis> only on one
277
      node per cluster.</para>
256 278

  
257 279

  
258 280
      <para>The last step is to initialize the cluster. After you've repeated
259 281
        the above process or some semi-automatic form of it on all of your
260 282
        nodes choose one as the master, and execute:
283
      </para>
261 284

  
262
        <programlisting>
263
gnt-cluster init CLUSTERNAME
264
        </programlisting>
285
      <screen>
286
gnt-cluster init <replaceable>CLUSTERNAME</replaceable>
287
      </screen>
265 288

  
266
        Options you can pass to gnt-cluster init include the default bridge
267
        name (-b), the cluster-wide name for the volume group (-g) and the
268
        secondary ip address for the initial node should you wish to keep the
269
        data replication network separate. Invoke it with --help to see all the
270
        possibilities.
289
      <para>
290
        Options you can pass to <command>gnt-cluster init</command>
291
        include the default bridge name (<option>-b</option>), the
292
        cluster-wide name for the volume group (<option>-g</option>)
293
        and the secondary ip address for the initial node should you
294
        wish to keep the data replication network separate. Invoke it
295
        with <option>--help</option> to see all the possibilities.
271 296
      </para>
272 297

  
273
      <para>The cluster name must exist in DNS. You must choose a name
274
        different from any of the nodes names for a multi-node cluster. In
275
        general the best choice is to have a completely unique name for each
276
        cluster.
298
      <para>
299
        Note that the cluster name must exist in DNS. You must choose
300
        a name different from any of the nodes names for a multi-node
301
        cluster. In general the best choice is to have a unique name
302
        for a cluster, even if it consists of only one machine.
277 303
      </para>
278 304
    </sect2>
279 305

  
280 306
    <sect2>
281 307
      <title>Joining the nodes to the cluster.</title>
282 308

  
283
      <para>Mandatory: for all the other nodes.
309
      <para>
310
        <emphasis role="strong">Mandatory:</emphasis> for all the
311
        other nodes.
284 312
      </para>
285 313

  
286 314
      <para>
287 315
        If you have already initialized your cluster you need to join the other
288 316
        nodes to it. You can do so by executing the following command on the
289 317
        master node:
290
        <programlisting>
291
gnt-node add NODENAME
292
        </programlisting>
318
        <screen>
319
gnt-node add <replaceable>NODENAME</replaceable>
320
        </screen>
293 321

  
294
        The only option is (-s), which sets the node's secondary ip address for
295
        replication purposes, if you are using a separate replication network.
322
        The only option is <option>-s</option>, which sets the node's
323
        secondary ip address for replication purposes, if you are
324
        using a separate replication network.
296 325
      </para>
297 326
    </sect2>
298 327

  
......
301 330
  <sect1>
302 331
    <title>This is it!</title>
303 332

  
304
    <para>Now you can follow the "admin guide" to use your new Ganeti cluster.
333
    <para>
334
      Now you can follow the admin guide to use your new Ganeti
335
      cluster.
305 336
    </para>
306 337

  
307 338
  </sect1>

Also available in: Unified diff