当前位置: 移动技术网 > 科技>操作系统>Linux > 001.Ceph简介概述

001.Ceph简介概述

2019年01月14日  | 移动技术网科技  | 我要评论
一 Ceph简介 Red Hat Ceph是一个分布式的数据对象存储,系统设计旨在性能、可靠性和可扩展性上能够提供优秀的存储服务。分布式对象存储是存储的未来,因为它们适应非结构化数据,并且客户端可以同时使用当前及传统的对象接口进行数据存取。例如: 本地语言绑定接口(C/C++, Java, Pyth ...

一 ceph简介

red hat ceph是一个分布式的数据对象存储,系统设计旨在性能、可靠性和可扩展性上能够提供优秀的存储服务。分布式对象存储是存储的未来,因为它们适应非结构化数据,并且客户端可以同时使用当前及传统的对象接口进行数据存取。例如:
  • 本地语言绑定接口(c/c++, java, python)
  • restful 接口(s3/swift)
  • 块设备接口
  • 文件系统接口
red hat ceph具有非常好的可扩展性——数以千计的客户端可以访问pb级到eb级甚至更多的数据。

二 ceph优势及特点

2.1 ceph优势

ceph区别于其他文件系统(如glusterfs、swift等)主要具有以下优势:
  1. crush算法
crush算法运行在ceph clients和ceph osd上,用于计算对象的位置信息,它代替了传统的查表的思想,把工作分摊到所有ceph clients和ceph osd上,增强了弹性扩展和高可用性,是ceph的两大创新之一。ceph摒弃了传统的集中式存储元数据寻址的方案,而使用crush算法完成数据的寻址操作。crush在一致性哈希基础上很好的考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。crush算法有相当强大的扩展性,理论上支持数千个存储节点。
  1. 高可用
ceph中的数据副本数量可以由管理员自行定义,并可以通过crush算法指定副本的物理存储位置以分隔故障域,支持数据强一致性;ceph可以忍受多种故障场景并自动尝试并行修复。
  1. 高扩展性
ceph不同于swift,客户端所有的读写操作都要经过代理节点,一旦集群并发量增大时,代理节点很容易成为单点瓶颈。ceph本身并没有主控节点,扩展起来比较容易,并且理论上,它的性能会随着磁盘数量的增加而线性增长。
  1. 特性丰富
ceph支持三种调用接口:对象存储,块存储,文件系统挂载。三种方式可以一同使用。
2.2 ceph特点
  1. 统一存储
  2. 无任何单点故障
  3. 数据多份冗余
  4. 存储容量可扩展
  5. 自动容错及故障自愈

三 体系架构

体系架构示意图(来源于官方):

3.1 rados

ceph的底层核心为rados(reliable, autonomic distributed object store),rados本身也是分布式存储系统,ceph所有的存储功能都是基于rados实现。ceph的上层应用调用本机上的librados api,再由后者通过socket与rados集群中的其他节点通信并完成各种操作。
ceph的本质是一个对象存储。rados由两个组件组成:osd和monitor。
osd主要提供存储资源,每一个disk、ssd、raid group或者一个分区都可以成为一个osd,而每个osd还将负责向该对象的复杂节点分发和恢复;
monitor维护ceph集群并监控ceph集群的全局状态,提供一致性的决策。
rados分发策略依赖于crush(controlled replication under scalable hashing)算法(基于可扩展哈希算法的可控复制)。

3.2 rados gw和rbd

rados gateway、rbd其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。其中,rados gw是一个提供与amazon s3和swift兼容的restful api的gateway,以供相应的对象存储应用开发使用。
rbd则提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚拟机创建volume。目前,red hat已经将rbd驱动集成于kvm/qemu中,以提高虚拟机访问性能。这两种方式目前在云计算中应用的比较多。

3.3 cephfs

cephfs则提供了posix接口,用户可直接通过客户端挂载使用。它是内核态的程序,所以无需调用用户空间的librados库。它通过内核中的net模块来与rados进行交互。

四 ceph角色及原理

4.1 角色及作用

所有ceph存储集群的部署都始于部署一个个ceph节点、网络和ceph存储集群。ceph存储集群至少需要一个ceph monitor和两个osd守护进程。而运行ceph文件系统客户端时,则必须要有元数据服务器(metadata server)。
  • ceph osds:ceph osd守护进程( ceph osd )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他osd守护进程的心跳来向ceph monitors提供一些监控信息。当ceph存储集群设定为有2个副本时,至少需要2个osd守护进程,集群才能达到active+clean状态(ceph默认有3个副本)。
  • monitors:ceph monitor维护着展示集群状态的各种图表,包括监视器图、osd图、归置组(pg)图、和crush 图。ceph 保存着发生在monitors、osd和pg上的每一次状态变更的历史信息(称为epoch)。
  • mdss: ceph元数据服务器(mds)为ceph文件系统存储元数据(也就是说,ceph块设备和ceph 对象存储不使用mds)。元数据服务器使得posix文件系统的客户端,可以在不对ceph存储集群造成负担的前提下,执行诸如ls、find等基本命令。

4.2 存储通信机制

当一个osd需要存储数据时(不管是来自ceph块设备、ceph对象存储、ceph文件系统、还是基于librados的自定义实现),ceph osd在扁平的命名空间内把所有数据都存储为对象。
提示:对象包含一个标识符、二进制数据、和由名字/值对组成的元数据,元数据语义完全取决于ceph客户端。例如,cephfs用元数据存储文件属性,如文件所有者、创建日期、最后修改日期等等。一个对象id不止在本地唯一 ,它在整个集群内都是唯一的。
ceph客户端维护对象id和存储对象的存储池名称,但它们既不需要维护对象到osd的索引,也不需要与一个集中的对象索引进行通信来查找数据对象的位置。
为了能够存储并获取数据,ceph客户端首先会访问一台ceph mon并得到最新的存储集群映射关系,然后ceph客户端可以通过提供的对象名称与存储池名称,使用集群映射关系和crush算法(可控的、可扩展的、分布式的副本数据放置算法)来计算出提供对象所在的归置组(pg)和主ceph osd。
最后,ceph客户端连接到可执行读写操作的主osd上进而达到数据的存储与获取。客户端和osd之间没有中间服务器,中间件或总线。

五 ceph应用场景

ceph的应用场景主要由它的架构确定,ceph提供对象存储、块存储和文件存储。

5.1 librados应用

通俗理解,librados提供了应用程序对rados的直接访问,目前librados已经提供了对c、c++、java、python、ruby和php的支持。它支持单个单项的原子操作,如同时更新数据和属性、cas操作,同时有对象粒度的快照操作。它的实现是基于rados的插件api,也就是在rados上运行的封装库。

5.2 radosgw应用

此类场景基于librados之上,增加了http协议,提供restful接口并且兼容s3、swfit接口。radosgw将ceph集群作为分布式对象存储,对外提供服务。

5.3 rbd应用

此类场景也是基于librados之上的,细分为下面两种应用场景。
第一种应用场景为虚拟机提供块设备。通过librbd可以创建一个块设备(container),然后通过qemu/kvm附加到vm上。通过container和vm的解耦,使得块设备可以被绑定到不同的vm上。
第二种应用场景为主机提供块设备。这种场景是传统意义上的理解的块存储。
以上两种方式都是将一个虚拟的块设备分片存储在rados中,都会利用数据条带化提高数据并行传输,都支持块设备的快照、cow(copy-on-write)克隆。最重要的是rbd还支持live migration。

5.4 cephfs(ceph文件系统)应用

此类场景是基于rados实现的pb级分布式文件系统,其中引入mds(meta date server),它主要为兼容posix文件系统提供元数据,比如文件目录和文件元数据。同时mds会将元数据存储在rados中,这样元数据本身也达到了并行化,可以大大加快文件操作的速度。mds本身不为client提供数据文件,只为client提供对元数据的操作。当client打开一个文件时,会查询并更新mds相应的元数据(如文件包括的对象信息),然后再根据提供的对象信息直接从rados中得到文件数据。
 
更多有趣知识可见:https://blog.csdn.net/sunhf_csdn/article/details/79797186
官方文档:http://docs.ceph.org.cn
参考:http://ceph.org.cn/2018/06/29/red-hat-ceph%e5%ad%98%e5%82%a8-%e3%80%8a%e6%b7%b1%e5%85%a5%e7%90%86%e8%a7%a3ceph%e6%9e%b6%e6%9e%84%e3%80%8b/
https://www.jianshu.com/p/25163032f57f
http://www.51niux.com/?id=161

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网