Ceph

Ceph

Cephlinux系统中一个分布式文件系统,能够在维护POSIX兼容性的同时加入了复制和容错功能,由Sage WeilUniversity of California, SantaCruz(UCSC)实施。Ceph内部实现了分布式数据对象存储,对外可以提供文件系统、对象、块设备的访问方式,实现了统一存储平台。Ceph社区最新版本是14,而Ceph 12是市面用的最广的稳定版本。

目前,Ceph主要有三种企业级应用场景:

  • IOPS密集型:这种类型的场景通常是支撑在虚拟化/私有云上运行数据库。如在OpenStack上运行MysqlMariaDBPostgreSQL等。IOPS密集型场景对磁盘的性能要求较高,最好使用全闪架构。如果使用混合架构,机械盘转速需要1.2万,并使用高速盘存储频繁写操作的日志或元数据。
  • 高吞吐量型:这种类型的应用场景主要是大块数据传输,如图像、视频、音频文件等。高吞吐量型磁盘的要求没有IOPS密集型高,但需要配置较高的网络。同时也需要配置SSD来处理写日志。
  • 高容量型:这种场景主要用于存储归档、离线数据。它对磁盘的容量要求高,对性能无过多要求。写日志也可以存储在HDD上。

Ceph架构

Ceph由储存管理器(Object storage cluster对象存储集群,即:Osd守护进程),集群监视器(Ceph Monitor)和元数据服务器(Metadata server cluster, mds)构成。其中,元数据服务器MDS仅仅在客户端(数据用户Client)通过文件系统方式使用Ceph时有用。当客户端通过块设备或对象存储使用CEPH时,可以没有MDS。一个Ceph储存集群,由一系列的节点(具备CPUMEM的计算机)、储存设备和传输网络构成。

Ceph 架构

Ceph存储集群由三类守护进程组成:OSD,MonitorManager

  • OSD:OSDCeph存储数据的空间,通常一个HDD是一个OSD,并且不建议做RAID(独立硬盘冗余阵列。每个OSD有一个OSD守护进程。Ceph OSD利用Ceph节点的CPU、内存和网络资源来执行数据复制、纠删码、数据恢复、监控和报告功能。

  • Monitor:Monitor负责维护Ceph存储集群,主要是集群中数据的主副本以及存储集群的当前状态。注意,多个Monitor的信息需要强一致性,因此要求Monitor节点之间的系统时间是一致的,并且网络延时要低。

  • Manager:ManagerCeph 12.8中的新功能,它维护放置组(PG、进程元数据和主机元数据的详细信息。这部分功能此前由Monitor完成(其目的是提高Ceph集群的性能Manager可以处理只读Ceph CLI查询请求,例如放置组统计信息等。此外,Manager还提供RESTful监控API

如果要使用Ceph文件系统和对象接口,Ceph集群还需要如下节点:

  • 元数据服务器(Metadata Server,简称MDS:每个MDS节点运行MDS守护程序(Ceph-mds)管理与Ceph文件系统(CephFS)上存储的文件相关的元数据。
  • 对象网关:Ceph对象网关节点上运行Ceph RADOS网关守护程序(Ceph-radosgw。它是一个构建在librados之上的对象存储接口,也是一个为应用程序提供Ceph存储集群的RESTful网关。Ceph对象网关支持两个接口:S3OpenStack Swift