如何删除对象

StorageGRID 可以直接根据客户端请求删除对象,也可以在 S3 兼容存储分段的保留期限结束, S3 存储分段生命周期到期或 ILM 策略要求之后自动删除对象。了解可删除对象的不同方式以及 StorageGRID 如何处理删除请求有助于您更有效地管理对象。

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

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

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

执行删除的方法 使用此方法时
对象已排队等待删除 StorageGRID 满足以下任一条件, StorageGRID 会将对象副本排队以供删除:
  • 以下事件之一已触发自动对象删除:
    • S3 合规存储分段的保留期限结束,并选择自动删除。
    • 已达到 S3 存储分段的生命周期配置中的到期日期或天数。
    • ILM 规则中指定的最后一个时间段已过。
  • S3 或 Swift 客户端请求删除,但其中一个或多个条件为 true :
    • 对象存储在 云存储池中。
    • 无法在 30 秒内删除副本,因为对象位置暂时不可用。
    • 后台删除队列处于空闲状态。
立即删除对象(同步删除) StorageGRID S3 或 Swift 客户端发出删除请求且 满足以下所有条件时, StorageGRID 将执行同步删除:
  • 对象存储在存储节点或归档节点上。
  • 可以在 30 秒内删除所有副本。
  • 后台删除队列包含要处理的对象。

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

了解 StorageGRID 如何删除对象的影响

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

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

请注意,删除对象后释放空间所需的时间取决于多种因素:
  • 对象副本是同步删除还是稍后排队等待删除(对于客户端删除请求)。
  • 其他因素包括网格中的对象数或对象副本排队等待删除时网格资源的可用性(对于客户端删除和其他方法)。