5.4. 纠删代码插件


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

5.4.1. 使用 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]

其中:

k
描述
每个对象被分成 data-chunks 部分,各自存储在不同的 OSD 上。
类型
整数
必填
是。
示例
4
m
描述
每个对象 的计算编码区块,并将其存储在不同的 OSD 中。编码区块数也是可以停机的 OSD 的数量,而不丢失数据。
类型
整数
必填
是。
示例
2
technique
描述
reed_sol_van 更灵活的技术是 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

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

例如:

crush-steps='[ [ "choose", "rack", 2 ], [ "chooseleaf", "host", 4 ] ]'

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

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.