Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / HTools / Program / Hroller.hs @ 9d049fb4

History | View | Annotate | Download (17.7 kB)

# Date Author Comment
a12b230c 07/01/2013 10:53 am Klaus Aehlig

hroller: option --full-evacuation

Add an option to hroller, to plan for full evacuation of the
nodes to be rebooted, i.e., also plan for replacement secondary
nodes for all instances on the node after migrating out instances
with this node as primary.

Signed-off-by: Klaus Aehlig <>...

fdbdeaa3 07/01/2013 10:53 am Klaus Aehlig

Extract a partition functional

Separate the partitionNonRedundant function in hroller into a
general functional that partitions a list of nodes according
to some clearing strategy and the specialization of moving
non-redundant instances out. In this way, we don't have to...

a947a583 07/01/2013 10:53 am Klaus Aehlig

Extract functional for greedily clearing nodes

The method clearNodes in hroller greedily clears nodes of
non-redundant instances by moving them to a different node. This patch
separates the greedy clearing algorithm from the specialization to
non-redundant instances; in this way, we don't have to duplicate code...

634a1460 07/01/2013 10:52 am Klaus Aehlig

Make hroller not consider offline nodes for evacuation

When planing on where to evacuate the non-redundant instances
of the nodes to be rebooted, it doesn't make sense to consider
offline nodes. So add this restriction to hroller.

Signed-off-by: Klaus Aehlig <>...

a8cbe1d7 07/01/2013 10:52 am Klaus Aehlig

Update comments in hroller code

hroller schedules moves of instances to have rebooted nodes
free of instances with this node as primary. Update the comments
to reflect that this move planning is for non-redundant instances
only.

Signed-off-by: Klaus Aehlig <>...

34ad1d7c 07/01/2013 10:52 am Klaus Aehlig

Remove obsolete TODO

Originally, hroller started as a tool for offline maintenance only.
There it made sense to warn about instances still running. By now,
default planning is to migrate instance off the nodes to be rebooted,
with options for other behavior (like pretending that all instances...

e7aa0b03 06/10/2013 06:04 pm Klaus Aehlig

Add type annotation to avoid monomorphism restriction

Even though we need the let-bound variable showMoves only
at type [(String, String)] -> IO (), it's most general type
would be (PrintfArg a, PrintfArg b) => [(a, b)] -> IO ().
This causes the monomorphism restriction apply to that binding,...

30ce253e 06/10/2013 04:57 pm Klaus Aehlig

add option --print-moves to hroller

If non-redundant instances are present in the cluster, hroller will
plan for them to move to other nodes while the group is rebooted.
This adds an option to also show this plan.

Signed-off-by: Klaus Aehlig <>...

f2e50930 06/03/2013 11:25 am Klaus Aehlig

Restrict instance moves in hroller to the same node group

When scheduling rolling reboots, hroller looks for nodes to evacuate
the non-redundant instances to. This is done by greedily moving
instances to other nodes that can take them, policy wise and capacity...

23247a73 05/22/2013 12:08 pm Klaus Aehlig

hroller: option to ignore non-redundant instances

Add an option to hroller restoring the old behavior on not taking
any non-redundant instances into account when forming reboot
groups.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

86c346db 05/22/2013 12:08 pm Klaus Aehlig

Make hroller also plan for non-redundant instances

Non-redundant instances need to be moved to a different node
before maintenance of the node. Even though they can be moved to
any node, there must be enough capacity to host the instances of the
reboot group to be evacuated....

89363f98 05/22/2013 12:07 pm Klaus Aehlig

hroller: option to skip nodes with non-redundant instances

So far, hroller ignores the fact, that non-redundant instances exist.
One option to deal is non-redundant instances is to not schedule those
nodes for reboot. This is supported by adding the option --skip-non-redundant....

3409c0af 05/22/2013 12:07 pm Klaus Aehlig

Remove trailing whitespace

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

8d38fb72 05/10/2013 01:55 pm Klaus Aehlig

Support online-maintenance in hroller

Make hroller take into account the nodes (redundant) instances
will be migrated to. This be behavior can be overridden by the
--offline-maintenance option which will make hroller plan under
the assumption that all instances will be shutdown before starting...

2207220d 05/10/2013 01:55 pm Klaus Aehlig

Add option --one-step-only to hroller

Add a new option to hroller to only output information about the first
reboot group. Together with the option --node-tags this allows for the
following work flow. First tag all nodes; then repeatedly compute the
first node group, handle these nodes and remove the tags. In between...

a39779f6 05/10/2013 01:54 pm Klaus Aehlig

Sort reboot groups by size

Make hroller output the node groups not containing the master node
sorted by size, largest group first. The master node still remains
the last node of the last reboot group. In this way, most progress
is made when switching back to normal cluster operations after the...

004398d0 05/07/2013 07:40 pm Klaus Aehlig

Fix lint errors (redundant bracket)

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

313fdabc 05/07/2013 06:59 pm Klaus Aehlig

Add option to hroller to select nodes based on tags

Add option --node-tags to tell hroller to consider only nodes
with these tags. A use case would be a tag tracking on which
nodes the maintenance has not yet been carried out, e.g., if
rolling reboots are interleaved with other cluster operations....

442d5aae 05/07/2013 06:58 pm Klaus Aehlig

Make hroller filter the nodes before coloring the graph

Hroller used to first compute a coloring of the node graph and then
filter out the nodes that it had to work on. While the only filtering
was according to node groups this did not make a difference, as there...

7dbe4c72 04/19/2013 02:54 pm Klaus Aehlig

Make hroller insist on finding precisely one master node

As people rely on the master node being the last node of the last
group, make hroller fail, if no master node could be found in the
cluster. This happens, e.g., if a backend format is used that does not...

5b658b83 04/19/2013 02:54 pm Klaus Aehlig

Make Hroller present master node last

If in the list of nodes to be scheduled for maintaince,
one is marked as being the master node, schedule it
as the last node in the last group.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

2fce67b6 02/25/2013 08:05 pm Guido Trotter

HRoller: allow filtering by node group

Accept the -G option, and if it's passed require that it matches a
nodegroup, then only output nodes belonging to that group.

Signed-off-by: Guido Trotter <>
Reviewed-by: Iustin Pop <>

544029d3 02/25/2013 08:05 pm Guido Trotter

HRoller: print only online nodes

To make the graphs work even when instances live on offline nodes (eg.
because we're offlining them just to exclude them, or because they have
instance still on them) we just filter them out at the end, when we're
going to print out the result....

3add7574 12/24/2012 11:38 pm Iustin Pop

Rename htools/ to src/

Per offline discussions, this is the first patch of the
renames. Tested with "make distcheck", seems to work fine.

The only change outside of the renaming is a bit of simplification in
the .gitignore rules; otherwise, simply s/htools/src/....