1CRUSHTOOL(8) System Manager's Manual CRUSHTOOL(8)
2
3
4
6 crushtool - CRUSH map manipulation tool
7
9 crushtool ( -d map | -c map.txt | --build numosds layer1 ... ) [ -o
10 outfile [ --clobber ]]
11
13 crushtool is a utility that lets you create, compile, and decompile
14 CRUSH map files.
15
16 CRUSH is a pseudo-random data distribution algorithm that efficiently
17 maps input values (typically data objects) across a heterogeneous,
18 hierarchically structured device map. The algorithm was originally
19 described in detail in the following paper (although it has evolved
20 some since then):
21
22 http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf
23
24 The tool has three modes of operation.
25
26 -c map.txt
27 will compile a plaintext map.txt into a binary map file.
28
29 -d map will take the compiled map and decompile it into a plaintext
30 source file, suitable for editing.
31
32 --build numosds layer1 ...
33 will create a relatively generic map with the given layer strucā
34 ture. See below for examples.
35
37 -o outfile
38 will specify the output file.
39
40 --clobber
41 will allow the tool to overwrite an existing outfile (it will
42 normally refuse).
43
45 The build mode will generate relatively generic hierarchical maps. The
46 first argument simply specifies the number of devices (leaves) in the
47 CRUSH hierarchy. Each layer describes how the layer (or raw devices)
48 preceeding it should be grouped.
49
50 Each layer consists of
51
52 name ( uniform | list | tree | straw ) size
53
54 The first element is the name for the elements in the layer (e.g.
55 "rack"). Each element's name will be append a number to the provided
56 name.
57
58 The second component is the type of CRUSH bucket.
59
60 The third component is the maximum size of the bucket. If the size is
61 0, a single bucket will be generated that includes everything in the
62 preceeding layer.
63
65 Suppose we have 128 devices, each grouped into shelves with 4 devices
66 each, and 8 shelves per rack. We could create a three level hierarchy
67 with:
68
69 crushtool --build 128 shelf uniform 4 rack straw 8 root straw 0
70 -o map
71
72 To adjust the default (generic) mapping rules, we can
73
74 crushtool -d map -o map.txt # decompile
75
76 vi map.txt # edit
77
78 crushtool -c map.txt -o map # recompile
79
81 crushtool is part of the Ceph distributed file system. Please refer to
82 the Ceph wiki at http://ceph.newdream.net/wiki for more information.
83
85 ceph(8), osdmaptool(8), mkcephfs(8)
86
87
88
89 CRUSHTOOL(8)