采用CivetWeb代替Apache作为Ceph rgw服务的前端

蓝咒 提交于 2019-12-05 21:21:50

引言

鉴于官方将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


5.程序验证

首先创建用户,获取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)





标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!