为经过擦除编码的对象添加存储容量

如果您的 ILM 策略包含一条规则,用于创建对象的擦除编码副本,则必须计划在何处添加新存储以及何时添加新存储。您添加的存储量和添加的时间可能会影响网格的可用存储容量。

规划存储扩展的第一步是,检查 ILM 策略中用于创建纠删编码对象的规则。由于 StorageGRID 会为 每个纠删编码对象创建 k+m 片段,并将每个片段存储在不同的存储节点上,因此 您必须确保在扩展后至少可以写入 k+m 存储节点。如果纠删编码配置文件可提供站点丢失保护,则还必须确保向每个站点添加存储。

无需 在每个存储扩展中添加 k+m 存储节点。需要添加的节点数取决于现有节点的容量。如果所有存储节点均已满,则必须至少添加 k+m 个新存储节点,才能存储其他对象。但是,如果在现有节点仍有可用空间的情况下添加存储节点, StorageGRID 可以在旧存储节点和新存储节点上的可用空间中为新对象分发片段。扩展所创建的可用空间量取决于添加的新容量以及现有存储节点上的剩余空间。

要优化扩展所创建的总可用空间量,需要进行一些计算。

根据经验规则为擦除编码的对象添加存储容量

如果要避免详细计算,您只需在现有存储节点容量达到 70% 时为每个站点添加两个存储节点即可。

这种经验法则可以为单站点网格和网格提供各种纠删编码方案的合理结果,而纠删编码可为站点丢失提供保护。

要更好地了解导致此经验法则的因素,或者为您的站点制定更精确的计划,请查看下一节。有关针对您的情况优化的自定义建议,请联系您的 NetApp 客户代表。

计算要为经过纠删编码的对象添加的扩展存储节点数

要优化存储纠删编码对象的部署扩展方式,您必须考虑许多因素:
  • 正在使用纠删编码方案
  • 用于纠删编码的存储池的特征,包括每个站点上的节点数和每个节点上的可用空间量
  • 网格先前是否已扩展
  • ILM 策略的确切性质,例如 ILM 规则是否同时创建复制的对象和经过纠删编码的对象

以下示例可帮助您了解纠删编码方案的影响,存储池中的节点数以及每个节点上的可用空间量。

类似的注意事项会影响存储复制和擦除编码数据的 ILM 策略所需的计算,或者影响先前已扩展的网格(其中,每个存储节点的可用空间量可能并非所有节点上的大致相同)。

示例 1 :扩展使用 2+1 纠删编码的单站点网格

此示例显示了如何为仅包含三个存储节点的简单网格制定扩展计划。
注: 建议不要仅使用三个存储节点:如果这是一个实际生产网格,则应至少使用 k+m + 1 个存储节点来实现冗余,这相当于本示例中的四个存储节点( 2+1+1 )。
假设部署具有以下特征:
  • 所有数据均使用 2+1 纠删编码方案进行存储。
  • 一个站点包含三个存储节点。每个存储节点的总容量为 100 TB 。

假设您要通过添加新的 100 TB 存储节点进行扩展,并且最终要使用所有新旧节点的 100% 存储容量。

您有多种选择:

  • 如果现有节点已满,请添加三个 100 TB 存储节点

    您正在添加 3×100 TB ( 300 TB )的额外容量。使用 2+1 纠删编码方案意味着,每个对象都存储为三个片段,每个片段保存在不同的存储节点上。扩展完成后,将新对象存储到网格时,所有片段都会放置在新节点上。

    如果现有节点已满,则可以添加新节点。

  • 如果现有存储节点已满 67%,请添加两个 100 TB 存储节点。

    扩展存储节点可为部署增加 2×100 TB ( 200 TB )的额外存储容量。每个对象都存储为三个片段。要使用 100% 的新存储容量,现有存储节点上必须有 100 TB 的可用容量,或者每个现有节点上必须有 100/3 = 33 TB 的可用容量。

    换言之,当现有存储节点包含 67 TB 的内容且已满 67% 时,您可以进行扩展。

  • 如果现有存储节点已满 33%,请添加一个 100 TB 存储节点。

    扩展存储节点可添加 100 TB 的存储。要在扩展存储节点上使用全部 100 TB ,必须在三个现有存储节点上提供 200 TB 的可用容量,或者每个节点上的可用容量为 200/3 = 67 TB 。

    换言之,如果现有存储节点具有 33 TB 的内容且只有 33% 的容量,则必须进行扩展。

示例 2 :扩展使用 6+3 纠删编码的三站点网格

此示例显示了如何为多站点网格制定扩展计划,该网格采用的纠删编码方案包含更多片段。尽管这些示例之间存在差异,但建议的扩展计划非常相似。

假设部署具有以下特征:
  • 所有数据均使用 6+3 纠删编码方案进行存储
  • 有三个站点,每个站点有四个存储节点(共 12 个节点)。每个节点的总容量为 100 TB 。

假设您要通过添加新的 100 TB 存储节点进行扩展,并且最终要使用所有新旧节点的 100% 存储容量。

您有多种选择:

  • 如果现有节点已满,请添加九个 100 TB 存储节点(每个站点三个)

    扩展存储节点可增加 900 TB ( 9×100 TB )的额外容量。使用 6+3 纠删编码方案意味着,每个对象存储为 9 个片段,每个片段保存到不同的存储节点。扩展完成后,将新对象存储到网格时,所有片段都会放置在新节点上。

    此扩展可添加 k+m 节点。为了保持冗余,最好添加 12 个新节点(每个站点四个)。如果 在现有节点已满 100% 时仅添加 k+m 扩展存储节点,则所有新对象都必须存储在扩展节点上。如果任何可写节点变得不可用,即使是暂时不可用, StorageGRID 也无法满足 ILM 要求。

  • 如果现有节点已满 75%,请添加六个 100 TB 存储节点(每个站点两个)。

    如果通过为每个站点添加两个 100 TB 存储节点或总共添加六个节点来进行扩展,则新节点会额外添加 600 TB ( 6×100 TB )的存储容量。每个对象都存储为 9 个片段。要使用所有 600 TB 的新容量,现有 12 个存储节点上必须有 300 TB 的可用空间,或者 300/12 = 每个现有节点 25 TB 的可用空间。

    也就是说,当现有存储节点已满 75% 时,您可以进行扩展。

  • 如果现有节点已满 50% ,请添加三个 100 TB 存储节点(每个站点一个)

    扩展存储节点总共可增加 300 TB ( 3×100 TB )的容量。要使用全部 300 TB 的扩展容量, 12 个现有存储节点上必须有 600 TB 的可用空间,或者 600/12 = 每个节点 50 TB 的可用空间。

    换言之,如果现有存储节点的容量只有 50% ,则必须进行扩展。