Statistics
| Branch: | Tag: | Revision:

root / man / ganeti.sgml @ d04aaa2f

History | View | Annotate | Download (8.2 kB)

1 a8083063 Iustin Pop
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2 a8083063 Iustin Pop
3 a8083063 Iustin Pop
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4 a8083063 Iustin Pop
  <!-- Please adjust the date whenever revising the manpage. -->
5 d3b4cf9f Iustin Pop
  <!ENTITY dhdate      "<date>February 12, 2009</date>">
6 a8083063 Iustin Pop
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7 a8083063 Iustin Pop
       allowed: see man(7), man(1). -->
8 a8083063 Iustin Pop
  <!ENTITY dhsection   "<manvolnum>7</manvolnum>">
9 a8083063 Iustin Pop
  <!ENTITY dhucpackage "<refentrytitle>ganeti</refentrytitle>">
10 a8083063 Iustin Pop
  <!ENTITY dhpackage   "ganeti">
11 a8083063 Iustin Pop
12 a8083063 Iustin Pop
  <!ENTITY debian      "<productname>Debian</productname>">
13 a8083063 Iustin Pop
  <!ENTITY gnu         "<acronym>GNU</acronym>">
14 a8083063 Iustin Pop
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15 a8083063 Iustin Pop
  <!ENTITY footer SYSTEM "footer.sgml">
16 a8083063 Iustin Pop
]>
17 a8083063 Iustin Pop
18 a8083063 Iustin Pop
<refentry>
19 a8083063 Iustin Pop
  <refentryinfo>
20 a8083063 Iustin Pop
    <copyright>
21 a8083063 Iustin Pop
      <year>2006</year>
22 a8083063 Iustin Pop
      <year>2007</year>
23 d3b4cf9f Iustin Pop
      <year>2008</year>
24 d3b4cf9f Iustin Pop
      <year>2009</year>
25 a8083063 Iustin Pop
      <holder>Google Inc.</holder>
26 a8083063 Iustin Pop
    </copyright>
27 a8083063 Iustin Pop
    &dhdate;
28 a8083063 Iustin Pop
  </refentryinfo>
29 a8083063 Iustin Pop
  <refmeta>
30 a8083063 Iustin Pop
    &dhucpackage;
31 a8083063 Iustin Pop
32 a8083063 Iustin Pop
    &dhsection;
33 d3b4cf9f Iustin Pop
    <refmiscinfo>ganeti 2.0</refmiscinfo>
34 a8083063 Iustin Pop
  </refmeta>
35 a8083063 Iustin Pop
  <refnamediv>
36 a8083063 Iustin Pop
    <refname>&dhpackage;</refname>
37 a8083063 Iustin Pop
38 a8083063 Iustin Pop
    <refpurpose>cluster-based virtualization management</refpurpose>
39 a8083063 Iustin Pop
40 a8083063 Iustin Pop
  </refnamediv>
41 a8083063 Iustin Pop
  <refsynopsisdiv>
42 a8083063 Iustin Pop
    <screen>
43 a8083063 Iustin Pop
# gnt-cluster init cluster1.example.com
44 a8083063 Iustin Pop
# gnt-node add node2.example.com
45 d3b4cf9f Iustin Pop
# gnt-instance add -n node2.example.com \
46 d3b4cf9f Iustin Pop
&gt; -o debootstrap --disk 0:size=30g \
47 a8083063 Iustin Pop
&gt; -t plain instance1.example.com
48 a8083063 Iustin Pop
    </screen>
49 a8083063 Iustin Pop
  </refsynopsisdiv>
50 a8083063 Iustin Pop
  <refsect1>
51 a8083063 Iustin Pop
    <title>DESCRIPTION</title>
52 a8083063 Iustin Pop
53 a8083063 Iustin Pop
    <para>
54 a8083063 Iustin Pop
      The ganeti software manages physical nodes and virtual instances
55 a8083063 Iustin Pop
      of a cluster based on a virtualization software. The current
56 d3b4cf9f Iustin Pop
      version (2.0) supports Xen 3.0 (also tested with 3.1) and KVM
57 d3b4cf9f Iustin Pop
      hypervisors.
58 a8083063 Iustin Pop
    </para>
59 a8083063 Iustin Pop
60 a8083063 Iustin Pop
  </refsect1>
61 a8083063 Iustin Pop
  <refsect1>
62 a8083063 Iustin Pop
    <title>Quick start</title>
63 a8083063 Iustin Pop
64 a8083063 Iustin Pop
    <para>
