认识
Ceph 最早是加州大学 Santa Cruz 分校的一个研究项目,项目创始人 Sage Weil 被誉为“Ceph 之父”。其最初的研究目标是围绕文件系统使用场景构建一个可水平扩展的基于对象的文件系统,用于数据中心高性能计算。
当研究工作接近尾声时,Sage 开始与许多传统存储供应商谈论 Ceph 及其在该项目中所做的工作,试图谋求与企业的合作,但结果都不理想。最后,Sage 通过开放源代码的方式改变 Ceph,从而影响存储界,进而效仿 Solaris、Ultrix、Irix 等公司的发展模式。
Ceph 项目于 2006 年正式开源,代码存放在 SourceForge 中,而后逐步发展成为我们今天看到的这个项目。
Red Hat’s Ceph offers unified object and block storage capabilities. It’s a distributed storage solution that boasts excellent performance, scalability and reliability. Well-known users include Cisco, DreamHost, CERN, Bloomberg, and Deutsche Telekom. Operating System: Linux
组成
其设计思路是将通用的服务器和硬盘设备通过网络协议进行集群组建,构建成一套存储集群,对外提供多种访问接口,实现满足多种使用场景的分布式存储;
最初,Ceph 利用了几种技术,包括 EBOFS(针对对象工作负载的文件系统)、CRUSH 算法、RADOS(为 Ceph 提供支持底层对象存储的算法)等,并且这几项技术的监控部分在集群内部实现,这样做的主要目的是实现存储智能化。
构建
WIP
性质
总体表现在 4 个方面:集群可靠性、集群扩展性、数据安全性、接口统一性;
冗余:通过高可用,能够实现无任何单故障点;可靠:每个组件必须尽可能拥有自我管理和自我修复能力;运行于现有商业硬件之上;纠删码;缓存;计数;
可靠性和高可用性
1)条带化、纠删码、副本:数据持久性、高可用性和离性能,并支持多站点和灾难恢复
2)动态调整块大小:无须停机即可扩展或缩小 Ceph 块设备
3)存储策略:使用 CRUSH 算法对数据进行跨节点复制,以实现故障域解决方案;通过 CRUSH 算法,Client 能够自己计算出存储位置,而不再需要 Server 提供中心化的节点来计算数据存放位置;通过 CRUSH 算法,存储单元能够自己完成数据的高可用,依旧无需中心化的控制节点来管理集群;
4)快照:整个池或单个块设备的快照
5)服务支持:SLA 支持的技术,保证实现产品升级和漏洞修补
灾备
Zone 和 Region:S3 对象拓扑;
全局性集群:具有对本地集群对象用户的全局命名空间
容灾:启用多站点复制来进行灾难恢复、数据分发、归档;
数据备份:Ceph 集成 Bareos/Bacula/Amanda 备份软件,可以实现应用数据文件的备份。
性能
BlueStore:相比于 Filestore,性能提升了 2 倍
客户端集群数据路径:客户端在整个集群中共享输入 / 输出负载
写时复制:加速使用同一镜像部团虚拟机
内存中客户端缓存:使用虚拟机 Hypervisor 缓存来增强 Client 的 I/O 性能
服务器端 Journal:序列化写入,提高数据写入效率
扩展性
容量:PB、EB 级数据存储;单集群可最多容纳 1024PB 数据
水平扩展的架构:集群能支持上干个存储节点,理论上可无限扩展
数据自动化平衡:数据均匀分布在整个集群中,无单点故障
滚动升级:组件能够线性扩展,集群升级不会影响数据的连续性访问
成本
后台服务容器化部署:利用集群硬件减少配置占用空间,并且同一台服务器上共存很多守护进程;
通用硬件:针对多种工作负载量身定制服务器服务和硬盘,以实现最优价格和性能组合
瘦置备:实现实例快速创建和超配;
兼容性:新节点增加后,不需要替换老旧节点;
条带化纠删码:节省成本的数据保护方式;
开源:其基于软件的、开源的、适应性强的;
接口和协议
1)对象、块、文件存储:对象存储支持 Amazone S3 和 OpenStack Swift API;块存储支持 Linux 集成以及基于内核的虚拟机 ( KVM) 程序;文件系统保证服务高可用,支持 NFS v4 和本地 API 协议;
2)RESTful API:可以编程方式管理所有集群存储功能,从而实现存储独立;
3)NFS、iSCSI、对象支持:能够为多个工作负载和应用程序构建通用存储平台;
管理和安全
1)自动化:基于 Ansible 工具实现自动化部署及升级扩展,或通过 cephadm 专用的命令行工具进行部署;
2)管理和监控:先进的 Ceph 监控和诊断信息,带有集成的本地监控仪表板,保证整个集群的图形可视化,包括集群和每个节点的使用情况以及性能统计信息;
3)认证和授权:集成 Mierosoft Active Direetory、LDAP、AWS Auth v4、Keystone v3
4)使用策略:对池、用户、存储桶或数据级别提供访问限制
5)加密:在集群范围内提供静态或用户自定义的嵌入对象中的加密方法
6)操作系统:在成熟的操作系统上部奢,具有很高的安全性,并得到协作的开源社区的支持,如 RHEL、CentOS 等
应用
Ceph 最初的研究目标是围绕文件系统使用场景构建一个可水平扩展的基于对象的文件系统,用于数据中心高性能计算;
目前,推荐使用 Ceph 的场景主要分为 5 大类:
1)数据分析:Hadoop
2)云计算平台:OpenStack
3)富媒体和归档、
4)企业文件同步和共享、
5)服务器和应用程序;
这 5 类场景特点主要体现在数据海量,对数据读写性能要求不苛刻,而对计算水平要求较高;