1 HROLLER(1) Ganeti | Version @GANETI_VERSION@
2 ============================================
7 hroller \- Cluster rolling maintenance scheduler for Ganeti
12 **hroller** {backend options...} [algorithm options...] [reporting options...]
14 **hroller** \--version
19 { **-m** *cluster* | **-L[** *path* **]** | **-t** *data-file* |
28 **[ --node-tags** *tag,..* **]**
29 **[ --skip-non-redundant ]**
31 **[ --offline-maintenance ]**
32 **[ --ignore-non-redundant ]**
38 **[ --one-step-only ]**
43 hroller is a cluster maintenance reboot scheduler. It can calculate
44 which set of nodes can be rebooted at the same time while avoiding
45 having both primary and secondary nodes being rebooted at the same time.
47 For backends that support identifying the master node (currenlty
48 RAPI and LUXI), the master node is scheduled as the last node
49 in the last reboot group. Apart from this restriction, larger reboot
52 ALGORITHM FOR CALCULATING OFFLINE REBOOT GROUPS
53 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 hroller will view the nodes as vertices of an undirected graph,
56 with two kind of edges. Firstly, there are edges from the primary
57 to the secondary node of every instance. Secondly, two nodes are connected
58 by an edge if they are the primary nodes of two instances that have the
59 same secondary node. It will then color the graph using a few different
60 heuristics, and return the minimum-size color set found. Node with the same
61 color can then simultaneously migrate all instance off to their respective
62 secondary nodes, and it is safe to reboot them simultaneously.
67 For a description of the standard options check **htools**\(7) and
71 Do not fail, even if the master node cannot be determined.
73 \--node-tags *tag,...*
74 Restrict to nodes having at least one of the given tags.
77 Restrict to nodes not hosting any non-redundant instance.
79 \--offline-maintenance
80 Pretend that all instances are shutdown before the reboots are carried
81 out. I.e., only edges from the primary to the secondary node of an instance
84 \--ignore-non-redundnant
85 Pretend that the non-redundant instances do not exist, and only take
86 instances with primary and secondary node into account.
89 Restrict to the first reboot group. Output the group one node per line.
95 Offline nodes should be ignored.
97 If instances are online the tool should refuse to do offline rolling
98 maintenances, unless explicitly requested.
100 End-to-end shelltests should be provided.
102 Online rolling maintenances (where instance need not be shut down, but
103 are migrated from node to node) are not supported yet. Hroller by design
104 should support them both with and without secondary node replacement.
109 Online Rolling reboots, using tags
110 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
112 Selecting by tags and getting output for one step only can be used for
113 planing the next maintenance step.
116 $ hroller --node-tags needsreboot --one-step-only -L
121 Typically these nodes would be drained and migrated.
124 $ GROUP=`hroller --node-tags needsreboot --one-step-only --no-headers -L`
125 $ for node in $GROUP; do gnt-node modify -D yes $node; done
126 $ for node in $GROUP; do gnt-node migrate -f --submit $node; done
128 After maintenance, the tags would be removed and the nodes undrained.
131 Offline Rolling node reboot output
132 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
134 If all instances are shut down, usually larger node groups can be found.
137 $ hroller --offline-maintainance -L
139 node1.example.com,node3.example.com,node5.example.com
140 node8.example.com,node6.example.com,node2.example.com
141 node7.example.com,node4.example.com
143 .. vim: set textwidth=72 :