root / man / ganeti.sgml @ ae5b1530
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 | e0897adf | Michael Hanselmann | <!ENTITY dhdate "<date>June 08, 2010</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 | e0897adf | Michael Hanselmann | <year>2010</year> |
26 | a8083063 | Iustin Pop | <holder>Google Inc.</holder> |
27 | a8083063 | Iustin Pop | </copyright> |
28 | a8083063 | Iustin Pop | &dhdate; |
29 | a8083063 | Iustin Pop | </refentryinfo> |
30 | a8083063 | Iustin Pop | <refmeta> |
31 | a8083063 | Iustin Pop | &dhucpackage; |
32 | a8083063 | Iustin Pop | |
33 | a8083063 | Iustin Pop | &dhsection; |
34 | e0897adf | Michael Hanselmann | <refmiscinfo>Ganeti 2.2</refmiscinfo> |
35 | a8083063 | Iustin Pop | </refmeta> |
36 | a8083063 | Iustin Pop | <refnamediv> |
37 | a8083063 | Iustin Pop | <refname>&dhpackage;</refname> |
38 | a8083063 | Iustin Pop | |
39 | a8083063 | Iustin Pop | <refpurpose>cluster-based virtualization management</refpurpose> |
40 | a8083063 | Iustin Pop | |
41 | a8083063 | Iustin Pop | </refnamediv> |
42 | a8083063 | Iustin Pop | <refsynopsisdiv> |
43 | a8083063 | Iustin Pop | <screen> |
44 | a8083063 | Iustin Pop | # gnt-cluster init cluster1.example.com |
45 | a8083063 | Iustin Pop | # gnt-node add node2.example.com |
46 | d3b4cf9f | Iustin Pop | # gnt-instance add -n node2.example.com \ |
47 | d3b4cf9f | Iustin Pop | > -o debootstrap --disk 0:size=30g \ |
48 | a8083063 | Iustin Pop | > -t plain instance1.example.com |
49 | a8083063 | Iustin Pop | </screen> |
50 | a8083063 | Iustin Pop | </refsynopsisdiv> |
51 | a8083063 | Iustin Pop | <refsect1> |
52 | a8083063 | Iustin Pop | <title>DESCRIPTION</title> |
53 | a8083063 | Iustin Pop | |
54 | a8083063 | Iustin Pop | <para> |
55 | e0897adf | Michael Hanselmann | The Ganeti software manages physical nodes and virtual instances |
56 | a8083063 | Iustin Pop | of a cluster based on a virtualization software. The current |
57 | e0897adf | Michael Hanselmann | version (2.2) supports Xen 3.x and KVM (72 or above) as 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 | e0897adf | Michael Hanselmann | <para>These nodes are still recorded 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 | ba0b05fe | Iustin Pop | marked for cancellation. 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 | --> |