Ceph RGW简介
Ceph RGW(即RADOS Gateway)是Ceph对象存储网关服务,是基于LIBRADOS接口封装实现的FastCGI服务,对外提供存储和管理对象数据的Restful API。 对象存储适用于图片、视频等各类文件的上传下载,可以设置相应的访问权限。目前Ceph RGW兼容常见的对象存储API,例如兼容绝大部分Amazon S3 API,兼容OpenStack Swift API。
部署 RGW 服务
1 | [root@ceph1 ceph]# ceph-deploy install --rgw ceph1 |
将配置文件、密钥文件同步到 ceph1:
1 | [root@ceph1 ceph]# ceph-deploy admin ceph1 |
启动一个RGW服务 :
1 | 先将ceph.conf加一个参数配置 |
1 | [root@ceph1 ceph]# ceph -s |
这时看下danshboard图:
使用亚马逊 s3 客户端进行访问
用户
创建用户 :
1 | [root@ceph1 ceph]# radosgw-admin user create --uid="radosgw" --display-name="First User" |
这个是后续需要的账户信息
1 | "user": "radosgw", |
授权用户,允许 radosgw 读写 users 信息:
1 |
|
允许 radosgw 读写所有的usage信息:
1 | [root@ceph1 ceph]# radosgw-admin caps add --uid=radosgw --caps="usage=read,write" |
创建子用户,做为后面 swift 客户端访问时使用:
1 | [root@ceph1 ceph]# radosgw-admin subuser create --uid=radosgw --subuser=radosgw:swift --access=full |
创建密钥 :
1 | [root@ceph1 ceph]# radosgw-admin key create --subuser=radosgw:swift --key-type=swift --gen-secret |
安装 s3 客户端软件
1 | [root@ceph1 ceph]# yum -y install s3cmd.noarch |
对 s3 进行配置
1 | [root@ceph1 ceph]# s3cmd --configure |
1 | New settings: |
格式是这样:
1 | Default Region [US]: #这里一定不要修改,否则后面会报错 |
由于我没把端口改成80,所以需要带端口访问的,后续可以nginx代理
创建存储数据的 bucket
1 | [root@ceph1 ~]# s3cmd mb s3://cephdir |
s3 的测试脚本:
1 | [root@ceph-f ~]# yum -y install python-boto |
在使用时,请替换自己的 access_key、secret_key、主机名和端口
swift 接口测试
1 | yum install python-setuptools |
命令行访问 :
1 | [root@ceph1 ~]# swift -A http://192.168.6.101:7480/auth/v1.0 -U radosgw:swift -K CZ2F5lqOfdmTCLSPyzqcw5pPNeetruAL4HjHkiAh list |
这里提供 swift 的测试脚本:
1 | [root@ceph-f ~]# vim swift.py |
在使用时,请替换自己的 access_key、secret_key、authurl