注意

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

SHEC erasure code plugin

The shec该插件封装了多个SHEC库。它允许Ceph比Reed-Solomon码更有效地恢复数据。

创建一个SHEC配置文件

要创建一个新的shecerasure code 配置文件:

ceph osd erasure-code-profile set {name} \
     plugin=shec \
     [k={data-chunks}] \
     [m={coding-chunks}] \
     [c={durability-estimator}] \
     [crush-root={root}] \
     [crush-failure-domain={bucket-type}] \
     [crush-device-class={device-class}] \
     [directory={directory}] \
     [--force]

其中:

k={data-chunks}

描述:

每个对象被分成数据块部分,每个部分存储在不同的 OSD 上。

类型:

整数

必需:

否。

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

4

m={coding-chunks}

描述:

对每个对象进行计算并将它们存储在不同的 OSD 上。编码块的数量也是可以同时下线的 OSD 数量,而不会丢失数据。编码块对每个对象,并将它们存储在不同的OSD上。编码块的数量编码块不一定等于可以失效而不丢失数据的OSD数量。

类型:

整数

必需:

否。

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

3

c={durability-estimator}

描述:

每个奇偶校验块的数量,其中每个奇偶校验块在其计算范围内包含每个数据块。该数字用作持久性估计器

类型:

整数

必需:

否。

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

2

crush-root={root}

描述:

用于 CRUSH 规则第一步的 crush bucket 的名称。例如第一步使用默认.

类型:

字符串

必需:

否。

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

default

crush-failure-domain={bucket-type}

描述:

确保没有两个块在同一 bucket 中具有相同的故障域。例如,如果故障域是主机,则不会将两个块存储在同一主机上。它用于创建 CRUSH 规则步骤,例如步骤.

类型:

字符串

必需:

否。

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

主机

crush-device-class={device-class}

描述:

限制放置到特定类别的设备(例如,ssdhdd,使用 CRUSH 映射中的 crush device class 名称。

类型:

字符串

必需:

否。

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

directory={directory}

描述:

Set the 目录从其中加载消息码插件的名称。

类型:

字符串

必需:

否。

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

/usr/lib/ceph/erasure-code

--force

描述:

通过同名覆盖现有配置文件。

类型:

字符串

必需:

否。

SHEC布局的简要描述

空间效率

空间效率是对象中数据块与所有1的比例,表示为k/(k+m)。

SHEC(4,3,2)的空间效率 =\(\frac{4}{4+3}\)= 0.57

持久性

SHEC的第三个参数(=c)是一个持久性估计器,它近似可以失效而不丢失数据的OSD数量。

durability estimator of SHEC(4,3,2) = 2

恢复效率

描述恢复效率的计算超出了本文档的范围,但至少在不增加c的情况下增加m可以实现恢复效率的提高。(但是,在这种情况下,我们必须注意空间效率的牺牲。)

SHEC(4,2,2) -> SHEC(4,3,2) : achieves improvement of recovery efficiency

擦除码配置文件示例

ceph osd erasure-code-profile set SHECprofile \
   plugin=shec \
   k=8 m=4 c=3 \
   crush-failure-domain=host
ceph osd pool create shecpool erasure SHECprofile

由 Ceph 基金会带给您

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