5.4. 纠删代码插件


Ceph 支持通过插件架构进行评分码,这意味着您可以使用不同类型的算法创建纠删代码池。Ceph 支持 Jerasure。

jerasure 插件是最通用的和灵活的插件。这也是 Ceph 纠删代码池的默认设置。

jerasure 插件封装 JerasureH 库。有关参数的详细信息,请参阅 jerasure 文档。

要使用 jerasure 插件创建新的纠删代码配置集,请运行以下命令:

语法

ceph osd erasure-code-profile set NAME \
     plugin=jerasure \
     k=DATA_CHUNKS \
     m=DATA_CHUNKS \
     technique=TECHNIQUE \
     [crush-root=ROOT] \
     [crush-failure-domain=BUCKET_TYPE] \
     [directory=DIRECTORY] \
     [--force]
Copy to Clipboard Toggle word wrap

其中:

k
描述
每个对象分割为 data-chunks 部分,各自存储在不同的 OSD 中。
类型
整数
必填
是。
示例
4
m
描述
每个对象 的计算编码区块,并将其存储在不同的 OSD 中。编码区块数也是可以停机的 OSD 的数量,而不丢失数据。
类型
整数
必填
是。
示例
2
technique
描述
更灵活的技术被 reed_sol_van ;它足以设置 kmcauchy_good 技术可能会更快,但您需要仔细选择 packetsize。所有 reed_sol_r6_op,liberation,blaum_roth,liber8tionRAID6 等效的,它们只能在 m=2 中配置。
类型
字符串
必填
No.
有效设置
reed_sol_vanreed_sol_r6_opcauchy_origcauchy_goodliberationblaum_rothliber8tion
默认
reed_sol_van
packetsize
描述
编码将一次对 字节大小 的数据包进行。选择正确的数据包大小比较困难。jerasure 文档包含关于此主题的大量信息。
类型
整数
必填
No.
默认
2048
crush-root
描述
用于规则第一步的 CRUSH bucket 的名称。例如,步骤需要默认
类型
字符串
必填
No.
默认
default
crush-failure-domain
描述
确定在具有相同故障域的存储桶中没有两个块。例如,如果故障域 主机 没有两个块存储在同一主机上。它用于创建规则步骤,如 step chooseleaf host
类型
字符串
必填
No.
默认
主机
目录
描述
设置载入 code 插件的目录名称。
类型
字符串
必填
No.
默认
/usr/lib/ceph/erasure-code
--force
描述
根据同一名称覆盖现有配置集。
类型
字符串
必填
No.

5.4.2. 控制 CRUSH 放置

默认 CRUSH 规则提供位于不同主机上的 OSD。例如:

chunk nr    01234567

step 1      _cDD_cDD
step 2      cDDD____
step 3      ____cDDD
Copy to Clipboard Toggle word wrap

需要 8 个 OSD,每个块对应一个。如果主机位于两个相邻的机架中,则前四个块可以放在第一个机架中,后 4 个放在第二个机架中。如果恢复单个 OSD 丢失,不需要在两个机架之间使用带宽。

例如:

crush-steps='[ [ "choose", "rack", 2 ], [ "chooseleaf", "host", 4 ] ]'
Copy to Clipboard Toggle word wrap

创建一个规则,用于选择类型为 rack 的两个 CRUSH bucket,各自选择四个 OSD,各自位于 主机 的不同 bucket 中。

也可以手动创建该规则以进行更精细的控制。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat