Move gnt-job to ganeti.client.gnt_job
[ganeti-local] / man / ganeti-watcher.sgml
1 <!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2
3   <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4   <!-- Please adjust the date whenever revising the manpage. -->
5   <!ENTITY dhdate      "<date>June 08, 2010</date>">
6   <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7        allowed: see man(7), man(1). -->
8   <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
9   <!ENTITY dhucpackage "<refentrytitle>ganeti-watcher</refentrytitle>">
10   <!ENTITY dhpackage   "ganeti-watcher">
11
12   <!ENTITY debian      "<productname>Debian</productname>">
13   <!ENTITY gnu         "<acronym>GNU</acronym>">
14   <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15   <!ENTITY footer SYSTEM "footer.sgml">
16 ]>
17
18 <refentry>
19   <refentryinfo>
20     <copyright>
21       <year>2007</year>
22       <year>2008</year>
23       <year>2009</year>
24       <year>2010</year>
25       <holder>Google Inc.</holder>
26     </copyright>
27     &dhdate;
28   </refentryinfo>
29   <refmeta>
30     &dhucpackage;
31
32     &dhsection;
33     <refmiscinfo>Ganeti 2.2</refmiscinfo>
34   </refmeta>
35   <refnamediv>
36     <refname>&dhpackage;</refname>
37
38     <refpurpose>Ganeti cluster watcher</refpurpose>
39   </refnamediv>
40   <refsynopsisdiv>
41     <cmdsynopsis>
42       <command>&dhpackage; </command>
43
44       <arg><option>--debug</option></arg>
45       <arg><option>--job-age=<replaceable>age</replaceable></option></arg>
46       <arg><option>--ignore-pause</option></arg>
47
48     </cmdsynopsis>
49   </refsynopsisdiv>
50   <refsect1>
51     <title>DESCRIPTION</title>
52
53     <para>
54       The <command>&dhpackage;</command> is a periodically run script
55       which is responsible for keeping the instances in the correct
56       status. It has two separate functions, one for the master node
57       and another one that runs on every node.
58     </para>
59
60     <para>
61       If the watcher is disabled at cluster level (via
62       the <command>gnt-cluster watcher pause</command> command), it
63       will exit without doing anything. The cluster-level pause can be
64       overriden via the <option>--ignore-pause</option> option, for
65       example if during a maintenance the watcher needs to be disabled
66       in general, but the administrator wants to run it just once.
67     </para>
68
69     <para>
70       The <option>--debug</option> option will increase the verbosity
71       of the watcher and also activate logging to the standard error.
72     </para>
73
74     <refsect2>
75       <title>Master operations</title>
76
77       <para>
78         Its primary function is to try to keep running all instances
79         which are marked as <emphasis>up</emphasis> in the configuration
80         file, by trying to start them a limited number of times.
81       </para>
82
83       <para>
84         Another function is to <quote>repair</quote> DRBD links by
85         reactivating the block devices of instances which have
86         secondaries on nodes that have been rebooted.
87       </para>
88
89       <para>
90         The watcher will also archive old jobs (older than the age
91         given via the <option>--job-age</option> option, which
92         defaults to 6 hours), in order to keep the job queue
93         manageable.
94       </para>
95
96     </refsect2>
97
98     <refsect2>
99
100       <title>Node operations</title>
101
102       <para>
103         The watcher will restart any down daemons that are appropriate
104         for the current node.
105       </para>
106
107       <para>
108         In addition, it will execute any scripts which exist under the
109         <quote>watcher</quote> directory in the Ganeti hooks directory
110         (@SYSCONFDIR@/ganeti/hooks). This should be used for
111         lightweight actions, like starting any extra daemons.
112       </para>
113
114       <para>
115         If the cluster
116         parameter <literal>maintain_node_health</literal> is enabled,
117         then the watcher will also shutdown instances and DRBD devices
118         if the node is declared as offline by known master candidates.
119       </para>
120
121       <para>
122         The watcher does synchronous queries but will submit jobs for
123         executing the changes. Due to locking, it could be that the jobs
124         execute much later than the watcher submits them.
125       </para>
126
127     </refsect2>
128
129
130   </refsect1>
131
132   <refsect1>
133     <title>FILES</title>
134
135     <para>
136       The command has a state file located at
137       <filename>@LOCALSTATEDIR@/lib/ganeti/watcher.data</filename>
138       (only used on the master) and a log file at
139       <filename>@LOCALSTATEDIR@/log/ganeti/watcher.log</filename>. Removal of
140       either file will not affect correct operation; the removal of
141       the state file will just cause the restart counters for the
142       instances to reset to zero.
143     </para>
144
145   </refsect1>
146
147   &footer;
148
149 </refentry>
150
151 <!-- Keep this comment at the end of the file
152 Local variables:
153 mode: sgml
154 sgml-omittag:t
155 sgml-shorttag:t
156 sgml-minimize-attributes:nil
157 sgml-always-quote-attributes:t
158 sgml-indent-step:2
159 sgml-indent-data:t
160 sgml-parent-document:nil
161 sgml-default-dtd-file:nil
162 sgml-exposed-tags:nil
163 sgml-local-catalogs:nil
164 sgml-local-ecat-files:nil
165 End:
166 -->