Man Linux: Main Page and Category List

NAME

       crushtool - CRUSH map manipulation tool

SYNOPSIS

       crushtool  (  -d  map  | -c map.txt | --build numosds layer1 ... ) [ -o
       outfile [ --clobber ]]

DESCRIPTION

       crushtool is a utility that lets you  create,  compile,  and  decompile
       CRUSH map files.

       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):

              http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf

       The tool has three modes of operation.

       -c map.txt
              will compile a plaintext map.txt into a binary map file.

       -d map will  take  the  compiled  map and decompile it into a plaintext
              source file, suitable for editing.

       --build numosds layer1 ...
              will create a  relatively  generic  map  with  the  given  layer
              structure.  See below for examples.

OPTIONS

       -o outfile
              will specify the output file.

       --clobber
              will  allow  the  tool to overwrite an existing outfile (it will
              normally refuse).

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.

       Each layer consists of

              name ( uniform | list | tree | straw ) size

       The  first  element  is  the  name  for the elements in the layer (e.g.
       "rack").  Each element's name will be append a number to  the  provided
       name.

       The second component is the type of CRUSH bucket.

       The  third component is the maximum size of the bucket.  If the size is
       0, a single bucket will be generated that includes  everything  in  the
       preceeding layer.

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:

              crushtool  --build 128 shelf uniform 4 rack straw 8 root straw 0
              -o map

       To adjust the default (generic) mapping rules, we can

              crushtool -d map -o map.txt  # decompile

              vi map.txt                   # edit

              crushtool -c map.txt -o map  # recompile

AVAILABILITY

       crushtool is part of the Ceph distributed file system.  Please refer to
       the Ceph wiki at http://ceph.newdream.net/wiki for more information.

SEE ALSO

       ceph(8), osdmaptool(8), mkcephfs(8)