5.6. 安装 Ceph 对象网关
Ceph 对象网关(也称为 RADOS 网关)是在 librados
API 基础上构建的对象存储接口,为应用提供 Ceph 存储集群的 RESTful 网关。
先决条件
-
正在运行一个 Red Hat Ceph Storage 集群,最好处于
active + clean
状态。 - 启用免密码 SSH 访问。
- 在 Ceph 对象网关节点上,执行 第 3 章 安装 Red Hat Ceph Storage 的要求 中列出的任务。
如果您要在多站点配置中使用 Ceph 对象网关,则仅完成第 1 - 6 步。在配置多站点前不要运行 Ansible playbook,因为这将在单个站点配置中启动对象网关。Ansible 在单个站点配置中启动后,无法将网关重新配置为多站点设置。完成第 1 到 6 步后,继续配置多站点 Ceph 对象网关部分以设置多站点。
流程
在 Ansible 管理节点上执行下列任务:
将网关主机添加到
[rgws]
部分下的/etc/ansible/hosts
文件中,以将其角色标识到 Ansible。如果主机有顺序命名,请使用范围,例如:[rgws] <rgw_host_name_1> <rgw_host_name_2> <rgw_host_name[3..10]>
进入 Ansible 配置目录:
[root@ansible ~]# cd /usr/share/ceph-ansible
从示例文件创建
rgws.yml
文件:[root@ansible ~]# cp group_vars/rgws.yml.sample group_vars/rgws.yml
打开并编辑
group_vars/rgws.yml
文件。要将管理员密钥复制到 Ceph 对象网关节点,取消注释copy_admin_key
选项:copy_admin_key: true
在
all.yml
文件中,必须指定一个radosgw_interface
。radosgw_interface: <interface>
替换:
-
使用 Ceph 对象网关节点侦听的接口替换
<interface>
例如:
radosgw_interface: eth0
指定该接口可防止 Civetweb 在同一主机上运行多个实例时绑定到与另一个 Civetweb 实例相同的 IP 地址。
如需了解更多详细信息,请参阅
all.yml
文件。-
使用 Ceph 对象网关节点侦听的接口替换
通常,要更改默认设置,取消注释
rgws.yml
文件中的设置,并相应地进行更改。要对不在rgws.yml
文件中的设置进行其他更改,请在all.yml
文件中使用ceph_conf_overrides:
。ceph_conf_overrides: client.rgw.rgw1: rgw_override_bucket_index_max_shards: 16 rgw_bucket_default_quota_max_objects: 1638400
如需高级配置详细信息,请参阅 Red Hat Ceph Storage 4 Ceph Object Gateway for Production 指南。高级议题包括:
- 配置 Ansible 组
开发存储策略。如需有关如何创建和配置池的更多详细信息,请参阅创建根池、创建系统池和创建数据放置策略部分。
如需存储桶分片的配置详情,请参阅 Bucket Sharding。
运行 Ansible playbook:
警告如果要设置多站点,请不要运行 Ansible playbook。继续配置多站点 Ceph 对象网关部分来设置多站点。
裸机部署:
[user@admin ceph-ansible]$ ansible-playbook site.yml --limit rgws -i hosts
容器部署:
[user@admin ceph-ansible]$ ansible-playbook site-container.yml --limit rgws -i hosts
Ansible 确保每个 Ceph 对象网关正在运行。
对于单一站点配置,请将 Ceph 对象网关添加到 Ansible 配置。
对于多站点部署,您应该为每个区域都有一个 Ansible 配置。也就是说,Ansible 将为该区创建一个 Ceph 存储集群和网关实例。
安装完多站点群集后,请继续 Red Hat Ceph Storage 4 对象网关指南中的多站点章节,以获取为多站点配置集群的详细信息。