Update the command line scripts man pages for 2.0
[ganeti-local] / man / ganeti.sgml
1 <!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2
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">
11
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">
16 ]>
17
18 <refentry>
19   <refentryinfo>
20     <copyright>
21       <year>2006</year>
22       <year>2007</year>
23       <year>2008</year>
24       <year>2009</year>
25       <holder>Google Inc.</holder>
26     </copyright>
27     &dhdate;
28   </refentryinfo>
29   <refmeta>
30     &dhucpackage;
31
32     &dhsection;
33     <refmiscinfo>ganeti 2.0</refmiscinfo>
34   </refmeta>
35   <refnamediv>
36     <refname>&dhpackage;</refname>
37
38     <refpurpose>cluster-based virtualization management</refpurpose>
39
40   </refnamediv>
41   <refsynopsisdiv>
42     <screen>
43 # gnt-cluster init cluster1.example.com
44 # gnt-node add node2.example.com
45 # gnt-instance add -n node2.example.com \
46 &gt; -o debootstrap --disk 0:size=30g \
47 &gt; -t plain instance1.example.com
48     </screen>
49   </refsynopsisdiv>
50   <refsect1>
51     <title>DESCRIPTION</title>
52
53     <para>
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
57       hypervisors.
58     </para>
59
60   </refsect1>
61   <refsect1>
62     <title>Quick start</title>
63
64     <para>
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>.
69     </para>
70
71     <para>
72       Then you can add other nodes, or start creating instances.
73     </para>
74
75   </refsect1>
76
77   <refsect1>
78     <title>Cluster architecture</title>
79
80     <para>
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.
88     </para>
89
90     <refsect2>
91       <title>Node roles</title>
92
93       <para>Each node can be in one of the following states:
94         <variablelist>
95           <varlistentry>
96             <term>master_candidate</term>
97             <listitem>
98               <para>The node receives the full cluster configuration
99               (configuration file and jobs) and can become a master
100               via the <command>gnt-cluster masterfailover</command>
101               command. Nodes that are not in this state cannot
102               transition into the master role due to missing
103               state.</para>
104             </listitem>
105           </varlistentry>
106           <varlistentry>
107             <term>regular</term>
108             <listitem>
109               <para>This the normal state of a node.</para>
110             </listitem>
111           </varlistentry>
112           <varlistentry>
113             <term>drained</term>
114             <listitem>
115               <para>Nodes in this state are functioning normally but
116               cannot receive new instance, because the intention is to
117               set them to <emphasis>offline</emphasis> or remove them
118               from the cluster.</para>
119             </listitem>
120           </varlistentry>
121           <varlistentry>
122             <term>offline</term>
123             <listitem>
124               <para>These nodes are still recorder in the ganeti
125               configuration, but except for the master daemon startup
126               voting procedure, they are not actually contacted by the
127               master. This state was added in order to allow broken
128               machines (that are being repaired) to remain in the
129               cluster but without creating problems.</para>
130             </listitem>
131           </varlistentry>
132         </variablelist>
133       </para>
134     </refsect2>
135
136     <refsect2>
137       <title>Cluster configuration</title>
138
139       <para>The master node keeps and is responsible for the cluster
140       configuration. On the filesystem, this is stored under the
141       <filename
142       class="directory">@LOCALSTATEDIR@/ganeti/lib</filename>
143       directory, and if the master daemon is stopped it can be backed
144       up normally.</para>
145
146       <para>The master daemon will replicate the configuration
147       database called <filename>config.data</filename> and the job
148       files to all the nodes in the master candidate role. It will
149       also distribute a copy of some configuration values via the
150       <emphasis>ssconf</emphasis> files, which are stored in the same
151       directory and start with <filename>ssconf_</filename> prefix, to
152       all nodes.</para>
153
154     </refsect2>
155
156     <refsect2>
157       <title>Jobs</title>
158
159       <para>
160         All cluster modification are done via jobs. A job consists of
161         one or more opcodes, and the list of opcodes is processed
162         serially. If an opcode fails, the entire job is failed and
163         later opcodes are no longer processed. A job can be in one of
164         the following states:
165         <variablelist>
166           <varlistentry>
167             <term>queued</term>
168             <listitem>
169               <simpara>The job has been submitted but not yet
170               processed by the master daemon.</simpara>
171             </listitem>
172           </varlistentry>
173           <varlistentry>
174             <term>waiting</term>
175             <listitem>
176               <simpara>The job is waiting for for locks before the
177               first of its opcodes.</simpara>
178             </listitem>
179           </varlistentry>
180           <varlistentry>
181             <term>canceling</term>
182             <listitem>
183               <para>The jos is waiting for locks, but is has been
184               marked for cancelation. It will not transition to
185               <emphasis>running</emphasis>, but to
186               <emphasis>canceled</emphasis>.
187               </para>
188             </listitem>
189           </varlistentry>
190           <varlistentry>
191             <term>running</term>
192             <listitem>
193               <simpara>The job is currently being executed.</simpara>
194             </listitem>
195           </varlistentry>
196           <varlistentry>
197             <term>canceled</term>
198             <listitem>
199               <para>The job has been canceled before starting
200               execution.</para>
201             </listitem>
202           </varlistentry>
203           <varlistentry>
204             <term>success</term>
205             <listitem>
206               <para>The job has finished successfully.</para>
207             </listitem>
208           </varlistentry>
209           <varlistentry>
210             <term>error</term>
211             <listitem>
212               <para>The job has failed during runtime, or the master
213               daemon has been stopped during the job execution.</para>
214             </listitem>
215           </varlistentry>
216         </variablelist>
217       </para>
218     </refsect2>
219   </refsect1>
220
221   &footer;
222
223 </refentry>
224
225 <!-- Keep this comment at the end of the file
226 Local variables:
227 mode: sgml
228 sgml-omittag:t
229 sgml-shorttag:t
230 sgml-minimize-attributes:nil
231 sgml-always-quote-attributes:t
232 sgml-indent-step:2
233 sgml-indent-data:t
234 sgml-parent-document:nil
235 sgml-default-dtd-file:nil
236 sgml-exposed-tags:nil
237 sgml-local-catalogs:nil
238 sgml-local-ecat-files:nil
239 End:
240 -->