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 --add-bucket name type [--loc type name ...]
61 insert a bucket into the hierachy at the given
63 -i mapfn --move name --loc type name ...
64 move the given item to specified location
65 -i mapfn --reweight recalculate all bucket weights
66 -i mapfn --create-simple-rule name root type mode
67 create crush rule <name> to start from <root>,
68 replicate across buckets of type <type>, using
69 a choose mode of <firstn|indep>
70 -i mapfn --create-replicated-rule name root type
71 create crush rule <name> to start from <root>,
72 replicate across buckets of type <type>
73 --device-class <class>
74 use device class <class> for new rule
75 -i mapfn --remove-rule name
76 remove the specified crush rule
78 Options for the display/test stage
80 -f --format the format of --dump, defaults to json-pretty
81 can be one of json, json-pretty, xml, xml-pretty,
82 table, table-kv, html, html-pretty
83 --dump dump the crush map
84 --tree print map summary as a tree
85 --check [max_id] check if any item is referencing an unknown name/type
86 -i mapfn --show-location id
87 show location for given device id
88 -i mapfn --test test a range of inputs on the map
89 [--min-x x] [--max-x x] [--x x]
90 [--min-rule r] [--max-rule r] [--rule r] [--ruleset rs]
92 [--pool-id n] specifies pool id
93 [--batches b] split the CRUSH mapping into b > 1 rounds
94 [--weight|-w devno weight]
95 where weight is 0 to 1.0
96 [--simulate] simulate placements using a random
97 number generator in place of the CRUSH
99 --show-utilization show OSD usage
100 --show-utilization-all
101 include zero weight items
102 --show-statistics show chi squared statistics
103 --show-mappings show mappings
104 --show-bad-mappings show bad mappings
105 --show-choose-tries show choose tries histogram
107 prepend the data file(s) generated during the
108 testing routine with name
110 export select data generated during testing routine
111 to CSV files for off-line post-processing
112 use --help-output for more information
114 Options for the output stage
117 specify output for modified crush map
120 $ crushtool --help-output
121 data output from testing routine ...
123 the decimal weight of each OSD
124 data layout: ROW MAJOR
125 OSD id (int), weight (int)
126 batch_device_expected_utilization_all
127 the expected number of objects each OSD should receive per placement batch
128 which may be a decimal value
129 data layout: COLUMN MAJOR
130 round (int), objects expected on OSD 0...OSD n (float)
131 batch_device_utilization_all
132 the number of objects stored on each OSD during each placement round
133 data layout: COLUMN MAJOR
134 round (int), objects stored on OSD 0...OSD n (int)
135 device_utilization_all
136 the number of objects stored on each OSD at the end of placements
137 data_layout: ROW MAJOR
138 OSD id (int), objects stored (int), objects expected (float)
140 the number of objects stored on each OSD marked 'up' at the end of placements
141 data_layout: ROW MAJOR
142 OSD id (int), objects stored (int), objects expected (float)
143 placement_information
144 the map of input -> OSD
145 data_layout: ROW MAJOR
146 input (int), OSD's mapped (int)
147 proportional_weights_all
148 the proportional weight of each OSD specified in the CRUSH map
149 data_layout: ROW MAJOR
150 OSD id (int), proportional weight (float)
152 the proportional weight of each 'up' OSD specified in the CRUSH map
153 data_layout: ROW MAJOR
154 OSD id (int), proportional weight (float)