Ceph 对象存储快速入门

从 firefly(v0.80)起,Ceph 存储集群显著地简化了 Ceph 对象网关的安装和配置。网关守护进程内嵌了 Civetweb,无需额外安装 web 服务器或配置 FastCGI。此外,可以直接 使用 ceph-deploy 来安装网关软件包、生成密钥、配置数据目录以及创建一个网关实例。

Tip

Civetweb 默认使用 7480 端口。要么直接打开 7480 端口,要么在你的 Ceph 配置文件中设置首选端口(例如 80 端口)。

要使用 Ceph 对象网关,请执行下列步骤:

安装 Ceph 对象网关

  • 在 client-node 上执行预安装步骤。如果你打算使用 Civetweb 的默认端口 7480 ,必须通过 firewall-cmd 或 iptables 来打开它。详情见预检

  • 从管理节点的工作目录,在 client-node 上安装 Ceph 对象网关软件包。例如:

  1. ceph-deploy install --rgw <client-node> [<client-node> ...]

新建 Ceph 对象网关实例

从管理节点的工作目录,在 client-node 上新建一个 Ceph 对象网关实例。例如:

  1. ceph-deploy rgw create

一旦网关开始运行,你就可以通过 7480 端口来访问它(比如 http://client-node:7480 )。

配置 Ceph 对象网关实例

  • 通过修改 Ceph 配置文件可以更改默认端口(比如改成 80 )。增加名为 [client.rgw.] 的小节,把 替换成你自己 Ceph 客户端节点的短名称(即 hostname-s 的输出)。例如,你的节点名就是 client-node ,在 [global] 节后增加一个类似于下面的小节:
  1. [client.rgw.client-node]
  2. rgw_frontends = "civetweb port=80"

Note

确保在 rgw_frontends 键值对的 port= 中没有空格。

Important

如果你打算使用 80 端口,确保 Apache 服务器没有在使用该端口,否则会和 Civetweb 冲突。出现这种情况时我们建议移除 Apache 服务。

  • 为了使新端口的设置生效,需要重启 Ceph 对象网关。在 RHEL 7 和 Fedora 上 ,执行:
  1. sudo systemctl restart ceph-radosgw.service

在 RHEL 6 和 Ubuntu 上,执行:

  1. sudo service radosgw restart id=rgw.<short-hostname>
  • 最后,检查节点的防火墙,确保你所选用的端口(例如 80 端口)处于开放状态。如果没有,把该端口加入放行规则并重载防火墙的配置。例如:
  1. sudo firewall-cmd --list-all sudo firewall-cmd --zone=public --add-port
  2. 80/tcp --permanent
  3. sudo firewall-cmd --reload

关于使用 firewall-cmd 或 iptables 配置防火墙的详细信息,请参阅预检

你应该可以生成一个未授权的请求,并收到应答。例如,一个如下不带参数的请求:

  1. http://<client-node>:80

应该收到这样的应答:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  3. <Owner>
  4. <ID>anonymous</ID>
  5. <DisplayName></DisplayName>
  6. </Owner>
  7. <Buckets>
  8. </Buckets>
  9. </ListAllMyBucketsResult>

更多管理和 API 细节请参阅 Ceph 对象网关的配置 指南。