Statistics
| Branch: | Tag: | Revision:

root / man / hroller.rst @ 313fdabc

History | View | Annotate | Download (2.5 kB)

1 3504d6c8 Guido Trotter
HROLLER(1) Ganeti | Version @GANETI_VERSION@
2 3504d6c8 Guido Trotter
============================================
3 3504d6c8 Guido Trotter
4 3504d6c8 Guido Trotter
NAME
5 3504d6c8 Guido Trotter
----
6 3504d6c8 Guido Trotter
7 3504d6c8 Guido Trotter
hroller \- Cluster rolling maintenance scheduler for Ganeti
8 3504d6c8 Guido Trotter
9 3504d6c8 Guido Trotter
SYNOPSIS
10 3504d6c8 Guido Trotter
--------
11 3504d6c8 Guido Trotter
12 3504d6c8 Guido Trotter
**hroller** {backend options...} [algorithm options...] [reporting options...]
13 3504d6c8 Guido Trotter
14 3504d6c8 Guido Trotter
**hroller** \--version
15 3504d6c8 Guido Trotter
16 3504d6c8 Guido Trotter
17 3504d6c8 Guido Trotter
Backend options:
18 3504d6c8 Guido Trotter
19 3504d6c8 Guido Trotter
{ **-m** *cluster* | **-L[** *path* **]** | **-t** *data-file* |
20 3504d6c8 Guido Trotter
**-I** *path* }
21 3504d6c8 Guido Trotter
22 52278ef9 Klaus Aehlig
**[ --force ]**
23 52278ef9 Klaus Aehlig
24 3504d6c8 Guido Trotter
Algorithm options:
25 3504d6c8 Guido Trotter
26 2ab65a5d Klaus Aehlig
**[ -G *name* ]**
27 2ab65a5d Klaus Aehlig
28 3504d6c8 Guido Trotter
**[ -O *name...* ]**
29 3504d6c8 Guido Trotter
30 313fdabc Klaus Aehlig
**[ --node-tags** *tag,..* **]**
31 313fdabc Klaus Aehlig
32 3504d6c8 Guido Trotter
Reporting options:
33 3504d6c8 Guido Trotter
34 3504d6c8 Guido Trotter
**[ -v... | -q ]**
35 3504d6c8 Guido Trotter
**[ -S *file* ]**
36 3504d6c8 Guido Trotter
37 3504d6c8 Guido Trotter
DESCRIPTION
38 3504d6c8 Guido Trotter
-----------
39 3504d6c8 Guido Trotter
40 3504d6c8 Guido Trotter
hroller is a cluster maintenance reboot scheduler. It can calculate
41 3504d6c8 Guido Trotter
which set of nodes can be rebooted at the same time while avoiding
42 3504d6c8 Guido Trotter
having both primary and secondary nodes being rebooted at the same time.
43 3504d6c8 Guido Trotter
44 2c9fb8e2 Klaus Aehlig
For backends that support identifying the master node (currenlty
45 2c9fb8e2 Klaus Aehlig
RAPI and LUXI), the master node is scheduled as the last node
46 2c9fb8e2 Klaus Aehlig
in the last reboot group.
47 2c9fb8e2 Klaus Aehlig
48 1a9eb17e Guido Trotter
ALGORITHM FOR CALCULATING OFFLINE REBOOT GROUPS
49 1a9eb17e Guido Trotter
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50 1a9eb17e Guido Trotter
51 1a9eb17e Guido Trotter
hroller will view the nodes as vertices of an undirected graph,
52 1a9eb17e Guido Trotter
connecting by instances which have both a primary and a secondary node.
53 1a9eb17e Guido Trotter
It will then color the graph using a few different heuristics, and
54 1a9eb17e Guido Trotter
return the minimum-size color set found. Node with the same color don't
55 1a9eb17e Guido Trotter
share an edge, and as such don't have an instance with both primary and
56 1a9eb17e Guido Trotter
secondary node on them, so they are safe to be rebooted concurrently.
57 1a9eb17e Guido Trotter
58 3504d6c8 Guido Trotter
OPTIONS
59 3504d6c8 Guido Trotter
-------
60 3504d6c8 Guido Trotter
61 52278ef9 Klaus Aehlig
For a description of the standard options check **htools**\(7) and
62 52278ef9 Klaus Aehlig
**hbal**\(1).
63 52278ef9 Klaus Aehlig
64 313fdabc Klaus Aehlig
\--node-tags *tag,...*
65 313fdabc Klaus Aehlig
  Restrict to nodes having at least one of the given tags.
66 313fdabc Klaus Aehlig
67 52278ef9 Klaus Aehlig
\--force
68 52278ef9 Klaus Aehlig
  Do not fail, even if the master node cannot be determined.
69 52278ef9 Klaus Aehlig
70 3504d6c8 Guido Trotter
71 3504d6c8 Guido Trotter
BUGS
72 3504d6c8 Guido Trotter
----
73 3504d6c8 Guido Trotter
74 1a9eb17e Guido Trotter
Offline nodes should be ignored.
75 1a9eb17e Guido Trotter
76 1a9eb17e Guido Trotter
If instances are online the tool should refuse to do offline rolling
77 ba258c08 Benjamin Kerensa
maintenances, unless explicitly requested.
78 1a9eb17e Guido Trotter
79 1a9eb17e Guido Trotter
End-to-end shelltests should be provided.
80 1a9eb17e Guido Trotter
81 1a9eb17e Guido Trotter
Online rolling maintenances (where instance need not be shut down, but
82 1a9eb17e Guido Trotter
are migrated from node to node) are not supported yet. Hroller by design
83 1a9eb17e Guido Trotter
should support them both with and without secondary node replacement.
84 1a9eb17e Guido Trotter
85 1a9eb17e Guido Trotter
EXAMPLE
86 1a9eb17e Guido Trotter
-------
87 1a9eb17e Guido Trotter
88 1a9eb17e Guido Trotter
Offline Rolling node reboot output
89 1a9eb17e Guido Trotter
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90 1a9eb17e Guido Trotter
91 1a9eb17e Guido Trotter
With the default options, the program shows one reboot group per line as
92 1a9eb17e Guido Trotter
a comma-separated list.
93 2c9fb8e2 Klaus Aehlig
::
94 1a9eb17e Guido Trotter
95 2c9fb8e2 Klaus Aehlig
    $ hroller -L
96 1a9eb17e Guido Trotter
    'Node Reboot Groups'
97 1a9eb17e Guido Trotter
    node1.example.com,node3.example.com,node5.example.com
98 1a9eb17e Guido Trotter
    node8.example.com,node6.example.com,node2.example.com
99 1a9eb17e Guido Trotter
    node7.example.com,node4.example.com
100 3504d6c8 Guido Trotter
101 3504d6c8 Guido Trotter
.. vim: set textwidth=72 :
102 3504d6c8 Guido Trotter
.. Local Variables:
103 3504d6c8 Guido Trotter
.. mode: rst
104 3504d6c8 Guido Trotter
.. fill-column: 72
105 3504d6c8 Guido Trotter
.. End: