对象存储服务
对象存储不是传统的文件和块形式存储数据的方法,而是一种以对象也就是通常意义的键值形式进行存储。在多台服务器中内置大容量硬盘,并安装上对象存储管理软件Ceph,对外通过接口提供读写访问功能。每个对象需要存储数据、元数据和一个唯一的标识符。对象存储不仅具备块存储的读写高速,还具备文件存储的共享等特性,适合于更新变动较少的场景,如图片存储、视频存储。但是对象存储不能像文件系统的磁盘那样被操作系统直接访问,只能通过API在应用层面被访问。建立在Ceph RADOS层之上的Ceph对象网关(也称为
RADOS是Ceph存储集群的基础。在Ceph中,所有数据都以对象的形式存储,并且无论什么数据类型,RADOS对象存储都将负责保存这些对象。RADOS层可以确保数据始终保持一致。RADOS要有它自己的用户管理。RADOS网关提供RESTful接口让用户的应用程序将数据存储到Ceph集群中。RADOS网关接口兼容Swift和S3。
RADOSGW(RGW)使用librgw和librados来实现允许应用程序与Ceph对象存储建立连接,它将API请求转化为librados请求,并且提供S3和Swift兼容的RESTful API接口。
RGW的内部逻辑处理过程中,HTTP前端接收请求数据并保存在相应的数据结构中。REST API通用处理层从HTTP语义中解析出S3或Swift数据并进行一系列检查。检查通过后,根据不同API操作请求执行不同的处理流程。如需从RADOS集群中获取数据或者往RADOS集群中写入数据,则通过RGW与RADOS接口适配层调用librados接口将请求发送到RADOS集群中获取或写入相应数据。
要访问Ceph的对象存储系统,其实也可以绕开RADOS网关层,这样更灵活并且速度更快。librados软件库允许用户的应用程序通过C、C++、Java、Python和PHP直接访问Ceph对象存储。Ceph对象存储具备多站点(multisite)的能力,也就是说它能为灾难恢复提供解决方案。通过RADOS或者联合网关可以配置多站点的对象存储。
从存储角度来看,Ceph对象存储设备执行从对象到块的映射(在