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