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 对象网关软件包。例如:
- ceph-deploy install --rgw <client-node> [<client-node> ...]
新建 Ceph 对象网关实例
从管理节点的工作目录,在 client-node 上新建一个 Ceph 对象网关实例。例如:
- ceph-deploy rgw create
一旦网关开始运行,你就可以通过 7480 端口来访问它(比如 http://client-node:7480 )。
配置 Ceph 对象网关实例
- 通过修改 Ceph 配置文件可以更改默认端口(比如改成 80 )。增加名为 [client.rgw.
] 的小节,把 替换成你自己 Ceph 客户端节点的短名称(即 hostname-s 的输出)。例如,你的节点名就是 client-node ,在 [global] 节后增加一个类似于下面的小节:
- [client.rgw.client-node]
- rgw_frontends = "civetweb port=80"
Note
确保在 rgw_frontends 键值对的 port=
Important
如果你打算使用 80 端口,确保 Apache 服务器没有在使用该端口,否则会和 Civetweb 冲突。出现这种情况时我们建议移除 Apache 服务。
- 为了使新端口的设置生效,需要重启 Ceph 对象网关。在 RHEL 7 和 Fedora 上 ,执行:
- sudo systemctl restart ceph-radosgw.service
在 RHEL 6 和 Ubuntu 上,执行:
- sudo service radosgw restart id=rgw.<short-hostname>
- 最后,检查节点的防火墙,确保你所选用的端口(例如 80 端口)处于开放状态。如果没有,把该端口加入放行规则并重载防火墙的配置。例如:
- sudo firewall-cmd --list-all sudo firewall-cmd --zone=public --add-port
- 80/tcp --permanent
- sudo firewall-cmd --reload
关于使用 firewall-cmd 或 iptables 配置防火墙的详细信息,请参阅预检。
你应该可以生成一个未授权的请求,并收到应答。例如,一个如下不带参数的请求:
- http://<client-node>:80
应该收到这样的应答:
- <?xml version="1.0" encoding="UTF-8"?>
- <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
- <Owner>
- <ID>anonymous</ID>
- <DisplayName></DisplayName>
- </Owner>
- <Buckets>
- </Buckets>
- </ListAllMyBucketsResult>
更多管理和 API 细节请参阅 Ceph 对象网关的配置 指南。