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

如何删除对象

贡献者

StorageGRID 可以直接响应客户端请求删除对象,也可以因 S3 存储分段生命周期到期或 ILM 策略要求而自动删除对象。了解可删除对象的不同方式以及 StorageGRID 如何处理删除请求有助于您更有效地管理对象。

StorageGRID 可以使用以下两种方法之一删除对象:

  • 同步删除:当 StorageGRID 收到客户端删除请求时,将立即删除所有对象副本。删除副本后,系统会通知客户端删除操作成功。

  • 对象将排队等待删除:当 StorageGRID 收到删除请求时,该对象将排队等待删除,并且系统会立即通知客户端删除已成功。对象副本稍后将通过后台 ILM 处理进行删除。

删除对象时, StorageGRID 会使用方法来优化删除性能,最大限度地减少潜在的删除积压并以最快的速度释放空间。

下表总结了 StorageGRID 何时使用每种方法。

执行删除的方法 使用时

对象已排队等待删除

当满足以下条件中的 * 任意 * 时:

  • 以下事件之一已触发自动对象删除:

    • 已达到 S3 存储分段的生命周期配置中的到期日期或天数。

    • ILM 规则中指定的最后一个时间段已过。

  • 注意: * 如果已启用 S3 对象锁定的存储分段中的对象处于合法保留状态,或者已指定保留日期但尚未满足,则无法删除这些对象。

  • S3 或 Swift 客户端请求删除,但其中一个或多个条件为 true :

    • 无法在 30 秒内删除副本,因为对象位置暂时不可用。

    • 后台删除队列处于空闲状态。

立即删除对象(同步删除)

当 S3 或 Swift 客户端发出删除请求且满足以下 * 所有 * 条件时:

  • 可以在 30 秒内删除所有副本。

  • 后台删除队列包含要处理的对象。

当 S3 或 Swift 客户端发出删除请求时, StorageGRID 首先会向删除队列添加多个对象。然后,它会切换到执行同步删除。确保后台删除队列包含要处理的对象,这样 StorageGRID 可以更高效地处理删除,尤其是对于低并发性客户端,同时有助于防止客户端删除积压。

了解StorageGRID 删除对象的方式的影响

StorageGRID 删除对象的方式可能会影响系统的执行方式:

  • 当 StorageGRID 执行同步删除时, StorageGRID 可能需要长达 30 秒才能将结果返回给客户端。这意味着删除的速度可能会更慢,即使副本的实际删除速度比 StorageGRID 将对象排队等待删除时要快。

  • 如果您在批量删除期间密切监控删除性能,则可能会注意到删除了一定数量的对象后,删除率似乎会变慢。当 StorageGRID 从对要删除的对象进行排队转移到执行同步删除时,会发生此更改。删除率明显降低并不意味着删除对象副本的速度较慢。相反,它表明平均而言,空间释放速度更快。

如果要删除大量对象,并且您的优先级是快速释放空间,请考虑使用客户端请求删除对象,而不是使用 ILM 或其他方法删除这些对象。通常,当客户端执行删除时,空间释放速度会更快,因为 StorageGRID 可以使用同步删除。

请注意,删除对象后释放空间所需的时间取决于多种因素:

  • 对象副本是同步删除还是稍后排队等待删除(对于客户端删除请求)。

  • 其他因素包括网格中的对象数或对象副本排队等待删除时网格资源的可用性(对于客户端删除和其他方法)。