Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

了解StorageGRID扩展后的 EC 重新平衡

贡献者 netapp-lhalbert netapp-perveilerk netapp-pcarriga netapp-jsnyder

如果要执行扩展以添加存储节点、并且要使用ILM规则来纠删代码数据、则如果无法为所使用的纠删编码方案添加足够的存储节点、则可能需要执行纠删编码(EC)重新平衡过程。

查看这些注意事项后、请执行扩展、然后转到"添加存储节点后重新平衡经过纠删编码的数据"运行此过程。

什么是 EC 重新平衡?

EC 重新平衡是扩展存储节点后可能需要的 StorageGRID 操作步骤 。操作步骤 将作为主管理节点上的命令行脚本运行。运行EC重新平衡操作步骤 时、StorageGRID 会在站点的现有存储节点和新添加的存储节点之间重新分布纠删编码的片段。

EC 重新平衡操作步骤 :

  • 仅移动经过纠删编码的对象数据。它不会移动复制的对象数据。

  • 在站点内重新分布数据。它不会在站点之间移动数据。

  • 在站点的所有存储节点之间重新分布数据。它不会在存储卷中重新分配数据。

  • 尝试分配数据字节,以便每个节点具有相同的可用空间。在重新平衡完成后,包含更多复制数据的节点可能存储较少的纠删编码数据。

  • 在不考虑每个节点的相对容量的情况下,在存储节点之间均匀地重新分配可用空间。复制的数据包含在计算中。

  • 如果重新平衡过程无法再移动任何纠删码数据,即使可用空间仍未均匀分布,也视为该过程已完成。

  • 不会将纠删码数据分发到已满 80% 以上的存储节点或仅元数据的存储节点。

  • 可能会在运行ILM操作和S3客户端操作时降低性能—重新分布纠删编码片段需要额外的资源。

完成 EC 重新平衡操作步骤 后:

  • 经过删除编码的数据将从可用空间较少的存储节点移至可用空间较多的存储节点。

  • 擦除编码对象的数据保护将保持不变。

  • 不同存储节点的已用(%)值可能不同、原因有两个:

    • 复制的对象副本将继续占用现有节点上的空间##8212;EC重新平衡操作步骤 不会移动复制的数据。

    • 容量较大的节点可能比容量较小的节点相对较少填充,即使所有节点最终的可用空间量大致相同。

      例如,使用 2+1 擦除编码方案,假设三个 200 TB 节点各自填充到 80%(每个节点 200 × 0.8 = 160 TB,或站点 480 TB)。如果添加 400 TB 节点并运行重新平衡过程,则所有较旧节点现在将具有大致相同的擦除编码数据量(106.66 TB 或已用 53%)。新节点将具有(160 TB 数据或已用 40%)。在这种情况下,较大节点的已用 (%) 将小于较小节点的已用 (%)。重新平衡过程在可用空间平衡之前完成,因为在不破坏擦除编码方案约束的情况下,无法移动更多擦除编码数据。

    扩展前已用空间

何时重新平衡已通过数据进行了数据迁移

EC 重新平衡程序重新分配现有的擦除编码数据,以确保节点不会变满或保持满状态。该程序有助于确保 EC 编码能够在网站上继续进行。

当站点上的数据分布存在令人担忧的偏差并且站点存储大部分 EC 数据时(因为复制的数据无法通过重新平衡来移动),运行重新平衡程序。

请考虑以下情形:

  • StorageGRID 正在一个站点上运行,该站点包含三个存储节点。

  • ILM策略对大于1.0 MB的所有对象使用2+1擦除编码规则、对较小的对象使用双副本复制规则。

  • 所有存储节点均已全满。已在主要严重性级别触发“对象存储不足”警报。

    扩展前已用空间

如果添加足够的节点,则不需要重新平衡

要了解何时不需要EC重新平衡、假设您添加了三个(或更多)新存储节点。在这种情况下、您不需要执行EC重新平衡。原始存储节点将保持已满、但新对象现在将使用这三个新节点进行2+1纠删编码##8212;两个数据片段和一个奇偶校验片段可以分别存储在不同的节点上。

3节点扩展后的已用空间

注意 在这种情况下、虽然您可以运行EC重新平衡操作步骤 、但移动现有纠删编码的数据会暂时降低网格的性能、从而可能影响客户端操作。

如果无法添加足够多的节点、则需要重新平衡

要了解何时需要EC重新平衡、假设您只能添加两个存储节点、而不能添加三个存储节点。由于2+1方案至少需要三个存储节点具有可用空间、因此、这些空节点不能用于新的已通过erasure编码的数据。

双节点扩展后的已用空间

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

在 EC 重新平衡后已用空间

EC重新平衡的建议

如果以下陈述中的_all_为真、则NetApp需要EC重新平衡:

  • 您可以对对象数据使用纠删编码。

  • 已针对站点上的一个或多个存储节点触发 * 对象存储空间不足 * 警报,表示这些节点已满 80% 或以上。

  • 您无法为正在使用的纠删编码方案添加足够多的新存储节点。请参阅。 "为经过纠删编码的对象添加存储容量"

  • 在运行EC重新平衡过程时、S3客户端的写入和读取操作性能可能会降低。

如果您希望将存储节点填充到类似级别、并且在运行EC重新平衡过程期间、S3客户端的写入和读取操作性能可以降低、则可以选择运行EC重新平衡过程。

EC 重新平衡操作步骤 如何与其他维护任务进行交互

您不能在运行EC重新平衡操作步骤 的同时执行某些维护过程。

操作步骤 在 EC 重新平衡操作步骤 期间是否允许?

其他 EC 重新平衡过程

一次只能运行一个 EC 重新平衡操作步骤 。

停用操作步骤

EC 数据修复作业

  • 在 EC 重新平衡操作步骤 运行期间,系统会阻止您启动停用操作步骤 或 EC 数据修复。

  • 在存储节点停用操作步骤 操作步骤 或 EC 数据修复正在运行时,系统会阻止您启动 EC 重新平衡。

扩展操作步骤

如果您需要在扩展中添加新存储节点、请在添加所有新节点后运行EC重新平衡操作步骤。

升级操作步骤

如果您需要升级StorageGRID 软件、请在运行EC重新平衡操作步骤 之前或之后执行升级操作步骤。您可以根据需要终止 EC 重新平衡操作步骤 以执行软件升级。

设备节点克隆操作步骤

如果您需要克隆设备存储节点、请在添加新节点后运行EC重新平衡操作步骤。

修补程序操作步骤

是。

您可以在 EC 重新平衡操作步骤 运行期间应用 StorageGRID 修补程序。

其他维护过程

在运行其他维护过程之前,您必须终止 EC 重新平衡操作步骤 。

EC 重新平衡操作步骤 如何与 ILM 交互

在运行 EC 重新平衡操作步骤 时,请避免进行可能会更改现有纠删编码对象位置的 ILM 更改。例如、不要开始使用具有不同纠删编码配置文件的ILM规则。如果需要进行此类ILM更改、则应终止EC重新平衡操作步骤。