什么是纠删编码方案?
纠删编码方案可控制为每个对象创建的数据片段数量和奇偶校验片段数量。
创建或编辑ILM规则时、您可以选择可用的纠删编码方案。StorageGRID会根据您计划使用的存储池中的存储节点和站点数量自动创建纠删编码方案。
数据保护
StorageGRID 系统使用 Reed-Solomon 纠删编码算法。该算法会将对象分区为 k`数据片段并计算奇偶校验片段 `m
。
这些 k + m = n`片段会分布在多个存储节点中 `n
、以提供如下数据保护:
-
要检索或修复对象、 `k`需要使用片段。
-
一个对象可以承受多达
m`丢失或损坏的碎片。的值越高 `m
,故障容错越高。
通过纠删编码方案提供最佳数据保护、该方案在存储池中具有最高的节点或卷容错能力。
存储开销
纠删编码方案的存储开销是通过奇偶校验片段数除(m`以数据片段数计算得出的(`k
。您可以使用存储开销计算每个擦除编码对象所需的磁盘空间量:
disk space = object size + (object size * storage overhead)
例如,如果使用 4+2 方案存储一个 10 MB 的对象(存储开销为 50% ),则该对象将占用 15 MB 的网格存储。如果使用 6+2 方案存储同一个 10 MB 对象(存储开销为 33% ),则该对象将占用大约 13.3 MB 的空间。
选择总价值最低的纠删编码方案、以 `k+m`满足您的需求。具有较少片段数量的纠删编码方案在计算上效率更高、原因是:
-
每个对象创建和分布(或检索)的片段较少
-
它们的性能较高、因为片段大小较大
-
在中添加的节点可能更少"需要更多存储时进行扩展"
存储池准则
如果要为创建经过删除编码的副本的规则选择要使用的存储池、请对存储池使用以下准则:
-
存储池必须包含三个或更多站点,或者只包含一个站点。
如果存储池包含两个站点、则不能使用纠删编码。 -
请勿使用包含"所有站点"站点的存储池。
-
存储池应至少包含 `k+m +1`可存储对象数据的存储节点。
可以在安装期间将存储节点配置为仅包含对象元数据、而不包含对象数据。有关详细信息,请参见 "存储节点的类型"。 所需的最小存储节点数为
k+m
。但是,如果所需的存储节点暂时不可用,则至少添加一个存储节点有助于防止载入失败或 ILM 回退。
包含三个或更多站点的存储池的纠删编码方案
下表介绍了 StorageGRID 当前支持的纠删编码方案,该方案适用于包含三个或更多站点的存储池。所有这些方案都提供站点丢失保护。一个站点可能会丢失,但对象仍可访问。
对于提供站点丢失保护的纠删编码方案、存储池中建议的存储节点数超过 k+m +1
、因为每个站点至少需要三个存储节点。
纠删编码方案( k+m ) | 已部署站点的最小数量 | 每个站点的建议存储节点数 | 建议的存储节点总数 | 站点丢失保护? | 存储开销 |
---|---|---|---|---|---|
4+2. |
3 |
3 |
9 |
是 |
50% |
6+2. |
4 |
3 |
12 |
是 |
33% |
8+2. |
5 |
3 |
15 |
是 |
25% |
6+3. |
3 |
4 |
12 |
是 |
50% |
9+3. |
4 |
4 |
16 |
是 |
33% |
2+1. |
3 |
3 |
9 |
是 |
50% |
4+1. |
5 |
3 |
15 |
是 |
25% |
6+1. |
7 |
3 |
21 |
是 |
17% |
7+5. |
3 |
5 |
15 |
是 |
71% |
StorageGRID 要求每个站点至少有三个存储节点。要使用 7+5 方案,每个站点至少需要四个存储节点。建议每个站点使用五个存储节点。 |
在选择提供站点保护的纠删编码方案时,请平衡以下因素的相对重要性:
-
* 碎片数量 * :当碎片总数减少时,性能和扩展灵活性通常会提高。
-
容错:容错通过具有更多奇偶校验段(即值更高时)来提高
m
。 -
网络流量:从故障中恢复时,使用具有更多片段的方案(即,的总数更高
k+m
)会产生更多网络流量。 -
* 存储开销 * :开销较高的方案需要每个对象更多的存储空间。
例如,在选择 4+2 方案和 6+3 方案(两者都有 50% 的存储开销)时,如果需要额外的容错功能,请选择 6+3 方案。如果网络资源受限,请选择 4+2 方案。如果所有其他因素相等,请选择 4+2 ,因为其碎片总数较低。
如果您不确定要使用的方案,请选择 4+2 或 6+3 ,或者联系技术支持。 |
单站点存储池的纠删编码方案
单站点存储池支持为三个或更多站点定义的所有纠删编码方案,但前提是该站点具有足够的存储节点。
所需的最小存储节点数为 k+m
,但建议使用包含存储节点的存储池 k+m +1
。例如, 2+1 纠删编码方案要求一个存储池至少包含三个存储节点,但建议使用四个存储节点。
纠删编码方案( k+m ) | 存储节点的最小数量 | 建议的存储节点数 | 存储开销 |
---|---|---|---|
4+2. |
6 |
7 |
50% |
6+2. |
8 |
9 |
33% |
8+2. |
10 |
11 |
25% |
6+3. |
9 |
10 |
50% |
9+3. |
12 |
13 |
33% |
2+1. |
3 |
4 |
50% |
4+1. |
5 |
6 |
25% |
6+1. |
7 |
8 |
17% |
7+5. |
12 |
13 |
71% |