3.5. 使用 Ceph Manager rgw 模块


作为存储管理员,您可以使用 rgw 模块部署 Ceph 对象网关、单一站点和多站点。它有助于引导和配置 Ceph 对象域、zonegroup 和不同的相关实体。

您可以将可用的令牌用于新创建的域或现有域。此令牌是一个 base64 字符串,封装 realm 信息及其 master zone 端点身份验证数据。

在多站点配置中,这些令牌可用于拉取域,以便在使用 rgw zone create 命令与主集群上的 master zone 同步的不同集群中创建 second zone。

3.5.1. 使用 rgw 模块部署 Ceph 对象网关

启动 Ceph 对象网关域创建新的域实体、新 zonegroup 和新区域。rgw 模块指示编配器创建和部署对应的 Ceph 对象网关守护进程。

使用 ceph mgr module enable rgw 命令启用 rgw 模块。启用 rgw 模块后,可在命令行上传递参数,或者使用 yaml 规格文件来引导域。

先决条件

  • 正在运行的 Red Hat Ceph Storage 集群至少部署了一个 OSD。

流程

  1. 登录到 Cephadm shell:

    示例

    [root@host01 ~]# cephadm shell
    Copy to Clipboard Toggle word wrap

  2. 启用 ` rgw` 模块:

    示例

    [ceph: root@host01 /]# ceph mgr module enable rgw
    Copy to Clipboard Toggle word wrap

  3. 使用命令行或 yaml 规格文件引导 Ceph 对象网关域:

    • 选项 1:使用命令行界面:

      语法

      ceph rgw realm bootstrap [--realm name REALM_NAME] [--zonegroup-name ZONEGROUP_NAME] [--zone-name ZONE_NAME] [--port PORT_NUMBER] [--placement HOSTNAME] [--start-radosgw]
      Copy to Clipboard Toggle word wrap

      示例

      [ceph: root@host01 /]# ceph rgw realm bootstrap --realm-name myrealm --zonegroup-name myzonegroup --zone-name myzone --port 5500 --placement="host01 host02" --start-radosgw
      Realm(s) created correctly. Please, use 'ceph rgw realm tokens' to get the token.
      Copy to Clipboard Toggle word wrap

    • 选项 2:使用 yaml 规格文件:

      1. 以 root 用户身份,创建 yaml 文件:

        语法

        rgw_realm: REALM_NAME
        rgw_zonegroup: ZONEGROUP_NAME
        rgw_zone: ZONE_NAME
        placement:
          hosts:
           - _HOSTNAME_1_
           - _HOSTNAME_2_
        Copy to Clipboard Toggle word wrap

        示例

        [root@host01 ~]# cat rgw.yaml
        
        rgw_realm: myrealm
        rgw_zonegroup: myzonegroup
        rgw_zone: myzone
        placement:
          hosts:
           - host01
           - host02
        Copy to Clipboard Toggle word wrap

      2. 可选:您可以在 realm bootstrap 期间将 hostname 参数添加到 zonegroup 中:

        语法

        service_type: rgw
        placement:
          hosts:
          - _host1_
          - _host2_
        spec:
          rgw_realm: my_realm
          rgw_zonegroup: my_zonegroup
          rgw_zone: my_zone
          zonegroup_hostnames:
          - _hostname1_
          - _hostname2_
        Copy to Clipboard Toggle word wrap

        示例

        service_type: rgw
        placement:
          hosts:
          - _host1_
          - _host2_
        spec:
          rgw_realm: my_realm
          rgw_zonegroup: my_zonegroup
          rgw_zone: my_zone
          zonegroup_hostnames:
          - foo
          - bar
        Copy to Clipboard Toggle word wrap

      3. 将 YAML 文件挂载到容器中的一个目录下:

        示例

        [root@host01 ~]# cephadm shell --mount rgw.yaml:/var/lib/ceph/rgw/rgw.yaml
        Copy to Clipboard Toggle word wrap

      4. 引导域:

        示例

        [ceph: root@host01 /]# ceph rgw realm bootstrap -i /var/lib/ceph/rgw/rgw.yaml
        Copy to Clipboard Toggle word wrap

        注意

        rgw 模块使用的规格文件的格式与编配器使用的格式相同。因此,您可以提供任何编配支持的 Ceph 对象网关参数,包括 SSL 证书等高级配置功能。

  4. 列出可用的令牌:

    示例

    [ceph: root@host01 /]# ceph rgw realm tokens | jq
    
    [
      {
        "realm": "myrealm",
        "token": "ewogICAgInJlYWxtX25hbWUiOiAibXlyZWFsbSIsCiAgICAicmVhbG1faWQiOiAiZDA3YzAwZWYtOTA0MS00ZjZlLTg4MDQtN2Q0MDI0MDU1NmFlIiwKICAgICJlbmRwb2ludCI6ICJodHRwOi8vdm0tMDA6NDMyMSIsCiAgICAiYWNjZXNzX2tleSI6ICI5NTY1VFZSMVFWTExFRzdVNFIxRCIsCiAgICAic2VjcmV0IjogImQ3b0FJQXZrNEdYeXpyd3Q2QVZ6bEZNQmNnRG53RVdMMHFDenE3cjUiCn1="
      }
    ]
    Copy to Clipboard Toggle word wrap

    注意

    如果您在 Ceph 对象网关守护进程部署之前运行上述命令,它会显示一条消息,因为还没有端点。

