ceph对象存储的配置与S3、swift接口的使用

首先简单了解一下一些ceph对象存储的基本知识:
Ceph:
起始于2006年
开发语言:C
强一致性
块存储
对象存储
Swift:

起始于2008年
开发语言:Python
最终一致性
对象存储
真正的大型公用云服务产品中使用

对象存储介绍:

Ceph本质上就是一个rados,利用命令rados就可以访问和使用ceph的对象存储,但作为一个真正产品机的对象存储服务,通常使用的是Restfulapi的方式进行访问和使用。而radosgw其实就是这个作用,安装完radosgw以后,就可以使用api来访问和使用ceph的对象存储服务了。
本质上radosgw(其实也是一个命令)和rbd命令一样,其实是ceph集群的客户端。只不过,radosgw即作为rados的客户端,同时又提供http restful接口,作为服务端供用户使用。

首先明白一下架构,radosgw其实名副其实,就是rados的一个网关,作用是对外提供对象存储服务。本质上radosgw(其实也是一个命令)和rbd命令一样,其实是ceph集群的客户端。只不过,radosgw即作为rados的客户端,同时又提供http restful接口,作为服务端供用户使用。Radosgw对用户而言就是一个http restful的应用,因此本质上来讲,对其进行使用就是通过http的方式,但显然每次都要用户构建http访问的url和headers不是一个很方便的方式,因此radosgw兼容了通用的对象存储接口,分别是亚马逊的s3和openstack的swift,这也就是说你可以用swift或者s3的客户端来访问radosgw。
Radosgw包含两个命令行工具:
一个是radosgw,这个是用来启动radosgw服务的脚本,是一个二进制文件;
另外一个是radosgw-admin,这是用来管理radosgw的账号的一个命令行工具,主要用来创建、查看、修改radosgw的账号信息。

注意,ragw的账号信息仅仅是对radosgw的用户而言,这个和ceph中的用户不是一个概念。
Radosgw作为ceph集群(rados)的客户端,因此他在ceph中有一个账号,通常叫做client.radosgw.gateway。在启动radosgw这个服务时,会读取ceph.conf中[client.radosgw.gateway]这个section。

开始操作:Ceph 对象存储服务提供了 REST 风格的 API ,它有与 Amazon S3 和 OpenStack Swift 兼容的接口。也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL和其他扩展;Ceph 对象存储可以简称为 RGW,Ceph RGW 是基于 librados,为应用提供 RESTful 类型的对象存储接口,其接口方式支持 S3(兼容 Amazon S3 RESTful API) 和 Swift(兼容 OpenStack Swift API) 两种类型。接下来就分别演示通过这两种方式使用 Ceph RGW。

接下来就是我实际的配置操作:

Ceph 对象存储可以简称为 RGW,Ceph RGW 是基于 librados,为应用提供 RESTful 类型的对象存储接口,其接口方式支持 S3(兼容 Amazon S3 RESTful API) 和 Swift(兼容 OpenStack Swift API) 两种类型。接着之前的文章,还是在之前搭建的ceph集群基础上操作。接下来就分别演示通过这两种方式使用 Ceph RGW。

1、首先需要安装 Ceph 对象网关。
Ceph 从 v0.80 开始,使用内嵌 Civetweb 作为 Web Server,无需额外安装 web 服务器或配置 FastCGI,其默认端口为 7480。在 mon节点目录通过 ceph-deploy 安装 Ceph RGW。一般是在管理节点下,但是搭建的ceph集群没有管理节点,所以就在mon节点下面,在这里我们还是使用 node1 节点(也就是我的mon节点)做测试。
首先进入到mon节点的my-cluster目录下面,然后执行下面命令:
$ ceph-deploy install –rgw node1
2、新建 Ceph 对象网关实例
在 mon节点工作目录创建一个 Ceph rgw 实例,一旦对象网关开始运行,我们就可以通过 http://node1:7480 地址访问啦。
$ ceph-deploy –overwrite-conf rgw create node1
[ceph_deploy.conf][DEBUG ] found configuration file at:
…….
省略
…….
[ceph_deploy.rgw][INFO ] The Ceph Object Gateway (RGW) is now running on host admin and default port 7480

从日志中可以看到 RGW 已经运行起来了,我们来访问以下试下。
$ curl http://node1:7480

#!/usr/bin/pyhton
import boto
import boto.s3.connection
access_key = 'OHP5X3XQSC1IOWQUYDNT'
secret_key = 'BqiUlhfWGvsz30FVCjzUhPesGH4NDa69joNHEYep'
conn = boto.connect_s3(
            aws_access_key_id = access_ke
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值