root / hail.1 @ be811997
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 | 1cd133d6 | Iustin Pop | pair; this is the only choice where the algoritm 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 | 73b2e389 | Iustin Pop | all instance tags of the form \fBservice:X\fR will be confidered 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. |