Ceph分布式存储实2.1 Ceph功能模块与RADOS-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

Ceph分布式存储实2.1 Ceph功能模块与RADOS

简介:

存储基石RADOS

分布式对象存储系统RADOS是Ceph最为关键的技术,它是一个支持海量存储对象的分布式对象存储系统。RADOS层本身就是一个完整的对象存储系统,事实上,所有存储在Ceph系统中的用户数据最终都是由这一层来存储的。而Ceph的高可靠、高可扩展、高性能、高自动化等特性,本质上也是由这一层所提供的。因此,理解RADOS是理解Ceph的基础与关键。

Ceph的设计哲学如下。

每个组件必须可扩展。

不存在单点故障。

解决方案必须是基于软件的。

可摆脱专属硬件的束缚即可运行在常规硬件上。

推崇自我管理。

由第1章的讲解可以知道,Ceph包含以下组件。

分布式对象存储系统RADOS库,即LIBRADOS。

基于LIBRADOS实现的兼容Swift和S3的存储网关系统RADOSGW。

基于LIBRADOS实现的块设备驱动RBD。

兼容POSIX的分布式文件Ceph FS。

最底层的分布式对象存储系统RADOS。


2.1 Ceph功能模块与RADOS


Ceph中的这些组件与RADOS有什么关系呢,笔者手绘了一张简单的Ceph架构图,我们结合图2-1来分析这些组件与RADOS的关系。

 2-1 Ceph架构图

Ceph存储系统的逻辑层次结构大致划分为4部分:基础存储系统RADOS、基于RADOS实现的Ceph FS,基于RADOSLIBRADOS层应用接口、基于LIBRADOS的应用接口RBDRADOSGWCeph架构(见图1-1)我们在第1章有过初步的了解,这里详细看一下各个模块的功能,以此了解RADOS在整个Ceph起到的作用。

(1)基础存储系统RADOS

RADOS这一层本身就是一个完整的对象存储系统,事实上,所有存储在Ceph系统中的用户数据最终都是由这一层来存储的。Ceph的很多优秀特性本质上也是借由这一层设计提供。理解RADOS是理解Ceph的基础与关键。物理上,RADOS由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。本书后续章节将对RADOS进行深入介绍。

(2)基础库LIBRADOS

LIBRADOS层的功能是对RADOS进行抽象和封装,并向上层提供API,以便直接基于RADOS进行应用开发。需要指明的是,RADOS是一个对象存储系统,因此,LIBRADOS实现的API是针对对象存储功能的。RADOS采用C++开发,所提供的原生LIBRADOS API包括C和C++两种。物理上,LIBRADOS和基于其上开发的应用位于同一台机器,因而也被称为本地API。应用调用本机上的LIBRADOS API,再由后者通过socket与RADOS集群中的节点通信并完成各种操作。

(3)上层应用接口

Ceph上层应用接口涵盖了RADOSGW(RADOS Gateway)、RBD(Reliable Block Device)和Ceph FS(Ceph File System),其中,RADOSGW和RBD是在LIBRADOS库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。

其中,RADOSGW是一个提供与Amazon S3和Swift兼容的RESTful API的网关,以供相应的对象存储应用开发使用。RADOSGW提供的API抽象层次更高,但在类S3或Swift LIBRADOS的管理比便捷,因此,开发者应针对自己的需求选择使用。RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚拟机创建volume。目前,Red Hat已经将RBD驱动集成在KVM/QEMU中,以提高虚拟机访问性能。

(4)应用层

应用层就是不同场景下对于Ceph各个应用接口的各种应用方式,例如基于LIBRADOS直接开发的对象存储应用,基于RADOSGW开发的对象存储应用,基于RBD实现的云主机硬盘等。

下面就来看看RADOS的架构。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接