Ceph简介

Ceph是一个分布式存储系统,可以提供块存储RBD(Rados Block Device),对象存储RADOSGW(Rados Grateway)、文件系统存储(Ceph Filesystem)。 Ceph消除了对系统单一中心节点的依赖,实现了无中心结构的设计思想。

Ceph的块存储RBD,可以作为KVM虚拟化后的后端存储可,可以对接当前主流的IaaS平台如OpenStack、CloudStack、ZStack作为其后端存储。 Ceph的对象存储可以非常适用于Web类互联网应用场景,进行图片、视频以及各类文件的上传和下载,还可以对接OwnCloud实现网盘服务。

Ceph的整体架构

Ceph的包含以下组件:RADOS, OSD, MON, MDS, LIBRADOS, RBD, RGW, Ceph FS。下图是和这些组件相关的整体架构。

ceph-component

ceph-architecture

  • RADOS(Reliable Autonomic Distributed Object Storage):是Ceph底层核心,提供了一个可靠、自动、智能的分布式存储。RADOS本身就是一个完整的对象存储系统 ,实际上所有存储在Ceph中的用户数据都是由这一层来存储的,Ceph的高可高、高扩展、高性能、自动化等特性实际上也是这一层来提供的。RADOS在物理上由大量存储设备节点组成,每个节点拥有自己的CPU、内存、磁盘、网络等硬件资源,并运行着自己的操作系统和文件系统。在逻辑上RADOS由少量MON和大规模OSD组成。
    • OSD(Object Storage Device): OSD的主要功能是存储数据、处理数据的复制、回复、平衡数据分布。一个Ceph存储集群至少需要两个OSD以达到active+clean的健康状态、并默认为数据保存两份副本。Ceph集群节点上的每个磁盘、分区都可以成为一个OSD。
    • MON(即Monitor):MON是Ceph集群的监控器,负责维护整个集群的健康状态,提供一致性决策。
  • MDS(即MetaData Server):MDS保存Ceph FS的元数据,为基于POSIX文件系统的用户提供了一些基础命令如ls等。
  • LIBRADOS:基础库LIBRADOS允许应用程序直接访问,支持多种语言保存C++, Java, Python等。
  • RBD, RGW, CephFS都可以归为上层应用接口
    • RBD: 通过Linux内核客户端或QEMU/KVM驱动提供一个完全的分布式块设备
    • RGW:是基于HTTP REST协议的网关,兼容Amazon S3 API和OpenStack Swift API。
    • Ceph FS:通过Linux内核客户端或FUSE提供一个兼容POSIX的文件系统。

参考