Revision 73b2e389 hbal.1
b/hbal.1 | ||
---|---|---|
88 | 88 |
is O(n*n) in the number of nodes. Furthermore, it doesn't seems to |
89 | 89 |
give better scores but will result in more disk replacements. |
90 | 90 |
|
91 |
.SS PLACEMENT RESTRICTIONS |
|
92 |
|
|
93 |
At each step, we prevent an instance move if it would cause: |
|
94 |
|
|
95 |
.RS 4 |
|
96 |
.TP 3 |
|
97 |
\(em |
|
98 |
a node to go into N+1 failure state |
|
99 |
.TP |
|
100 |
\(em |
|
101 |
an instance to move onto an offline node (offline nodes are either |
|
102 |
read from the cluster or declared with \fI-O\fR) |
|
103 |
.TP |
|
104 |
\(em |
|
105 |
an exclusion-tag based conflict (exclusion tags are read from the |
|
106 |
cluster and/or defined via the \fI--exclusion-tags\fR option) |
|
107 |
.TP |
|
108 |
\(em |
|
109 |
a max vcpu/pcpu ratio to be exceeded (configured via \fI--max-cpu\fR) |
|
110 |
.TP |
|
111 |
\(em |
|
112 |
min disk free percentage to go below the configured limit (configured |
|
113 |
via \fI--min-disk\fR) |
|
114 |
|
|
91 | 115 |
.SS CLUSTER SCORING |
92 | 116 |
|
93 | 117 |
As said before, the algorithm tries to minimise the cluster score at |
... | ... | |
176 | 200 |
memory size of down instances from the free node memory of their |
177 | 201 |
primary node, in effect simulating the startup of such instances. |
178 | 202 |
|
179 |
.SS OTHER POSSIBLE METRICS |
|
203 |
.SS EXCLUSION TAGS |
|
204 |
|
|
205 |
The exclusion tags mecanism is designed to prevent instances which run |
|
206 |
the same workload (e.g. two DNS servers) to land on the same node, |
|
207 |
which would make the respective node a SPOF for the given service. |
|
208 |
|
|
209 |
It works by tagging instances with certain tags and then building |
|
210 |
exclusion maps based on these. Which tags are actually used is |
|
211 |
configured either via the command line (option \fI--exclusion-tags\fR) |
|
212 |
or via adding them to the cluster tags: |
|
180 | 213 |
|
181 |
It would be desirable to add more metrics to the algorithm, especially |
|
182 |
dynamically\(hycomputed metrics, such as: |
|
183 |
.RS 4 |
|
184 |
.TP 3 |
|
185 |
\(em |
|
186 |
CPU usage of instances |
|
187 | 214 |
.TP |
188 |
\(em |
|
189 |
Disk IO usage |
|
215 |
.B --exclusion-tags=a,b |
|
216 |
This will make all instance tags of the form \fIa:*\fR, \fIb:*\fR be |
|
217 |
considered for the exclusion map |
|
218 |
|
|
190 | 219 |
.TP |
191 |
\(em |
|
192 |
Network IO |
|
193 |
.RE |
|
220 |
cluster tags \fBhtools:iextags:a\fR, \fBhtools:iextags:b\fR |
|
221 |
This will make instance tags \fIa:*\fR, \fIb:*\fR be considered for |
|
222 |
the exclusion map. More precisely, the suffix of cluster tags starting |
|
223 |
with \fBhtools:iextags:\fR will become the prefix of the exclusion |
|
224 |
tags. |
|
225 |
|
|
226 |
.P |
|
227 |
Both the above forms mean that two instances both having (e.g.) the |
|
228 |
tag \fIa:foo\fR or \fIb:bar\fR won't end on the same node. |
|
194 | 229 |
|
195 | 230 |
.SH OPTIONS |
196 | 231 |
The options that can be passed to the program are as follows: |
Also available in: Unified diff