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