引言 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)