Red Hat Training

A Red Hat training course is available for Red Hat Ceph Storage

3.9. bucket 管理

作为存储管理员,在使用 Ceph 对象网关时,您可以通过在用户之间移动 bucket 并将它们重命名来管理存储桶。

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 的所有权更改为新用户。

流程

  1. 将存储桶链接到一个新用户:

    radosgw-admin bucket link --uid=user --bucket=bucket

    替换:

    • 使用用户名 将存储桶链接到的用户
    • 带有 存储桶 名称的存储桶

    例如,要将 数据存储 桶链接到名为 user2 的用户:

    # radosgw-admin bucket link --uid=user2 --bucket=data
  2. 验证存储桶已成功链接到 user2

    # radosgw-admin bucket list --uid=user2
    [
        "data"
    ]
  3. 将存储桶的所有权更改为新用户:

    radosgw-admin bucket chown --uid=user --bucket=bucket

    替换:

    • 用户名 为 user 的用户,将存储桶所有权更改为
    • 带有 存储桶 名称的存储桶

    例如,要将数据存储的所有权更改为 user 2

    # radosgw-admin bucket chown --uid=user2 --bucket=data
  4. 通过检查以下命令输出中的 所有者 行来验证 数据存储 桶的所有权是否已成功更改:

    # radosgw-admin bucket list --bucket=data

3.9.1.3. 在租户用户之间移动存储桶

您可以将存储桶从一个租户用户移动到另一个租户用户。

流程

  1. 将存储桶链接到一个新用户:

    radosgw-admin bucket link --bucket=current-tenant/bucket --uid=new-tenant$user

    替换

    • bucket 是租户名称 的当前 租户
    • 带有 存储桶 名称的存储桶以链接
    • 新租户,名称为新用户的租户
    • 用户名 为新用户的用户

    例如,将 数据存储 桶从 test 租户链接到 test 2 租户中名为 user 2 的用户:

    # radosgw-admin bucket link --bucket=test/data --uid=test2$user2
  2. 验证存储桶已成功链接到 user2

    # radosgw-admin bucket list --uid=test$user2
    [
        "data"
    ]
  3. 将存储桶的所有权更改为新用户:

    radosgw-admin bucket chown --bucket=new-tenant/bucket --uid=new-tenant$user

    替换:

    • 带有 存储桶 名称的存储桶以链接
    • 新租户,名称为新用户的租户
    • 用户名 为新用户的用户

    例如,将 数据存储 桶的所有权更改为 test 2 租户中的 user 2

    # radosgw-admin bucket chown --bucket='test2/data' --uid='test$tuser2'
  4. 通过检查以下命令输出中的 所有者 行来验证 数据存储 桶的所有权是否已成功更改:

    # radosgw-admin bucket list --bucket=test2/data

3.9.1.4. 将存储桶从非租户用户移到租户的用户

您可以将存储桶从非租户用户移到租户用户。

流程

  1. 可选。如果您还没有多个租户,您可以通过启用 rgw_keystone_implicit_tenants 并从外部租户访问 Ceph 对象网关来创建它们:

    打开并编辑 Ceph 配置文件,默认为 /etc/ceph/ceph.conf。启用 rgw_keystone_implicit_tenants 选项:

    rgw_keystone_implicit_tenants = true

    使用 s3cmdswift 命令从外部租户访问 Ceph 对象网关:

    # swift list

    或使用 s3cmd:

    # s3cmd ls

    从外部租户进行第一次访问可创建等效的 Ceph 对象网关用户。

  2. 将存储桶移到租户的用户:

    radosgw-admin bucket link --bucket=/bucket --uid='tenant$user'

    替换

    • 带有 存储桶 名称的存储桶
    • 带有 新用户的租户名称的租户
    • 用户名 为新用户的用户

    例如,将 数据存储 桶移到 测试 租户中的 tenanted-user 中:

    # radosgw-admin bucket link --bucket=/data --uid='test$tenanted-user'
  3. 验证 数据存储 桶是否已成功链接到 tenanted-user

    # radosgw-admin bucket list --uid='test$tenanted-user'
    [
        "data"
    ]
  4. 将存储桶的所有权更改为新用户:

    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'
  5. 通过检查以下命令输出中的 所有者 行来验证 数据存储 桶的所有权是否已成功更改:

    # radosgw-admin bucket list --bucket=test/data