65 a8083063 Iustin Pop
      First you must install the software on all the cluster nodes,
66 a8083063 Iustin Pop
      either from sources or (if available) from a package. The next
67 a8083063 Iustin Pop
      step is to create the initial cluster configuration, using
68 d3b4cf9f Iustin Pop
      <userinput>gnt-cluster init</userinput>.
69 a8083063 Iustin Pop
    </para>
70 a8083063 Iustin Pop
71 a8083063 Iustin Pop
    <para>
72 a8083063 Iustin Pop
      Then you can add other nodes, or start creating instances.
73 a8083063 Iustin Pop
    </para>
74 a8083063 Iustin Pop
75 a8083063 Iustin Pop
  </refsect1>
76 a8083063 Iustin Pop
77 d3b4cf9f Iustin Pop
  <refsect1>
78 d3b4cf9f Iustin Pop
    <title>Cluster architecture</title>
79 d3b4cf9f Iustin Pop
80 d3b4cf9f Iustin Pop
    <para>
81 d3b4cf9f Iustin Pop
      In Ganeti 2.0, the architecture of the cluster is a little more
82 d3b4cf9f Iustin Pop
      complicated than in 1.2. The cluster is coordinated by a master
83 d3b4cf9f Iustin Pop
      daemon (<citerefentry>
84 d3b4cf9f Iustin Pop
      <refentrytitle>ganeti-masterd</refentrytitle>
85 d3b4cf9f Iustin Pop
      <manvolnum>8</manvolnum> </citerefentry>), running on the master
86 d3b4cf9f Iustin Pop
      node. Each node runs (as before) a node daemon, and the master
87 d3b4cf9f Iustin Pop
      has the <acronym>RAPI</acronym> daemon running too.
88 d3b4cf9f Iustin Pop
    </para>
89 d3b4cf9f Iustin Pop
90 d3b4cf9f Iustin Pop
    <refsect2>
91 d3b4cf9f Iustin Pop
      <title>Node roles</title>
92 d3b4cf9f Iustin Pop
93 d3b4cf9f Iustin Pop
      <para>Each node can be in one of the following states:
94 d3b4cf9f Iustin Pop
        <variablelist>
95 d3b4cf9f Iustin Pop
          <varlistentry>
96 b806661b Iustin Pop
            <term>master</term>
97 b806661b Iustin Pop
            <listitem>
98 b806661b Iustin Pop
              <para>
99 b806661b Iustin Pop
                Only one node per cluster can be in this role, and
100 b806661b Iustin Pop
                this node is the one holding the authoritative copy of
101 b806661b Iustin Pop
                the cluster configuration and the one that can
102 b806661b Iustin Pop
                actually execute commands on the cluster and modify
103 b806661b Iustin Pop
                the cluster state. See more details under
104 b806661b Iustin Pop
                <emphasis>Cluster configuration</emphasis>.
105 b806661b Iustin Pop
              </para>
106 b806661b Iustin Pop
            </listitem>
107 b806661b Iustin Pop
          </varlistentry>
108 b806661b Iustin Pop
          <varlistentry>
109 d3b4cf9f Iustin Pop
            <term>master_candidate</term>
110 d3b4cf9f Iustin Pop
            <listitem>
111 d3b4cf9f Iustin Pop
              <para>The node receives the full cluster configuration
112 d3b4cf9f Iustin Pop
              (configuration file and jobs) and can become a master
113 d3b4cf9f Iustin Pop
              via the <command>gnt-cluster masterfailover</command>
114 d3b4cf9f Iustin Pop
              command. Nodes that are not in this state cannot
115 d3b4cf9f Iustin Pop
              transition into the master role due to missing
116 d3b4cf9f Iustin Pop
              state.</para>
117 d3b4cf9f Iustin Pop
            </listitem>
118 d3b4cf9f Iustin Pop
          </varlistentry>
119 d3b4cf9f Iustin Pop
          <varlistentry>
120 d3b4cf9f Iustin Pop
            <term>regular</term>
121 d3b4cf9f Iustin Pop
            <listitem>
122 d3b4cf9f Iustin Pop
              <para>This the normal state of a node.</para>
123 d3b4cf9f Iustin Pop
            </listitem>
124 d3b4cf9f Iustin Pop
          </varlistentry>
125 d3b4cf9f Iustin Pop
          <varlistentry>
126 d3b4cf9f Iustin Pop
            <term>drained</term>
127 d3b4cf9f Iustin Pop
            <listitem>
128 d3b4cf9f Iustin Pop
              <para>Nodes in this state are functioning normally but
