root / man / hspace.rst @ 8dda364e
History | View | Annotate | Download (14.8 kB)
1 | 5a19bd35 | Iustin Pop | HSPACE(1) Ganeti | Version @GANETI_VERSION@ |
---|---|---|---|
2 | 5a19bd35 | Iustin Pop | =========================================== |
3 | 49148d15 | Iustin Pop | |
4 | 49148d15 | Iustin Pop | NAME |
5 | 49148d15 | Iustin Pop | ---- |
6 | 49148d15 | Iustin Pop | |
7 | 49148d15 | Iustin Pop | hspace - Cluster space analyzer for Ganeti |
8 | 49148d15 | Iustin Pop | |
9 | 49148d15 | Iustin Pop | SYNOPSIS |
10 | 49148d15 | Iustin Pop | -------- |
11 | 49148d15 | Iustin Pop | |
12 | 49148d15 | Iustin Pop | **hspace** {backend options...} [algorithm options...] [request options...] |
13 | 49148d15 | Iustin Pop | [ -p [*fields*] ] [-v... | -q] |
14 | 49148d15 | Iustin Pop | |
15 | 49148d15 | Iustin Pop | **hspace** --version |
16 | 49148d15 | Iustin Pop | |
17 | 49148d15 | Iustin Pop | Backend options: |
18 | 49148d15 | Iustin Pop | |
19 | 49148d15 | Iustin Pop | { **-m** *cluster* | **-L[** *path* **] [-X]** | **-t** *data-file* | |
20 | 49148d15 | Iustin Pop | **--simulate** *spec* } |
21 | 49148d15 | Iustin Pop | |
22 | 49148d15 | Iustin Pop | |
23 | 49148d15 | Iustin Pop | Algorithm options: |
24 | 49148d15 | Iustin Pop | |
25 | 49148d15 | Iustin Pop | **[ --max-cpu *cpu-ratio* ]** |
26 | 49148d15 | Iustin Pop | **[ --min-disk *disk-ratio* ]** |
27 | 49148d15 | Iustin Pop | **[ -O *name...* ]** |
28 | 49148d15 | Iustin Pop | |
29 | 49148d15 | Iustin Pop | |
30 | 49148d15 | Iustin Pop | Request options: |
31 | 49148d15 | Iustin Pop | |
32 | 49148d15 | Iustin Pop | **[--memory** *mem* **]** |
33 | 49148d15 | Iustin Pop | **[--disk** *disk* **]** |
34 | 9ef605a6 | Iustin Pop | **[--disk-template** *template* **]** |
35 | 49148d15 | Iustin Pop | **[--vcpus** *vcpus* **]** |
36 | 49148d15 | Iustin Pop | **[--tiered-alloc** *spec* **]** |
37 | 49148d15 | Iustin Pop | |
38 | 49148d15 | Iustin Pop | |
39 | 49148d15 | Iustin Pop | DESCRIPTION |
40 | 49148d15 | Iustin Pop | ----------- |
41 | 49148d15 | Iustin Pop | |
42 | 49148d15 | Iustin Pop | |
43 | 49148d15 | Iustin Pop | hspace computes how many additional instances can be fit on a cluster, |
44 | 49148d15 | Iustin Pop | while maintaining N+1 status. |
45 | 49148d15 | Iustin Pop | |
46 | 49148d15 | Iustin Pop | The program will try to place instances, all of the same size, on the |
47 | 49148d15 | Iustin Pop | cluster, until the point where we don't have any N+1 possible |
48 | 49148d15 | Iustin Pop | allocation. It uses the exact same allocation algorithm as the hail |
49 | 9ef605a6 | Iustin Pop | iallocator plugin in *allocate* mode. |
50 | 49148d15 | Iustin Pop | |
51 | 49148d15 | Iustin Pop | The output of the program is designed to interpreted as a shell |
52 | 49148d15 | Iustin Pop | fragment (or parsed as a *key=value* file). Options which extend the |
53 | 49148d15 | Iustin Pop | output (e.g. -p, -v) will output the additional information on stderr |
54 | 49148d15 | Iustin Pop | (such that the stdout is still parseable). |
55 | 49148d15 | Iustin Pop | |
56 | 49148d15 | Iustin Pop | The following keys are available in the output of the script (all |
57 | 49148d15 | Iustin Pop | prefixed with *HTS_*): |
58 | 49148d15 | Iustin Pop | |
59 | 1cc97b7f | Iustin Pop | SPEC_MEM, SPEC_DSK, SPEC_CPU, SPEC_RQN, SPEC_DISK_TEMPLATE |
60 | 49148d15 | Iustin Pop | These represent the specifications of the instance model used for |
61 | 1cc97b7f | Iustin Pop | allocation (the memory, disk, cpu, requested nodes, disk template). |
62 | 49148d15 | Iustin Pop | |
63 | 8dda364e | Iustin Pop | TSPEC_INI_MEM, TSPEC_INI_DSK, TSPEC_INI_CPU |
64 | 8dda364e | Iustin Pop | Only defined when the tiered mode allocation is enabled, these are |
65 | 8dda364e | Iustin Pop | similar to the above specifications but show the initial starting spec |
66 | 8dda364e | Iustin Pop | for tiered allocation. |
67 | 8dda364e | Iustin Pop | |
68 | 49148d15 | Iustin Pop | CLUSTER_MEM, CLUSTER_DSK, CLUSTER_CPU, CLUSTER_NODES |
69 | 49148d15 | Iustin Pop | These represent the total memory, disk, CPU count and total nodes in |
70 | 49148d15 | Iustin Pop | the cluster. |
71 | 49148d15 | Iustin Pop | |
72 | 49148d15 | Iustin Pop | INI_SCORE, FIN_SCORE |
73 | 49148d15 | Iustin Pop | These are the initial (current) and final cluster score (see the hbal |
74 | 49148d15 | Iustin Pop | man page for details about the scoring algorithm). |
75 | 49148d15 | Iustin Pop | |
76 | 49148d15 | Iustin Pop | INI_INST_CNT, FIN_INST_CNT |
77 | 49148d15 | Iustin Pop | The initial and final instance count. |
78 | 49148d15 | Iustin Pop | |
79 | 49148d15 | Iustin Pop | INI_MEM_FREE, FIN_MEM_FREE |
80 | 49148d15 | Iustin Pop | The initial and final total free memory in the cluster (but this |
81 | 49148d15 | Iustin Pop | doesn't necessarily mean available for use). |
82 | 49148d15 | Iustin Pop | |
83 | 49148d15 | Iustin Pop | INI_MEM_AVAIL, FIN_MEM_AVAIL |
84 | 49148d15 | Iustin Pop | The initial and final total available memory for allocation in the |
85 | 49148d15 | Iustin Pop | cluster. If allocating redundant instances, new instances could |
86 | 49148d15 | Iustin Pop | increase the reserved memory so it doesn't necessarily mean the |
87 | 49148d15 | Iustin Pop | entirety of this memory can be used for new instance allocations. |
88 | 49148d15 | Iustin Pop | |
89 | 49148d15 | Iustin Pop | INI_MEM_RESVD, FIN_MEM_RESVD |
90 | 49148d15 | Iustin Pop | The initial and final reserved memory (for redundancy/N+1 purposes). |
91 | 49148d15 | Iustin Pop | |
92 | 49148d15 | Iustin Pop | INI_MEM_INST, FIN_MEM_INST |
93 | 49148d15 | Iustin Pop | The initial and final memory used for instances (actual runtime used |
94 | 49148d15 | Iustin Pop | RAM). |
95 | 49148d15 | Iustin Pop | |
96 | 49148d15 | Iustin Pop | INI_MEM_OVERHEAD, FIN_MEM_OVERHEAD |
97 | 49148d15 | Iustin Pop | The initial and final memory overhead--memory used for the node |
98 | 49148d15 | Iustin Pop | itself and unacounted memory (e.g. due to hypervisor overhead). |
99 | 49148d15 | Iustin Pop | |
100 | 49148d15 | Iustin Pop | INI_MEM_EFF, HTS_INI_MEM_EFF |
101 | 49148d15 | Iustin Pop | The initial and final memory efficiency, represented as instance |
102 | 49148d15 | Iustin Pop | memory divided by total memory. |
103 | 49148d15 | Iustin Pop | |
104 | 49148d15 | Iustin Pop | INI_DSK_FREE, INI_DSK_AVAIL, INI_DSK_RESVD, INI_DSK_INST, INI_DSK_EFF |
105 | 49148d15 | Iustin Pop | Initial disk stats, similar to the memory ones. |
106 | 49148d15 | Iustin Pop | |
107 | 49148d15 | Iustin Pop | FIN_DSK_FREE, FIN_DSK_AVAIL, FIN_DSK_RESVD, FIN_DSK_INST, FIN_DSK_EFF |
108 | 49148d15 | Iustin Pop | Final disk stats, similar to the memory ones. |
109 | 49148d15 | Iustin Pop | |
110 | 49148d15 | Iustin Pop | INI_CPU_INST, FIN_CPU_INST |
111 | 49148d15 | Iustin Pop | Initial and final number of virtual CPUs used by instances. |
112 | 49148d15 | Iustin Pop | |
113 | 49148d15 | Iustin Pop | INI_CPU_EFF, FIN_CPU_EFF |
114 | 49148d15 | Iustin Pop | The initial and final CPU efficiency, represented as the count of |
115 | 49148d15 | Iustin Pop | virtual instance CPUs divided by the total physical CPU count. |
116 | 49148d15 | Iustin Pop | |
117 | 49148d15 | Iustin Pop | INI_MNODE_MEM_AVAIL, FIN_MNODE_MEM_AVAIL |
118 | 49148d15 | Iustin Pop | The initial and final maximum per-node available memory. This is not |
119 | 49148d15 | Iustin Pop | very useful as a metric but can give an impression of the status of |
120 | 49148d15 | Iustin Pop | the nodes; as an example, this value restricts the maximum instance |
121 | 49148d15 | Iustin Pop | size that can be still created on the cluster. |
122 | 49148d15 | Iustin Pop | |
123 | 49148d15 | Iustin Pop | INI_MNODE_DSK_AVAIL, FIN_MNODE_DSK_AVAIL |
124 | 49148d15 | Iustin Pop | Like the above but for disk. |
125 | 49148d15 | Iustin Pop | |
126 | 49148d15 | Iustin Pop | TSPEC |
127 | 49148d15 | Iustin Pop | If the tiered allocation mode has been enabled, this parameter holds |
128 | 49148d15 | Iustin Pop | the pairs of specifications and counts of instances that can be |
129 | 49148d15 | Iustin Pop | created in this mode. The value of the key is a space-separated list |
130 | 49148d15 | Iustin Pop | of values; each value is of the form *memory,disk,vcpu=count* where |
131 | 49148d15 | Iustin Pop | the memory, disk and vcpu are the values for the current spec, and |
132 | 49148d15 | Iustin Pop | count is how many instances of this spec can be created. A complete |
133 | 49148d15 | Iustin Pop | value for this variable could be: **4096,102400,2=225 |
134 | 49148d15 | Iustin Pop | 2560,102400,2=20 512,102400,2=21**. |
135 | 49148d15 | Iustin Pop | |
136 | 49148d15 | Iustin Pop | KM_USED_CPU, KM_USED_NPU, KM_USED_MEM, KM_USED_DSK |
137 | 49148d15 | Iustin Pop | These represents the metrics of used resources at the start of the |
138 | 49148d15 | Iustin Pop | computation (only for tiered allocation mode). The NPU value is |
139 | 49148d15 | Iustin Pop | "normalized" CPU count, i.e. the number of virtual CPUs divided by |
140 | 49148d15 | Iustin Pop | the maximum ratio of the virtual to physical CPUs. |
141 | 49148d15 | Iustin Pop | |
142 | 49148d15 | Iustin Pop | KM_POOL_CPU, KM_POOL_NPU, KM_POOL_MEM, KM_POOL_DSK |
143 | 49148d15 | Iustin Pop | These represents the total resources allocated during the tiered |
144 | 49148d15 | Iustin Pop | allocation process. In effect, they represent how much is readily |
145 | 49148d15 | Iustin Pop | available for allocation. |
146 | 49148d15 | Iustin Pop | |
147 | 49148d15 | Iustin Pop | KM_UNAV_CPU, KM_POOL_NPU, KM_UNAV_MEM, KM_UNAV_DSK |
148 | 49148d15 | Iustin Pop | These represents the resources left over (either free as in |
149 | 49148d15 | Iustin Pop | unallocable or allocable on their own) after the tiered allocation |
150 | 49148d15 | Iustin Pop | has been completed. They represent better the actual unallocable |
151 | 49148d15 | Iustin Pop | resources, because some other resource has been exhausted. For |
152 | 49148d15 | Iustin Pop | example, the cluster might still have 100GiB disk free, but with no |
153 | 49148d15 | Iustin Pop | memory left for instances, we cannot allocate another instance, so |
154 | 49148d15 | Iustin Pop | in effect the disk space is unallocable. Note that the CPUs here |
155 | 49148d15 | Iustin Pop | represent instance virtual CPUs, and in case the *--max-cpu* option |
156 | 49148d15 | Iustin Pop | hasn't been specified this will be -1. |
157 | 49148d15 | Iustin Pop | |
158 | 49148d15 | Iustin Pop | ALLOC_USAGE |
159 | 49148d15 | Iustin Pop | The current usage represented as initial number of instances divided |
160 | 49148d15 | Iustin Pop | per final number of instances. |
161 | 49148d15 | Iustin Pop | |
162 | 49148d15 | Iustin Pop | ALLOC_COUNT |
163 | 49148d15 | Iustin Pop | The number of instances allocated (delta between FIN_INST_CNT and |
164 | 49148d15 | Iustin Pop | INI_INST_CNT). |
165 | 49148d15 | Iustin Pop | |
166 | 49148d15 | Iustin Pop | ALLOC_FAIL*_CNT |
167 | 49148d15 | Iustin Pop | For the last attemp at allocations (which would have increased |
168 | 49148d15 | Iustin Pop | FIN_INST_CNT with one, if it had succeeded), this is the count of |
169 | 49148d15 | Iustin Pop | the failure reasons per failure type; currently defined are FAILMEM, |
170 | 49148d15 | Iustin Pop | FAILDISK and FAILCPU which represent errors due to not enough |
171 | 49148d15 | Iustin Pop | memory, disk and CPUs, and FAILN1 which represents a non N+1 |
172 | 49148d15 | Iustin Pop | compliant cluster on which we can't allocate instances at all. |
173 | 49148d15 | Iustin Pop | |
174 | 49148d15 | Iustin Pop | ALLOC_FAIL_REASON |
175 | 49148d15 | Iustin Pop | The reason for most of the failures, being one of the above FAIL* |
176 | 49148d15 | Iustin Pop | strings. |
177 | 49148d15 | Iustin Pop | |
178 | 49148d15 | Iustin Pop | OK |
179 | 49148d15 | Iustin Pop | A marker representing the successful end of the computation, and |
180 | 49148d15 | Iustin Pop | having value "1". If this key is not present in the output it means |
181 | 49148d15 | Iustin Pop | that the computation failed and any values present should not be |
182 | 49148d15 | Iustin Pop | relied upon. |
183 | 49148d15 | Iustin Pop | |
184 | 49148d15 | Iustin Pop | If the tiered allocation mode is enabled, then many of the INI_/FIN_ |
185 | 49148d15 | Iustin Pop | metrics will be also displayed with a TRL_ prefix, and denote the |
186 | 49148d15 | Iustin Pop | cluster status at the end of the tiered allocation run. |
187 | 49148d15 | Iustin Pop | |
188 | 49148d15 | Iustin Pop | OPTIONS |
189 | 49148d15 | Iustin Pop | ------- |
190 | 49148d15 | Iustin Pop | |
191 | 49148d15 | Iustin Pop | The options that can be passed to the program are as follows: |
192 | 49148d15 | Iustin Pop | |
193 | 49148d15 | Iustin Pop | --memory *mem* |
194 | 247f77b7 | Iustin Pop | The memory size of the instances to be placed (defaults to |
195 | 247f77b7 | Iustin Pop | 4GiB). Units can be used (see below for more details). |
196 | 49148d15 | Iustin Pop | |
197 | 49148d15 | Iustin Pop | --disk *disk* |
198 | 247f77b7 | Iustin Pop | The disk size of the instances to be placed (defaults to |
199 | 247f77b7 | Iustin Pop | 100GiB). Units can be used. |
200 | 49148d15 | Iustin Pop | |
201 | 9ef605a6 | Iustin Pop | --disk-template *template* |
202 | 9ef605a6 | Iustin Pop | The disk template for the instance; one of the Ganeti disk templates |
203 | 9ef605a6 | Iustin Pop | (e.g. plain, drbd, so on) should be passed in. |
204 | 49148d15 | Iustin Pop | |
205 | 49148d15 | Iustin Pop | --vcpus *vcpus* |
206 | 49148d15 | Iustin Pop | The number of VCPUs of the instances to be placed (defaults to 1). |
207 | 49148d15 | Iustin Pop | |
208 | 49148d15 | Iustin Pop | --max-cpu=*cpu-ratio* |
209 | 247f77b7 | Iustin Pop | The maximum virtual to physical cpu ratio, as a floating point number |
210 | 247f77b7 | Iustin Pop | greater than or equal to one. For example, specifying *cpu-ratio* as |
211 | 247f77b7 | Iustin Pop | **2.5** means that, for a 4-cpu machine, a maximum of 10 virtual cpus |
212 | 247f77b7 | Iustin Pop | should be allowed to be in use for primary instances. A value of |
213 | 247f77b7 | Iustin Pop | exactly one means there will be no over-subscription of CPU (except |
214 | 247f77b7 | Iustin Pop | for the CPU time used by the node itself), and values below one do not |
215 | 247f77b7 | Iustin Pop | make sense, as that means other resources (e.g. disk) won't be fully |
216 | 247f77b7 | Iustin Pop | utilised due to CPU restrictions. |
217 | 49148d15 | Iustin Pop | |
218 | 49148d15 | Iustin Pop | --min-disk=*disk-ratio* |
219 | 49148d15 | Iustin Pop | The minimum amount of free disk space remaining, as a floating point |
220 | 49148d15 | Iustin Pop | number. For example, specifying *disk-ratio* as **0.25** means that |
221 | 49148d15 | Iustin Pop | at least one quarter of disk space should be left free on nodes. |
222 | 49148d15 | Iustin Pop | |
223 | 49148d15 | Iustin Pop | -p, --print-nodes |
224 | 49148d15 | Iustin Pop | Prints the before and after node status, in a format designed to |
225 | 49148d15 | Iustin Pop | allow the user to understand the node's most important parameters. |
226 | 49148d15 | Iustin Pop | |
227 | 49148d15 | Iustin Pop | It is possible to customise the listed information by passing a |
228 | 49148d15 | Iustin Pop | comma-separated list of field names to this option (the field list |
229 | 49148d15 | Iustin Pop | is currently undocumented), or to extend the default field list by |
230 | 49148d15 | Iustin Pop | prefixing the additional field list with a plus sign. By default, |
231 | 49148d15 | Iustin Pop | the node list will contain the following information: |
232 | 49148d15 | Iustin Pop | |
233 | 49148d15 | Iustin Pop | F |
234 | 49148d15 | Iustin Pop | a character denoting the status of the node, with '-' meaning an |
235 | 49148d15 | Iustin Pop | offline node, '*' meaning N+1 failure and blank meaning a good |
236 | 49148d15 | Iustin Pop | node |
237 | 49148d15 | Iustin Pop | |
238 | 49148d15 | Iustin Pop | Name |
239 | 49148d15 | Iustin Pop | the node name |
240 | 49148d15 | Iustin Pop | |
241 | 49148d15 | Iustin Pop | t_mem |
242 | 49148d15 | Iustin Pop | the total node memory |
243 | 49148d15 | Iustin Pop | |
244 | 49148d15 | Iustin Pop | n_mem |
245 | 49148d15 | Iustin Pop | the memory used by the node itself |
246 | 49148d15 | Iustin Pop | |
247 | 49148d15 | Iustin Pop | i_mem |
248 | 49148d15 | Iustin Pop | the memory used by instances |
249 | 49148d15 | Iustin Pop | |
250 | 49148d15 | Iustin Pop | x_mem |
251 | 49148d15 | Iustin Pop | amount memory which seems to be in use but cannot be determined |
252 | 49148d15 | Iustin Pop | why or by which instance; usually this means that the hypervisor |
253 | 49148d15 | Iustin Pop | has some overhead or that there are other reporting errors |
254 | 49148d15 | Iustin Pop | |
255 | 49148d15 | Iustin Pop | f_mem |
256 | 49148d15 | Iustin Pop | the free node memory |
257 | 49148d15 | Iustin Pop | |
258 | 49148d15 | Iustin Pop | r_mem |
259 | 49148d15 | Iustin Pop | the reserved node memory, which is the amount of free memory |
260 | 49148d15 | Iustin Pop | needed for N+1 compliance |
261 | 49148d15 | Iustin Pop | |
262 | 49148d15 | Iustin Pop | t_dsk |
263 | 49148d15 | Iustin Pop | total disk |
264 | 49148d15 | Iustin Pop | |
265 | 49148d15 | Iustin Pop | f_dsk |
266 | 49148d15 | Iustin Pop | free disk |
267 | 49148d15 | Iustin Pop | |
268 | 49148d15 | Iustin Pop | pcpu |
269 | 49148d15 | Iustin Pop | the number of physical cpus on the node |
270 | 49148d15 | Iustin Pop | |
271 | 49148d15 | Iustin Pop | vcpu |
272 | 49148d15 | Iustin Pop | the number of virtual cpus allocated to primary instances |
273 | 49148d15 | Iustin Pop | |
274 | 49148d15 | Iustin Pop | pcnt |
275 | 49148d15 | Iustin Pop | number of primary instances |
276 | 49148d15 | Iustin Pop | |
277 | 49148d15 | Iustin Pop | scnt |
278 | 49148d15 | Iustin Pop | number of secondary instances |
279 | 49148d15 | Iustin Pop | |
280 | 49148d15 | Iustin Pop | p_fmem |
281 | 49148d15 | Iustin Pop | percent of free memory |
282 | 49148d15 | Iustin Pop | |
283 | 49148d15 | Iustin Pop | p_fdsk |
284 | 49148d15 | Iustin Pop | percent of free disk |
285 | 49148d15 | Iustin Pop | |
286 | 49148d15 | Iustin Pop | r_cpu |
287 | 49148d15 | Iustin Pop | ratio of virtual to physical cpus |
288 | 49148d15 | Iustin Pop | |
289 | 49148d15 | Iustin Pop | lCpu |
290 | 49148d15 | Iustin Pop | the dynamic CPU load (if the information is available) |
291 | 49148d15 | Iustin Pop | |
292 | 49148d15 | Iustin Pop | lMem |
293 | 49148d15 | Iustin Pop | the dynamic memory load (if the information is available) |
294 | 49148d15 | Iustin Pop | |
295 | 49148d15 | Iustin Pop | lDsk |
296 | 49148d15 | Iustin Pop | the dynamic disk load (if the information is available) |
297 | 49148d15 | Iustin Pop | |
298 | 49148d15 | Iustin Pop | lNet |
299 | 49148d15 | Iustin Pop | the dynamic net load (if the information is available) |
300 | 49148d15 | Iustin Pop | |
301 | 49148d15 | Iustin Pop | -O *name* |
302 | 49148d15 | Iustin Pop | This option (which can be given multiple times) will mark nodes as |
303 | 49148d15 | Iustin Pop | being *offline*. This means a couple of things: |
304 | 49148d15 | Iustin Pop | |
305 | 49148d15 | Iustin Pop | - instances won't be placed on these nodes, not even temporarily; |
306 | 49148d15 | Iustin Pop | e.g. the *replace primary* move is not available if the secondary |
307 | 49148d15 | Iustin Pop | node is offline, since this move requires a failover. |
308 | 49148d15 | Iustin Pop | - these nodes will not be included in the score calculation (except |
309 | 49148d15 | Iustin Pop | for the percentage of instances on offline nodes) |
310 | 49148d15 | Iustin Pop | |
311 | 49148d15 | Iustin Pop | Note that the algorithm will also mark as offline any nodes which |
312 | 49148d15 | Iustin Pop | are reported by RAPI as such, or that have "?" in file-based input |
313 | 49148d15 | Iustin Pop | in any numeric fields. |
314 | 49148d15 | Iustin Pop | |
315 | 49148d15 | Iustin Pop | -t *datafile*, --text-data=*datafile* |
316 | 49148d15 | Iustin Pop | The name of the file holding node and instance information (if not |
317 | 49148d15 | Iustin Pop | collecting via RAPI or LUXI). This or one of the other backends must |
318 | 49148d15 | Iustin Pop | be selected. |
319 | 49148d15 | Iustin Pop | |
320 | 49148d15 | Iustin Pop | -S *filename*, --save-cluster=*filename* |
321 | 49148d15 | Iustin Pop | If given, the state of the cluster at the end of the allocation is |
322 | 49148d15 | Iustin Pop | saved to a file named *filename.alloc*, and if tiered allocation is |
323 | 49148d15 | Iustin Pop | enabled, the state after tiered allocation will be saved to |
324 | 49148d15 | Iustin Pop | *filename.tiered*. This allows re-feeding the cluster state to |
325 | 49148d15 | Iustin Pop | either hspace itself (with different parameters) or for example |
326 | 49148d15 | Iustin Pop | hbal. |
327 | 49148d15 | Iustin Pop | |
328 | 49148d15 | Iustin Pop | -m *cluster* |
329 | 49148d15 | Iustin Pop | Collect data directly from the *cluster* given as an argument via |
330 | 49148d15 | Iustin Pop | RAPI. If the argument doesn't contain a colon (:), then it is |
331 | 49148d15 | Iustin Pop | converted into a fully-built URL via prepending ``https://`` and |
332 | 49148d15 | Iustin Pop | appending the default RAPI port, otherwise it's considered a |
333 | 49148d15 | Iustin Pop | fully-specified URL and is used as-is. |
334 | 49148d15 | Iustin Pop | |
335 | 49148d15 | Iustin Pop | -L [*path*] |
336 | 49148d15 | Iustin Pop | Collect data directly from the master daemon, which is to be |
337 | 49148d15 | Iustin Pop | contacted via the luxi (an internal Ganeti protocol). An optional |
338 | 49148d15 | Iustin Pop | *path* argument is interpreted as the path to the unix socket on |
339 | 49148d15 | Iustin Pop | which the master daemon listens; otherwise, the default path used by |
340 | 49148d15 | Iustin Pop | ganeti when installed with *--localstatedir=/var* is used. |
341 | 49148d15 | Iustin Pop | |
342 | 49148d15 | Iustin Pop | --simulate *description* |
343 | 49148d15 | Iustin Pop | Instead of using actual data, build an empty cluster given a node |
344 | 49148d15 | Iustin Pop | description. The *description* parameter must be a comma-separated |
345 | 45cb5963 | Iustin Pop | list of five elements, describing in order: |
346 | 49148d15 | Iustin Pop | |
347 | 45cb5963 | Iustin Pop | - the allocation policy for this node group |
348 | 49148d15 | Iustin Pop | - the number of nodes in the cluster |
349 | 247f77b7 | Iustin Pop | - the disk size of the nodes (default in mebibytes, units can be used) |
350 | 247f77b7 | Iustin Pop | - the memory size of the nodes (default in mebibytes, units can be used) |
351 | 49148d15 | Iustin Pop | - the cpu core count for the nodes |
352 | 49148d15 | Iustin Pop | |
353 | 247f77b7 | Iustin Pop | An example description would be **preferred,B20,100G,16g,4** |
354 | 247f77b7 | Iustin Pop | describing a 20-node cluster where each node has 100GB of disk |
355 | 45cb5963 | Iustin Pop | space, 16GiB of memory and 4 CPU cores. Note that all nodes must |
356 | 45cb5963 | Iustin Pop | have the same specs currently. |
357 | 45cb5963 | Iustin Pop | |
358 | 45cb5963 | Iustin Pop | This option can be given multiple times, and each new use defines a |
359 | 45cb5963 | Iustin Pop | new node group. Hence different node groups can have different |
360 | 45cb5963 | Iustin Pop | allocation policies and node count/specifications. |
361 | 49148d15 | Iustin Pop | |
362 | 49148d15 | Iustin Pop | --tiered-alloc *spec* |
363 | 49148d15 | Iustin Pop | Besides the standard, fixed-size allocation, also do a tiered |
364 | 49148d15 | Iustin Pop | allocation scheme where the algorithm starts from the given |
365 | 49148d15 | Iustin Pop | specification and allocates until there is no more space; then it |
366 | 49148d15 | Iustin Pop | decreases the specification and tries the allocation again. The |
367 | 49148d15 | Iustin Pop | decrease is done on the matric that last failed during |
368 | 49148d15 | Iustin Pop | allocation. The specification given is similar to the *--simulate* |
369 | 49148d15 | Iustin Pop | option and it holds: |
370 | 49148d15 | Iustin Pop | |
371 | 247f77b7 | Iustin Pop | - the disk size of the instance (units can be used) |
372 | 247f77b7 | Iustin Pop | - the memory size of the instance (units can be used) |
373 | 49148d15 | Iustin Pop | - the vcpu count for the insance |
374 | 49148d15 | Iustin Pop | |
375 | 247f77b7 | Iustin Pop | An example description would be *100G,4g,2* describing an initial |
376 | 247f77b7 | Iustin Pop | starting specification of 100GB of disk space, 4GiB of memory and 2 |
377 | 49148d15 | Iustin Pop | VCPUs. |
378 | 49148d15 | Iustin Pop | |
379 | 49148d15 | Iustin Pop | Also note that the normal allocation and the tiered allocation are |
380 | 49148d15 | Iustin Pop | independent, and both start from the initial cluster state; as such, |
381 | 49148d15 | Iustin Pop | the instance count for these two modes are not related one to |
382 | 49148d15 | Iustin Pop | another. |
383 | 49148d15 | Iustin Pop | |
384 | 49148d15 | Iustin Pop | -v, --verbose |
385 | 49148d15 | Iustin Pop | Increase the output verbosity. Each usage of this option will |
386 | 49148d15 | Iustin Pop | increase the verbosity (currently more than 2 doesn't make sense) |
387 | 49148d15 | Iustin Pop | from the default of one. |
388 | 49148d15 | Iustin Pop | |
389 | 49148d15 | Iustin Pop | -q, --quiet |
390 | 49148d15 | Iustin Pop | Decrease the output verbosity. Each usage of this option will |
391 | 49148d15 | Iustin Pop | decrease the verbosity (less than zero doesn't make sense) from the |
392 | 49148d15 | Iustin Pop | default of one. |
393 | 49148d15 | Iustin Pop | |
394 | 49148d15 | Iustin Pop | -V, --version |
395 | 49148d15 | Iustin Pop | Just show the program version and exit. |
396 | 49148d15 | Iustin Pop | |
397 | 247f77b7 | Iustin Pop | UNITS |
398 | 247f77b7 | Iustin Pop | ~~~~~ |
399 | 247f77b7 | Iustin Pop | |
400 | 247f77b7 | Iustin Pop | By default, all unit-accepting options use mebibytes. Using the |
401 | 247f77b7 | Iustin Pop | lower-case letters of *m*, *g* and *t* (or their longer equivalents of |
402 | 247f77b7 | Iustin Pop | *mib*, *gib*, *tib*, for which case doesn't matter) explicit binary |
403 | 247f77b7 | Iustin Pop | units can be selected. Units in the SI system can be selected using the |
404 | 247f77b7 | Iustin Pop | upper-case letters of *M*, *G* and *T* (or their longer equivalents of |
405 | 247f77b7 | Iustin Pop | *MB*, *GB*, *TB*, for which case doesn't matter). |
406 | 247f77b7 | Iustin Pop | |
407 | 247f77b7 | Iustin Pop | More details about the difference between the SI and binary systems can |
408 | 247f77b7 | Iustin Pop | be read in the *units(7)* man page. |
409 | 247f77b7 | Iustin Pop | |
410 | 49148d15 | Iustin Pop | EXIT STATUS |
411 | 49148d15 | Iustin Pop | ----------- |
412 | 49148d15 | Iustin Pop | |
413 | 49148d15 | Iustin Pop | The exist status of the command will be zero, unless for some reason |
414 | 49148d15 | Iustin Pop | the algorithm fatally failed (e.g. wrong node or instance data). |
415 | 49148d15 | Iustin Pop | |
416 | 49148d15 | Iustin Pop | BUGS |
417 | 49148d15 | Iustin Pop | ---- |
418 | 49148d15 | Iustin Pop | |
419 | 49148d15 | Iustin Pop | The algorithm is highly dependent on the number of nodes; its runtime |
420 | 49148d15 | Iustin Pop | grows exponentially with this number, and as such is impractical for |
421 | 49148d15 | Iustin Pop | really big clusters. |
422 | 49148d15 | Iustin Pop | |
423 | 49148d15 | Iustin Pop | The algorithm doesn't rebalance the cluster or try to get the optimal |
424 | 49148d15 | Iustin Pop | fit; it just allocates in the best place for the current step, without |
425 | 49148d15 | Iustin Pop | taking into consideration the impact on future placements. |
426 | 9ff4f2c0 | Michael Hanselmann | |
427 | 9ff4f2c0 | Michael Hanselmann | .. vim: set textwidth=72 : |
428 | 9ff4f2c0 | Michael Hanselmann | .. Local Variables: |
429 | 9ff4f2c0 | Michael Hanselmann | .. mode: rst |
430 | 9ff4f2c0 | Michael Hanselmann | .. fill-column: 72 |
431 | 9ff4f2c0 | Michael Hanselmann | .. End: |