了解 StorageGRID 扩展后的 EC 重新平衡
如果要执行扩展以添加存储节点,并且使用 ILM 规则对数据进行纠删编码,则在无法为所使用的纠删编码方案添加足够存储节点的情况下,可能需要执行纠删编码 (EC) 重新平衡操作。
查看这些注意事项后,执行扩展,然后转到 "添加存储节点后重新平衡擦除编码数据" 以运行该过程。
什么是EC再平衡?
EC 重新平衡是存储节点扩展后可能需要的 StorageGRID 过程。该过程作为命令行脚本从主管理节点运行。当您运行 EC 重新平衡过程时,StorageGRID 会在站点上的现有存储节点和新添加的存储节点之间重新分配纠删码片段。
EC再平衡程序:
-
仅移动擦除编码对象数据。不移动复制的对象数据。
-
在站点内重新分配数据。它不会在站点之间移动数据。
-
在站点上的所有存储节点之间重新分配数据。它不会在存储卷内重新分配数据。
-
尝试向每个节点分配相同数量的字节。重新平衡完成后,包含更多复制数据的节点将存储更少的纠删码数据。
-
在不考虑每个节点相对容量的情况下,在存储节点之间均匀地重新分配纠删码数据。复制数据包含在计算中。
-
不会将纠删码数据分发到已满 80% 以上的存储节点。
-
运行时可能会降低 ILM 操作和 S3 客户端操作的性能—需要额外的资源来重新分配纠删码片段。
EC再平衡过程完成后:
-
擦除编码的数据将从可用空间较少的存储节点移动到可用空间较多的存储节点。
-
纠删码对象的数据保护将保持不变。
-
由于以下两个原因,存储节点之间的已用 (%) 值可能不同:
-
复制的对象副本将继续占用现有节点上的空间—EC 重新平衡程序不会移动复制的数据。
-
容量较大的节点将比容量较小的节点相对更空,即使所有节点最终都将拥有大致相同的数据量。
例如,假设三个 200-TB 节点各自填充到 80%(每个节点 200 × 0.8 = 160 TB,或站点 480 TB)。如果添加 400-TB 节点并运行重新平衡过程,则所有节点现在将具有大致相同数量的纠删码数据(480/4 = 120 TB)。但是,较大节点的已用 (%) 将小于较小节点的已用 (%)。

-
何时重新平衡擦除编码的数据
EC 重新平衡过程重新分配现有的纠删码数据,以确保节点不会变满或持续处于满载状态。该过程有助于确保 EC 编码可以在站点上继续进行。
当站点上的数据分布存在令人担忧的偏差,且该站点主要存储 EC 数据时,请运行重新平衡过程(因为复制的数据无法通过重新平衡来移动)。
请考虑以下情形:
-
StorageGRID 在包含三个存储节点的单个站点上运行。
-
ILM 策略对大于 1.0 MB 的所有对象使用 2+1 纠删码规则,对较小的对象使用 2 副本复制规则。
-
所有存储节点已完全满。已在主要严重级别触发*低对象存储*警报。

如果添加足够的节点,则不需要重新平衡
要了解何时不需要 EC 重新平衡,请假设您添加了三个(或更多)新的存储节点。在这种情况下,您不需要执行 EC 重新平衡。原始存储节点将保持满载状态,但新对象现在将使用三个新节点进行 2+1 纠删编码—两个数据片段和一个奇偶校验片段可以各自存储在不同的节点上。

|
|
虽然在这种情况下可以运行 EC 重新平衡过程,但移动现有的纠删码数据将暂时降低网格的性能,这可能会影响客户端操作。 |
如果无法添加足够的节点,则需要重新平衡
要了解何时需要 EC 重新平衡,假设您只能添加两个存储节点,而不是三个。由于 2+1 方案需要至少三个存储节点具有可用空间,因此空节点不能用于新的纠删码数据。

要使用新的存储节点,您应该运行 EC 重新平衡程序。此过程运行时,StorageGRID 会在站点上的所有存储节点之间重新分配现有的纠删码数据和奇偶校验片段。在此示例中,当 EC 重新平衡过程完成时,所有五个节点现在仅占用 60%,并且可以继续将对象摄入所有存储节点上的 2+1 纠删码方案。

关于EC再平衡的建议
NetApp 如果以下_所有_条件均成立,则需要进行 EC 重新平衡:
-
您对对象数据使用纠删码。
-
${post_edited_translations.segment}
-
您无法为正在使用的擦除编码方案添加足够的新存储节点。请参见 "为纠删码对象添加存储容量"。
-
在 EC 重新平衡过程运行时,您的 S3 客户端可以容忍其写入和读取操作的性能较低。
如果您希望将存储节点填充到相似的水平,并且您的 S3 客户端在运行 EC 重新平衡过程时可以容忍其写入和读取操作的性能降低,则可以选择运行 EC 重新平衡过程。
EC 重新平衡过程如何与其他维护任务交互
您不能在运行EC再平衡程序的同时执行某些维护程序。
| 操作步骤 | 在EC重新平衡过程中是否允许? |
|---|---|
其他EC再平衡程序 |
目标卷 一次只能运行一个 EC 再平衡程序。 |
停用程序 EC 数据修复作业 |
目标卷
|
扩展过程 |
目标卷 如果需要在扩展中添加新的存储节点,请在添加所有新节点后运行 EC 重新平衡过程。 |
升级过程 |
目标卷 如果需要升级 StorageGRID 软件,请在运行 EC 重新平衡过程之前或之后执行升级过程。根据需要,您可以终止 EC 重新平衡过程以执行软件升级。 |
设备节点克隆过程 |
目标卷 如果需要克隆设备存储节点,请在添加新节点后运行 EC 重新平衡过程。 |
修补程序过程 |
是 您可以在 EC 重新平衡过程运行时应用 StorageGRID 修补程序。 |
其他维护程序 |
目标卷 ${post_edited_translations.segment} |
${post_edited_translations.segment}
在EC重新平衡过程运行时,请避免进行可能会更改现有纠删码对象位置的ILM更改。例如,不要开始使用具有不同纠删码配置文件的ILM规则。如果您需要进行此类ILM更改,则应终止EC重新平衡程序。