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