## root / man / hspace.rst @ 23fe06c2

History | View | Annotate | Download (13.3 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 | 375969eb | Iustin Pop | [output options...] [-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 | 375969eb | Iustin Pop | Output options: |

39 | 375969eb | Iustin Pop | |

40 | 375969eb | Iustin Pop | **[--machine-readable**[=*CHOICE*] **]** |

41 | 375969eb | Iustin Pop | **[-p**[*fields*]**]** |

42 | 375969eb | Iustin Pop | |

43 | 49148d15 | Iustin Pop | |

44 | 49148d15 | Iustin Pop | DESCRIPTION |

45 | 49148d15 | Iustin Pop | ----------- |

46 | 49148d15 | Iustin Pop | |

47 | 49148d15 | Iustin Pop | |

48 | 49148d15 | Iustin Pop | hspace computes how many additional instances can be fit on a cluster, |

49 | 49148d15 | Iustin Pop | while maintaining N+1 status. |

50 | 49148d15 | Iustin Pop | |

51 | 49148d15 | Iustin Pop | The program will try to place instances, all of the same size, on the |

52 | 49148d15 | Iustin Pop | cluster, until the point where we don't have any N+1 possible |

53 | 49148d15 | Iustin Pop | allocation. It uses the exact same allocation algorithm as the hail |

54 | 9ef605a6 | Iustin Pop | iallocator plugin in *allocate* mode. |

55 | 49148d15 | Iustin Pop | |

56 | 375969eb | Iustin Pop | The output of the program is designed either for human consumption (the |

57 | 375969eb | Iustin Pop | default) or, when enabled with the ``--machine-readable`` option |

58 | 375969eb | Iustin Pop | (described further below), for machine consumption. In the latter case, |

59 | 375969eb | Iustin Pop | it is intended to interpreted as a shell fragment (or parsed as a |

60 | 375969eb | Iustin Pop | *key=value* file). Options which extend the output (e.g. -p, -v) will |

61 | 375969eb | Iustin Pop | output the additional information on stderr (such that the stdout is |

62 | 375969eb | Iustin Pop | still parseable). |

63 | 49148d15 | Iustin Pop | |

64 | 375969eb | Iustin Pop | The following keys are available in the machine-readable output of the |

65 | 375969eb | Iustin Pop | script (all prefixed with *HTS_*): |

66 | 49148d15 | Iustin Pop | |

67 | 1cc97b7f | Iustin Pop | SPEC_MEM, SPEC_DSK, SPEC_CPU, SPEC_RQN, SPEC_DISK_TEMPLATE |

68 | 49148d15 | Iustin Pop | These represent the specifications of the instance model used for |

69 | 1cc97b7f | Iustin Pop | allocation (the memory, disk, cpu, requested nodes, disk template). |

70 | 49148d15 | Iustin Pop | |

71 | 375969eb | Iustin Pop | TSPEC_INI_MEM, TSPEC_INI_DSK, TSPEC_INI_CPU, ... |

72 | 8dda364e | Iustin Pop | Only defined when the tiered mode allocation is enabled, these are |

73 | 8dda364e | Iustin Pop | similar to the above specifications but show the initial starting spec |

74 | 8dda364e | Iustin Pop | for tiered allocation. |

75 | 8dda364e | Iustin Pop | |

76 | 49148d15 | Iustin Pop | CLUSTER_MEM, CLUSTER_DSK, CLUSTER_CPU, CLUSTER_NODES |

77 | 49148d15 | Iustin Pop | These represent the total memory, disk, CPU count and total nodes in |

78 | 49148d15 | Iustin Pop | the cluster. |

79 | 49148d15 | Iustin Pop | |

80 | 49148d15 | Iustin Pop | INI_SCORE, FIN_SCORE |

81 | 49148d15 | Iustin Pop | These are the initial (current) and final cluster score (see the hbal |

82 | 49148d15 | Iustin Pop | man page for details about the scoring algorithm). |

83 | 49148d15 | Iustin Pop | |

84 | 49148d15 | Iustin Pop | INI_INST_CNT, FIN_INST_CNT |

85 | 49148d15 | Iustin Pop | The initial and final instance count. |

86 | 49148d15 | Iustin Pop | |

87 | 49148d15 | Iustin Pop | INI_MEM_FREE, FIN_MEM_FREE |

88 | 49148d15 | Iustin Pop | The initial and final total free memory in the cluster (but this |

89 | 49148d15 | Iustin Pop | doesn't necessarily mean available for use). |

90 | 49148d15 | Iustin Pop | |

91 | 49148d15 | Iustin Pop | INI_MEM_AVAIL, FIN_MEM_AVAIL |

92 | 49148d15 | Iustin Pop | The initial and final total available memory for allocation in the |

93 | 49148d15 | Iustin Pop | cluster. If allocating redundant instances, new instances could |

94 | 49148d15 | Iustin Pop | increase the reserved memory so it doesn't necessarily mean the |

95 | 49148d15 | Iustin Pop | entirety of this memory can be used for new instance allocations. |

96 | 49148d15 | Iustin Pop | |

97 | 49148d15 | Iustin Pop | INI_MEM_RESVD, FIN_MEM_RESVD |

98 | 49148d15 | Iustin Pop | The initial and final reserved memory (for redundancy/N+1 purposes). |

99 | 49148d15 | Iustin Pop | |

100 | 49148d15 | Iustin Pop | INI_MEM_INST, FIN_MEM_INST |

101 | 49148d15 | Iustin Pop | The initial and final memory used for instances (actual runtime used |

102 | 49148d15 | Iustin Pop | RAM). |

103 | 49148d15 | Iustin Pop | |

104 | 49148d15 | Iustin Pop | INI_MEM_OVERHEAD, FIN_MEM_OVERHEAD |

105 | 49148d15 | Iustin Pop | The initial and final memory overhead--memory used for the node |

106 | 49148d15 | Iustin Pop | itself and unacounted memory (e.g. due to hypervisor overhead). |

107 | 49148d15 | Iustin Pop | |

108 | 49148d15 | Iustin Pop | INI_MEM_EFF, HTS_INI_MEM_EFF |

109 | 49148d15 | Iustin Pop | The initial and final memory efficiency, represented as instance |

110 | 49148d15 | Iustin Pop | memory divided by total memory. |

111 | 49148d15 | Iustin Pop | |

112 | 49148d15 | Iustin Pop | INI_DSK_FREE, INI_DSK_AVAIL, INI_DSK_RESVD, INI_DSK_INST, INI_DSK_EFF |

113 | 49148d15 | Iustin Pop | Initial disk stats, similar to the memory ones. |

114 | 49148d15 | Iustin Pop | |

115 | 49148d15 | Iustin Pop | FIN_DSK_FREE, FIN_DSK_AVAIL, FIN_DSK_RESVD, FIN_DSK_INST, FIN_DSK_EFF |

116 | 49148d15 | Iustin Pop | Final disk stats, similar to the memory ones. |

117 | 49148d15 | Iustin Pop | |

118 | 49148d15 | Iustin Pop | INI_CPU_INST, FIN_CPU_INST |

119 | 49148d15 | Iustin Pop | Initial and final number of virtual CPUs used by instances. |

120 | 49148d15 | Iustin Pop | |

121 | 49148d15 | Iustin Pop | INI_CPU_EFF, FIN_CPU_EFF |

122 | 49148d15 | Iustin Pop | The initial and final CPU efficiency, represented as the count of |

123 | 49148d15 | Iustin Pop | virtual instance CPUs divided by the total physical CPU count. |

124 | 49148d15 | Iustin Pop | |

125 | 49148d15 | Iustin Pop | INI_MNODE_MEM_AVAIL, FIN_MNODE_MEM_AVAIL |

126 | 49148d15 | Iustin Pop | The initial and final maximum per-node available memory. This is not |

127 | 49148d15 | Iustin Pop | very useful as a metric but can give an impression of the status of |

128 | 49148d15 | Iustin Pop | the nodes; as an example, this value restricts the maximum instance |

129 | 49148d15 | Iustin Pop | size that can be still created on the cluster. |

130 | 49148d15 | Iustin Pop | |

131 | 49148d15 | Iustin Pop | INI_MNODE_DSK_AVAIL, FIN_MNODE_DSK_AVAIL |

132 | 49148d15 | Iustin Pop | Like the above but for disk. |

133 | 49148d15 | Iustin Pop | |

134 | 49148d15 | Iustin Pop | TSPEC |

135 | 49148d15 | Iustin Pop | If the tiered allocation mode has been enabled, this parameter holds |

136 | 49148d15 | Iustin Pop | the pairs of specifications and counts of instances that can be |

137 | 49148d15 | Iustin Pop | created in this mode. The value of the key is a space-separated list |

138 | 49148d15 | Iustin Pop | of values; each value is of the form *memory,disk,vcpu=count* where |

139 | 49148d15 | Iustin Pop | the memory, disk and vcpu are the values for the current spec, and |

140 | 49148d15 | Iustin Pop | count is how many instances of this spec can be created. A complete |

141 | 49148d15 | Iustin Pop | value for this variable could be: **4096,102400,2=225 |

142 | 49148d15 | Iustin Pop | 2560,102400,2=20 512,102400,2=21**. |

143 | 49148d15 | Iustin Pop | |

144 | 49148d15 | Iustin Pop | KM_USED_CPU, KM_USED_NPU, KM_USED_MEM, KM_USED_DSK |

145 | 49148d15 | Iustin Pop | These represents the metrics of used resources at the start of the |

146 | 49148d15 | Iustin Pop | computation (only for tiered allocation mode). The NPU value is |

147 | 49148d15 | Iustin Pop | "normalized" CPU count, i.e. the number of virtual CPUs divided by |

148 | 49148d15 | Iustin Pop | the maximum ratio of the virtual to physical CPUs. |

149 | 49148d15 | Iustin Pop | |

150 | 49148d15 | Iustin Pop | KM_POOL_CPU, KM_POOL_NPU, KM_POOL_MEM, KM_POOL_DSK |

151 | 49148d15 | Iustin Pop | These represents the total resources allocated during the tiered |

152 | 49148d15 | Iustin Pop | allocation process. In effect, they represent how much is readily |

153 | 49148d15 | Iustin Pop | available for allocation. |

154 | 49148d15 | Iustin Pop | |

155 | 49148d15 | Iustin Pop | KM_UNAV_CPU, KM_POOL_NPU, KM_UNAV_MEM, KM_UNAV_DSK |

156 | 49148d15 | Iustin Pop | These represents the resources left over (either free as in |

157 | 49148d15 | Iustin Pop | unallocable or allocable on their own) after the tiered allocation |

158 | 49148d15 | Iustin Pop | has been completed. They represent better the actual unallocable |

159 | 49148d15 | Iustin Pop | resources, because some other resource has been exhausted. For |

160 | 49148d15 | Iustin Pop | example, the cluster might still have 100GiB disk free, but with no |

161 | 49148d15 | Iustin Pop | memory left for instances, we cannot allocate another instance, so |

162 | 49148d15 | Iustin Pop | in effect the disk space is unallocable. Note that the CPUs here |

163 | 49148d15 | Iustin Pop | represent instance virtual CPUs, and in case the *--max-cpu* option |

164 | 49148d15 | Iustin Pop | hasn't been specified this will be -1. |

165 | 49148d15 | Iustin Pop | |

166 | 49148d15 | Iustin Pop | ALLOC_USAGE |

167 | 49148d15 | Iustin Pop | The current usage represented as initial number of instances divided |

168 | 49148d15 | Iustin Pop | per final number of instances. |

169 | 49148d15 | Iustin Pop | |

170 | 49148d15 | Iustin Pop | ALLOC_COUNT |

171 | 49148d15 | Iustin Pop | The number of instances allocated (delta between FIN_INST_CNT and |

172 | 49148d15 | Iustin Pop | INI_INST_CNT). |

173 | 49148d15 | Iustin Pop | |

174 | 49148d15 | Iustin Pop | ALLOC_FAIL*_CNT |

175 | 49148d15 | Iustin Pop | For the last attemp at allocations (which would have increased |

176 | 49148d15 | Iustin Pop | FIN_INST_CNT with one, if it had succeeded), this is the count of |

177 | 49148d15 | Iustin Pop | the failure reasons per failure type; currently defined are FAILMEM, |

178 | 49148d15 | Iustin Pop | FAILDISK and FAILCPU which represent errors due to not enough |

179 | 49148d15 | Iustin Pop | memory, disk and CPUs, and FAILN1 which represents a non N+1 |

180 | 49148d15 | Iustin Pop | compliant cluster on which we can't allocate instances at all. |

181 | 49148d15 | Iustin Pop | |

182 | 49148d15 | Iustin Pop | ALLOC_FAIL_REASON |

183 | 49148d15 | Iustin Pop | The reason for most of the failures, being one of the above FAIL* |

184 | 49148d15 | Iustin Pop | strings. |

185 | 49148d15 | Iustin Pop | |

186 | 49148d15 | Iustin Pop | OK |

187 | 49148d15 | Iustin Pop | A marker representing the successful end of the computation, and |

188 | 49148d15 | Iustin Pop | having value "1". If this key is not present in the output it means |

189 | 49148d15 | Iustin Pop | that the computation failed and any values present should not be |

190 | 49148d15 | Iustin Pop | relied upon. |

191 | 49148d15 | Iustin Pop | |

192 | 49148d15 | Iustin Pop | If the tiered allocation mode is enabled, then many of the INI_/FIN_ |

193 | 49148d15 | Iustin Pop | metrics will be also displayed with a TRL_ prefix, and denote the |

194 | 49148d15 | Iustin Pop | cluster status at the end of the tiered allocation run. |

195 | 49148d15 | Iustin Pop | |

196 | 375969eb | Iustin Pop | The human output format should be self-explanatory, so it is not |

197 | 375969eb | Iustin Pop | described further. |

198 | 375969eb | Iustin Pop | |

199 | 49148d15 | Iustin Pop | OPTIONS |

200 | 49148d15 | Iustin Pop | ------- |

201 | 49148d15 | Iustin Pop | |

202 | 49148d15 | Iustin Pop | The options that can be passed to the program are as follows: |

203 | 49148d15 | Iustin Pop | |

204 | 49148d15 | Iustin Pop | --memory *mem* |

205 | 247f77b7 | Iustin Pop | The memory size of the instances to be placed (defaults to |

206 | 247f77b7 | Iustin Pop | 4GiB). Units can be used (see below for more details). |

207 | 49148d15 | Iustin Pop | |

208 | 49148d15 | Iustin Pop | --disk *disk* |

209 | 247f77b7 | Iustin Pop | The disk size of the instances to be placed (defaults to |

210 | 247f77b7 | Iustin Pop | 100GiB). Units can be used. |

211 | 49148d15 | Iustin Pop | |

212 | 9ef605a6 | Iustin Pop | --disk-template *template* |

213 | 9ef605a6 | Iustin Pop | The disk template for the instance; one of the Ganeti disk templates |

214 | 9ef605a6 | Iustin Pop | (e.g. plain, drbd, so on) should be passed in. |

215 | 49148d15 | Iustin Pop | |

216 | 49148d15 | Iustin Pop | --vcpus *vcpus* |

217 | 49148d15 | Iustin Pop | The number of VCPUs of the instances to be placed (defaults to 1). |

218 | 49148d15 | Iustin Pop | |

219 | 49148d15 | Iustin Pop | --max-cpu=*cpu-ratio* |

220 | 247f77b7 | Iustin Pop | The maximum virtual to physical cpu ratio, as a floating point number |

221 | 247f77b7 | Iustin Pop | greater than or equal to one. For example, specifying *cpu-ratio* as |

222 | 247f77b7 | Iustin Pop | **2.5** means that, for a 4-cpu machine, a maximum of 10 virtual cpus |

223 | 247f77b7 | Iustin Pop | should be allowed to be in use for primary instances. A value of |

224 | 247f77b7 | Iustin Pop | exactly one means there will be no over-subscription of CPU (except |

225 | 247f77b7 | Iustin Pop | for the CPU time used by the node itself), and values below one do not |

226 | 247f77b7 | Iustin Pop | make sense, as that means other resources (e.g. disk) won't be fully |

227 | 247f77b7 | Iustin Pop | utilised due to CPU restrictions. |

228 | 49148d15 | Iustin Pop | |

229 | 49148d15 | Iustin Pop | --min-disk=*disk-ratio* |

230 | 49148d15 | Iustin Pop | The minimum amount of free disk space remaining, as a floating point |

231 | 49148d15 | Iustin Pop | number. For example, specifying *disk-ratio* as **0.25** means that |

232 | 49148d15 | Iustin Pop | at least one quarter of disk space should be left free on nodes. |

233 | 49148d15 | Iustin Pop | |

234 | b8a2c0ab | Iustin Pop | -l *rounds*, --max-length=*rounds* |

235 | b8a2c0ab | Iustin Pop | Restrict the number of instance allocations to this length. This is |

236 | b8a2c0ab | Iustin Pop | not very useful in practice, but can be used for testing hspace |

237 | b8a2c0ab | Iustin Pop | itself, or to limit the runtime for very big clusters. |

238 | b8a2c0ab | Iustin Pop | |

239 | 49148d15 | Iustin Pop | -p, --print-nodes |

240 | d7731f51 | Iustin Pop | Prints the before and after node status, in a format designed to allow |

241 | d7731f51 | Iustin Pop | the user to understand the node's most important parameters. See the |

242 | d7731f51 | Iustin Pop | man page **htools**(1) for more details about this option. |

243 | 49148d15 | Iustin Pop | |

244 | 49148d15 | Iustin Pop | -O *name* |

245 | 49148d15 | Iustin Pop | This option (which can be given multiple times) will mark nodes as |

246 | 49148d15 | Iustin Pop | being *offline*. This means a couple of things: |

247 | 49148d15 | Iustin Pop | |

248 | 49148d15 | Iustin Pop | - instances won't be placed on these nodes, not even temporarily; |

249 | 49148d15 | Iustin Pop | e.g. the *replace primary* move is not available if the secondary |

250 | 49148d15 | Iustin Pop | node is offline, since this move requires a failover. |

251 | 49148d15 | Iustin Pop | - these nodes will not be included in the score calculation (except |

252 | 49148d15 | Iustin Pop | for the percentage of instances on offline nodes) |

253 | 49148d15 | Iustin Pop | |

254 | 49148d15 | Iustin Pop | Note that the algorithm will also mark as offline any nodes which |

255 | 49148d15 | Iustin Pop | are reported by RAPI as such, or that have "?" in file-based input |

256 | 49148d15 | Iustin Pop | in any numeric fields. |

257 | 49148d15 | Iustin Pop | |

258 | 49148d15 | Iustin Pop | -S *filename*, --save-cluster=*filename* |

259 | 49148d15 | Iustin Pop | If given, the state of the cluster at the end of the allocation is |

260 | 49148d15 | Iustin Pop | saved to a file named *filename.alloc*, and if tiered allocation is |

261 | 49148d15 | Iustin Pop | enabled, the state after tiered allocation will be saved to |

262 | 49148d15 | Iustin Pop | *filename.tiered*. This allows re-feeding the cluster state to |

263 | 49148d15 | Iustin Pop | either hspace itself (with different parameters) or for example |

264 | acd9fa11 | Iustin Pop | hbal, via the ``-t`` option. |

265 | acd9fa11 | Iustin Pop | |

266 | acd9fa11 | Iustin Pop | -t *datafile*, --text-data=*datafile* |

267 | acd9fa11 | Iustin Pop | Backend specification: the name of the file holding node and instance |

268 | acd9fa11 | Iustin Pop | information (if not collecting via RAPI or LUXI). This or one of the |

269 | acd9fa11 | Iustin Pop | other backends must be selected. The option is described in the man |

270 | acd9fa11 | Iustin Pop | page **htools**(1). |

271 | 49148d15 | Iustin Pop | |

272 | 49148d15 | Iustin Pop | -m *cluster* |

273 | acd9fa11 | Iustin Pop | Backend specification: collect data directly from the *cluster* given |

274 | acd9fa11 | Iustin Pop | as an argument via RAPI. The option is described in the man page |

275 | acd9fa11 | Iustin Pop | **htools**(1). |

276 | 49148d15 | Iustin Pop | |

277 | 49148d15 | Iustin Pop | -L [*path*] |

278 | acd9fa11 | Iustin Pop | Backend specification: collect data directly from the master daemon, |

279 | acd9fa11 | Iustin Pop | which is to be contacted via LUXI (an internal Ganeti protocol). The |

280 | acd9fa11 | Iustin Pop | option is described in the man page **htools**(1). |

281 | 49148d15 | Iustin Pop | |

282 | 49148d15 | Iustin Pop | --simulate *description* |

283 | acd9fa11 | Iustin Pop | Backend specification: similar to the **-t** option, this allows |

284 | acd9fa11 | Iustin Pop | overriding the cluster data with a simulated cluster. For details |

285 | acd9fa11 | Iustin Pop | about the description, see the man page **htools**(1). |

286 | 49148d15 | Iustin Pop | |

287 | 49148d15 | Iustin Pop | --tiered-alloc *spec* |

288 | 49148d15 | Iustin Pop | Besides the standard, fixed-size allocation, also do a tiered |

289 | 49148d15 | Iustin Pop | allocation scheme where the algorithm starts from the given |

290 | 49148d15 | Iustin Pop | specification and allocates until there is no more space; then it |

291 | 49148d15 | Iustin Pop | decreases the specification and tries the allocation again. The |

292 | 49148d15 | Iustin Pop | decrease is done on the matric that last failed during |

293 | 49148d15 | Iustin Pop | allocation. The specification given is similar to the *--simulate* |

294 | 49148d15 | Iustin Pop | option and it holds: |

295 | 49148d15 | Iustin Pop | |

296 | 247f77b7 | Iustin Pop | - the disk size of the instance (units can be used) |

297 | 247f77b7 | Iustin Pop | - the memory size of the instance (units can be used) |

298 | 49148d15 | Iustin Pop | - the vcpu count for the insance |

299 | 49148d15 | Iustin Pop | |

300 | 247f77b7 | Iustin Pop | An example description would be *100G,4g,2* describing an initial |

301 | 247f77b7 | Iustin Pop | starting specification of 100GB of disk space, 4GiB of memory and 2 |

302 | 49148d15 | Iustin Pop | VCPUs. |

303 | 49148d15 | Iustin Pop | |

304 | 49148d15 | Iustin Pop | Also note that the normal allocation and the tiered allocation are |

305 | 49148d15 | Iustin Pop | independent, and both start from the initial cluster state; as such, |

306 | 49148d15 | Iustin Pop | the instance count for these two modes are not related one to |

307 | 49148d15 | Iustin Pop | another. |

308 | 49148d15 | Iustin Pop | |

309 | 375969eb | Iustin Pop | --machines-readable[=*choice*] |

310 | 375969eb | Iustin Pop | By default, the output of the program is in "human-readable" format, |

311 | 375969eb | Iustin Pop | i.e. text descriptions. By passing this flag you can either enable |

312 | 375969eb | Iustin Pop | (``--machine-readable`` or ``--machine-readable=yes``) or explicitly |

313 | 375969eb | Iustin Pop | disable (``--machine-readable=no``) the machine readable format |

314 | 375969eb | Iustin Pop | described above. |

315 | 375969eb | Iustin Pop | |

316 | 49148d15 | Iustin Pop | -v, --verbose |

317 | 49148d15 | Iustin Pop | Increase the output verbosity. Each usage of this option will |

318 | 49148d15 | Iustin Pop | increase the verbosity (currently more than 2 doesn't make sense) |

319 | 49148d15 | Iustin Pop | from the default of one. |

320 | 49148d15 | Iustin Pop | |

321 | 49148d15 | Iustin Pop | -q, --quiet |

322 | 49148d15 | Iustin Pop | Decrease the output verbosity. Each usage of this option will |

323 | 49148d15 | Iustin Pop | decrease the verbosity (less than zero doesn't make sense) from the |

324 | 49148d15 | Iustin Pop | default of one. |

325 | 49148d15 | Iustin Pop | |

326 | 49148d15 | Iustin Pop | -V, --version |

327 | 49148d15 | Iustin Pop | Just show the program version and exit. |

328 | 49148d15 | Iustin Pop | |

329 | 247f77b7 | Iustin Pop | UNITS |

330 | 247f77b7 | Iustin Pop | ~~~~~ |

331 | 247f77b7 | Iustin Pop | |

332 | 247f77b7 | Iustin Pop | By default, all unit-accepting options use mebibytes. Using the |

333 | 247f77b7 | Iustin Pop | lower-case letters of *m*, *g* and *t* (or their longer equivalents of |

334 | 247f77b7 | Iustin Pop | *mib*, *gib*, *tib*, for which case doesn't matter) explicit binary |

335 | 247f77b7 | Iustin Pop | units can be selected. Units in the SI system can be selected using the |

336 | 247f77b7 | Iustin Pop | upper-case letters of *M*, *G* and *T* (or their longer equivalents of |

337 | 247f77b7 | Iustin Pop | *MB*, *GB*, *TB*, for which case doesn't matter). |

338 | 247f77b7 | Iustin Pop | |

339 | 247f77b7 | Iustin Pop | More details about the difference between the SI and binary systems can |

340 | 247f77b7 | Iustin Pop | be read in the *units(7)* man page. |

341 | 247f77b7 | Iustin Pop | |

342 | 49148d15 | Iustin Pop | EXIT STATUS |

343 | 49148d15 | Iustin Pop | ----------- |

344 | 49148d15 | Iustin Pop | |

345 | 49148d15 | Iustin Pop | The exist status of the command will be zero, unless for some reason |

346 | 49148d15 | Iustin Pop | the algorithm fatally failed (e.g. wrong node or instance data). |

347 | 49148d15 | Iustin Pop | |

348 | 49148d15 | Iustin Pop | BUGS |

349 | 49148d15 | Iustin Pop | ---- |

350 | 49148d15 | Iustin Pop | |

351 | 49148d15 | Iustin Pop | The algorithm is highly dependent on the number of nodes; its runtime |

352 | 49148d15 | Iustin Pop | grows exponentially with this number, and as such is impractical for |

353 | 49148d15 | Iustin Pop | really big clusters. |

354 | 49148d15 | Iustin Pop | |

355 | 49148d15 | Iustin Pop | The algorithm doesn't rebalance the cluster or try to get the optimal |

356 | 49148d15 | Iustin Pop | fit; it just allocates in the best place for the current step, without |

357 | 49148d15 | Iustin Pop | taking into consideration the impact on future placements. |

358 | 9ff4f2c0 | Michael Hanselmann | |

359 | 9ff4f2c0 | Michael Hanselmann | .. vim: set textwidth=72 : |

360 | 9ff4f2c0 | Michael Hanselmann | .. Local Variables: |

361 | 9ff4f2c0 | Michael Hanselmann | .. mode: rst |

362 | 9ff4f2c0 | Michael Hanselmann | .. fill-column: 72 |

363 | 9ff4f2c0 | Michael Hanselmann | .. End: |