Statistics
| Branch: | Tag: | Revision:

root / hail.1 @ 306cccd5

History | View | Annotate | Download (2.6 kB)

1 c6702e5e Iustin Pop
.TH HAIL 1 2009-03-23 htools "Ganeti H-tools"
2 c6702e5e Iustin Pop
.SH NAME
3 c6702e5e Iustin Pop
hail \- Ganeti IAllocator plugin
4 c6702e5e Iustin Pop
5 c6702e5e Iustin Pop
.SH SYNOPSIS
6 c6702e5e Iustin Pop
.B hail
7 c6702e5e Iustin Pop
.I "input-file"
8 c6702e5e Iustin Pop
9 c6702e5e Iustin Pop
.B hail
10 c6702e5e Iustin Pop
.B --version
11 c6702e5e Iustin Pop
12 c6702e5e Iustin Pop
.SH DESCRIPTION
13 c6702e5e Iustin Pop
hail is a Ganeti IAllocator plugin that allows automatic instance
14 c6702e5e Iustin Pop
placement and automatic instance secondary node replacement using the
15 c6702e5e Iustin Pop
same algorithm as \fBhbal\fR(1).
16 c6702e5e Iustin Pop
17 1cd133d6 Iustin Pop
The program takes input via a JSON\(hyfile containing current cluster
18 1cd133d6 Iustin Pop
state and the request details, and output (on stdout) a JSON\(hyformatted
19 c6702e5e Iustin Pop
response. In case of critical failures, the error message is printed
20 c6702e5e Iustin Pop
on stderr and the exit code is changed to show failure.
21 c6702e5e Iustin Pop
22 c6702e5e Iustin Pop
.SS ALGORITHM
23 c6702e5e Iustin Pop
24 c6702e5e Iustin Pop
The program uses a simplified version of the hbal algorithm.
25 c6702e5e Iustin Pop
26 c6702e5e Iustin Pop
For relocations, we try to change the secondary node of the instance
27 c6702e5e Iustin Pop
to all the valid other nodes; the node which results in the best
28 c6702e5e Iustin Pop
cluster score is chosen.
29 c6702e5e Iustin Pop
30 1cd133d6 Iustin Pop
For single\(hynode allocations (non\(hymirrored instances), again we
31 1cd133d6 Iustin Pop
select the node which, when chosen as the primary node, gives the best
32 1cd133d6 Iustin Pop
score.
33 c6702e5e Iustin Pop
34 1cd133d6 Iustin Pop
For dual\(hynode allocations (mirrored instances), we chose the best
35 57ef88df Iustin Pop
pair; this is the only choice where the algorithm is non\(hytrivial
36 c6702e5e Iustin Pop
with regard to cluster size.
37 c6702e5e Iustin Pop
38 d06d0636 Iustin Pop
For node evacuations (\fImulti-evacuate\fR mode), we iterate over all
39 d06d0636 Iustin Pop
instances which live as secondaries on those nodes and try to relocate
40 d06d0636 Iustin Pop
them using the single-instance relocation algorithm.
41 d06d0636 Iustin Pop
42 d06d0636 Iustin Pop
In all cases, the cluster scoring is identical to the hbal algorithm.
43 c6702e5e Iustin Pop
44 73b2e389 Iustin Pop
.SH CONFIGURATION
45 73b2e389 Iustin Pop
46 73b2e389 Iustin Pop
For the tag-exclusion configuration (see the manpage of hbal for more
47 73b2e389 Iustin Pop
details), the list of which instance tags to consider as exclusion
48 73b2e389 Iustin Pop
tags will be read from the cluster tags, configured as follows:
49 73b2e389 Iustin Pop
50 73b2e389 Iustin Pop
- get all cluster tags starting with \fBhtools:iextags:\fR
51 73b2e389 Iustin Pop
52 73b2e389 Iustin Pop
- use their suffix as the prefix for exclusion tags
53 73b2e389 Iustin Pop
54 73b2e389 Iustin Pop
For example, given a cluster tag like \fBhtools:iextags:service\fR,
55 57ef88df Iustin Pop
all instance tags of the form \fBservice:X\fR will be considered as
56 73b2e389 Iustin Pop
exclusion tags, meaning that (e.g.) two instances which both have a
57 73b2e389 Iustin Pop
tag \fBservice:foo\fR will not be placed on the same primary node.
58 73b2e389 Iustin Pop
59 c6702e5e Iustin Pop
.SH EXIT STATUS
60 c6702e5e Iustin Pop
61 c6702e5e Iustin Pop
The exist status of the command will be zero, unless for some reason
62 c6702e5e Iustin Pop
the algorithm fatally failed (e.g. wrong node or instance data).
63 c6702e5e Iustin Pop
64 c6702e5e Iustin Pop
.SH SEE ALSO
65 266aea94 Iustin Pop
.BR hbal "(1), " hspace "(1), " hscan "(1), " ganeti "(7), "
66 266aea94 Iustin Pop
.BR gnt-instance "(8), " gnt-node "(8)"
67 e2fa2baf Iustin Pop
68 e2fa2baf Iustin Pop
.SH "COPYRIGHT"
69 e2fa2baf Iustin Pop
.PP
70 e2fa2baf Iustin Pop
Copyright (C) 2009 Google Inc. Permission is granted to copy,
71 e2fa2baf Iustin Pop
distribute and/or modify under the terms of the GNU General Public
72 e2fa2baf Iustin Pop
License as published by the Free Software Foundation; either version 2
73 e2fa2baf Iustin Pop
of the License, or (at your option) any later version.
74 e2fa2baf Iustin Pop
.PP
75 e2fa2baf Iustin Pop
On Debian systems, the complete text of the GNU General Public License
76 e2fa2baf Iustin Pop
can be found in /usr/share/common-licenses/GPL.