Provided by: ceph-common_10.1.2-0ubuntu1_amd64 bug


       ceph-dencoder - ceph encoder/decoder utility


       ceph-dencoder [commands...]


       ceph-dencoder  is  a  utility  to  encode,  decode,  and dump ceph data
       structures.  It is used for debugging  and  for  testing  inter-version

       ceph-dencoder  takes  a  simple  list  of commands and performs them in


              Print the version string for the ceph-dencoder binary.

       import <file>
              Read a binary blob of encoded data from the given file.  It will
              be placed in an in-memory buffer.

       export <file>
              Write  the contents of the current in-memory buffer to the given

              List the data types known to this build of ceph-dencoder.

       type <name>
              Select the given type for future encode or decode operations.

       skip <bytes>
              Seek  <bytes>  into  the  imported  file  before  reading   data
              structure,  use  this  with  objects that have a preamble/header
              before the object of interest.

       decode Decode the contents of the in-memory buffer into an instance  of
              the previously selected type.  If there is an error, report it.

       encode Encode  the contents of the in-memory instance of the previously
              selected type to the in-memory buffer.

              Print a JSON-formatted description of the in-memory object.

              Print the number of built-in test  instances  of  the  previosly
              selected type that ceph-dencoder is able to generate.

       select_test <n>
              Select  the  given  build-in  test  instance  as a the in-memory
              instance of the type.

              Print the decimal value of the feature  set  supported  by  this
              version of ceph-dencoder.  Each bit represents a feature.  These
              correspond       to       CEPH_FEATURE_*       defines        in

       set_features <f>
              Set  the  feature bits provided to encode to f.  This allows you
              to encode objects such  that  they  can  be  understood  by  old
              versions of the software (for those types that support it).


       Say  you  want to examine an attribute on an object stored by ceph-osd.
       You can do this:

          $ cd /mnt/osd.12/current/2.b_head
          $ attr -l foo_bar_head_EFE6384B
          Attribute "ceph.snapset" has a 31 byte value for foo_bar_head_EFE6384B
          Attribute "ceph._" has a 195 byte value for foo_bar_head_EFE6384B
          $ attr foo_bar_head_EFE6384B -g ceph._ -q > /tmp/a
          $ ceph-dencoder type object_info_t import /tmp/a decode dump_json
          { "oid": { "oid": "foo",
                "key": "bar",
                "snapid": -2,
                "hash": 4024842315,
                "max": 0},
            "locator": { "pool": 2,
                "preferred": -1,
                "key": "bar"},
            "category": "",
            "version": "9'1",
            "prior_version": "0'0",
            "last_reqid": "client.4116.0:1",
            "size": 1681,
            "mtime": "2012-02-21 08:58:23.666639",
            "lost": 0,
            "wrlock_by": "unknown.0.0:0",
            "snaps": [],
            "truncate_seq": 0,
            "truncate_size": 0,
            "watchers": {}}

       Alternatively, perhaps you wish to dump  an  internal  CephFS  metadata
       object, you might do that like this:

          $ rados -p metadata get mds_snaptable mds_snaptable.bin
          $ ceph-dencoder type SnapServer skip 8 import mds_snaptable.bin decode dump_json
          { "snapserver": { "last_snap": 1,
             "pending_noop": [],
             "snaps": [],
             "need_to_purge": {},
             "pending_create": [],
             "pending_destroy": []}}


       ceph-dencoder  is  part  of  Ceph,  a  massively scalable, open-source,
       distributed storage system. Please refer to the Ceph  documentation  at for more information.




       2010-2014,  Inktank  Storage,  Inc.  and  contributors.  Licensed under
       Creative Commons BY-SA