diff options
author | Sage Weil <sage@newdream.net> | 2009-03-10 20:38:47 -0700 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-03-10 20:38:47 -0700 |
commit | 2764df209e71b71a3a6a363d568044fa35b6a911 (patch) | |
tree | f76116abc288bb6a5b59233cee3005dd827609b2 /man/crushtool.8 | |
parent | 3214a01ed4087c987477793e5a9b2ce93cf25613 (diff) | |
download | ceph-2764df209e71b71a3a6a363d568044fa35b6a911.tar.gz |
man: crushtool, osdmaptool
Diffstat (limited to 'man/crushtool.8')
-rw-r--r-- | man/crushtool.8 | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/man/crushtool.8 b/man/crushtool.8 new file mode 100644 index 00000000000..228fc0e5c61 --- /dev/null +++ b/man/crushtool.8 @@ -0,0 +1,73 @@ +.TH CRUSHTOOL 8 +.SH NAME +crushtool \- CRUSH map manipulation tool +.SH SYNOPSIS +.B crushtool +( \fB\-d\fI map\fP | \fB\-c\fI map.txt\fP | \fB\-\-build\fI numosds layer1 ...\fP ) +[ \fB\-o\fI outfile\fP [ \fB\-\-clobber\fP ]] +.SH DESCRIPTION +.B crushtool +is a utility that lets you create, compile, and decompile CRUSH map files. +.PP +CRUSH is a pseudo-random data distribution algorithm that efficiently maps +input values (typically data objects) across a heterogeneous, hierarchically +structured device map. The algorithm was originally described in detail in +the following paper (although it has evolved some since then): +.IP +http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf +.PP +The tool has three modes of operation. +.TP +\fB\-c\fI map.txt\fP +will compile a plaintext \fImap.txt\fP into a binary map file. +.TP +\fB\-d\fI map\fP +will take the compiled \fImap\fP and decompile it into a plaintext source file, +suitable for editing. +.TP +\fB\-\-build\fI numosds layer1 ...\fP +will create a relatively generic map with the given layer structure. See below for examples. +.SH OPTIONS +.TP +\fB\-o\fI outfile\fP +will specify the output file. +.TP +\fB\-\-clobber\fP +will allow the tool to overwrite an existing \fIoutfile\fP (it will normally refuse). +.SH BUILDING A MAP +The build mode will generate relatively generic hierarchical maps. The first argument simply +specifies the number of devices (leaves) in the CRUSH hierarchy. Each layer describes how the +layer (or raw devices) preceeding it should be grouped. +.PP +Each \fIlayer\fP consists of +.IP +\fIname\fP ( uniform | list | tree | straw ) \fIsize\fP +.PP +The first element is the \fIname\fP for the elements in the layer (e.g. "rack"). Each element's +name will be append a number to the provided \fIname\fP. +.PP +The second component is the type of CRUSH bucket. +.PP +The third component is the maximum size of the bucket. If the size is \fI0\fP, a single bucket +will be generated that includes everything in the preceeding layer. +.SH EXAMPLE +Suppose we have 128 devices, each grouped into shelves with 4 devices each, and 8 shelves per +rack. We could create a three level hierarchy with: +.IP +crushtool --build 128 shelf uniform 4 rack straw 8 root straw 0 -o map +.PP +To adjust the default (generic) mapping rules, we can +.IP +crushtool -d map -o map.txt # decompile +.IP +vi map.txt # edit +.IP +crushtool -c map.txt -o map # recompile +.SH AVAILABILITY +.B crushtool +is part of the Ceph distributed file system. Please refer to the Ceph wiki at +http://ceph.newdream.net/wiki for more information. +.SH SEE ALSO +.BR ceph (8), +.BR osdmaptool (8), +.BR mkcephfs (8) |