1 <!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
3 <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4 <!-- Please adjust the date whenever revising the manpage. -->
5 <!ENTITY dhdate "<date>February 12, 2009</date>">
6 <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7 allowed: see man(7), man(1). -->
8 <!ENTITY dhsection "<manvolnum>7</manvolnum>">
9 <!ENTITY dhucpackage "<refentrytitle>ganeti</refentrytitle>">
10 <!ENTITY dhpackage "ganeti">
12 <!ENTITY debian "<productname>Debian</productname>">
13 <!ENTITY gnu "<acronym>GNU</acronym>">
14 <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
15 <!ENTITY footer SYSTEM "footer.sgml">
25 <holder>Google Inc.</holder>
33 <refmiscinfo>ganeti 2.0</refmiscinfo>
36 <refname>&dhpackage;</refname>
38 <refpurpose>cluster-based virtualization management</refpurpose>
43 # gnt-cluster init cluster1.example.com
44 # gnt-node add node2.example.com
45 # gnt-instance add -n node2.example.com \
46 > -o debootstrap --disk 0:size=30g \
47 > -t plain instance1.example.com
51 <title>DESCRIPTION</title>
54 The ganeti software manages physical nodes and virtual instances
55 of a cluster based on a virtualization software. The current
56 version (2.0) supports Xen 3.0 (also tested with 3.1) and KVM
62 <title>Quick start</title>
65 First you must install the software on all the cluster nodes,
66 either from sources or (if available) from a package. The next
67 step is to create the initial cluster configuration, using
68 <userinput>gnt-cluster init</userinput>.
72 Then you can add other nodes, or start creating instances.
78 <title>Cluster architecture</title>
81 In Ganeti 2.0, the architecture of the cluster is a little more
82 complicated than in 1.2. The cluster is coordinated by a master
83 daemon (<citerefentry>
84 <refentrytitle>ganeti-masterd</refentrytitle>
85 <manvolnum>8</manvolnum> </citerefentry>), running on the master
86 node. Each node runs (as before) a node daemon, and the master
87 has the <acronym>RAPI</acronym> daemon running too.
91 <title>Node roles</title>
93 <para>Each node can be in one of the following states:
99 Only one node per cluster can be in this role, and
100 this node is the one holding the authoritative copy of
101 the cluster configuration and the one that can
102 actually execute commands on the cluster and modify
103 the cluster state. See more details under
104 <emphasis>Cluster configuration</emphasis>.
109 <term>master_candidate</term>
111 <para>The node receives the full cluster configuration
112 (configuration file and jobs) and can become a master
113 via the <command>gnt-cluster masterfailover</command>
114 command. Nodes that are not in this state cannot
115 transition into the master role due to missing
122 <para>This the normal state of a node.</para>
128 <para>Nodes in this state are functioning normally but
129 cannot receive new instance, because the intention is to
130 set them to <emphasis>offline</emphasis> or remove them
131 from the cluster.</para>
137 <para>These nodes are still recorder in the ganeti
138 configuration, but except for the master daemon startup
139 voting procedure, they are not actually contacted by the
140 master. This state was added in order to allow broken
141 machines (that are being repaired) to remain in the
142 cluster but without creating problems.</para>
150 <title>Cluster configuration</title>
152 <para>The master node keeps and is responsible for the cluster
153 configuration. On the filesystem, this is stored under the
155 class="directory">@LOCALSTATEDIR@/ganeti/lib</filename>
156 directory, and if the master daemon is stopped it can be backed
159 <para>The master daemon will replicate the configuration
160 database called <filename>config.data</filename> and the job
161 files to all the nodes in the master candidate role. It will
162 also distribute a copy of some configuration values via the
163 <emphasis>ssconf</emphasis> files, which are stored in the same
164 directory and start with <filename>ssconf_</filename> prefix, to
173 All cluster modification are done via jobs. A job consists of
174 one or more opcodes, and the list of opcodes is processed
175 serially. If an opcode fails, the entire job is failed and
176 later opcodes are no longer processed. A job can be in one of
177 the following states:
182 <simpara>The job has been submitted but not yet
183 processed by the master daemon.</simpara>
189 <simpara>The job is waiting for for locks before the
190 first of its opcodes.</simpara>
194 <term>canceling</term>
196 <para>The jos is waiting for locks, but is has been
197 marked for cancelation. It will not transition to
198 <emphasis>running</emphasis>, but to
199 <emphasis>canceled</emphasis>.
206 <simpara>The job is currently being executed.</simpara>
210 <term>canceled</term>
212 <para>The job has been canceled before starting
219 <para>The job has finished successfully.</para>
225 <para>The job has failed during runtime, or the master
226 daemon has been stopped during the job execution.</para>
238 <!-- Keep this comment at the end of the file
243 sgml-minimize-attributes:nil
244 sgml-always-quote-attributes:t
247 sgml-parent-document:nil
248 sgml-default-dtd-file:nil
249 sgml-exposed-tags:nil
250 sgml-local-catalogs:nil
251 sgml-local-ecat-files:nil