Ceph对象存储RGW架构及安装实战

李从悠 http://www.bdfyy999.com/zhuanjiatuandui/104429.html
CephRGW架构简介我们知道Ceph可以提供块、文件和对象三种形态的存储。而RGW就是提供对象存储的网关,也即对象存储网关。所谓对象存储网关,也就是对象存储的入口,本质上是一个HTTP服务器,与Nginx和Apache无异。通过这个入口,用户可以通过HTTP协议,以RESTful的方式访问Ceph的对象存储。CephRGW的整体架构如图1所示,对象存储网关实际上是调用librados的API来实现数据的存储和读取。而该网关同时提供了兼容AWSS3和OpenStackSwift的对象存储访问接口(API)。图1RGW整体架构另外,有些同学可能不清楚对象存储的特点。在介绍后续内容之前,我们大概了解一下对象存储是如何存储数据的。对象存储的应用场景通常是互联网场景,一个对象存储通常会给多个用户(租户)使用。而在一个用户下面可以创建多个桶(swift里面称为容器container)。在桶中可以存储对象,对象就是我们存储的数据,比如图片或者是视频等。如果将对象存储与我们常规存储做一个类比,桶就好比文件夹,而对象就好比文件,但不同之处在于桶里面只能存储对象,而不能嵌套桶。如图2是对象存储数据组织形式。图2对象存储数据组织今天我们主要除了介绍Ceph对象存储网关基本架构外,我们重点介绍一下如何在几个Ceph集群上部署一个RGW,并且通过Swift客户端进行访问。部署环境描述为了简化环境,本文使用的是2副本Ceph集群,在实际生产中通常是3副本。另外,本文使用的是本地虚拟机,也就是通过VirtualBox或者其它虚拟化平台安装的虚拟操作系统。本文操作系统版本为CentOS7.4。如图3所示,我们的RGW安装在ceph-s节点。图3Ceph集群部署CephRGW进入安装Ceph集群的时候创建的目录中,本文之前的目录为mycluster,因此进入该目录。cdmy-clusterRGW默认使用Civetweb作为其WebSevice,而Civetweb默认使用端口提供服务,如果想修改端口(如80端口),就需要修改Ceph的配置文件。在配置文件中增加一个section。[client.rgw.ceph-s]rgw_frontends=civetwebport=80注意:这一步并不是必须的,根据实际情况进行设定安装Ceph对象存储网关我们可以通过ceph-deploy命令非常方便的安装Ceph的对象存储网关软件(也就是RGW)。如下是命令格式:ceph-deployinstall--rgwgateway-node1[gateway-node2...]比如在我们的ceph-s节点安装该软件,则可以执行如下命令:ceph-deployinstall–-rgwceph-s创建RGW实例上面步骤只是安装了必要的软件,但并没有创建需要的存储资源(存储池)。之前版本的安装需要用户手动创建多个存储池,安装比较麻烦,且容易出错。目前安装非常方便,可以通过ceph-deploy命令直接创建需要的资源,具体执行如下命令即可:ceph-deployrgwcreateceph-s创建完成后我们可以看一下目前Ceph集群的资源情况,在管理节点输入如下命令查看存储池的情况:radoslspools具体结果如下:图4对象存储所需的存储池基本验证如果上述配置没有出现任何问题的话,其实Ceph的对象存储网关已经正常工作了。前面我们说了,对象存储其实是基于HTTP协议的,因此我们可以通过浏览器进行访问,比如在浏览器中输入如下内容:


转载请注明:http://www.aierlanlan.com/cyrz/8473.html