CRUSHDIFF(8)

NAME
crushdiff - ceph crush map test tool

SYNOPSIS
crushdiff [ --osdmap osdmap ] [ --pg-dump pg-dump ]
[ --compiled ] [ --verbose ] command crushmap

DESCRIPTION

crushdiff is a utility that lets you test the effect of a crushmap change: number of pgs, objects, bytes moved. This is a wrapper around osdmaptool(8), relying on its --test-map-pgs-dump option to get the list of changed pgs. Additionally it uses pg stats to calculate the numbers of objects and bytes moved.

By default, crushdiff will use the cluster current osdmap and pg stats, which requires access to the cluster. Though one can use the --osdmap and --pg-dump options to test against previously obtained data.

OPTIONS

    --compiled
        The input/output crushmap is compiled. If the options is not specified the expected/returned crushmap is in txt (decompiled) format.

    --pg-dump <pg-dump>
        JSON output of ceph pg dump. If not specified crushdiff will try to get data running the command itself.

    --osdmap <osdmap>
        The cluster osdmap, obtained with ceph osd getmap command. If not specified crushdiff will try to get data running the command itself.

    --verbose
        Produce diagnostic output.

COMMANDS

    compare crushmap
        Compare the crushmap from crushmap file with the crushmap from the cluster osdmap. The output will show the expected number of pgs, objects, bytes moved when the new crushmap is installed.

    export crushmap
        Export crushmap to crushmap file from the cluster osdmap.

    import crushmap
        Import crushmap from crushmap file to the cluster osdmap.

EXAMPLE

Get the current crushmap:

            crushdiff export cm.txt

Edit the map:

            $EDITOR cm.txt

Check the result:

            crushdiff compare cm.txt

            79/416 (18.99%) pgs affected
            281/1392 (20.19%) objects affected
            80/1248 (6.41%) pg shards to move
            281/4176 (6.73%) pg object shards to move
            730.52Mi/10.55Gi (6.76%) bytes to move

When running with --verbose option the output will also contain detailed information about the affected pgs, like below:

            4.3     [0, 2, 1] -> [1, 4, 2]
            4.b     [0, 1, 3] -> [2, 1, 3]
            4.c     [4, 0, 1] -> [4, 1, 2]

i.e. a pg number, and its old and the new osd active sets.

If the result is satisfactory install the updated map:

            crushdiff import cm.txt

AVAILABILITY

crushdiff is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to the Ceph documentation at https://docs.ceph.com for more information.

SEE ALSO

ceph(8), crushtool(8), osdmaptool(8),

COPYRIGHT
2010-2014, Inktank Storage, Inc. and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0)