首页 > 代码库 > Ceph对象存储安装部署及验证

Ceph对象存储安装部署及验证

今天来玩下Ceph的对象存储,之前一直觉得对象存储对于玩OpenStack的我来说用不到,但随着越来越多的海量文件的需求,不得不促使我们来学习对象存储。所谓活到老学到老,尤其是我们搞IT的,每天都得学习新技术。

 

首先呢就是部署一套Ceph环境,这里就不再赘述了,网上好多安装文档,都比较清晰了。

 

重点说下RGW部分

 

安装完集群之后

ceph-deploy install --rgw devin-ceph1    #因为是测试所以只用一个rgw

然后创建RGW实例

ceph-deploy rgw create devin-ceph1

那么这时候就OK了,成功后会提示你访问7480端口

http://10.0.100.201:7480

你会看到如下内容:

<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>anonymous</ID>
<DisplayName/>
</Owner>
<Buckets/>
</ListAllMyBucketsResult>

由于RGW默认采用的是Civetweb,默认端口是7480那有人会说了,那我可不可以修改RGW端口啊。答案肯定是可以的。

 

修改Ceph配置文件进行修改。下面看看我的配置文件

[client.rgw.devin-ceph1]
host = devin-ceph1
rgw_enable_ops_log =true
rgw_frontends ="civetweb port=80"
rgw dns name =  s3.devin.com
rgw socket path =/var/run/ceph-client.radosgw.sock
keyring =/etc/ceph/ceph.client.radosgw.keyring

可以看到我的端口设置成80了。

 

修改完配置文件之后同步到个节点然后重启rgw服务

ceph-deploy --overwrite-conf config push devin-ceph1 devin-ceph2 devin-ceph3

systemctl restart ceph-radosgw.target

那么到此RGW安装完成了,那么RGW怎么使用呢?或者说怎么证明我的RGW是好的?


可能会有人说:你笨啊,刚才都能访问页面了,就证明成功了呗。

 

可能又会有人说:光访问个页面管P用啊,要能用才行。

 

别急,下面我们来说下两种方式来玩,一种是S3cmd方式

 

首先安装S3cmd

yum –y install s3cmd

安装完之后运行s3cmd --configure进行初始化配置(说白了就是生成个配置文件)

 

然后会提示你输入access keysecret key,没玩过ASW相关产品的童鞋可能会说,这俩key是干嘛的。用行话来说呢简称AKSK。所谓key嘛就是用来认证和验证的。我们来看看如何生成。

 

你要用工具连接RGW那么首先得有用户吧,那来创建个用户

radosgw-admin user create —uid=devin —display-name=“Devin” —email=devin@example.com

创建完之后会有AKSK的信息,记得复制下待会还要用。

 

那么复制完之后在进行s3cmd –configure配置


配置完之后就可以开始玩了。附赠s3cmd常用命令

s3cmd ls  #查看可用的bucket
s3cmd mb s3://devin_bucket  #创建bucket,且bucket名字是唯一的,不能重复
s3cmd ls s3://devin_bucket  #列出bucket内容
 
s3cmd put devin.txt s3://devin_bucket  #上传本地file到指定的bucket
s3cmd put --acl-public devin.txt s3://devin_bucket  #上传本地file到指定的bucket,并开启file的匿名访问权限
s3cmd get s3://devin_bucket/devin.txt  #下载file到本地

可能在玩的时候会遇到问题,那么怎么排错呢?

 

可以在s3cmd的命令后面加上-d 也就是开启debug然后排错。

 

遇到最多的问题就是解析问题。那么如何解决解析的问题呢?

 

可以查看下这篇文章《教你如何配置轻量级DNS》

 

然后还有一种方式,就是python-boto方式

 

首先安装python-boto

yum install python-boto

然后创建个python脚本

vi s3test.py

内容如下:

import boto.s3.connection
 
access_key = ‘Y2S78LKZ1ROD0MGIDUBC‘
secret_key = ‘LyGCgoydLI2MGA7C0PtynyfBa3aKODNYQ0sHDMtP‘
conn = boto.connect_s3(
       aws_access_key_id=access_key,
       aws_secret_access_key=secret_key,
        host=‘s3.devin.com‘, port=80,
       is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
       )
 
bucket = conn.create_bucket(‘devin-bucket‘)
for bucket in conn.get_all_buckets():
    print"{name} {created}".format(
       name=bucket.name,
       created=bucket.creation_date,
)

这里要注意修改的地方就是AKSK还有host域名

 

完事之后就是执行下脚本

python s3test.py

脚本大概意思就是说导入boto s3模块然后借用AKSK来进行验证创建一个名为devin-bucketbucket,创建完成之后并打印出来结果。

 


OK,本文Ceph对象存储到此就讲述结束了下篇文章来讲述如何对接OwnCloud网盘应用。


本文出自 “态度决定一切” 博客,请务必保留此出处http://sangh.blog.51cto.com/6892345/1945048

Ceph对象存储安装部署及验证