了解 StorageGRID 中的纠删编码方案
擦除编码方案控制为每个对象创建多少个数据片段和多少个奇偶校验片段。
创建或编辑 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 方案(存储开销为 33%)存储相同的 10 MB 对象,则该对象大约会消耗 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% |