129 d3b4cf9f Iustin Pop
              cannot receive new instance, because the intention is to
130 d3b4cf9f Iustin Pop
              set them to <emphasis>offline</emphasis> or remove them
131 d3b4cf9f Iustin Pop
              from the cluster.</para>
132 d3b4cf9f Iustin Pop
            </listitem>
133 d3b4cf9f Iustin Pop
          </varlistentry>
134 d3b4cf9f Iustin Pop
          <varlistentry>
135 d3b4cf9f Iustin Pop
            <term>offline</term>
136 d3b4cf9f Iustin Pop
            <listitem>
137 d3b4cf9f Iustin Pop
              <para>These nodes are still recorder in the ganeti
138 d3b4cf9f Iustin Pop
              configuration, but except for the master daemon startup
139 d3b4cf9f Iustin Pop
              voting procedure, they are not actually contacted by the
140 d3b4cf9f Iustin Pop
              master. This state was added in order to allow broken
141 d3b4cf9f Iustin Pop
              machines (that are being repaired) to remain in the
142 d3b4cf9f Iustin Pop
              cluster but without creating problems.</para>
143 d3b4cf9f Iustin Pop
            </listitem>
144 d3b4cf9f Iustin Pop
          </varlistentry>
145 d3b4cf9f Iustin Pop
        </variablelist>
146 d3b4cf9f Iustin Pop
      </para>
147 d3b4cf9f Iustin Pop
    </refsect2>
148 d3b4cf9f Iustin Pop
149 d3b4cf9f Iustin Pop
    <refsect2>
150 d3b4cf9f Iustin Pop
      <title>Cluster configuration</title>
151 d3b4cf9f Iustin Pop
152 d3b4cf9f Iustin Pop
      <para>The master node keeps and is responsible for the cluster
153 d3b4cf9f Iustin Pop
      configuration. On the filesystem, this is stored under the
154 d3b4cf9f Iustin Pop
      <filename
155 d3b4cf9f Iustin Pop
      class="directory">@LOCALSTATEDIR@/ganeti/lib</filename>
156 d3b4cf9f Iustin Pop
      directory, and if the master daemon is stopped it can be backed
157 d3b4cf9f Iustin Pop
      up normally.</para>
158 d3b4cf9f Iustin Pop
159 d3b4cf9f Iustin Pop
      <para>The master daemon will replicate the configuration
160 d3b4cf9f Iustin Pop
      database called <filename>config.data</filename> and the job
161 d3b4cf9f Iustin Pop
      files to all the nodes in the master candidate role. It will
162 d3b4cf9f Iustin Pop
      also distribute a copy of some configuration values via the
163 d3b4cf9f Iustin Pop
      <emphasis>ssconf</emphasis> files, which are stored in the same
164 d3b4cf9f Iustin Pop
      directory and start with <filename>ssconf_</filename> prefix, to
165 d3b4cf9f Iustin Pop
      all nodes.</para>
166 d3b4cf9f Iustin Pop
167 d3b4cf9f Iustin Pop
    </refsect2>
168 d3b4cf9f Iustin Pop
169 d3b4cf9f Iustin Pop
    <refsect2>
170 d3b4cf9f Iustin Pop
      <title>Jobs</title>
171 d3b4cf9f Iustin Pop
172 d3b4cf9f Iustin Pop
      <para>
173 d3b4cf9f Iustin Pop
        All cluster modification are done via jobs. A job consists of
174 d3b4cf9f Iustin Pop
        one or more opcodes, and the list of opcodes is processed
175 d3b4cf9f Iustin Pop
        serially. If an opcode fails, the entire job is failed and
176 d3b4cf9f Iustin Pop
        later opcodes are no longer processed. A job can be in one of
177 d3b4cf9f Iustin Pop
        the following states:
178 d3b4cf9f Iustin Pop
        <variablelist>
179 d3b4cf9f Iustin Pop
          <varlistentry>
180 d3b4cf9f Iustin Pop
            <term>queued</term>
181 d3b4cf9f Iustin Pop
            <listitem>
182 d3b4cf9f Iustin Pop
              <simpara>The job has been submitted but not yet
183 d3b4cf9f Iustin Pop
              processed by the master daemon.</simpara>
184 d3b4cf9f Iustin Pop
            </listitem>
185 d3b4cf9f Iustin Pop
          </varlistentry>
186 d3b4cf9f Iustin Pop
          <varlistentry>
187 d3b4cf9f Iustin Pop
            <term>waiting</term>
