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