验证

  • 验证对象网关部署:

    Example

    [ceph: root@host01 /]# ceph orch list --daemon-type=rgw
    NAME                                                                HOST                                    PORTS  STATUS          REFRESHED   AGE  MEM USE  MEM LIM  VERSION          IMAGE ID      CONTAINER ID
    rgw.myrealm.myzonegroup.ceph-saya-6-osd-host01.eburst  ceph-saya-6-osd-host01  *:80   running (111m)     9m ago  111m    82.3M        -  17.2.6-22.el9cp  2d5b080de0b0  2f3eaca7e88e
    Copy to Clipboard Toggle word wrap

  • 通过 realm bootstrap 验证添加 的主机名

    语法

    radosgw-admin zonegroup get --rgw-zonegroup _zone_group_name_
    Copy to Clipboard Toggle word wrap

    Example

    [ceph: root@host01 /]# radosgw-admin zonegroup get --rgw-zonegroup my_zonegroup
    
    {
        "id": "02a175e2-7f23-4882-8651-6fbb15d25046",
        "name": "my_zonegroup_ck",
        "api_name": "my_zonegroup_ck",
        "is_master": true,
        "endpoints": [
            "http://vm-00:80"
        ],
        "hostnames": [
            "foo"
            "bar"
        ],
        "hostnames_s3website": [],
        "master_zone": "f42fea84-a89e-4995-996e-61b7223fb0b0",
        "zones": [
            {
                "id": "f42fea84-a89e-4995-996e-61b7223fb0b0",
                "name": "my_zone_ck",
                "endpoints": [
                    "http://vm-00:80"
                ],
                "log_meta": false,
                "log_data": false,
                "bucket_index_max_shards": 11,
                "read_only": false,
                "tier_type": "",
                "sync_from_all": true,
                "sync_from": [],
                "redirect_zone": "",
                "supported_features": [
                    "compress-encrypted",
                    "resharding"
                ]
            }
        ],
        "placement_targets": [
            {
                "name": "default-placement",
                "tags": [],
                "storage_classes": [
                    "STANDARD"
                ]
            }
        ],
        "default_placement": "default-placement",
        "realm_id": "439e9c37-4ddc-43a3-99e9-ea1f3825bb51",
        "sync_policy": {
            "groups": []
        },
        "enabled_features": [
            "resharding"
        ]
    }
    Copy to Clipboard Toggle word wrap

    有关 Ceph 对象网关规格文件中的 zonegroup _ hostnames 中指定的主机名列表,请参阅 zonegroup 的 hostname 部分。

