3.6. 配置外部 Ceph 对象网关后端


您可以通过完成以下高级别任务,将外部 Ceph 对象网关(RGW)配置为充当对象存储服务(swift)后端:

  1. 配置 RGW,以验证 Identity 服务(keystone)中的用户及其角色,以使用外部 RGW 服务进行身份验证。
  2. 部署和配置 RGW 服务,以处理对象存储请求。

您可以使用 openstack 客户端工具配置对象存储服务。

3.6.1. 配置 RGW 身份验证

您必须配置 RGW,以验证 Identity 服务(keystone)中的用户及其角色,以便与外部 RGW 服务进行身份验证。

先决条件

  • 您已部署了可正常工作的 OpenStack control plane。

流程

  1. 在 control plane 上创建 Object Storage 服务:

    $ openstack service create --name swift --description "OpenStack Object Storage" object-store
  2. 创建名为 swift 的用户:

    $ openstack user create --project service --password <swift_password> swift
    • <swift_password > 替换为要分配给 swift 用户的密码。
  3. swift 用户创建角色:

    $ openstack role create swiftoperator
    $ openstack role create ResellerAdmin
  4. swift 用户添加到系统角色中:

    $ openstack role add --user swift --project service member
    $ openstack role add --user swift --project service admin
  5. 将 RGW 端点 IP 地址导出到变量并创建 control plane 端点:

    $ export RGW_ENDPOINT_STORAGE=<rgw_endpoint_ip_address_storage>
    $ export RGW_ENDPOINT_EXTERNAL=<rgw_endpoint_ip_address_external>
    $ openstack endpoint create --region regionOne object-store public http://$RGW_ENDPOINT_EXTERNAL:8080/swift/v1/AUTH_%\(tenant_id\)s;
    $ openstack endpoint create --region regionOne object-store internal http://$RGW_ENDPOINT_STORAGE:8080/swift/v1/AUTH_%\(tenant_id\)s;
    • <rgw_endpoint_ip_address_storage > 替换为存储网络上 RGW 端点的 IP 地址。这是内部服务如何访问 RGW。
    • <rgw_endpoint_ip_address_external > 替换为外部网络上 RGW 端点的 IP 地址。这是云用户如何将对象写入 RGW 的方式。

      注意

      两个端点 IP 地址都是代表虚拟 IP 地址(由 haproxykeepalived 所有)的端点,用于访问在 配置和部署 RGW 服务的步骤中将部署在 Red Hat Ceph Storage 集群中的 RGW 后端。

  6. swiftoperator 角色添加到 control plane admin 组:

    $ openstack role add --project admin --user admin swiftoperator

3.6.2. 配置和部署 RGW 服务

配置和部署 RGW 服务以处理对象存储请求。

流程

  1. 登录到 Red Hat Ceph Storage Controller 节点。
  2. 创建名为 /tmp/rgw_spec.yaml 的文件并添加 RGW 部署参数:

    service_type: rgw
    service_id: rgw
    service_name: rgw.rgw
    placement:
      hosts:
        - <host_1>
        - <host_2>
        ...
        - <host_n>
    networks:
    - <storage_network>
    spec:
      rgw_frontend_port: 8082
      rgw_realm: default
      rgw_zone: default
    ---
    service_type: ingress
    service_id: rgw.default
    service_name: ingress.rgw.default
    placement:
      count: 1
    spec:
      backend_service: rgw.rgw
      frontend_port: 8080
      monitor_port: 8999
      virtual_ips_list:
      - <storage_network_vip>
      - <external_network_vip>
      virtual_interface_networks:
      - <storage_network>
    • <host_1& gt ; , < host_ 2> , …, <host_n > 替换为部署 RGW 实例的 Ceph 节点的名称。
    • <storage_network > 替换为用于解析绑定 radosgw 进程的接口的网络范围。
    • <storage_network_vip > 替换为用作 haproxy 前端的虚拟 IP (VIP)。这与配置 RGW 身份验证过程中 Object Storage 服务端点($RGW_ENDPOINT)的配置 相同。
    • 可选:使用外部网络上的额外 VIP 替换 <external_network_vip>,以用作 haproxy 前端。此地址用于从外部网络连接到 RGW。
  3. 保存该文件。
  4. 输入 cephadm shell 并挂载 rgw_spec.yaml 文件。

    $ cephadm shell -m /tmp/rgw_spec.yaml
  5. 在集群中添加 RGW 相关配置:

    $ ceph config set global rgw_keystone_url "https://<keystone_endpoint>"
    $ ceph config set global rgw_keystone_verify_ssl false
    $ ceph config set global rgw_keystone_api_version 3
    $ ceph config set global rgw_keystone_accepted_roles "member, Member, admin"
    $ ceph config set global rgw_keystone_accepted_admin_roles "ResellerAdmin, swiftoperator"
    $ ceph config set global rgw_keystone_admin_domain default
    $ ceph config set global rgw_keystone_admin_project service
    $ ceph config set global rgw_keystone_admin_user swift
    $ ceph config set global rgw_keystone_admin_password "$SWIFT_PASSWORD"
    $ ceph config set global rgw_keystone_implicit_tenants true
    $ ceph config set global rgw_s3_auth_use_keystone true
    $ ceph config set global rgw_swift_versioning_enabled true
    $ ceph config set global rgw_swift_enforce_content_length true
    $ ceph config set global rgw_swift_account_in_url true
    $ ceph config set global rgw_trust_forwarded_https true
    $ ceph config set global rgw_max_attr_name_len 128
    $ ceph config set global rgw_max_attrs_num_in_req 90
    $ ceph config set global rgw_max_attr_size 1024
    • <keystone_endpoint > 替换为 Identity 服务端点。EDPM 节点能够解析内部端点,但不能解析公共端点。不要从 URL 省略 URIScheme,它必须是 http://https://
    • 将 < swift_password > 替换为上一步中分配给 swift 用户的密码。
  6. 使用 Orchestrator 部署 RGW 配置:

    $ ceph orch apply -i /mnt/rgw_spec.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.