<itemizedlist>
<listitem>
<simpara>Installation of the base system and base
- components</simpara>
+ components</simpara>
</listitem>
<listitem>
<simpara>Configuration of the environment for
- Ganeti</simpara>
+ Ganeti</simpara>
</listitem>
</itemizedlist>
- Each of these is divided into sub-sections. While a full Ganeti
- system will need all of the steps specified, some are not strictly
- required for every environment. Which ones they are, and why, is
- specified in the corresponding sections.
+ Each of these is divided into sub-sections. While a full Ganeti system
+ will need all of the steps specified, some are not strictly required for
+ every environment. Which ones they are, and why, is specified in the
+ corresponding sections.
</para>
</sect1>
<title>Hardware requirements</title>
<para>
- Any system supported by your Linux distribution is fine.
- 64-bit systems are better as they can support more memory.
+ Any system supported by your Linux distribution is fine. 64-bit
+ systems are better as they can support more memory.
</para>
<para>
- Any disk drive recognized by Linux
- (<literal>IDE</literal>/<literal>SCSI</literal>/<literal>SATA</literal>/etc.)
- is supported in Ganeti. Note that no shared storage
- (e.g. <literal>SAN</literal>) is needed to get high-availability features. It is
- highly recommended to use more than one disk drive to improve
- speed. But Ganeti also works with one disk per machine.
+ Any disk drive recognized by Linux
+ (<literal>IDE</literal>/<literal>SCSI</literal>/<literal>SATA</literal>/etc.)
+ is supported in Ganeti. Note that no shared storage (e.g.
+ <literal>SAN</literal>) is needed to get high-availability features. It
+ is highly recommended to use more than one disk drive to improve speed.
+ But Ganeti also works with one disk per machine.
</para>
<sect2>
kernel parameter <literal>nosmp</literal>.
</para>
+ <para>
+ It is recommended that you disable xen's automatic save of virtual
+ machines at system shutdown and subsequent restore of them at reboot.
+ To obtain this make sure the variable
+ <literal>XENDOMAINS_SAVE</literal> in the file
+ <literal>/etc/default/xendomains</literal> is set to an empty value.
+ </para>
+
<formalpara>
<title>Debian</title>
<para>
</screen>
</para>
</formalpara>
+ <para>
+ If you want to test the experimental HVM support
+ with Ganeti and want VNC access to the console of your
+ instances, set the following two entries in
+ <filename>/etc/xen/xend-config.sxp</filename>:
+<screen>
+(vnc-listen '0.0.0.0')
+(vncpasswd '')
+</screen>
+ You need to restart the Xen daemon for these settings to
+ take effect:
+<screen>
+/etc/init.d/xend restart
+</screen>
+ </para>
</sect3>
</para>
<para>
- Supported DRBD version: the <literal>0.7</literal>
- series. It's recommended to have at least version
- <literal>0.7.24</literal> if you use <command>udev</command>
- since older versions have a bug related to device discovery
- which can be triggered in cases of hard drive failure.
+ Supported DRBD versions: the <literal>0.7</literal> series
+ <emphasis role="strong">or</emphasis>
+ <literal>8.0.7</literal>. It's recommended to have at least
+ version <literal>0.7.24</literal> if you use
+ <command>udev</command> since older versions have a bug
+ related to device discovery which can be triggered in cases of
+ hard drive failure.
</para>
<para>
you have the DRBD utils installed and the module in your
kernel you're fine. Please check that your system is
configured to load the module at every boot, and that it
- passes the following option to the module:
+ passes the following option to the module (for
+ <literal>0.7.x</literal>:
<computeroutput>minor_count=64</computeroutput> (this will
- allow you to use up to 32 instances per node).
+ allow you to use up to 32 instances per node) or for
+ <literal>8.0.x</literal> you can use up to
+ <constant>255</constant>
+ (i.e. <computeroutput>minor_count=255</computeroutput>, but
+ for most clusters <constant>128</constant> should be enough).
</para>
<formalpara><title>Debian</title>
echo drbd minor_count=64 >> /etc/modules
modprobe drbd minor_count=64
</screen>
+ <para>
+ or for using DRBD <literal>8.x</literal> from the etch
+ backports (note: you need at least 8.0.7, older version have
+ a bug that breaks ganeti's usage of drbd):
+ </para>
+ <screen>
+apt-get install -t etch-backports drbd8-module-source drbd8-utils
+m-a update
+m-a a-i drbd8
+echo drbd minor_count=128 >> /etc/modules
+modprobe drbd minor_count=128
+ </screen>
<para>
It is also recommended that you comment out the default
url="http://www.undefined.org/python/#simplejson">simplejson Python
module</ulink></simpara>
</listitem>
+ <listitem>
+ <simpara><ulink
+ url="http://pyparsing.wikispaces.com/">pyparsing Python
+ module</ulink></simpara>
+ </listitem>
</itemizedlist>
<para>
<screen>
# apt-get install lvm2 ssh bridge-utils iproute iputils-arping \
python2.4 python-twisted-core python-pyopenssl openssl \
- mdadm
+ mdadm python-pyparsing python-simplejson
</screen>
</sect2>
</para>
<screen>
-tar xvzf ganeti-1.2b1.tar.gz
-cd ganeti-1.2b1
+tar xvzf ganeti-1.2.0.tar.gz
+cd ganeti-1.2.0
./configure --localstatedir=/var --sysconfdir=/etc
make
make install
provided on the project web site. Download it from <ulink
url="http://code.google.com/p/ganeti/"></ulink> and follow the
instructions in the <filename>README</filename> file. Here is
- the installation procedure:
+ the installation procedure (replace <constant>0.2</constant>
+ with the latest version that is compatible with your ganeti
+ version):
</para>
<screen>
cd /srv/ganeti/os
-tar xvf instance-debian-etch-0.1.tar
-mv instance-debian-etch-0.1 debian-etch
+tar xvf ganeti-instance-debian-etch-0.3.tar
+mv ganeti-instance-debian-etch-0.3 debian-etch
</screen>
<para>
</para>
<para>
+ To set up the cluster as an HVM cluster, use the
+ <option>--hypervisor=xen-hvm3.1</option> option to use
+ the Xen 3.1 HVM hypervisor. Note that with the
+ experimental HVM support, you will only be able to create
+ HVM instances in a cluster set to this hypervisor type. Mixed
+ PVM/HVM clusters are not supported by the Ganeti 1.2
+ experimental HVM support. You will also need to create the VNC
+ cluster password file
+ <filename>/etc/ganeti/vnc-cluster-password</filename>
+ which contains one line with the default VNC password for the
+ cluster. Finally, you need to provide an installation ISO
+ image for HVM instance which will not only be mapped to the
+ first CDROM of the instance, but which the instance will also
+ boot from. This ISO image is expected at
+ <filename>/srv/ganeti/iso/hvm-install.iso</filename>.
+ </para>
+
+ <para>
You can also invoke the command with the
<option>--help</option> option in order to see all the
possibilities.
<title>Testing the setup</title>
<para>
-
Execute the <computeroutput>gnt-node list</computeroutput>
command to see all nodes in the cluster:
<screen>
This step shows how to setup a virtual instance with either
non-mirrored disks (<computeroutput>plain</computeroutput>) or
with network mirrored disks
- (<computeroutput>remote_raid1</computeroutput>). All commands
- need to be executed on the Ganeti master node (the one on
- which <computeroutput>gnt-cluster init</computeroutput> was
- run). Verify that the OS scripts are present on all cluster
- nodes with <computeroutput>gnt-os list</computeroutput>.
+ (<computeroutput>remote_raid1</computeroutput> for drbd 0.7
+ and <computeroutput>drbd</computeroutput> for drbd 8.x). All
+ commands need to be executed on the Ganeti master node (the
+ one on which <computeroutput>gnt-cluster init</computeroutput>
+ was run). Verify that the OS scripts are present on all
+ cluster nodes with <computeroutput>gnt-os
+ list</computeroutput>.
</para>
<para>
To create a virtual instance, you need a hostname which is
<para>
To create a network mirrored instance, change the argument to
the <option>-t</option> option from <literal>plain</literal>
- to <literal>remote_raid1</literal> and specify the node on
- which the mirror should reside with the
- <option>--secondary-node</option> option, like this:
+ to <literal>remote_raid1</literal> (drbd 0.7) or
+ <literal>drbd</literal> (drbd 8.0) and specify the node on
+ which the mirror should reside with the second value of the
+ <option>--node</option> option, like this:
</para>
<screen>
-# gnt-instance add -t remote_raid1 --secondary-node node1 \
- -n node2 -o debian-etch instance2
+# gnt-instance add -t remote_raid1 -n node1:node2 -o debian-etch instance2
* creating instance disks...
adding instance instance2 to cluster config
Waiting for instance instance1 to sync disks.
- device sdb: 76.30% done, 72 estimated seconds remaining
- device sdb: 94.80% done, 18 estimated seconds remaining
Instance instance2's disks are in sync.
-creating os for instance instance2 on node node2.example.com
+creating os for instance instance2 on node node1.example.com
* running the instance OS create scripts...
* starting instance...
</screen>
<para>
To failover an instance to its secondary node (only possible
- in <literal>remote_raid1</literal> setup), use
- <computeroutput>gnt-instance failover
+ in <literal>remote_raid1</literal> or <literal>drbd</literal>
+ disk templates), use <computeroutput>gnt-instance failover
<replaceable>INSTANCENAME</replaceable></computeroutput>.
</para>