存储桶

链接

师成师成· 更新于 2026-09-28· 阅读 3 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Bucket 链接允许将一个卷(甚至另一个存储桶)中的存储桶暴露到不同的位置,如同它本来就位于该位置一样,这对于 S3 兼容性或跨租户访问尤其有用。这种机制创建了类似符号链接的行为。有关更多信息,请参阅 S3 协议文档 和 S3 多租户文档。

概述

与 S3 相比,Ozone 在命名空间层次结构中多了一个元素:卷。默认情况下,/s3v 卷的所有存储桶都可以通过 S3 接口访问,但只有 /s3v 卷中的(Ozone)存储桶会被暴露。

Bucket 链接提供了一种方式,通过为目标存储桶创建"符号链接",使任何卷中的存储桶都可以通过 S3 接口访问。

使用场景

Bucket 链接特别适用于以下场景:

  • S3 兼容性:通过 S3 接口暴露非 S3 卷中的存储桶
  • 跨租户访问:无需复制数据即可跨不同卷访问存储桶
  • 命名空间组织:在不移动数据的情况下对存储桶进行逻辑分组
  • 访问控制:通过不同的访问路径控制存储桶的可见性

创建 Bucket 链接

要使任何存储桶都能通过 S3 接口使用,请创建一个符号链接存储桶:

ozone sh volume create /s3v
ozone sh volume create /vol1

ozone sh bucket create /vol1/bucket1
ozone sh bucket link /vol1/bucket1 /s3v/common-bucket

此示例通过 S3 接口,将 Ozone 桶 /vol1/bucket1 以 S3 兼容的 common-bucket 形式暴露出去。

桶链接的工作原理

桶链接在数据库中的存储方式与普通桶相同,但额外包含了所引用的源卷和源桶的相关信息:

  1. 源桶(如 /vol1/bucket1)继续存储实际数据
  2. 链接桶(如 /s3v/common-bucket)充当符号引用
  3. 对链接桶执行的键操作(列出、获取、放入等)会被透明地重定向到源桶
  4. 桶操作(信息、删除、ACL)作用于链接对象本身
  5. 在建立链接的过程中,不会复制或重复任何数据

访问链接桶

创建桶链接之后,你就可以像访问其他任何桶一样,通过 S3 接口访问它:

# Set up AWS credentials
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key

# Access the linked bucket through S3 interface
aws s3api --endpoint http://localhost:9878 list-objects --bucket common-bucket

有关实现细节,请参阅卷管理设计文档。

评论

登录后参与评论

正在加载评论…