4 Display, modify and test a crush map
6 There are five stages, running one after the other:
14 Options that are not specific to a stage.
17 read the crush map from infile
19 Options for the input/build stage
21 --decompile|-d map decompile a crush map to source
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'
31 Options for the tunables adjustments stage
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
47 Options for the modifications stage
49 -i mapfn --add-item id weight name [--loc type name ...]
50 insert an item into the hierarchy at the
52 -i mapfn --update-item id weight name [--loc type name ...]
53 insert or move an item into the hierarchy at the
55 -i mapfn --remove-item name
57 -i mapfn --reweight-item name weight
58 reweight a given item (and adjust ancestor
60 -i mapfn --reweight recalculate all bucket weights
61 -i mapfn --create-simple-rule name root type mode
62 create crush rule <name> to start from <root>,
63 replicate across buckets of type <type>, using
64 a choose mode of <firstn|indep>
65 -i mapfn --create-replicated-rule name root type
66 create crush rule <name> to start from <root>,
67 replicate across buckets of type <type>
68 --device-class <class>
69 use device class <class> for new rule
70 -i mapfn --remove-rule name
71 remove the specified crush rule
73 Options for the display/test stage
75 -f --format the format of --dump, defaults to json-pretty
76 can be one of json, json-pretty, xml, xml-pretty,
77 table, table-kv, html, html-pretty
78 --dump dump the crush map
79 --tree print map summary as a tree
80 --check [max_id] check if any item is referencing an unknown name/type
81 -i mapfn --show-location id
82 show location for given device id
83 -i mapfn --test test a range of inputs on the map
84 [--min-x x] [--max-x x] [--x x]
85 [--min-rule r] [--max-rule r] [--rule r] [--ruleset rs]
87 [--pool-id n] specifies pool id
88 [--batches b] split the CRUSH mapping into b > 1 rounds
89 [--weight|-w devno weight]
90 where weight is 0 to 1.0
91 [--simulate] simulate placements using a random
92 number generator in place of the CRUSH
94 --show-utilization show OSD usage
95 --show-utilization-all
96 include zero weight items
97 --show-statistics show chi squared statistics
98 --show-mappings show mappings
99 --show-bad-mappings show bad mappings
100 --show-choose-tries show choose tries histogram
102 prepend the data file(s) generated during the
103 testing routine with name
105 export select data generated during testing routine
106 to CSV files for off-line post-processing
107 use --help-output for more information
109 Options for the output stage
112 specify output for modified crush map
115 $ crushtool --help-output
116 data output from testing routine ...
118 the decimal weight of each OSD
119 data layout: ROW MAJOR
120 OSD id (int), weight (int)
121 batch_device_expected_utilization_all
122 the expected number of objects each OSD should receive per placement batch
123 which may be a decimal value
124 data layout: COLUMN MAJOR
125 round (int), objects expected on OSD 0...OSD n (float)
126 batch_device_utilization_all
127 the number of objects stored on each OSD during each placement round
128 data layout: COLUMN MAJOR
129 round (int), objects stored on OSD 0...OSD n (int)
130 device_utilization_all
131 the number of objects stored on each OSD at the end of placements
132 data_layout: ROW MAJOR
133 OSD id (int), objects stored (int), objects expected (float)
135 the number of objects stored on each OSD marked 'up' at the end of placements
136 data_layout: ROW MAJOR
137 OSD id (int), objects stored (int), objects expected (float)
138 placement_information
139 the map of input -> OSD
140 data_layout: ROW MAJOR
141 input (int), OSD's mapped (int)
142 proportional_weights_all
143 the proportional weight of each OSD specified in the CRUSH map
144 data_layout: ROW MAJOR
145 OSD id (int), proportional weight (float)
147 the proportional weight of each 'up' OSD specified in the CRUSH map
148 data_layout: ROW MAJOR
149 OSD id (int), proportional weight (float)