引言
鉴于官方将civetweb合并到rgw代码中,并将其作为轻量级的HTTP服务器,我对其进行了测试。本文主要包含相关部署以及测试数据。
部署过程
我首先采用yum install ceph-radosgw的方式进行部署,但是在启动的过程中总是无法启动,我曾在ceph中国社区发帖求助:http://bbs.ceph.org.cn/question/268,但是没有回应。后咨询了几位相关同行,他们的部署非常简单,2分钟的事情。所以无奈之下,我进行源码编译部署。背景交代完毕,下面描述具体步骤:
1. 源码编译
链接是我源码编译ceph的全部过程,最后make install即可。
http://my.oschina.net/myspaceNUAA/blog/538894
2. 配置文件设置
调整/etc/ceph/ceph.conf,添加一个SECTION即可。
[client.radosgw.gateway]
host = ceph-2
log file = /var/log/radosgw/client.radosgw.gateway.log
rgw_frontends = civetweb port=80
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw_socket_path = /var/run/ceph/ceph.radosgw.gateway.civetweb.sock
debug_rgw = 20
3. 启动RADOSGW服务
sudo usr/bin/radosgw -n client.radosgw.gateway -c /etc/ceph/ceph.conf -f --log-to -stderr --debug-rgw=20 --debug-ms=1
4. 状态检查
通过netstat命令,可以看到80端口已被绑定。和其他监控之间也建立起连接。
[root@gnop029-ct-zhejiang_wenzhou-16-12 src]# netstat -anp | grep rados
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17873/lt-radosgw
tcp 0 0 101.71.4.12:61742 101.71.4.28:6816 ESTABLISHED 17873/lt-radosgw
tcp 0 0 101.71.4.12:51672 101.71.4.28:6812 ESTABLISHED 17873/lt-radosgw
tcp 0 0 101.71.4.12:47469 101.71.4.29:6844 ESTABLISHED 17873/lt-radosgw
tcp 0 0 101.71.4.12:56602 101.71.4.27:6804 ESTABLISHED 17873/lt-radosgw
tcp 0 0 101.71.4.12:51666 101.71.4.29:6808 ESTABLISHED 17873/lt-radosgw
tcp 0 0 101.71.4.12:44577 101.71.4.29:6804 ESTABLISHED 17873/lt-radosgw
首先创建用户,获取key,并设置到代码中
即access_key secret_key
import thread
import sys
import boto
import boto.s3.connection
def isFileExist(filepath):
return os.path.exists(filepath)
#key used for access
access_key = 'J8ZN*****AQSAZXN'
secret_key = '3rBM7nQ*****qPlYJTX9xjfnp79jAeIMRQm'
def showobjs(bucketname):
conn = boto.connect_s3(
aws_access_key_id = access_key,
aws_secret_access_key = secret_key,
host = '101.71.4.12',
is_secure=False,
calling_format = boto.s3.connection.OrdinaryCallingFormat(),
)
bucket = conn.create_bucket(bucketname)
i = 0
for key in bucket.list():
i=i+1
print "%d\t %s %d %s\n"%(i,key.name, key.size, key.last_modified)
if __name__=='__main__':
bucketname = sys.argv[1]
print "FILEPATH: %s"%(bucketname)
showobjs(bucketname)