Ceph分布式存储学习指南3.1 Ceph存储架构-阿里云开发者社区

开发者社区> 华章出版社> 正文

Ceph分布式存储学习指南3.1 Ceph存储架构

简介:

第3章

Ceph架构和组件

本章将涵盖以下几大主题:

Ceph存储架构

Ceph RADOS

Ceph对象存储设备(OSD)

Ceph monitor(MON)

librados

Ceph块存储

Ceph对象网关

Ceph MDS和CephFS

3.1 Ceph存储架构


Ceph存储集群由几个不同的软件守护进程组成,每个守护进程负责Ceph的一个独特功能并将值添加到相应的组件中。每个守护进程是彼此独立的。这是保持Ceph存储集群比黑匣子似的商业存储系统更加便宜的诸多特性中的一个。

下图简要阐述了每个Ceph组件的功能。

可靠、自动、分布式对象存储(Reliable Autonomic Distributed Object Store,RADOS)是Ceph存储集群的基础。Ceph中的一切都以对象的形式存储,而RADOS就负责存储这些对象,而不考虑它们的数据类型。RADOS层确保数据一致性和可靠性。对于数据一致性,它执行数据复制、故障检测和恢复,还包括数据在集群节点间的迁移和再平衡。

一旦应用程序访问Ceph集群执行写操作,数据将会以对象的形式存储在Ceph对象存储设备(OSD)中。这是Ceph集群中存储实际用户数据并响应客户端读操作请求的唯一组件。通常,一个OSD守护进程与集群的一个物理磁盘绑定。所以,一般来说,物理磁盘的总数与Ceph集群中负责存储用户数据到每个物理磁盘的OSD守护进程数是相等的。

Ceph monitor(MON)组件通过一系列的map来跟踪整个集群的健康状态,这些map是指下面几个组件的map:OSD、MON、PG和CRUSH。所有的集群节点都向monitor节点报告状态,并分享每一个状态变化的信息。一个monitor为每一个组件维护一个独立的map。monitor不存储实际数据,这是OSD的工作。

librados库是一种用来简化访问RADOS的方法,它目前支持PHP、Ruby、Java、Python、C和C++语言。它提供了Ceph存储集群的一个本地接口RADOS,并且是其他服务(如RBD、RGW)的基础,以及为CephFS提供POSIX接口。librados API支持直接访问RADOS,使得开发者能够创建自己的接口来访问Ceph集群存储。

Ceph块设备原来叫做RADOS块设备(RBD),它对外提供块存储,它可以被映射、格式化进而像其他磁盘一样挂载到服务器。Ceph块设备具备商业存储的特性,如精简制备和快照。

Ceph对象网关也称为RADOS网关(RGW),它提供了一个兼容Amazon S3(Simple Storage Service)和OpenStack对象存储API(Swift)的restful API接口。RGW还支持多租户和OpenStack的Keystone身份验证服务。

Ceph元数据服务器(MDS)跟踪文件层次结构并存储只供CephFS使用的元数据。Ceph块设备和RADOS网关不需要元数据,因此它们不需要Ceph MDS守护进程。MDS不直接给客户端提供数据,因此可以避免系统中的一个单点故障。

Ceph文件系统(CephFS)提供了一个任意大小且兼容POSIX的分布式文件系统。CephFS依赖Ceph MDS来跟踪文件层次结构,即元数据。目前CephFS不推荐在生产环境使用,但它已进入POC测试的候选序列。它的进展速度非常快,我们相信它很快就能在生产环境中使用了。

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

分享:

华章出版社

官方博客
官网链接