Ceph-设计思想及结构RADOS

Ceph-设计思想及结构

大规模的存储系统,有三个动态特性:

存储系统规模的变化:随着业务的不断发展,系统需要承载越来越大的数据容量。

存储系统中设备的变化:对于由成千上万个节点构成的系统,其节点的故障与替换必然是时长出现的情况,不能使业务受到这种频繁出现的硬件及底层软件问题的影响,同时应该智能化,并降低维护的成本。

存储系统中数据的变化:对于一个大规模,通常被应用于互联网应用中的存储系统,其中储存的变化很可能是高度频繁的。因此数据更新、移动乃至删除时常发生。

针对目标应用场景所提出的预期技术特性:

Ceph:高可靠性、高度自动化、高可扩展性。

针对预期技术特性所提出的设计思路:

充分发挥存储设备自身的计算能力,去除所有的中心点 

                  

(1)基础存储系统RADOS(Reliable,Autonomic,Distributed Object Store)可靠的自主的分布式对象存储

这一层本身就是一个完整的对象存储系统,所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。RADOS由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。

(2)基础库librados

这一层的功能是对RADOS进行抽象和封装,并向上层提供API,以便直接基于RADOS(而不是ceph)进行应用开发。物理上libradios和基于其上开发的应用位于同一台机器,因此也被成为本地API。应用调用本机上的libradios API,再由后者通过socket与RADIOS集群中的节点通信完成各种操作。

(3)高层应用接口

这一层包括了三个部分:RADOS GW(RADOS Gateway)、RBD(Reliable Block Device)和Ceph FS(Ceph File System),起作用时在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。

RADOS GW是一个提供Amazon S3 和Swift 兼容的RESTful API 的gateway,以供相应的对象存储应用开发使用。RAIDS GW 提供的API抽象层次更高,但功能不如librados强大。因此,开发者应针对自己的需求选择使用。

RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下创建volume。

Ceph FS 是一个POSIX兼容的分布式文件系统。目前还处于开发状态。

(4)应用层

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

疑问:

RADOS自身既然已经是一个对象存储系统,也可以提供librados API,为何还要再单独开发一个RADOS GW?

答:

粗看起来,librados和RADOS的区别在于,librados提供的是本地API,而RADOS GW 提供的则是RESTful API,二者的编程模型和实际性能不同。进一步说,二者抽象层次的目标应用场景差异有关。换言之,虽然RADOS和S3、Swift同属分布式对象存储系统,但RADOS提供的功能更为基础、丰富。

注:RESTful 

一种软件架构风格,设计风格不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制

 

librados API向开发者开放了大量的RADOS状态信息与配置参数,允许开发者对RADOS系统以及其中存储对象的状态进行观察,并强有力地对系统存储策略进行控制。换言之,通过调用librados API,应用帛能够实现对数据对象的操作,还能够实现对RADOS系统的管理和配置。librados更适用于对系统有着深刻理解,同时对于功能定制扩展和性能深度优化有着强烈需求的高级用户。基于librados的开发更适合在私有Ceph系统上开发专用应用,或者为基于Ceph的公有存储系统开发后台数据管理、处理应用。而RADOS GW则更适用于常见的基于web的对象存储应用开打,例如公有云上的对象存储服务。

 

RADOS的逻辑结构

RADOS的系统逻辑结构如下图所示:

 

RADOS集群主要由两种节点组成。一种是为数众多的、负责完成数据存储和维护功能的OSD(Object Storage Device),另一种则是若干个负责完成系统状态监测和维护的monitorOSDmonitor之间互相传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,即cluster map。这个数据结构与RADOS提供的特定算法相配合,以便实现了Ceph无须查表,算算就好的核心机制以及若干优秀特性。

在使用RADOS系统时,大量的客户端程序通过OSD或者monitor的交互获取cluster map,然后直接在本地进行计算,得出对象的存储位置后,便直接与对应的OSD通信,完成数据的各种操作。

RADOS的运行过程中,cluster map的更新完全取决于系统的状态变化,而导致这一变化的常见时间只有两种:OSD出现故障、RADIOS规模扩大。

 

OSD的逻辑结构

由数目可变的大规模OSDs组成的集群,负责存储所有的Objects数据

OSD可以被抽象成两个组成部分,即系统部分和守护进程部分。

OSD的系统本质就是一台安装了操作系统和文件系统的计算机,其硬件部分至少包括一个单核的处理器,一定数量的内存、一块硬盘以及一张网卡。在实际应用中通常将多个OSD集中部署在一台更大规模的服务器上,

在上述平台上,每个OSD拥有一个自己的OSD deamon。这个deamon负责完成OSD的所有逻辑功能,包括与monitor和其他OSD(事实上是其他OSDdeamon)通信以维护更新系统状态,与其他OSD共同完成数据的存储和维护,与client通信完成各种数据对象操作等。

 

由少量Monitors组成的强耦合、小规模级去哪负责管理Cluster Map ,其中Cluster Map是真个RADOS系统的关键数据结构,管理寄去那种的所有成员、关系、属性等信息以及数据的分发。

Cluster Map

管理cluster的核心数据结构

指定OSDs的数据分布信息

monitor上存有最新副本

依靠epoch增加来维护及时更新

增量信息

 

数据存放

1.ObjectPG的映射。PG(Placement Group)Objects的逻辑集合。相同PG里的Object会被系统分发到相同的OSDs集合中。由Object的名称通过Hash算法得到的结果结合其他一些参数可以得到Object所对应的PF

2.RADOS系统根据Cluster MapPGs分配到相应的OSDs。这组OSDs证实PG中的Objects数据的存储位置。

pools:

是一个存储对象的逻辑分区概念

所有权/访问对象

对象副本的数目

PG数目

以上三项决定ceph最后如何存储数据

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Ceph是一个可靠的、数据自动重均衡、自动恢复的SDS(软件定义存储)分布式存储系统,功能主要有三大块:块存储、对象存储、文件系统。Ceph不但是提供了统一存储,并且同时还充分利用了客户端的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。不管是私有云还是公有云,随着云架构的发展,Ceph 成为了OpenStack、Proxmox标配的后端存储,不光如此,就连目前最火的容器编排 Kubernetes 持久存储也都支持 Ceph ,让 Ceph 成为当前主流的存储系统,而对 Ceph 存储的学习也就变的刻不容缓。 该课程属于比较基础的 Ceph 存储课程,旨在让大家能快速上手对 Ceph 集群的部署以及操作,主要讲解以下几个方面: 1.     架构的介绍2.     集群的多种部署方式3.     块存储部署,客户端使用及快照、克隆和镜像4.     对象存储的部署及简单使用5.     Ceph FS 文件系统的部署、客户端使用及导出为NFS6.     集群的操作和管理,包括服务,集群扩展,缩减和集群维护7.     Ceph 基础知识的介绍,包括集群map,PG和身份验证8.     Ceph 集群的监控

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值