01 Ceph简单介绍

Ceph简单介绍

1 存储简单介绍

​ 在可靠性、安全性和可扩展性的聚焦下,集中式存储存放了全部数据,存储服务器成为系统性能的瓶颈,不能知足大规模存储应用的须要。分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,不但提升了系统的可靠性、可用性和存取效率,还易于扩展。
01 Ceph简单介绍算法

1 Ceph概况

​ Ceph是当前很是流行的开源分布式存储系统,具备高扩展性、高性能、高可靠性等优势,同时提供块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs),Ceph在存储的时候充分利用存储节点的计算能力,在存储每个数据时都会经过计算得出该数据的位置,尽可能的分布均衡。docker

1.1 为何要用Ceph

  • 在过去几年中,数据存储需求急剧增加,传统的存储系统没法管理这样的数据增加;而ceph可支持到PB、EB级别数据
  • 软件定义存储(SDS):下降存储成本,提高灵活性、高性能、可伸缩性和可靠性(原则上能够不作raid,可是从硬盘热更换和数据安全性考虑,仍是建议作)
  • 对云存储支持:openstack后端存储的标配,同时支持k8s动态存储;

1.2 Ceph特色

  • 高性能
    a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高
    b.考虑了容灾域的隔离,可以实现各种负载的副本放置规则,例如跨机房、机架感知等
    c. 可以支持上千个存储节点的规模,支持TB到PB级的数据
  • 高可扩展性
    a. 去中心化
    b. 扩展灵活
    c. 随着节点增长而线性增加
  • 特性丰富
    a. 支持三种存储接口:块存储、文件存储、对象存储
    b. 支持自定义接口,支持多种语言驱动

2 Ceph架构

2.1 设计思想

​ 集群可靠性、集群可扩展性、数据安全性、接口统一性、充分发挥存储设备自身的计算能力、去除中心化后端

2.2 架构介绍

​ Ceph使用RADOS提供对象存储,经过librados封装库提供多种存储方式的文件和对象转换。外层经过RGW(Object)、RBD(Block)、CephFS(File)将数据写入存储。安全

01 Ceph简单介绍

2.3 支持三种接口

  • Object(RGW):有原生的API,并且也兼容Swift和S3的API,适合单客户端使用。
  • Block(RBD):支持精简配置、快照、克隆,适合多客户端有目录结构。
  • File(CephFS):、Posix接口,支持快照,社会和更新变更少的数据,没有目录结构不能直接打开

01 Ceph简单介绍

3 重要概念

3.1 核心组件

  • Monitor
    一个Ceph集群须要多个Monitor组成的小集群,它们经过Paxos同步数据,用来保存OSD的元数据。负责监视整个Ceph集群运行的Map视图(如OSD Map、Monitor Map、PG Map和CRUSH Map),维护集群的健康状态,维护展现集群状态的各类图表,管理集群客户端认证与受权;服务器

  • OSD
    OSD是负责物理存储的进程,通常配置成和磁盘一一对应,一块磁盘启动一个OSD进程。主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查,负责响应客户端请求返回具体数据的进程等;架构

  • MDS
    MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。负责保存文件系统的元数据,管理目录结构。对象存储和块设备存储不须要元数据服务;分布式

  • RBD
    RBD全称RADOS block device,是Ceph对外提供的块设备服务。ide

  • RGW
    RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。性能

  • CephFS
    CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

3.2 核心概念

  • Object
    Ceph最底层的存储单元是Object对象,每一个Object包含元数据和原始数据。简单来讲块存储读写快,不利于共享,文件存储读写慢,利于共享。可否弄一个读写快,利 于共享的出来呢。因而就有了对象存储。设计

  • PG
    PG( placement group)是一个放置策略组,它是对象的集合,该集合里的全部对象都具备相同的放置策略,简单点说就是相同PG内的对象都会放到相同的硬盘上,PG是 ceph的逻辑概念,服务端数据均衡和恢复的最小粒度就是PG,一个PG包含多个OSD。引入PG这一层实际上是为了更好的分配数据和定位数据;

  • RADOS
    RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操做。

  • Libradio
    Librados是Rados提供库,由于RADOS是协议很难直接访问,所以上层的RBD、RGW和CephFS都是经过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。

  • CRUSH
    Crush算法是Ceph的两大创新之一,经过Crush算法的寻址操做,Ceph得以摒弃了传统的集中式存储元数据寻址方案。而Crush算法在一致性哈希基础上很好的考虑了容灾域的隔离,使得Ceph可以实现各种负载的副本放置规则,例如跨机房、机架感知等。同时,Crush算法有至关强大的扩展性,理论上能够支持数千个存储节点,这为Ceph在大规模云环境中的应用提供了先天的便利。

4 Ceph三种存储类型

4.1 块存储(RBD)

  • 优势:
    • 经过Raid与LVM等手段,对数据提供了保护;
    • 多块廉价的硬盘组合起来,提升容量;
    • 多块磁盘组合出来的逻辑盘,提高读写效率;
  • 缺点:
    • 采用SAN架构组网时,光纤交换机,造价成本高;
    • 主机之间没法共享数据;
  • 使用场景
    • docker容器、虚拟机磁盘存储分配;
    • 日志存储;
    • 文件存储;

4.2 文件存储(CephFS)

  • 优势:
    • 造价低,随便一台机器就能够了;
    • 方便文件共享;
  • 缺点:
    • 读写速率低;
    • 传输速率慢;
  • 使用场景
    • 日志存储;
    • FTP、NFS;
    • 其它有目录结构的文件存储

4.3 对象存储(Object)(适合更新变更较少的数据)

  • 优势:

    • 具有块存储的读写高速;
    • 具有文件存储的共享等特性;
  • 使用场景
    • 图片存储;
    • 视频存储;
相关文章
相关标签/搜索