注意

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

crushdiff -- ceph crush map test tool

概要

crushdiff [ --osdmap osdmap ] [ --pg-dump pg-dump ] [ --compiled ] [ --verbose ] 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 dump 的 JSON 输出。如果未指定,crushdiff 将尝试运行命令本身来获取数据。

--osdmap <osdmap>

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

--verbose

生成诊断输出。

命令

compare crushmap

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

export crushmap

将集群 osdmap 中的 crushmap 导出到 crushmap 文件。

import crushmap

crushmap 文件中的 crushmap 导入到集群 osdmap。

示例

获取当前的 crushmap

crushdiff export cm.txt

编辑 map

$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

当使用 --verbose 选项运行时,输出还将包含有关受影响的 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 活动集。

如果结果令人满意,则安装更新后的 map

crushdiff import cm.txt

可用性

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

另请参阅

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

由 Ceph 基金会为您呈现

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