188 d3b4cf9f Iustin Pop
            <listitem>
189 d3b4cf9f Iustin Pop
              <simpara>The job is waiting for for locks before the
190 d3b4cf9f Iustin Pop
              first of its opcodes.</simpara>
191 d3b4cf9f Iustin Pop
            </listitem>
192 d3b4cf9f Iustin Pop
          </varlistentry>
193 d3b4cf9f Iustin Pop
          <varlistentry>
194 d3b4cf9f Iustin Pop
            <term>canceling</term>
195 d3b4cf9f Iustin Pop
            <listitem>
196 d3b4cf9f Iustin Pop
              <para>The jos is waiting for locks, but is has been
197 d3b4cf9f Iustin Pop
              marked for cancelation. It will not transition to
198 d3b4cf9f Iustin Pop
              <emphasis>running</emphasis>, but to
199 d3b4cf9f Iustin Pop
              <emphasis>canceled</emphasis>.
200 d3b4cf9f Iustin Pop
              </para>
201 d3b4cf9f Iustin Pop
            </listitem>
202 d3b4cf9f Iustin Pop
          </varlistentry>
203 d3b4cf9f Iustin Pop
          <varlistentry>
204 d3b4cf9f Iustin Pop
            <term>running</term>
205 d3b4cf9f Iustin Pop
            <listitem>
206 d3b4cf9f Iustin Pop
              <simpara>The job is currently being executed.</simpara>
207 d3b4cf9f Iustin Pop
            </listitem>
208 d3b4cf9f Iustin Pop
          </varlistentry>
209 d3b4cf9f Iustin Pop
          <varlistentry>
210 d3b4cf9f Iustin Pop
            <term>canceled</term>
211 d3b4cf9f Iustin Pop
            <listitem>
212 d3b4cf9f Iustin Pop
              <para>The job has been canceled before starting
213 d3b4cf9f Iustin Pop
              execution.</para>
214 d3b4cf9f Iustin Pop
            </listitem>
215 d3b4cf9f Iustin Pop
          </varlistentry>
216 d3b4cf9f Iustin Pop
          <varlistentry>
217 d3b4cf9f Iustin Pop
            <term>success</term>
218 d3b4cf9f Iustin Pop
            <listitem>
219 d3b4cf9f Iustin Pop
              <para>The job has finished successfully.</para>
220 d3b4cf9f Iustin Pop
            </listitem>
221 d3b4cf9f Iustin Pop
          </varlistentry>
222 d3b4cf9f Iustin Pop
          <varlistentry>
223 d3b4cf9f Iustin Pop
            <term>error</term>
224 d3b4cf9f Iustin Pop
            <listitem>
225 d3b4cf9f Iustin Pop
              <para>The job has failed during runtime, or the master
226 d3b4cf9f Iustin Pop
              daemon has been stopped during the job execution.</para>
227 d3b4cf9f Iustin Pop
            </listitem>
228 d3b4cf9f Iustin Pop
          </varlistentry>
229 d3b4cf9f Iustin Pop
        </variablelist>
230 d3b4cf9f Iustin Pop
      </para>
231 d3b4cf9f Iustin Pop
    </refsect2>
232 d3b4cf9f Iustin Pop
  </refsect1>
233 d3b4cf9f Iustin Pop
234 a8083063 Iustin Pop
  &footer;
235 a8083063 Iustin Pop
236 a8083063 Iustin Pop
</refentry>
237 a8083063 Iustin Pop
238 a8083063 Iustin Pop
<!-- Keep this comment at the end of the file
239 a8083063 Iustin Pop
Local variables:
240 a8083063 Iustin Pop
mode: sgml
241 a8083063 Iustin Pop
sgml-omittag:t
242 a8083063 Iustin Pop
sgml-shorttag:t
243 a8083063 Iustin Pop
sgml-minimize-attributes:nil
244 a8083063 Iustin Pop
sgml-always-quote-attributes:t
245 a8083063 Iustin Pop
sgml-indent-step:2
246 a8083063 Iustin Pop
sgml-indent-data:t
247 a8083063 Iustin Pop
sgml-parent-document:nil
248 a8083063 Iustin Pop
sgml-default-dtd-file:nil
249 a8083063 Iustin Pop
sgml-exposed-tags:nil
250 a8083063 Iustin Pop
sgml-local-catalogs:nil
251 a8083063 Iustin Pop
sgml-local-ecat-files:nil
252 a8083063 Iustin Pop
End:
253 a8083063 Iustin Pop
-->