]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | $ crushtool --help |
2 | usage: crushtool ... | |
3 | ||
4 | Display, modify and test a crush map | |
5 | ||
6 | There are five stages, running one after the other: | |
7 | ||
8 | - input/build | |
9 | - tunables adjustments | |
10 | - modifications | |
11 | - display/test | |
12 | - output | |
13 | ||
14 | Options that are not specific to a stage. | |
15 | ||
16 | [--infn|-i infile] | |
17 | read the crush map from infile | |
18 | ||
19 | Options for the input/build stage | |
20 | ||
21 | --decompile|-d map decompile a crush map to source | |
22 | [--outfn|-o outfile] | |
23 | specify output for for (de)compilation | |
24 | --compile|-c map.txt compile a map from source | |
25 | --enable-unsafe-tunables | |
26 | compile with unsafe tunables | |
27 | --build --num_osds N layer1 ... | |
28 | build a new map, where each 'layer' is | |
29 | 'name (uniform|straw2|straw|list|tree) size' | |
30 | ||
31 | Options for the tunables adjustments stage | |
32 | ||
33 | --set-choose-local-tries N | |
34 | set choose local retries before re-descent | |
35 | --set-choose-local-fallback-tries N | |
36 | set choose local retries using fallback | |
37 | permutation before re-descent | |
38 | --set-choose-total-tries N | |
39 | set choose total descent attempts | |
40 | --set-chooseleaf-descend-once <0|1> | |
41 | set chooseleaf to (not) retry the recursive descent | |
42 | --set-chooseleaf-vary-r <0|1> | |
43 | set chooseleaf to (not) vary r based on parent | |
44 | --set-chooseleaf-stable <0|1> | |
45 | set chooseleaf firstn to (not) return stable results | |
46 | ||
47 | Options for the modifications stage | |
48 | ||
49 | -i mapfn --add-item id weight name [--loc type name ...] | |
50 | insert an item into the hierarchy at the | |
51 | given location | |
52 | -i mapfn --update-item id weight name [--loc type name ...] | |
53 | insert or move an item into the hierarchy at the | |
54 | given location | |
55 | -i mapfn --remove-item name | |
56 | remove the given item | |
57 | -i mapfn --reweight-item name weight | |
58 | reweight a given item (and adjust ancestor | |
59 | weights as needed) | |
94b18763 | 60 | -i mapfn --add-bucket name type [--loc type name ...] |
11fdf7f2 | 61 | insert a bucket into the hierarchy at the given |
94b18763 FG |
62 | location |
63 | -i mapfn --move name --loc type name ... | |
64 | move the given item to specified location | |
7c673cae | 65 | -i mapfn --reweight recalculate all bucket weights |
f64942e4 AA |
66 | -i mapfn --rebuild-class-roots |
67 | rebuild the per-class shadow trees (normally a no-op) | |
31f18b77 FG |
68 | -i mapfn --create-simple-rule name root type mode |
69 | create crush rule <name> to start from <root>, | |
70 | replicate across buckets of type <type>, using | |
71 | a choose mode of <firstn|indep> | |
224ce89b WB |
72 | -i mapfn --create-replicated-rule name root type |
73 | create crush rule <name> to start from <root>, | |
74 | replicate across buckets of type <type> | |
75 | --device-class <class> | |
76 | use device class <class> for new rule | |
31f18b77 FG |
77 | -i mapfn --remove-rule name |
78 | remove the specified crush rule | |
7c673cae FG |
79 | |
80 | Options for the display/test stage | |
81 | ||
82 | -f --format the format of --dump, defaults to json-pretty | |
83 | can be one of json, json-pretty, xml, xml-pretty, | |
84 | table, table-kv, html, html-pretty | |
85 | --dump dump the crush map | |
86 | --tree print map summary as a tree | |
9f95a23c TL |
87 | --bucket-tree print bucket map summary as a tree |
88 | --bucket-name specify bucket bucket name for bucket-tree | |
7c673cae FG |
89 | --check [max_id] check if any item is referencing an unknown name/type |
90 | -i mapfn --show-location id | |
91 | show location for given device id | |
92 | -i mapfn --test test a range of inputs on the map | |
93 | [--min-x x] [--max-x x] [--x x] | |
20effc67 TL |
94 | [--min-rule r] [--max-rule r] [--rule r] |
95 | [--min-rep n] [--max-rep n] [--num-rep n] | |
7c673cae FG |
96 | [--pool-id n] specifies pool id |
97 | [--batches b] split the CRUSH mapping into b > 1 rounds | |
98 | [--weight|-w devno weight] | |
99 | where weight is 0 to 1.0 | |
100 | [--simulate] simulate placements using a random | |
101 | number generator in place of the CRUSH | |
102 | algorithm | |
103 | --show-utilization show OSD usage | |
104 | --show-utilization-all | |
105 | include zero weight items | |
106 | --show-statistics show chi squared statistics | |
107 | --show-mappings show mappings | |
108 | --show-bad-mappings show bad mappings | |
109 | --show-choose-tries show choose tries histogram | |
110 | --output-name name | |
111 | prepend the data file(s) generated during the | |
112 | testing routine with name | |
113 | --output-csv | |
114 | export select data generated during testing routine | |
115 | to CSV files for off-line post-processing | |
116 | use --help-output for more information | |
f64942e4 AA |
117 | --reclassify transform legacy CRUSH map buckets and rules |
118 | by adding classes | |
119 | --reclassify-bucket <bucket-match> <class> <default-parent> | |
120 | --reclassify-root <bucket-name> <class> | |
121 | --set-subtree-class <bucket-name> <class> | |
122 | set class for all items beneath bucket-name | |
123 | --compare <otherfile> compare two maps using --test parameters | |
7c673cae FG |
124 | |
125 | Options for the output stage | |
126 | ||
127 | [--outfn|-o outfile] | |
128 | specify output for modified crush map | |
129 | ||
31f18b77 | 130 | |
7c673cae FG |
131 | $ crushtool --help-output |
132 | data output from testing routine ... | |
133 | absolute_weights | |
134 | the decimal weight of each OSD | |
135 | data layout: ROW MAJOR | |
136 | OSD id (int), weight (int) | |
137 | batch_device_expected_utilization_all | |
138 | the expected number of objects each OSD should receive per placement batch | |
139 | which may be a decimal value | |
140 | data layout: COLUMN MAJOR | |
141 | round (int), objects expected on OSD 0...OSD n (float) | |
142 | batch_device_utilization_all | |
143 | the number of objects stored on each OSD during each placement round | |
144 | data layout: COLUMN MAJOR | |
145 | round (int), objects stored on OSD 0...OSD n (int) | |
146 | device_utilization_all | |
147 | the number of objects stored on each OSD at the end of placements | |
148 | data_layout: ROW MAJOR | |
149 | OSD id (int), objects stored (int), objects expected (float) | |
150 | device_utilization | |
151 | the number of objects stored on each OSD marked 'up' at the end of placements | |
152 | data_layout: ROW MAJOR | |
153 | OSD id (int), objects stored (int), objects expected (float) | |
154 | placement_information | |
155 | the map of input -> OSD | |
156 | data_layout: ROW MAJOR | |
157 | input (int), OSD's mapped (int) | |
158 | proportional_weights_all | |
159 | the proportional weight of each OSD specified in the CRUSH map | |
160 | data_layout: ROW MAJOR | |
161 | OSD id (int), proportional weight (float) | |
162 | proportional_weights | |
163 | the proportional weight of each 'up' OSD specified in the CRUSH map | |
164 | data_layout: ROW MAJOR | |
165 | OSD id (int), proportional weight (float) |