数据保护选项的优势,劣势和限制
了解在载入时保护数据的三个选项(平衡,严格或双重提交)中每一个选项的优缺点有助于您确定要为 ILM 规则选择哪个选项。
平衡而严格的选项的优势
与在载入期间创建临时副本的双提交相比,这两个同步放置选项具有以下优势:
-
* 更好的数据安全性 * :对象数据会按照 ILM 规则放置说明中的说明立即受到保护,可以对其进行配置,以防止出现多种故障情况,包括多个存储位置发生故障。双提交只能防止丢失一个本地副本。
-
* 更高效的网格操作 * :每个对象仅在载入时进行一次处理。由于 StorageGRID 系统不需要跟踪或删除中间副本,因此处理负载较低,数据库空间占用较少。
-
* (平衡)建议 * :平衡选项可提供最佳 ILM 效率。除非需要严格的载入行为或网格满足用于双提交的所有标准,否则建议使用 balancired 选项。
-
* (严格)对象位置的确定性 * : strict 选项可确保根据 ILM 规则中的放置说明立即存储对象。
平衡而严格的选项的缺点
与双提交相比,平衡和严格选项存在一些缺点:
-
* 客户端载入时间更长 * :客户端载入延迟可能更长。使用平衡和严格的选项时,在创建和存储所有纠删编码的片段或复制的副本之前,不会向客户端返回 "`ingest successful` " 消息。但是,对象数据很可能会更快地到达最终放置位置。
-
* (严格)更高的载入失败率 * :使用 strict 选项时,只要 StorageGRID 无法立即创建 ILM 规则中指定的所有副本,载入就会失败。如果所需存储位置暂时脱机或网络问题发生原因 在站点之间复制对象时出现延迟,则可能会出现较高的载入失败率。
-
在某些情况下 * (严格) S3 多部分上传放置可能与预期不同 * :严格地说,您希望对象按照 ILM 规则的说明放置,或者载入操作失败。但是,如果使用 S3 多部分上传,则会在载入对象时对 ILM 的每个部分进行评估,并在多部分上传完成后对整个对象进行评估。在以下情况下,这可能会导致放置方式与您预期不同:
-
* 如果在 S3 多部件上传过程中 ILM 发生变化 * :由于每个部件都是根据在载入部件时处于活动状态的规则放置的,因此在多部件上传完成后,对象的某些部分可能不符合当前的 ILM 要求。在这些情况下,对象的载入不会失败。相反,未正确放置的任何部件将排队等待 ILM 重新评估,并稍后移动到正确的位置。
-
* 当 ILM 规则按大小筛选时 * :在评估某个部件的 ILM 时, StorageGRID 会按部件的大小进行筛选,而不是按对象的大小进行筛选。这意味着,对象的某些部分可以存储在不满足整个对象的 ILM 要求的位置。例如,如果规则指定所有 10 GB 或更大的对象都存储在 DC1 中,而所有较小的对象存储在 DC2 中,则在载入时, 10 部分多部分上传的每个 1 GB 部分都存储在 DC2 中。评估对象的 ILM 时,对象的所有部分都会移至 DC1 。
-
-
* (严格)更新对象标记或元数据后,如果无法进行新要求的放置,则载入不会失败 * :严格地说,您希望按照 ILM 规则的说明放置对象,或者使载入失败。但是,在更新网格中已存储的对象的元数据或标记时,不会重新载入该对象。这意味着,更新触发的任何对象放置更改都不会立即进行。如果通过正常后台 ILM 流程重新评估 ILM ,则会进行放置更改。如果无法进行所需的放置更改(例如,由于新需要的位置不可用),则更新后的对象将保留其当前放置位置,直到可以进行放置更改为止。
具有平衡或严格选项的对象放置限制
对于具有以下任一放置说明的 ILM 规则,不能使用平衡或严格选项:
-
第 0 天放置在云存储池中。
-
在第 0 天放置在归档节点中。
-
当规则将用户定义的创建时间作为参考时间时,将放置在云存储池或归档节点中。
之所以存在这些限制,是因为 StorageGRID 无法同步向云存储池或归档节点创建副本,并且用户定义的创建时间可以解决为当前问题。
ILM 规则和一致性控制如何交互以影响数据保护
ILM 规则和一致性控制选项都会影响对象的保护方式。这些设置可以进行交互。
例如,为 ILM 规则选择的载入行为会影响对象副本的初始放置,而存储对象时使用的一致性控制则会影响对象元数据的初始放置。由于 StorageGRID 需要访问对象的元数据及其数据来满足客户端请求,因此为一致性级别和载入行为选择匹配的保护级别可以提供更好的初始数据保护和更可预测的系统响应。
下面简要总结了 StorageGRID 中提供的一致性控制:
-
* 全部 * :所有节点均立即接收对象元数据,否则请求将失败。
-
* 强 - 全局 * :对象元数据会立即分发到所有站点。保证所有站点中所有客户端请求的写入后读一致性。
-
* 强站点 * :对象元数据会立即分发到站点上的其他节点。保证站点内所有客户端请求的写入后读一致性。
-
* 读后新写入 * :为新对象提供读后写入一致性,并最终为对象更新提供一致性。提供高可用性和数据保护保证。
-
* 可用 * (机头操作的最终一致性):与
read-after-new-write
一致性级别相同,但仅为机头操作提供最终一致性。
在选择一致性级别之前、请阅读有关创建S3或Swift客户端应用程序的说明中的这些设置的完整问题描述。在更改默认值之前,您应了解其优势和限制。 |
一致性控制和 ILM 规则如何交互的示例
假设您有一个双站点网格,其中包含以下 ILM 规则和以下一致性级别设置:
-
* ILM 规则 * :创建两个对象副本,一个在本地站点,一个在远程站点。此时将选择严格的载入行为。
-
* 一致性级别 * :
strong-global
(对象元数据会立即分发到所有站点。)
当客户端将对象存储到网格时, StorageGRID 会创建两个对象副本并将元数据分发到两个站点,然后再向客户端返回成功。
在载入成功消息时,此对象将受到完全保护,不会丢失。例如,如果本地站点在载入后不久丢失,则远程站点上仍存在对象数据和对象元数据的副本。此对象完全可检索。
如果您改用相同的 ILM 规则和 strong-site
一致性级别,则在将对象数据复制到远程站点之后,在将对象元数据分发到该远程站点之前,客户端可能会收到一条成功消息。在这种情况下,对象元数据的保护级别与对象数据的保护级别不匹配。如果本地站点在载入后不久丢失,则对象元数据将丢失。无法检索此对象。
一致性级别和 ILM 规则之间的关系可能很复杂。如需帮助,请联系 NetApp 。