3.3. 使用服务规格部署 Ceph 对象网关


您可以使用服务规格和默认域、区域和区域组来部署 Ceph 对象网关。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 对 bootstrap 启动主机的 root 级别访问权限。
  • 主机添加到集群中。
  • 部署所有管理器、监控和 OSD 守护进程。

流程

  1. 作为 root 用户,创建规格文件:

    示例

    [root@host01 ~]# touch radosgw.yml

  2. 通过在 Ceph 对象网关关闭/restart 中将 rgw_graceful_stop 设置为 'true',将 S3 请求配置为等待 rgw_exit_timeout_secs 参数中定义的持续时间。

    语法

    ceph config set client.rgw rgw_graceful_stop true
    
    ceph config set client.rgw rgw_exit_timeout_secs 120

    注意

    在容器化部署中,还需要额外的 extra_container_agrs 配置 of --stop-timeout=120 (或 rgw_exit_timeout_secs 配置的值(如果不是默认值),以便它能够与 ceph orch stop/restart 命令正常工作。

    [root@host1 ~]$ cat rgw_spec.yaml
    service_type: rgw
    service_id: foo
    placement:
      count_per_host: 1
      hosts:
        - rgw_node
    spec:
      rgw_frontend_port: 8081
    extra_container_args:
      - "--stop-timeout=120"
  3. 编辑 radosgw.yml 文件,使其包含 default realm、zone 和 zone group 的以下详情:

    语法

    service_type: rgw
    service_id: REALM_NAME.ZONE_NAME
    placement:
      hosts:
      - HOST_NAME_1
      - HOST_NAME_2
      count_per_host: NUMBER_OF_DAEMONS
    spec:
      rgw_realm: REALM_NAME
      rgw_zone: ZONE_NAME
      rgw_zonegroup: ZONE_GROUP_NAME
      rgw_frontend_port: FRONT_END_PORT
    networks:
      -  NETWORK_CIDR # Ceph Object Gateway service binds to a specific network

    注意

    NUMBER_OF_DAEMONS 控制每个主机上部署的 Ceph 对象网关数量。要在不增加成本的情况下获得最高的性能,请将此值设置为 2。

    示例

    service_type: rgw
    service_id: default
    placement:
      hosts:
      - host01
      - host02
      - host03
      count_per_host: 2
    spec:
      rgw_realm: default
      rgw_zone: default
      rgw_zonegroup: default
      rgw_frontend_port: 1234
    networks:
      - 192.169.142.0/24

  4. 可选: 对于自定义 realm、zone 和 zone group,请创建资源,然后创建 radosgw.yml 文件:

    1. 创建自定义 realm、zone 和 zone group:

      示例

      [root@host01 ~]# radosgw-admin realm create --rgw-realm=test_realm --default
      [root@host01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=test_zonegroup --default
      [root@host01 ~]# radosgw-admin zone create --rgw-zonegroup=test_zonegroup --rgw-zone=test_zone --default
      [root@host01 ~]# radosgw-admin period update --rgw-realm=test_realm --commit

    2. 使用以下详细信息,创建 radosgw.yml 文件:

      示例

      service_type: rgw
      service_id: test_realm.test_zone
      placement:
        hosts:
        - host01
        - host02
        - host03
        count_per_host: 2
      spec:
        rgw_realm: test_realm
        rgw_zone: test_zone
        rgw_zonegroup: test_zonegroup
        rgw_frontend_port: 1234
      networks:
        - 192.169.142.0/24

  5. radosgw.yml 文件挂载到容器中的某个目录下:

    示例

    [root@host01 ~]# cephadm shell --mount radosgw.yml:/var/lib/ceph/radosgw/radosgw.yml

    注意

    每次退出 shell 时,您都必须在部署守护进程前将该文件挂载到容器中。

  6. 使用服务规格部署 Ceph 对象网关:

    语法

    ceph orch apply -i FILE_NAME.yml

    示例

    [ceph: root@host01 /]# ceph orch apply -i /var/lib/ceph/radosgw/radosgw.yml

验证

  • 列出服务:

    示例

    [ceph: root@host01 /]# ceph orch ls

  • 列出主机、守护进程和进程:

    语法

    ceph orch ps --daemon_type=DAEMON_NAME

    示例

    [ceph: root@host01 /]# ceph orch ps --daemon_type=rgw

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.