Scroll to navigation

CEPH-DENCODER(8) Ceph CEPH-DENCODER(8)

NAME

ceph-dencoder - ceph encoder/decoder utility

SYNOPSIS

ceph-dencoder [commands...]

DESCRIPTION

ceph-dencoder is a utility to encode, decode, and dump ceph data structures. It is used for debugging and for testing inter-version compatibility.
ceph-dencoder takes a simple list of commands and performs them in order.

COMMANDS

version
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 file.

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

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

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.

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

count_tests
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.

get_features
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 src/include/ceph_features.h.

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

EXAMPLE

Say you want to examine an attribute on an object stored by ceph-osd. You can do:
$ 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": {}}


AVAILABILITY

ceph-dencoder is part of the Ceph distributed storage system. Please refer to the Ceph documentation at http://ceph.com/docs for more information.

SEE ALSO

ceph(8)

COPYRIGHT

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