Commit 73b2e389 authored by Iustin Pop's avatar Iustin Pop
Browse files

Update documentation for the iextags

parent d3b1075f
......@@ -38,6 +38,21 @@ with regard to cluster size.
For all choices, the cluster scoring is identical to the hbal
For the tag-exclusion configuration (see the manpage of hbal for more
details), the list of which instance tags to consider as exclusion
tags will be read from the cluster tags, configured as follows:
- get all cluster tags starting with \fBhtools:iextags:\fR
- use their suffix as the prefix for exclusion tags
For example, given a cluster tag like \fBhtools:iextags:service\fR,
all instance tags of the form \fBservice:X\fR will be confidered as
exclusion tags, meaning that (e.g.) two instances which both have a
tag \fBservice:foo\fR will not be placed on the same primary node.
The exist status of the command will be zero, unless for some reason
......@@ -88,6 +88,30 @@ exhaustive search over both candidate primary and secondary nodes, and
is O(n*n) in the number of nodes. Furthermore, it doesn't seems to
give better scores but will result in more disk replacements.
At each step, we prevent an instance move if it would cause:
.RS 4
.TP 3
a node to go into N+1 failure state
an instance to move onto an offline node (offline nodes are either
read from the cluster or declared with \fI-O\fR)
an exclusion-tag based conflict (exclusion tags are read from the
cluster and/or defined via the \fI--exclusion-tags\fR option)
a max vcpu/pcpu ratio to be exceeded (configured via \fI--max-cpu\fR)
min disk free percentage to go below the configured limit (configured
via \fI--min-disk\fR)
As said before, the algorithm tries to minimise the cluster score at
......@@ -176,21 +200,32 @@ wrong calculations. For this reason, the algorithm subtracts the
memory size of down instances from the free node memory of their
primary node, in effect simulating the startup of such instances.
The exclusion tags mecanism is designed to prevent instances which run
the same workload (e.g. two DNS servers) to land on the same node,
which would make the respective node a SPOF for the given service.
It works by tagging instances with certain tags and then building
exclusion maps based on these. Which tags are actually used is
configured either via the command line (option \fI--exclusion-tags\fR)
or via adding them to the cluster tags:
It would be desirable to add more metrics to the algorithm, especially
dynamically\(hycomputed metrics, such as:
.RS 4
.TP 3
CPU usage of instances
Disk IO usage
.B --exclusion-tags=a,b
This will make all instance tags of the form \fIa:*\fR, \fIb:*\fR be
considered for the exclusion map
Network IO
cluster tags \fBhtools:iextags:a\fR, \fBhtools:iextags:b\fR
This will make instance tags \fIa:*\fR, \fIb:*\fR be considered for
the exclusion map. More precisely, the suffix of cluster tags starting
with \fBhtools:iextags:\fR will become the prefix of the exclusion
Both the above forms mean that two instances both having (e.g.) the
tag \fIa:foo\fR or \fIb:bar\fR won't end on the same node.
The options that can be passed to the program are as follows:
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment