注意

本文档适用于 Ceph 的开发版本。

ceph-dencoder -- ceph encoder/decoder utility

概要

ceph-dencoder [commands…]

描述

ceph-dencoder 是一个用于编码、解码和转储 Ceph 数据结构的工具。它用于调试和测试版本间的兼容性。

ceph-dencoder 接受一个简单的命令列表并按顺序执行它们。

命令

version

打印 ceph-dencoder 二进制文件的版本字符串。

import <file>

从给定文件读取编码数据的二进制块。它将被放置在内存缓冲区中。

export <file>

将当前内存缓冲区的内容写入给定文件。

list_types

列出此 ceph-dencoder 构建版本已知的数据类型。

type <name>

选择给定类型以用于后续的 encodedecode 操作。

skip <bytes>

在读取数据结构之前,跳过导入文件中的 <bytes> 字节;当感兴趣的对象之前有前导/标头时使用此选项。

decode

将内存缓冲区的内容解码为先前选择的类型实例。如果出现错误,则报告错误。

encode

将先前选择的类型实例的内存内容编码到内存缓冲区中。

dump_json

打印内存对象的 JSON 格式描述。

count_tests

打印 ceph-dencoder 能够生成的先前选择类型的内置测试实例数量。

select_test <n>

选择给定内置测试实例作为该类型的内存实例。

get_features

打印此版本 ceph-dencoder 支持的功能集的十进制值。每个位代表一个功能。这些对应于 src/include/ceph_features.h 中的 CEPH_FEATURE_* 定义。

set_features <f>

将提供给 encode 的功能位设置为 f。这允许您以旧版本软件可以理解的方式编码对象(对于支持它的类型)。

示例

假设您想检查 ceph-osd 存储的对象上的属性。您可以这样做

$ 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": {}}

或者,您可能希望转储内部的 CephFS 元数据对象,您可以这样做

$ 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 是 Ceph 的一部分,Ceph 是一个可大规模扩展的、开源的分布式存储系统。请参阅 Ceph 文档(网址为 https://docs.ceph.net.cn)以获取更多信息。

另请参阅

ceph(8)

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入