引言 python
鉴于官方将civetweb合并到rgw代码中,并将其做为轻量级的HTTP服务器,我对其进行了测试。本文主要包含相关部署以及测试数据。 web
部署过程
我首先采用yum install ceph-radosgw的方式进行部署,可是在启动的过程当中老是没法启动,我曾在ceph中国社区发帖求助:http://bbs.ceph.org.cn/question/268,可是没有回应。后咨询了几位相关同行,他们的部署很是简单,2分钟的事情。因此无奈之下,我进行源码编译部署。背景交代完毕,下面描述具体步骤: shell
1. 源码编译 服务器
连接是我源码编译ceph的所有过程,最后make install便可。
http://my.oschina.net/myspaceNUAA/blog/538894 frontend
2. 配置文件设置
调整/etc/ceph/ceph.conf,添加一个SECTION便可。
socket
[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服务 tcp
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端口已被绑定。和其余监控之间也创建起链接。
spa
[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 .net
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)