ceph S3/swift

  • rgw提供了2种风格的API: S3,swift;
  • 默认rgw实例使用7480端口;
  • 本例使用radosgw内置的Civetweb 进行,以往的版本是需要 Apache/nginx 进行CGI服务提供的;
ceph-deploy install --rgw --no-adjust-repos rgw_node
ceph-deploy rgw create rgw_node
sudo ss -ln|grep 7480
sudo netstat -antlp|grep 7480

通过http://rgw_node:7480验证.

1.1. 修改rgw默认端口

默认的,Civetweb 使用7480端口,修改为其他端口的话,参考以下操作:

添加以下配置信息至ceph.conf的[global]区段之后:

[client.rgw.gateway-node1]
rgw_frontends = "civetweb port=80"

推送配置:

ceph-deploy --overwrite-conf config push <gateway-node> [<other-nodes>]
sudo systemctl restart ceph-radosgw.target

1.2. 配置域名

为了通过 S3 风格的子域名来使用 Ceph(如:bucket-name.domain-name.com),你应该给你的 ceph-radosgw 守护进程所在服务器在 DNS 服务器上给它的 DNS 记录添加泛域名解析。

*.s3  192.168.1.100(rgw所在的ip,假设域名为abc.com)

然后配置rgw dns name = s3.abc.com 到ceph.conf的rgw实例里.

1.3. civetweb使用ssl

using-ssl-with-civetweb

此外,Luminous版本还支持配置多个端口,以便将ssl端口和非ssl端口分开.

# 创建S3用户
sudo radosgw-admin user create --uid="rgw-user" --display-name="rgw-user"
# 创建swift用户,full权限
sudo radosgw-admin subuser create --uid=rgw-user --subuser=rgw-user:swift --access=full
# Create the secret key
sudo radosgw-admin key create --subuser=rgw-user:swift --key-type=swift --gen-secret
# 查看用户
radosgw-admin user info --uid=rgw-user

3.1. S3

创建测试脚本,注意替换相关变量:

import boto.s3.connection
 
access_key = 'I0PJDPCIYZ665MW88W9R'
secret_key = 'dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA'
conn = boto.connect_s3(
        aws_access_key_id=access_key,
        aws_secret_access_key=secret_key,
        host='{hostname}', port={port},
        is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
       )
 
bucket = conn.create_bucket('my-new-bucket')
for bucket in conn.get_all_buckets():
    print "{name} {created}".format(
        name=bucket.name,
        created=bucket.creation_date,
    )
python s3test.py

3.2. swift

sudo yum install python-setuptools
sudo easy_install pip
sudo pip install --upgrade setuptools
sudo pip install --upgrade python-swiftclient
swift -A http://{IP ADDRESS}:{port}/auth/1.0 -U testuser:swift -K '{swift_secret_key}' list

  • storage/ceph/ceph_s3_swift.txt
  • 最后更改: 2019/04/16 18:31
  • (外部编辑)