码迷,mamicode.com
首页 > 其他好文 > 详细

Ceph radosgw 安装配置

时间:2015-08-27 02:18:09      阅读:1164      评论:0      收藏:0      [点我收藏+]

标签:radosgw

Ceph radosgw对象存储的接口,研究配置了许久,现分享如下。首先配置radosgw的前提,是你已经成功的配置好了Ceph集群,通过ceph –s 查看ceph集群,处于health状态。在这里,ceph集群的auth的配置为none,所以有关auth的部分,也就是访问权限相关的keying部分的配置在这里省略。

1)创建rgw相关的pool
ceph osd pool create .rgw 128 128
ceph osd pool create .rgw.root 128 128
ceph osd pool create .rgw.control 128 128
ceph osd pool create .rgw.gc 128 128
ceph osd pool create .rgw.buckets 128 128
ceph osd pool create .rgw.buckets.index 128 128
ceph osd pool create .log 128 128
ceph osd pool create .intent-log 128 128
ceph osd pool create .usage 128 128
ceph osd pool create .users 128 128
ceph osd pool create .users.email 128 128
ceph osd pool create .users.swift 128 128
ceph osd pool create .users.uid 128 128

2)配置 ceph.conf
这里配置在ceph.conf里添加有个radowgw的配置。adosgw有两个方式,一个是直接用civetweb的方式,其内置了一个比较小巧的http服务器mongoose,这种方式比较简单,不需要配置Apache httpd服务器,其配置如下:

[client.radosgw.gateway]
host = node1
log file = /var/log/ceph/client.radosgw.gateway.log
rgw_frontends =civetweb port=80
rgw print continue = false
特别说明的是civetweb默认的端口是7480, 这里因为用s3cmd, 所以改为80

另一种方式就是 apache httpd + factcgi的方式,其配置如下:
[client.radosgw.gateway]
host = node1
log file = /var/log/ceph/client.radosgw.gateway.log
rgw frontends = fastcgi socket_port=9000 socket_host=0.0.0.0
rgw print continue = false

注意,这里的node1,要替换成你自己的服务器
3)启动 radosgw
radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway
如果出错,可以查看日志/var/log/ceph/client.radosgw.gateway.log的提示,做相应的处理。

4) 配置 httpd
这一步,如果用的是civetweb方式,可以省略。

在/etc/httpd/conf.d 里添加文件rgw.conf

<VirtualHost *:80>
ServerName 182.92.171.199 
DocumentRoot /var/www/html

ErrorLog /var/log/httpd/rgw_error.log
CustomLog /var/log/httpd/rgw_access.log combined

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

SetEnv proxy-nokeepalive 1

ProxyPass / fcgi://182.92.171.199:9000/
</VirtualHost>

这样这里的ServerName是http server name,如果有多个ip的情况,最好直接写ip,这里的ProxyPass 的fcgi 需要改成在ceph.conf里配置的ip和port

5) 启动httpd服务器
这一步,如果用的是civetweb方式,可以省略
service httpd restart

6)创建一个用户
radosgw-admin user create –uid=cephtest –display-name=”ceph test” –email=ceph.test@chinacache.com
显示:
{ “user_id”: “cephtest”,
“display_name”: “ceph test”,
“email”: “ceph.test@chinacache.com”,
“suspended”: 0,
“max_buckets”: 1000,
“auid”: 0,
“subusers”: [],
“keys”: [
{ “user”: “cephtest”,
“access_key”: “8JGTP1714JRRAPRDLBI4”,
“secret_key”: “i4O+yJMNii87ruLMwcIIYbjLmKIUaoSO1svQOoB9”}],
“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”: []}
注意:如果生成的key中有”\”,最后把这个user删掉,再重新生成直到不含”\”:

7)配置s3cmd
$vim ~/.s3cfg
[default]
access_key = PPA789F4W5ANH3COC51O
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/bin/gpg
gpg_decrypt = %(gpg_command)s -d –verbose –no-use-agent –batch –yes –passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c –verbose –no-use-agent –batch –yes –passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase =
guess_mime_type = True
host_base = node1
host_bucket = %(bucket)s.node1
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host =
proxy_port = 0
recursive = False
recv_chunk = 4096
reduced_redundancy = False
secret_key = kqHLxnI14WqSl0Eh5akr73evrqmFZjfxYxUmG04h
send_chunk = 4096
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 10
urlencoding_mode = normal
use_https = False
verbosity = WARNING

在这里,access_key 和 secret_key 就是 radosgw-admin创建用户获得的,也可以用以下命令获取。
radosgw-admin user info –uid=cephtest

8)测试
首先用命令检查以下http 服务器是否正常工作:
curl node
如果正确,应该返回:

<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>

如果不正确,那么http的服务器有问题。如果是apache http的服务器,那么查看服务器的配置的日志,查找相应的问题。
/etc/httpd/logs/rgw_error.log

一般的问题都是:
proxy: FCGI: attempt to connect to 182.92.171.199:9000 (182.92.171.199) failed
显示连不上FCGI,那么看以下ceph.conf配置:
rgw frontends = fastcgi socket_port=9000 socket_host=0.0.0.0
host和 port是否一致。

如果上述没有问题,可以用命令
s3cmd la
这么命令是list 所有的bucket下的对象

s3cmd mb s3://BUCKET 创建一个bucket,目前遇到的一个问题是,只能创建“BUCKET”为前缀的bucket,这个不知道为啥,还需要进一步研究和配置。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Ceph radosgw 安装配置

标签:radosgw

原文地址:http://blog.csdn.net/changtao381/article/details/48015623

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!