3.9. bucket 管理
作为存储管理员,在使用 Ceph 对象网关时,您可以通过在用户之间移动 bucket 并将它们重命名来管理存储桶。此外,您可以在 Ceph 对象网关中发现在存储集群的生命周期内可能会发生孤立或泄漏的对象。
3.9.1. 移动存储桶 复制链接链接已复制到粘贴板!
The radosgw-admin bucket 实用程序提供在用户之间移动 bucket 的功能。为此,请将存储桶链接到新用户,并将 bucket 的所有权更改为新用户。
您可以移动存储桶:
3.9.1.1. 先决条件 复制链接链接已复制到粘贴板!
- 正在运行的 Red Hat Ceph Storage 集群
- 已安装 Ceph 对象网关
- bucket
- 各种租户和非租户用户
3.9.1.2. 在非租户用户之间移动存储桶 复制链接链接已复制到粘贴板!
The radosgw-admin bucket chown 命令提供将 bucket 的所有权及其包含的所有对象从一个用户更改为另一个用户的功能。为此,请从当前用户取消链接存储桶,将它链接到新用户,然后将 bucket 的所有权更改为新用户。
流程
将存储桶链接到一个新用户:
radosgw-admin bucket link --uid=user --bucket=bucket替换:
- 使用用户名 将存储桶链接到的用户
- 带有 存储桶 名称的存储桶
例如,要将
数据存储桶链接到名为user2的用户:# radosgw-admin bucket link --uid=user2 --bucket=data验证存储桶已成功链接到
user2:# radosgw-admin bucket list --uid=user2 [ "data" ]将存储桶的所有权更改为新用户:
radosgw-admin bucket chown --uid=user --bucket=bucket替换:
- 用户名 为 user 的用户,将存储桶所有权更改为
- 带有 存储桶 名称的存储桶
例如,要将数据存储的所有权更改为
user2:# radosgw-admin bucket chown --uid=user2 --bucket=data通过检查以下命令输出中的
所有者行来验证数据存储桶的所有权是否已成功更改:# radosgw-admin bucket list --bucket=data
3.9.1.3. 在租户用户之间移动存储桶 复制链接链接已复制到粘贴板!
您可以将存储桶从一个租户用户移动到另一个租户用户。
流程
将存储桶链接到一个新用户:
radosgw-admin bucket link --bucket=current-tenant/bucket --uid=new-tenant$user替换 :
- bucket 是租户名称 的当前 租户
- 带有 存储桶 名称的存储桶以链接
- 新租户,名称为新用户的租户
- 用户名 为新用户的用户
例如,将
数据存储桶从test租户链接到test的用户:2 租户中名为 user2# radosgw-admin bucket link --bucket=test/data --uid=test2$user2验证存储桶已成功链接到
user2:# radosgw-admin bucket list --uid=test$user2 [ "data" ]将存储桶的所有权更改为新用户:
radosgw-admin bucket chown --bucket=new-tenant/bucket --uid=new-tenant$user替换:
- 带有 存储桶 名称的存储桶以链接
- 新租户,名称为新用户的租户
- 用户名 为新用户的用户
例如,将
数据存储桶的所有权更改为test:2 租户中的 user2# radosgw-admin bucket chown --bucket='test2/data' --uid='test$tuser2'通过检查以下命令输出中的
所有者行来验证数据存储桶的所有权是否已成功更改:# radosgw-admin bucket list --bucket=test2/data
3.9.1.4. 将存储桶从非租户用户移到租户的用户 复制链接链接已复制到粘贴板!
您可以将存储桶从非租户用户移到租户用户。
流程
可选。如果您还没有多个租户,您可以通过启用
rgw_keystone_implicit_tenants并从外部租户访问 Ceph 对象网关来创建它们:打开并编辑 Ceph 配置文件,默认为
/etc/ceph/ceph.conf。启用rgw_keystone_implicit_tenants选项:rgw_keystone_implicit_tenants = true使用
s3cmd或swift命令从外部租户访问 Ceph 对象网关:# swift list或使用
s3cmd:# s3cmd ls从外部租户进行第一次访问可创建等效的 Ceph 对象网关用户。
将存储桶移到租户的用户:
radosgw-admin bucket link --bucket=/bucket --uid='tenant$user'替换 :
- 带有 存储桶 名称的存储桶
- 带有 新用户的租户名称的租户
- 用户名 为新用户的用户
例如,将
数据存储桶移到测试租户中的tenanted-user中:# radosgw-admin bucket link --bucket=/data --uid='test$tenanted-user'验证
数据存储桶是否已成功链接到tenanted-user:# radosgw-admin bucket list --uid='test$tenanted-user' [ "data" ]将存储桶的所有权更改为新用户:
radosgw-admin bucket chown --bucket='tenant/bucket name' --uid='tenant$user'替换 :
- 带有 存储桶 名称的存储桶
- 带有 新用户的租户名称的租户
- 用户名 为新用户的用户
例如,将
数据存储桶的所有权更改为test租户内的tenanted-user:# radosgw-admin bucket chown --bucket='test/data' --uid='test$tenanted-user'通过检查以下命令输出中的
所有者行来验证数据存储桶的所有权是否已成功更改:# radosgw-admin bucket list --bucket=test/data