Provided by: ganeti-2.15_2.15.2-15_all bug

Name

       ganeti-watcher - Ganeti cluster watcher

Synopsis

       ganeti-watcher    [--debug]    [--job-age=*age*    ]   [--ignore-pause]   [--rapi-ip=*IP*]
       [--no-verify-disks]

DESCRIPTION

       The ganeti-watcher is a periodically run script  which  is  responsible  for  keeping  the
       instances  in  the correct status.  It has two separate functions, one for the master node
       and another one that runs on every node.

       If the watcher is disabled at cluster level (via the gnt-cluster watcher  pause  command),
       it  will  exit  without doing anything.  The cluster-level pause can be overridden via the
       --ignore-pause option, for example if  during  a  maintenance  the  watcher  needs  to  be
       disabled in general, but the administrator wants to run it just once.

       The --debug option will increase the verbosity of the watcher and also activate logging to
       the standard error.

       The --rapi-ip option needs to be set if the RAPI daemon was started with a  particular  IP
       (using  the  -b  option).   The two options need to be exactly the same to ensure that the
       watcher can reach the RAPI interface.

   Master operations
       Its primary function is to try to keep running all instances which are marked as up in the
       configuration file, by trying to start them a limited number of times.

       Another  function is to "repair" DRBD links by reactivating the block devices of instances
       which have secondaries on nodes that have been rebooted.

       Additionally, it will verify and repair degraded DRBD disks; this will not happen, if  the
       --no-verify-disks option is given.

       The watcher will also archive old jobs (older than the age given via the --job-age option,
       which defaults to 6 hours), in order to keep the job queue manageable.

   Node operations
       The watcher will restart any down daemons that are appropriate for the current node.

       In addition, it will execute any scripts which exist under the "watcher" directory in  the
       Ganeti  hooks directory (/etc/ganeti/hooks).  This should be used for lightweight actions,
       like starting any extra daemons.

       If the cluster parameter maintain_node_health is  enabled,  then  the  watcher  will  also
       shutdown  instances  and  DRBD  devices if the node is declared as offline by known master
       candidates.

       The watcher does synchronous queries but will submit jobs for executing the changes.   Due
       to locking, it could be that the jobs execute much later than the watcher submits them.

FILES

       The    command    has    a   set   of   state   files   (one   per   group)   located   at
       /var/lib/ganeti/watcher.GROUP-UUID.data (only used on  the  master)  and  a  log  file  at
       /var/log/ganeti/watcher.log.  Removal of either file(s) will not affect correct operation;
       the removal of the state file will just cause the restart counters for  the  instances  to
       reset  to  zero,  and  mark  nodes as freshly rebooted (so for example DRBD minors will be
       re-activated).

       In some cases, it's  even  desirable  to  reset  the  watcher  state,  for  example  after
       maintenance  actions,  or  when  you  want to simulate the reboot of all nodes, so in this
       case, you can remove all state files:

              rm -f /var/lib/ganeti/watcher.*.data
              rm -f /var/lib/ganeti/watcher.*.instance-status
              rm -f /var/lib/ganeti/instance-status

       And then re-run the watcher.

REPORTING BUGS

       Report  bugs  to  project  website  (http://code.google.com/p/ganeti/)  or   contact   the
       developers using the Ganeti mailing list (ganeti@googlegroups.com).

SEE ALSO

       Ganeti  overview  and specifications: ganeti(7) (general overview), ganeti-os-interface(7)
       (guest OS definitions), ganeti-extstorage-interface(7) (external storage providers).

       Ganeti  commands:  gnt-cluster(8)   (cluster-wide   commands),   gnt-job(8)   (job-related
       commands),  gnt-node(8)  (node-related  commands),  gnt-instance(8)  (instance  commands),
       gnt-os(8) (guest OS commands), gnt-storage(8) (storage commands), gnt-group(8) (node group
       commands), gnt-backup(8) (instance import/export commands), gnt-debug(8) (debug commands).

       Ganeti  daemons:  ganeti-watcher(8) (automatic instance restarter), ganeti-cleaner(8) (job
       queue cleaner), ganeti-noded(8) (node daemon), ganeti-rapi(8) (remote API daemon).

       Ganeti htools: htools(1) (generic binary), hbal(1) (cluster balancer), hspace(1) (capacity
       calculation),  hail(1) (IAllocator plugin), hscan(1) (data gatherer from remote clusters),
       hinfo(1) (cluster information printer), mon-collector(7) (data collectors interface).

COPYRIGHT

       Copyright (C) 2006-2015 Google Inc.  All rights reserved.

       Redistribution and use in source and binary  forms,  with  or  without  modification,  are
       permitted provided that the following conditions are met:

       1.   Redistributions  of  source code must retain the above copyright notice, this list of
       conditions and the following disclaimer.

       2.  Redistributions in binary form must reproduce the above copyright notice, this list of
       conditions  and  the  following  disclaimer  in  the  documentation and/or other materials
       provided with the distribution.

       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT  HOLDERS  AND  CONTRIBUTORS  "AS  IS"  AND  ANY
       EXPRESS  OR  IMPLIED  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
       MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN  NO  EVENT  SHALL
       THE  COPYRIGHT  HOLDER  OR  CONTRIBUTORS  BE  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
       SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED  TO,  PROCUREMENT
       OF  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
       HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  LIABILITY,  OR
       TORT  (INCLUDING  NEGLIGENCE  OR  OTHERWISE)  ARISING  IN  ANY  WAY OUT OF THE USE OF THIS
       SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.