Revision d3b4cf9f man/ganeti.sgml

b/man/ganeti.sgml
2 2

  
3 3
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4 4
  <!-- Please adjust the date whenever revising the manpage. -->
5
  <!ENTITY dhdate      "<date>June 16, 2007</date>">
5
  <!ENTITY dhdate      "<date>February 12, 2009</date>">
6 6
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7 7
       allowed: see man(7), man(1). -->
8 8
  <!ENTITY dhsection   "<manvolnum>7</manvolnum>">
......
20 20
    <copyright>
21 21
      <year>2006</year>
22 22
      <year>2007</year>
23
      <year>2008</year>
24
      <year>2009</year>
23 25
      <holder>Google Inc.</holder>
24 26
    </copyright>
25 27
    &dhdate;
......
28 30
    &dhucpackage;
29 31

  
30 32
    &dhsection;
31
    <refmiscinfo>ganeti 1.2</refmiscinfo>
33
    <refmiscinfo>ganeti 2.0</refmiscinfo>
32 34
  </refmeta>
33 35
  <refnamediv>
34 36
    <refname>&dhpackage;</refname>
......
40 42
    <screen>
41 43
# gnt-cluster init cluster1.example.com
42 44
# gnt-node add node2.example.com
43
# gnt-os add -o debian-etch -p /srv/ganeti/os/debian-etch
44
# gnt-instance add -n node2.example.com -o debian-etch -s 128 -m 8 \
45
# gnt-instance add -n node2.example.com \
46
&gt; -o debootstrap --disk 0:size=30g \
45 47
&gt; -t plain instance1.example.com
46 48
    </screen>
47 49
  </refsynopsisdiv>
......
51 53
    <para>
52 54
      The ganeti software manages physical nodes and virtual instances
53 55
      of a cluster based on a virtualization software. The current
54
      version (1.2) supports Xen 3.0 (also tested with 3.1).
56
      version (2.0) supports Xen 3.0 (also tested with 3.1) and KVM
57
      hypervisors.
55 58
    </para>
56 59

  
57 60
  </refsect1>
......
62 65
      First you must install the software on all the cluster nodes,
63 66
      either from sources or (if available) from a package. The next
64 67
      step is to create the initial cluster configuration, using
65
      <computeroutput>gnt-cluster init</computeroutput>.
68
      <userinput>gnt-cluster init</userinput>.
66 69
    </para>
67 70

  
68 71
    <para>
......
71 74

  
72 75
  </refsect1>
73 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

  
74 221
  &footer;
75 222

  
76 223
</refentry>

Also available in: Unified diff