注意

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

crushdiff -- ceph crush映射测试工具

概要

crushdiff[ --osdmaposdmap] [ --pg-dumppg-dump]command crushmap

描述

crushdiff是一个允许你测试 crushmap 变更效果的实用程序:pg 数量、对象、移动字节数。这是一个围绕osdmaptool(8) 的包装器,依赖于它的--test-map-pgs-dump选项来获取已更改的 pg 列表。此外,它使用 pg 统计信息来计算移动的对象和字节数。

默认情况下,crushdiff将使用集群当前的 osdmap 和 pg--osdmap--pg-dump选项来测试先前获取的数据。

选项

--compiled

输入/输出的 crushmap 是编译的。如果未指定该选项,则预期的/返回的 crushmap 是在 txt(反编译)

--pg-dump <pg-dump>

ceph pg dumpceph pg dump的 JSON 输出。如果未指定crushdiff将尝试运行命令本身获取数据。

--osdmap <osdmap>

通过ceph osd getmap命令获取的集群 osdmap。如果crushdiff将尝试运行命令本身获取数据。

--详细

生成诊断输出。

Commands

compare crushmap

将来自crushmap文件的 crushmap 与集群 osdmap 中的 crushmap 进行比较。输出将显示当安装新的 crushmap 时预期的 pg 数、对象、移动字节数。

export crushmap

从集群 osdmap 导出 crushmap 到crushmap文件。

import crushmap

crushmap文件导入 crushmap 到集群 osdmap。

示例

获取当前的 crushmap:

crushdiff export cm.txt

编辑地图:

$EDITOR cm.txt

检查结果:

crushdiff compare cm.txt

79/416 (18.99%) pgs affected
281/1392 (20.19%) objects affected
80/1248 (6.41%) pg shards to move
281/4176 (6.73%) pg object shards to move
730.52Mi/10.55Gi (6.76%) bytes to move

当使用--详细选项运行时,输出还将包含受影响的 pg 的详细信息,如下所示:

4.3     [0, 2, 1] -> [1, 4, 2]
4.b     [0, 1, 3] -> [2, 1, 3]
4.c     [4, 0, 1] -> [4, 1, 2]

例如,一个 pg 号码及其旧的和新的 osd 活跃集。

如果结果令人满意,安装更新后的地图:

crushdiff import cm.txt

可用性

crushdiff是 Ceph 的一部分,Ceph 是一个大规模可扩展、开源的分布式存储系统。请参考 Ceph 文档在https://docs.ceph.com获取更多信息。

参见

ceph(8),crushtool(8),osdmaptool(8),

由 Ceph 基金会提供

Ceph 文档是一个由非盈利Ceph 基金会资助和托管的社会资源。如果您想支持此项目和其他工作,请考虑现在加入.