跳到内容

存储桶和对象版本控制

RustFS 对象存储提供 AWS S3 版本控制兼容性

对象级版本控制可增强数据保护。版本控制是对象锁定、不可变性、分层和生命周期管理的基础。

RustFS 实现 S3 兼容版本控制。RustFS 为对象的每个版本分配唯一的 ID。应用程序可以指定版本 ID 来访问某个时间点的快照。

版本控制允许用户在同一存储桶中保留对象的多个变体,从而能够检索和恢复每个版本。

版本控制在存储桶级别启用。启用后,RustFS 会自动为对象创建唯一的版本 ID。

版本控制可防止意外覆盖和删除。当版本化的对象被删除时,会创建一个删除标记。通过删除删除标记可以恢复该对象。

如果版本化的对象被覆盖,RustFS 会创建一个新版本。可以根据需要恢复旧版本。

RustFS 支持具有三种不同存储桶状态的对象版本控制

Bucket States

启用版本控制后,可以暂停但不能禁用。版本控制是存储桶中的全局设置。

具有适当权限的用户可以暂停版本控制,以停止累积对象版本。

通过控制台、CLI (mc) 或 SDK 管理版本控制。

版本控制会增加存储桶大小并可能创建对象依赖关系。通过生命周期管理来缓解这些因素。

特性

  • 存储桶复制 (主动-主动、主动-被动)
  • mc undo:回滚 PUT/DELETE 对象。
  • 对象锁定
  • 连续数据保护 (CDP)
  • mc rewind:随时查看存储桶或对象。

架构

Architecture Diagram

系统要求

版本控制要求:纠删码和至少四个磁盘。

版本控制状态

RustFS 支持三种不同的存储桶版本控制状态

  1. 🔴 未版本化 - 默认状态,不执行版本控制
  2. 🟢 已启用 - 全功能版本控制,为每个对象版本分配唯一 ID
  3. 🟡 已暂停 - 停止累积新版本,但保留现有版本

主要特性

  • 🆔 唯一版本 ID - 每个对象版本都有一个唯一的标识符
  • 🔄 时间点恢复 - 可以访问对象的任何历史版本
  • 🛡️ 删除保护 - 使用删除标记防止意外删除
  • 📊 生命周期管理 - 自动管理版本数量和存储成本
  • 🔐 权限控制 - 精细访问权限管理

根据 Apache 许可证 2.0 发布。