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

# [NAME](#NAME)

ceph-dencoder - ceph encoder/decoder utility

# [SYNOPSIS](#SYNOPSIS)

```
ceph-dencoder [commands...]
```

# [DESCRIPTION](#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](#COMMANDS)

[**version**](#version)

Print the version string for the **ceph-dencoder** binary.

[**import &lt;file&gt;**](#import)

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

[**export &lt;file&gt;**](#export)

Write the contents of the current in-memory buffer to the given file.

[**list\_types**](#list_types)

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

[**type &lt;name&gt;**](#type)

Select the given type for future **encode** or **decode** operations.

[**skip &lt;bytes&gt;**](#skip)

Seek &lt;bytes&gt; into the imported file before reading data structure, use this with objects that have a preamble/header before the object of interest.

[**decode**](#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)

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

[**dump\_json**](#dump_json)

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

[**count\_tests**](#count_tests)

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

[**select\_test &lt;n&gt;**](#select_test)

Select the given built-in test instance as the in-memory instance of the type.

[**get\_features**](#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 &lt;f&gt;**](#set_features)

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](#EXAMPLE)

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": []}}
```

# [AVAILABILITY](#AVAILABILITY)

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

# [SEE ALSO](#SEE_ALSO)

ceph &lt;&gt;(8)

# [Copyright](#Copyright)

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

September 19, 2026 dev

---

Document: ceph-dencoder(8) from ceph-18 18.2.8-r10 (Chainguard OS)
Source: https://github.com/ceph/ceph.git
