Ceph化简的大致结构图

Ceph对称架构 ceph架构图_Ceph对称架构

Ceph网络流量结构

Ceph对称架构 ceph架构图_对象存储_02

存储类型

存储的类型都是经过历史演化的结果,而ceph都是支持,并且利用rados集群解决了各自的缺点

  • 块存储:最接近硬件,直接对硬件进行操作,通过把所有数据按照固定的大小分块,每一块赋予一个用于寻址的编号,但是存储需要建立在连续的编号上,数据按照字节进行读写
  • 缺点:容量浪费(连续的编号)和不便管理(硬盘越来越大)
  • 文件存储:最常见使用的文件系统,采用树状结构进行目录和文件分类管理
  • 缺点:性能不如块存储,因为多了一层管理
  • 对象存储:基于前两者的优点,直接对硬件操作和实现数据和元数据打包在一起,通过唯一标识符进行查找读写,底层对象存储也就是k-v存储形式

知乎上看了一篇好文章举例:点击查看 块存储:数据就像玉米粒一样堆放在块存储里,块存储只关心玉米粒进来和出去,不关心玉米粒之间的关系和用途
文件存储:数据像玉米粒一样组成玉米棒子,再对应到不同的玉米杆上,要找到某个玉米粒,先找到玉米杆,再找到玉米棒子,然后根据玉米粒在玉米棒子上的位置找到它
对象存储:数据的玉米粒被做成了玉米罐头,每个玉米罐头都有一个唯一出厂号,但是买卖罐头,都一次是一盒为单位

Ceph架构分析

存储驱动(引擎)

存储引擎就是数据存储的方式,类似数据库的存储引擎概念

  • File store:ceph12.2.x版本之前都是基于文件系统存储引擎,而File store存在最大问题是性能问题,每次写需要经过2次I/O,第一次需要先把对象转换能被本地文件系统识别,符合POSIX语义的文件系统,再一个扩展属性都是需要依赖文件系统类型(当然官方推荐XFS)
  • Blue store:ceph12.2.x版本之后可以选择的驱动引擎
  • 1、直接操作硬盘,避免2次写操作
  • 2、用户数据和元数据进行分离,可以存放不同的硬盘上(可以把元数据存储到SSD,提升性能)
  • 3、针对SSD做了性能优化(考虑了后期硬盘趋势)

Ceph对称架构 ceph架构图_Ceph对称架构_03

几个逻辑概念

  • pool存储池:类似分区的意思,目的是为了实现不同的规则策略,如CRUSH规则,OSD规格,副本物理隔离等等
  • image:只是限定对象的作用,划分对象的存储大小
  • PG:对象和OSD的中间桥梁,PG是对象的集合
  • PG的引入是为了解决怎么通过对象找到OSD并且实现数据平均分布,由于数据进入集群后会被划分为4兆的一个个对象,为了实现最大程度的负载均衡,对象的颗粒度不会设置很大,因此在存储百万级的对象,对于对象的管理带来了挑战,而PG就是类似对象的目录,对象只要找到归属的PG,PG找到OSD(PG的概念很复杂,中间有算法的参与,能力理解有限,参考其他文章便于理解)

用户认证和授权

ceph默认是开启cephx认证系统,通过访问MON获取认证和授权服务

vi /etc/ceph/ceph.conf 
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
#认证配置

Ceph网络

  • public network:北向流量,用户端发起的流量,也就是客户端到集群的通讯,而客户端必须通过MON才能获取到OSDMap,所有MON只能放到公共网络上
  • cluster network:东西流量,OSD与OSD之间的通讯,特点就是流量密集和抢占带宽,避免公共网络出现服务中断
  • 1、用于OSD的副本策略数据复制
  • 2、数据恢复
  • 3、数据自动平衡

网络分离带来的好处:
性能:客户端的流量能完全发挥到最大化
安全:cluster network尽量避免接触到互联网,避免ddos攻击之类的破坏