对象存储之二(续):实践rgw

对象存储之二(续):实践rgw

对象存储之二:实践中使用了Ceph系统的rados命令以及librados API,下面继续往前走;

rgw

使用云服务器+Docker部署Ceph存储系统 环境中,已经在docker实例中启动了rgw服务;

[root@cluster1 ~]# ps aux |grep rgw
root 12913 0.0 0.0 112648 960 pts/2 R+ 11:13 0:00 grep –color=auto rgw
64045 31401 0.0 2.3 1822416 23744 ? Ssl Jun25 3:50 radosgw –cluster ceph –setuser ceph –setgroup ceph -n client.radosgw.gateway -k /var/lib/ceph/radosgw/cluster/keyring –rgw-socket-path= –rgw-frontends=civetweb port=80

rgw for s3 access

创建rgw s3 user:using-the-gateway

[root@cluster1 ~]# radosgw-admin user create –uid=”testuser” –display-name=”First User”
{
“user_id”: “testuser”,
“display_name”: “First User”,
“email”: “”,
“suspended”: 0,
“max_buckets”: 1000,
“auid”: 0,
“subusers”: [],
“keys”: [
{
“user”: “testuser”,
“access_key”: “WD34DYGH4T3D1F9MJE0C”,
“secret_key”: “UhqLKc31zTmyPDzj29Z4QUp0ikuPcyQRw0RgVbFw”
}
],
“swift_keys”: [],
“caps”: [],
“op_mask”: “read, write, delete”,
“default_placement”: “”,
“placement_tags”: [],
“bucket_quota”: {
“enabled”: false,
“max_size_kb”: -1,
“max_objects”: -1
},
“user_quota”: {
“enabled”: false,
“max_size_kb”: -1,
“max_objects”: -1
},
“temp_url_keys”: []
}
[root@cluster1 ~]# radosgw-admin user info –uid=”testuser”

client端 安装s3开发包,连接到rgw并创建一个bucket:

yum install python-boto -y

cat <<EOF >s3test.py
#!/bin/python

import boto
import boto.s3.connection

access_key = "WD34DYGH4T3D1F9MJE0C"
secret_key = "UhqLKc31zTmyPDzj29Z4QUp0ikuPcyQRw0RgVbFw"

conn = boto.connect_s3(
aws_access_key_id = access_key,
aws_secret_access_key = secret_key,
host = '172.18.18.95',
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}\t{created}".format(
        name = bucket.name,
        created = bucket.creation_date,
)

EOF

[root@cluster1 ~]# python s3test.py
my-new-bucket 2017-06-29T03:38:46.825Z

rgw for swift access

创建rgw swift user:

[root@cluster1 ~]# sudo radosgw-admin subuser create –uid=testuser –subuser=testuser:swift –access=full
[root@cluster1 ~]# sudo radosgw-admin key create –subuser=testuser:swift –key-type=swift –gen-secret
{
“user_id”: “testuser”,
“display_name”: “First User”,
“email”: “”,
“suspended”: 0,
“max_buckets”: 1000,
“auid”: 0,
“subusers”: [
{
“id”: “testuser:swift”,
“permissions”: “full-control”
}
],
“keys”: [
{
“user”: “testuser”,
“access_key”: “WD34DYGH4T3D1F9MJE0C”,
“secret_key”: “UhqLKc31zTmyPDzj29Z4QUp0ikuPcyQRw0RgVbFw”
}
],
“swift_keys”: [
{
“user”: “testuser:swift”,
“secret_key”: “MgOqWsoDzSs2OZVYU4ggprqtwc8AiaLXkQNtPq6O”
}
],
“caps”: [],
“op_mask”: “read, write, delete”,
“default_placement”: “”,
“placement_tags”: [],
“bucket_quota”: {
“enabled”: false,
“max_size_kb”: -1,
“max_objects”: -1
},
“user_quota”: {
“enabled”: false,
“max_size_kb”: -1,
“max_objects”: -1
},
“temp_url_keys”: []
}

client端 安装swift包,并连接到rgw并显示所有 bucket,创建新bucket:

yum install python-setuptools
easy_install pip
pip install –upgrade setuptools
pip install –upgrade python-swiftclient

 [root@cluster1 ~]# ps aux |grep radosgw
64045    14009  0.0  3.3 1821416 33704 ?       Ssl  11:31   0:10 radosgw --cluster ceph --setuser ceph --setgroup ceph -n client.radosgw.gateway -k /var/lib/ceph/radosgw/cluster1/keyring --rgw-socket-path= --rgw-frontends=civetweb **port=80**
root     15496  0.0  0.0 112648   964 pts/2    R+   14:57   0:00 grep --color=auto radosgw
[root@cluster1 ~]# swift -A http://172.18.18.95:**80**/auth/1.0 -U testuser:swift -K 'MgOqWsoDzSs2OZVYU4ggprqtwc8AiaLXkQNtPq6O' list
my-new-bucket
[root@cluster1 ~]# swift -A http://172.18.18.95:80/auth/1.0 -U testuser:swift -K 'MgOqWsoDzSs2OZVYU4ggprqtwc8AiaLXkQNtPq6O' post test-bucket
[root@cluster1 ~]# swift -A http://172.18.18.95:80/auth/1.0 -U testuser:swift -K 'MgOqWsoDzSs2OZVYU4ggprqtwc8AiaLXkQNtPq6O' list
my-new-bucket
test-bucket

总结一下

结合笔者使用aws s3和ali oss的经历,对象存储面向使用者,一般都提供如下几类接口:

  1. GUI控制台
  2. cmd tools:例如ceph的rados,ossutil,s3cmd;
  3. SDK:例如ceph的librados,ali和aws也各自有多语言的sdk;
  4. Restful API:基于HTTP的访问,例如ceph需搭建rgw(主要实现web server功能)后才支持;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值