3.5.2. 使用 rgw 模块部署 Ceph 对象网关多站点

启动 Ceph 对象网关域创建新的域实体、新 zonegroup 和新区域。它配置一个新的系统用户,可用于多站点同步操作。rgw 模块指示编配器创建和部署对应的 Ceph 对象网关守护进程。

使用 ceph mgr module enable rgw 命令启用 rgw 模块。启用 rgw 模块后,可在命令行上传递参数,或者使用 yaml 规格文件来引导域。

先决条件

  • 正在运行的 Red Hat Ceph Storage 集群至少部署了一个 OSD。

流程

  1. 登录到 Cephadm shell:

    示例

    [root@host01 ~]# cephadm shell
    Copy to Clipboard Toggle word wrap

  2. 启用 ` rgw` 模块:

    示例

    [ceph: root@host01 /]# ceph mgr module enable rgw
    Copy to Clipboard Toggle word wrap

  3. 使用命令行或 yaml 规格文件引导 Ceph 对象网关域:

    • 选项 1:使用命令行界面:

      语法

      ceph rgw realm bootstrap [--realm name REALM_NAME] [--zonegroup-name ZONEGROUP_NAME] [--zone-name ZONE_NAME] [--port PORT_NUMBER] [--placement HOSTNAME] [--start-radosgw]
      Copy to Clipboard Toggle word wrap

      示例

      [ceph: root@host01 /]# ceph rgw realm bootstrap --realm-name myrealm --zonegroup-name myzonegroup --zone-name myzone --port 5500 --placement="host01 host02" --start-radosgw
      Realm(s) created correctly. Please, use 'ceph rgw realm tokens' to get the token.
      Copy to Clipboard Toggle word wrap

    • 选项 2:使用 yaml 规格文件:.. 作为 root 用户,创建 yaml 文件:

      语法

      rgw_realm: pass:q[REALM_NAME]
      rgw_zonegroup: pass:q[ZONEGROUP_NAME]
      rgw_zone: pass:q[ZONE_NAME]
      placement:
        hosts:
         - pass:q[HOSTNAME_1]
         - pass:q[HOSTNAME_2]
      spec:
        rgw_frontend_port: pass:q[PORT_NUMBER]
      zone_endpoints:pass:q[ http://RGW_HOSTNAME_1]:pass:q[RGW_PORT_NUMBER_1], pass:q[http://RGW_HOSTNAME_2]:pass:q[RGW_PORT_NUMBER_2]
      Copy to Clipboard Toggle word wrap

      示例

      [root@host01 ~]# cat rgw.yaml
      rgw_realm: myrealm
      rgw_zonegroup: myzonegroup
      rgw_zone: myzone
      placement
        hosts:
         - host01
         - host02
      spec:
        rgw_frontend_port: 5500
        zone_endpoints: http://<rgw_host1>:<rgw_port1>, http://<rgw_host2>:<rgw_port2>
      Copy to Clipboard Toggle word wrap

      1. 可选: 对于这些客户端 rgw,请在 Ceph 对象网关规格文件的 spec 部分下设置 disable_multisite_sync_traffic:true。然后,cephadm 会为这些 RGW 守护进程将 rgw_run_sync_thread 配置设置为 false,防止它们参与同步操作。这种自动化消除了为 RGW 用户手动配置 rgw_run_sync_thread 的需要。

    语法

    ceph config set <client_rgw_daemon> rgw_run_sync_thread false
    Copy to Clipboard Toggle word wrap

    +

    在以下示例中,RGW 服务 io.rgw 配置有 disable_multisite_sync_traffic: true,因此它只处理客户端 IO。RGW 服务 sync.rgw 配置为参与多站点同步操作,因为 disable_multisite_sync_traffic 默认为 false。

    + .example

    [root@host01 ~]# cat rgw.yaml
    service_id: io.rgw
    service_name: rgw.io.rgw
    rgw_realm: myrealm
    rgw_zonegroup: myzonegroup
    rgw_zone: myzone
    placement:
      hosts:
      - rgw_host1
      - rgw_host2
    spec:
       rgw_frontend_port: <rgw_port>
       disable_multisite_sync_traffic: true
    
    service_id: sync.rgw
    service_name: rgw.sync.rgw
    rgw_realm: myrealm
    rgw_zonegroup: myzonegroup
    rgw_zone: myzone
    placement:
      hosts:
      - rgw_host3
      - rgw_host4
    spec:
       rgw_frontend_port: <rgw_port>
    zone_endpoints: http://<rgw_host3>:<rgw_port>, http://<rgw_host4>:<rgw_port>
    Copy to Clipboard Toggle word wrap

    +

    1. 将 YAML 文件挂载到容器中的一个目录下:

      示例

      [root@host01 ~]# cephadm shell --mount rgw.yaml:/var/lib/ceph/rgw/rgw.yaml
      Copy to Clipboard Toggle word wrap

    2. 引导域:

      示例

      [ceph: root@host01 /]# ceph rgw realm bootstrap -i /var/lib/ceph/rgw/rgw.yaml
      Copy to Clipboard Toggle word wrap

      注意

      rgw 模块使用的规格文件的格式与编配器使用的格式相同。因此,您可以提供任何编配支持的 Ceph 对象网关参数,包括 SSL 证书等高级配置功能。

  4. 列出可用的令牌:

    示例

    [ceph: root@host01 /]# ceph rgw realm tokens | jq
    
    [
      {
        "realm": "myrealm",
        "token": "ewogICAgInJlYWxtX25hbWUiOiAibXlyZWFsbSIsCiAgICAicmVhbG1faWQiOiAiZDA3YzAwZWYtOTA0MS00ZjZlLTg4MDQtN2Q0MDI0MDU1NmFlIiwKICAgICJlbmRwb2ludCI6ICJodHRwOi8vdm0tMDA6NDMyMSIsCiAgICAiYWNjZXNzX2tleSI6ICI5NTY1VFZSMVFWTExFRzdVNFIxRCIsCiAgICAic2VjcmV0IjogImQ3b0FJQXZrNEdYeXpyd3Q2QVZ6bEZNQmNnRG53RVdMMHFDenE3cjUiCn1="
      }
    ]
    Copy to Clipboard Toggle word wrap

    注意

    如果您在 Ceph 对象网关守护进程部署之前运行上述命令,它会显示一条消息,因为还没有端点。

  5. 使用这些令牌创建 second zone 并加入现有的域:

    1. 以 root 用户身份,创建 yaml 文件:

      示例

      [root@host01 ~]# cat zone-spec.yaml
      rgw_zone: my-secondary-zone
      rgw_realm_token: <token>
      placement:
        hosts:
         - ceph-node-1
         - ceph-node-2
      spec:
        rgw_frontend_port: 5500
      Copy to Clipboard Toggle word wrap

      要在部署期间为特定 RGW 服务禁用多站点同步流量参数,请按照以下步骤操作 3 (可选)。此设置禁用部署期间为特定 RGW 服务禁用多站点同步流量,因此它们仅处理客户端 IO。

    2. zone-spec.yaml 文件挂载到容器中的一个目录中:

      示例

      [root@host01 ~]# cephadm shell --mount zone-spec.yaml:/var/lib/ceph/radosgw/zone-spec.yaml
      Copy to Clipboard Toggle word wrap

    3. 在 second zone 中启用' rgw'module:

      示例

      [ceph: root@host01 /]# ceph mgr module enable rgw
      Copy to Clipboard Toggle word wrap

    4. 创建 second zone:

      示例

      [ceph: root@host01 /]# ceph rgw zone create -i /var/lib/ceph/radosgw/zone-spec.yaml
      Copy to Clipboard Toggle word wrap

      验证

      • 验证对象网关多站点部署:

        示例

        [ceph: root@host01 /]# radosgw-admin realm list
        {
        "default_info": "d07c00ef-9041-4f6e-8804-7d40240556ae",
        "realms": [
        "myrealm"
        ]
        }
        Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat