root / man / ganeti.sgml @ 36e23a40
History | View | Annotate | Download (7.6 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 | > -o debootstrap --disk 0:size=30g \ |
47 | a8083063 | Iustin Pop | > -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 | d3b4cf9f | Iustin Pop | <term>master_candidate</term> |
97 | d3b4cf9f | Iustin Pop | <listitem> |
98 | d3b4cf9f | Iustin Pop | <para>The node receives the full cluster configuration |
99 | d3b4cf9f | Iustin Pop | (configuration file and jobs) and can become a master |
100 | d3b4cf9f | Iustin Pop | via the <command>gnt-cluster masterfailover</command> |
101 | d3b4cf9f | Iustin Pop | command. Nodes that are not in this state cannot |
102 | d3b4cf9f | Iustin Pop | transition into the master role due to missing |
103 | d3b4cf9f | Iustin Pop | state.</para> |
104 | d3b4cf9f | Iustin Pop | </listitem> |
105 | d3b4cf9f | Iustin Pop | </varlistentry> |
106 | d3b4cf9f | Iustin Pop | <varlistentry> |
107 | d3b4cf9f | Iustin Pop | <term>regular</term> |
108 | d3b4cf9f | Iustin Pop | <listitem> |
109 | d3b4cf9f | Iustin Pop | <para>This the normal state of a node.</para> |
110 | d3b4cf9f | Iustin Pop | </listitem> |
111 | d3b4cf9f | Iustin Pop | </varlistentry> |
112 | d3b4cf9f | Iustin Pop | <varlistentry> |
113 | d3b4cf9f | Iustin Pop | <term>drained</term> |
114 | d3b4cf9f | Iustin Pop | <listitem> |
115 | d3b4cf9f | Iustin Pop | <para>Nodes in this state are functioning normally but |
116 | d3b4cf9f | Iustin Pop | cannot receive new instance, because the intention is to |
117 | d3b4cf9f | Iustin Pop | set them to <emphasis>offline</emphasis> or remove them |
118 | d3b4cf9f | Iustin Pop | from the cluster.</para> |
119 | d3b4cf9f | Iustin Pop | </listitem> |
120 | d3b4cf9f | Iustin Pop | </varlistentry> |
121 | d3b4cf9f | Iustin Pop | <varlistentry> |
122 | d3b4cf9f | Iustin Pop | <term>offline</term> |
123 | d3b4cf9f | Iustin Pop | <listitem> |
124 | d3b4cf9f | Iustin Pop | <para>These nodes are still recorder in the ganeti |
125 | d3b4cf9f | Iustin Pop | configuration, but except for the master daemon startup |
126 | d3b4cf9f | Iustin Pop | voting procedure, they are not actually contacted by the |
127 | d3b4cf9f | Iustin Pop | master. This state was added in order to allow broken |
128 | d3b4cf9f | Iustin Pop | machines (that are being repaired) to remain in the |
129 | d3b4cf9f | Iustin Pop | cluster but without creating problems.</para> |
130 | d3b4cf9f | Iustin Pop | </listitem> |
131 | d3b4cf9f | Iustin Pop | </varlistentry> |
132 | d3b4cf9f | Iustin Pop | </variablelist> |
133 | d3b4cf9f | Iustin Pop | </para> |
134 | d3b4cf9f | Iustin Pop | </refsect2> |
135 | d3b4cf9f | Iustin Pop | |
136 | d3b4cf9f | Iustin Pop | <refsect2> |
137 | d3b4cf9f | Iustin Pop | <title>Cluster configuration</title> |
138 | d3b4cf9f | Iustin Pop | |
139 | d3b4cf9f | Iustin Pop | <para>The master node keeps and is responsible for the cluster |
140 | d3b4cf9f | Iustin Pop | configuration. On the filesystem, this is stored under the |
141 | d3b4cf9f | Iustin Pop | <filename |
142 | d3b4cf9f | Iustin Pop | class="directory">@LOCALSTATEDIR@/ganeti/lib</filename> |
143 | d3b4cf9f | Iustin Pop | directory, and if the master daemon is stopped it can be backed |
144 | d3b4cf9f | Iustin Pop | up normally.</para> |
145 | d3b4cf9f | Iustin Pop | |
146 | d3b4cf9f | Iustin Pop | <para>The master daemon will replicate the configuration |
147 | d3b4cf9f | Iustin Pop | database called <filename>config.data</filename> and the job |
148 | d3b4cf9f | Iustin Pop | files to all the nodes in the master candidate role. It will |
149 | d3b4cf9f | Iustin Pop | also distribute a copy of some configuration values via the |
150 | d3b4cf9f | Iustin Pop | <emphasis>ssconf</emphasis> files, which are stored in the same |
151 | d3b4cf9f | Iustin Pop | directory and start with <filename>ssconf_</filename> prefix, to |
152 | d3b4cf9f | Iustin Pop | all nodes.</para> |
153 | d3b4cf9f | Iustin Pop | |
154 | d3b4cf9f | Iustin Pop | </refsect2> |
155 | d3b4cf9f | Iustin Pop | |
156 | d3b4cf9f | Iustin Pop | <refsect2> |
157 | d3b4cf9f | Iustin Pop | <title>Jobs</title> |
158 | d3b4cf9f | Iustin Pop | |
159 | d3b4cf9f | Iustin Pop | <para> |
160 | d3b4cf9f | Iustin Pop | All cluster modification are done via jobs. A job consists of |
161 | d3b4cf9f | Iustin Pop | one or more opcodes, and the list of opcodes is processed |
162 | d3b4cf9f | Iustin Pop | serially. If an opcode fails, the entire job is failed and |
163 | d3b4cf9f | Iustin Pop | later opcodes are no longer processed. A job can be in one of |
164 | d3b4cf9f | Iustin Pop | the following states: |
165 | d3b4cf9f | Iustin Pop | <variablelist> |
166 | d3b4cf9f | Iustin Pop | <varlistentry> |
167 | d3b4cf9f | Iustin Pop | <term>queued</term> |
168 | d3b4cf9f | Iustin Pop | <listitem> |
169 | d3b4cf9f | Iustin Pop | <simpara>The job has been submitted but not yet |
170 | d3b4cf9f | Iustin Pop | processed by the master daemon.</simpara> |
171 | d3b4cf9f | Iustin Pop | </listitem> |
172 | d3b4cf9f | Iustin Pop | </varlistentry> |
173 | d3b4cf9f | Iustin Pop | <varlistentry> |
174 | d3b4cf9f | Iustin Pop | <term>waiting</term> |
175 | d3b4cf9f | Iustin Pop | <listitem> |
176 | d3b4cf9f | Iustin Pop | <simpara>The job is waiting for for locks before the |
177 | d3b4cf9f | Iustin Pop | first of its opcodes.</simpara> |
178 | d3b4cf9f | Iustin Pop | </listitem> |
179 | d3b4cf9f | Iustin Pop | </varlistentry> |
180 | d3b4cf9f | Iustin Pop | <varlistentry> |
181 | d3b4cf9f | Iustin Pop | <term>canceling</term> |
182 | d3b4cf9f | Iustin Pop | <listitem> |
183 | d3b4cf9f | Iustin Pop | <para>The jos is waiting for locks, but is has been |
184 | d3b4cf9f | Iustin Pop | marked for cancelation. It will not transition to |
185 | d3b4cf9f | Iustin Pop | <emphasis>running</emphasis>, but to |
186 | d3b4cf9f | Iustin Pop | <emphasis>canceled</emphasis>. |
187 | d3b4cf9f | Iustin Pop | </para> |
188 | d3b4cf9f | Iustin Pop | </listitem> |
189 | d3b4cf9f | Iustin Pop | </varlistentry> |
190 | d3b4cf9f | Iustin Pop | <varlistentry> |
191 | d3b4cf9f | Iustin Pop | <term>running</term> |
192 | d3b4cf9f | Iustin Pop | <listitem> |
193 | d3b4cf9f | Iustin Pop | <simpara>The job is currently being executed.</simpara> |
194 | d3b4cf9f | Iustin Pop | </listitem> |
195 | d3b4cf9f | Iustin Pop | </varlistentry> |
196 | d3b4cf9f | Iustin Pop | <varlistentry> |
197 | d3b4cf9f | Iustin Pop | <term>canceled</term> |
198 | d3b4cf9f | Iustin Pop | <listitem> |
199 | d3b4cf9f | Iustin Pop | <para>The job has been canceled before starting |
200 | d3b4cf9f | Iustin Pop | execution.</para> |
201 | d3b4cf9f | Iustin Pop | </listitem> |
202 | d3b4cf9f | Iustin Pop | </varlistentry> |
203 | d3b4cf9f | Iustin Pop | <varlistentry> |
204 | d3b4cf9f | Iustin Pop | <term>success</term> |
205 | d3b4cf9f | Iustin Pop | <listitem> |
206 | d3b4cf9f | Iustin Pop | <para>The job has finished successfully.</para> |
207 | d3b4cf9f | Iustin Pop | </listitem> |
208 | d3b4cf9f | Iustin Pop | </varlistentry> |
209 | d3b4cf9f | Iustin Pop | <varlistentry> |
210 | d3b4cf9f | Iustin Pop | <term>error</term> |
211 | d3b4cf9f | Iustin Pop | <listitem> |
212 | d3b4cf9f | Iustin Pop | <para>The job has failed during runtime, or the master |
213 | d3b4cf9f | Iustin Pop | daemon has been stopped during the job execution.</para> |
214 | d3b4cf9f | Iustin Pop | </listitem> |
215 | d3b4cf9f | Iustin Pop | </varlistentry> |
216 | d3b4cf9f | Iustin Pop | </variablelist> |
217 | d3b4cf9f | Iustin Pop | </para> |
218 | d3b4cf9f | Iustin Pop | </refsect2> |
219 | d3b4cf9f | Iustin Pop | </refsect1> |
220 | d3b4cf9f | Iustin Pop | |
221 | a8083063 | Iustin Pop | &footer; |
222 | a8083063 | Iustin Pop | |
223 | a8083063 | Iustin Pop | </refentry> |
224 | a8083063 | Iustin Pop | |
225 | a8083063 | Iustin Pop | <!-- Keep this comment at the end of the file |
226 | a8083063 | Iustin Pop | Local variables: |
227 | a8083063 | Iustin Pop | mode: sgml |
228 | a8083063 | Iustin Pop | sgml-omittag:t |
229 | a8083063 | Iustin Pop | sgml-shorttag:t |
230 | a8083063 | Iustin Pop | sgml-minimize-attributes:nil |
231 | a8083063 | Iustin Pop | sgml-always-quote-attributes:t |
232 | a8083063 | Iustin Pop | sgml-indent-step:2 |
233 | a8083063 | Iustin Pop | sgml-indent-data:t |
234 | a8083063 | Iustin Pop | sgml-parent-document:nil |
235 | a8083063 | Iustin Pop | sgml-default-dtd-file:nil |
236 | a8083063 | Iustin Pop | sgml-exposed-tags:nil |
237 | a8083063 | Iustin Pop | sgml-local-catalogs:nil |
238 | a8083063 | Iustin Pop | sgml-local-ecat-files:nil |
239 | a8083063 | Iustin Pop | End: |
240 | a8083063 | Iustin Pop | --> |