Move gnt-job to ganeti.client.gnt_job
[ganeti-local] / man / ganeti-masterd.sgml
1 <!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2
3   <!-- Please adjust the date whenever revising the manpage. -->
4   <!ENTITY dhdate      "<date>June 08, 2010</date>">
5   <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
6        allowed: see man(7), man(1). -->
7   <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
8   <!ENTITY dhucpackage "<refentrytitle>ganeti-masterd</refentrytitle>">
9   <!ENTITY dhpackage   "ganeti-masterd">
10
11   <!ENTITY debian      "<productname>Debian</productname>">
12   <!ENTITY gnu         "<acronym>GNU</acronym>">
13   <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
14   <!ENTITY footer SYSTEM "footer.sgml">
15 ]>
16
17 <refentry>
18   <refentryinfo>
19     <copyright>
20       <year>2008</year>
21       <year>2009</year>
22       <year>2010</year>
23       <holder>Google Inc.</holder>
24     </copyright>
25     &dhdate;
26   </refentryinfo>
27   <refmeta>
28     &dhucpackage;
29
30     &dhsection;
31     <refmiscinfo>Ganeti 2.2</refmiscinfo>
32   </refmeta>
33   <refnamediv>
34     <refname>&dhpackage;</refname>
35
36     <refpurpose>Ganeti master daemon</refpurpose>
37   </refnamediv>
38   <refsynopsisdiv>
39     <cmdsynopsis>
40       <command>&dhpackage; </command>
41       <arg>-f</arg>
42       <arg>-d</arg>
43       <arg>--no-voting</arg>
44
45     </cmdsynopsis>
46   </refsynopsisdiv>
47   <refsect1>
48     <title>DESCRIPTION</title>
49
50     <para>
51       The <command>&dhpackage;</command> is the daemon which is
52       responsible for the overall cluster coordination. Without it, no
53       change can be performed on the cluster.
54     </para>
55
56     <para>
57       For testing purposes, you can give the <option>-f</option>
58       option and the program won't detach from the running terminal.
59     </para>
60
61     <para>
62       Debug-level message can be activated by giving the
63       <option>-d</option> option.
64     </para>
65     <refsect2>
66       <title>ROLE</title>
67       <para>
68         The role of the master daemon is to coordinate all the actions
69         that change the state of the cluster. Things like accepting
70         new jobs, coordinating the changes on nodes (via RPC calls to
71         the respective node daemons), maintaining the configuration
72         and so on are done via this daemon.
73       </para>
74
75       <para>
76         The only action that can be done without the master daemon is
77         the failover of the master role to another node in the
78         cluster, via the <command>gnt-cluster
79         master-failover</command> command.
80       </para>
81
82       <para>
83         If the master daemon is stopped, the instances are not
84         affected, but they won't be restarted automatically in case of
85         failure.
86       </para>
87     </refsect2>
88
89     <refsect2>
90       <title>STARTUP</title>
91       <para>
92         At startup, the master daemon will confirm with the node
93         daemons that the node it is running is indeed the master node
94         of the cluster. It will abort if it doesn't get half plus one
95         positive answers (offline nodes are queried too, just in case
96         our configuration is stale).
97       </para>
98
99       <para>
100         For small clusters with a number of nodes down, and especially
101         for two-node clusters where the other has gone done, this
102         creates a problem. In this case the
103         <option>--no-voting</option> option can be used to skip this
104         process. The option requires interactive confirmation, as
105         having two masters on the same cluster is a very dangerous
106         situation and will most likely lead to data loss.
107       </para>
108     </refsect2>
109
110     <refsect2>
111       <title>JOB QUEUE</title>
112       <para>
113         The master daemon maintains a job queue (located under
114         <filename
115         class="directory">@LOCALSTATEDIR@/lib/ganeti/queue</filename>) in
116         which all current jobs are stored, one job per file serialized
117         in JSON format; in this directory a subdirectory called
118         <filename class="directory">archive</filename> holds archived
119         job files.
120       </para>
121
122       <para>
123         The moving of jobs from the current to the queue directory is
124         done via a request to the master; this can be accomplished
125         from the command line with the <command>gnt-job
126         archive</command> or <command>gnt-job autoarchive</command>
127         commands. In case of problems with the master, a job file can
128         simply be moved away or deleted (but this might leave the
129         cluster inconsistent).
130       </para>
131
132     </refsect2>
133
134     <refsect2>
135       <title>COMMUNICATION PROTOCOL</title>
136       <para>
137         The master accepts commands over a Unix socket, using JSON
138         serialized messages separated by a specific byte sequence. For
139         more details, see the design documentation supplied with
140         Ganeti.
141       </para>
142     </refsect2>
143
144   </refsect1>
145
146   &footer;
147
148 </refentry>
149
150 <!-- Keep this comment at the end of the file
151 Local variables:
152 mode: sgml
153 sgml-omittag:t
154 sgml-shorttag:t
155 sgml-minimize-attributes:nil
156 sgml-always-quote-attributes:t
157 sgml-indent-step:2
158 sgml-indent-data:t
159 sgml-parent-document:nil
160 sgml-default-dtd-file:nil
161 sgml-exposed-tags:nil
162 sgml-local-catalogs:nil
163 sgml-local-ecat-files:nil
164 End:
165 -->