CA88新登入 9

Ceph分布式存储系统,分布式文件系统

Linux 持续进军可伸缩计算领域,尤其是可扩展存储领域。 Linux
文件系统最近新增了一个引人注目的选择 —— Ceph,一个维持 POSIX
兼容的同时还集成了复制、容错的分布式文件系统。探讨 Ceph
的架构,可以知道它是如何提供容错性,及如何简化大量数据的管理的。

Ceph是根据加州大学Santa
Cruz分校的Sage
Weil的博士论文所设计开发的新一代自由软件分布式文件系统,其设计目标是良好的可扩展性(PB级别以上)、高性能及高可靠性。Ceph其命名和UCSC(Ceph 的诞生地)的吉祥物有关,这个吉祥物是“Sammy”,一个香蕉色的蛞蝓,就是头足类中无壳的软体动物。这些有多触角的头足类动物,是对一个分布式文件系统高度并行的形象比喻。

Ceph是加州大学Santa Cruz分校的Sage
Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开
发之中,使其能适用于生产环境。Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。2010年3
月,Linus Torvalds将Ceph client合并到内
核2.6.34中。IBM开发者园地的一篇文章
探讨了Ceph的架构(http://www.linuxidc.com/Linux/2014-05/101392.htm),它的容错实现和简化海量数据管理的功能。

作为存储行业的架构师,我对文件系统情有独钟。这些系统是存储系统的用户接口,尽管它们都倾向于提供相似的特性集,它们还是会提供引人注目的不同点。Ceph
也如此,它提供了一些你会在文件系统中找到的最有趣的特性。

其设计遵循了三个原则:数据与元数据的分离,动态的分布式的元数据管理,可靠统一的分布式对象存储机制。本文将从Ceph的架构出发,综合性的介绍Ceph分布式文件系统特点及其实现方式。

————————————–分割线

相关阅读:

Ceph环境配置文档 PDF
http://www.linuxidc.com/Linux/2013-05/85212.htm

CentOS 6.3上部署Ceph
http://www.linuxidc.com/Linux/2013-05/85213.htm

Ceph的安装过程
http://www.linuxidc.com/Linux/2013-05/85210.htm

HOWTO Install Ceph On FC12, FC上安装Ceph分布式文件系统
CA88新登入,http://www.linuxidc.com/Linux/2013-05/85209.htm

Ceph 文件系统安装
http://www.linuxidc.com/Linux/2013-05/85208.htm

CentOS 6.2 64位上安装Ceph 0.47.2
http://www.linuxidc.com/Linux/2013-05/85206.htm

Ubuntu 12.04
Ceph分布式文件系统
http://www.linuxidc.com/Linux/2013-04/82588.htm

Fedora 14上安装 Ceph
0.24
http://www.linuxidc.com/Linux/2011-01/31580.htm

Ceph 始于加州大学圣克鲁兹分校的 Sage Weil 的博士学位课题。但从 2010 年 3
月下旬起,你可以 Linux 主流内核中找到 Ceph (从 2.6.34 内核起)。

一、Ceph基本架构

Ceph是一个高可用、易于管理、开源的分布式存储系统,可以在一套系统中同时提供对象存储、块存储以及文件存储服务。其主要由Ceph存储系统的核心RADOS以及块存取接口、对象存取接口和文件系统接口组成,如图所示

CA88新登入 1

Ceph的底层是RADOS,它的意思是“A
reliable,autonomous, distributed object storage”。 RADOS作为Ceph分布式文件系统的一个子项目,是为了满足Ceph的需求而设计的,但是,其也可以单独作为一种分布式数据存储系统,给其他的有类似需求的分布式文件系统提供数据存储服务。Ceph文件系统, Ceph对象存储和Ceph块设备从RADOS的存储集群中读去和写入数据。

Ceph作为一个分布式存储系统,其对外提供的接口,决定了其通用性以及扩展性。如上图架构图中所示的那样,Ceph对外提供了丰富多样的服务接口,包括多种编程语言接口LIBRADOS(备注,上图来自Ceph中文社区,社区人员在翻译的过程中将字母L遗失掉了)、对象存储接口(RADOSGW)、块存储接口(RBD)以及文件系统接口(Ceph
FS)。其中LIBRADOS编程接口是其他各种客户端接口的基础,其他接口都是基于LIBRADOS来进行扩展实现的。

 

————————————–分割线

Ceph 中文文档:

Ceph 的 4 个模块:

CA88新登入 2

Ceph 生态系统:

CA88新登入 3

CA88新登入 4

CA88新登入 5

CA88新登入 6

尽管 Ceph 可能还未对生产环境做好准备,但它依然有助于评估目的。本文探讨了
Ceph 文件系统,及其成为可扩展分布式存储的诱人选择的独到之处。

1.1. RADOS

Ceph中RADOS(Reliable Autonomic
Distributed Object Store)存储集群是所有其他客户端接口使用和部署的基础。RADOS由两个组件组成:

  • OSD: Object
    StorageDevice,提供存储资源。

  • Monitor:维护整个Ceph集群的全局状态。

CA88新登入 7

典型的RADOS部署架构由少量的Monitor监控器以及大量的OSD存储设备组成,它能够在动态变化的基于异质结构的存储设备集群之上提供一种稳定的、可扩展的、高性能的单一逻辑对象存储接口。

RADOS系统的架构如图所示:

CA88新登入 8

我们看到,RADOS不是某种组件,而是由OSD(Object
Storage Device)集群和Monitor集群组成。通常,一个RADOS系统中,OSD集群是由大量的智能化的OSD节点组成;Monitor集群是由少量的Monitor节点组成。OSD集群负责存储所有对象的数据。Monitors集群负责管理Ceph集群中所有成员、关系、属性以及数据分发等信息。

 

————————————–分割线

相关阅读:

Ceph环境配置文档 PDF 
http://www.linuxidc.com/Linux/2013-05/85212.htm

CentOS 6.3上部署Ceph 
http://www.linuxidc.com/Linux/2013-05/85213.htm

Ceph的安装过程
http://www.linuxidc.com/Linux/2013-05/85210.htm

HOWTO Install Ceph On FC12, FC上安装Ceph分布式文件系统
http://www.linuxidc.com/Linux/2013-05/85209.htm

Ceph 文件系统安装
http://www.linuxidc.com/Linux/2013-05/85208.htm

CentOS 6.2 64位上安装Ceph 0.47.2
http://www.linuxidc.com/Linux/2013-05/85206.htm

Ubuntu 12.04
Ceph分布式文件系统
http://www.linuxidc.com/Linux/2013-04/82588.htm

Fedora 14上安装 Ceph
0.24 
http://www.linuxidc.com/Linux/2011-01/31580.htm

1.2. Ceph客户端接口(Clients)

我们将Ceph架构中除了底层基础RADOS之上的LIBRADOS、RADOSGW、RBD以及Ceph FS统一称为Ceph客户端接口。而LIBRADOS又是Ceph其它如RADOSGW、RBD以及Ceph FS的基础。简而言之就是RADOSGW、RBD以及Ceph FS根据LIBRADOS提供的多编程语言接口开发。所以他们之间是一个阶梯级的关系。

————————————–分割线

1.2.1. RADOSGW

RADOSGW(RADOS Gmeway),又叫Ceph对象存储网关,是一个底层基于librados向客户端提供RESTful接口的对象存储接口。目前Ceph支持两种API接口:

(1) 
 S3.compatible:S3兼容的接口,提供与Amazon
S3大部分RESTfuI
API接口兼容的API接口。

(2) 
 Swift.compatible:提供与OpenStack Swift大部分接口兼容的API接口。Ceph的对象存储使用网关守护进程(radosgw), radosgw结构图如图所示:

CA88新登入 9

在实际的Ceph集群中,radosgw是一个监听RESTfulAPI访问的后台进程,s3 API和Swift APl使用同一个命名空间,即共享同一个命名空间;所以,你可以用其中一个接口写入数据而又用另外一个接口读出数据。