初识Ceph
1.1 Ceph概述
1. Ceph简介
从2004年提交第一行代码开始到现在,Ceph已经是一个有着十年之久的分布式存储系统软件,目前Ceph已经发展为开源存储界的当红明星,当然这与它的设计思想以及OpenStack的推动有关。
“Ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability.”这句话说出了Ceph的特性,它是可靠的、可扩展的、统一的、分布式的存储系统。Ceph可以同时提供对象存储RADOSGW(Reliable、Autonomic、Distributed、Object Storage Gateway)、块存储RBD(Rados Block Device)、文件系统存储Ceph FS(Ceph Filesystem)3种功能,以此来满足不同的应用需求。
Ceph消除了对系统单一中心节点的依赖,从而实现了真正的无中心结构的设计思想,这也是其他分布式存储系统所不能比的。通过后续章节内容的介绍,你可以看到,Ceph几乎所有优秀特性的实现,都与其核心设计思想有关。
OpenStack是目前最为流行的开源云平台软件。Ceph的飞速发展离不开OpenStack的带动。目前而言,Ceph已经成为OpenStack的标配开源存储方案之一,其实际应用主要涉及块存储和对象存储,并且开始向文件系统领域扩展。这一部分的相关情况,在后续章节中也将进行介绍。
2. Ceph的发展
Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。
2004年,Ceph项目开始,提交了第一行代码。
2006年,OSDI学术会议上,Sage发表了介绍Ceph的论文,并在该篇论文的末尾提供了Ceph项目的下载链接。
2010年,Linus Torvalds将Ceph Client合并到内核2.6.34中,使Linux与Ceph磨合度更高。
2012年,拥抱OpenStack,进入Cinder项目,成为重要的存储驱动。
2014年,Ceph正赶上OpenStack大热,受到各大厂商的“待见”,吸引来自不同厂商越来越多的开发者加入,Intel、SanDisk等公司都参与其中,同时Inktank公司被Red Hat公司1.75亿美元收购。
2015年,Red Hat宣布成立Ceph顾问委员会,成员包括Canonical、CERN、Cisco、Fujitsu、Intel、SanDisk和SUSE。Ceph顾问委员会将负责Ceph软件定义存储项目的广泛议题,目标是使Ceph成为云存储系统。
2016年,OpenStack社区调查报告公布,Ceph仍为存储首选,这已经是Ceph第5次位居调查的首位了。
3. Ceph 应用场景
Ceph可以提供对象存储、块设备存储和文件系统服务,其对象存储可以对接网盘(owncloud)应用业务等;其块设备存储可以对接(IaaS),当前主流的IaaS云平台软件,例如OpenStack、CloudStack、Zstack、Eucalyptus等以及KVM等,本书后续章节中将介绍OpenStack、CloudStack、Zstack和KVM的对接;其文件系统文件尚不成熟,官方不建议在生产环境下使用。
4. Ceph生态系统
Ceph作为开源项目,其遵循LGPL协议,使用C++语言开发,目前Ceph已经成为最广泛的全球开源软件定义存储项目,拥有得到众多IT厂商支持的协同开发模式。目前Ceph社区有超过40个公司的上百名开发者持续贡献代码,平均每星期的代码commits超过150个,每个版本通常在2 000个commits左右,代码增减行数在10万行以上。在过去的几个版本发布中,贡献者的数量和参与公司明显增加,如图1-1所示。
图1-1 部分厂商和软件
5. Ceph用户群
Ceph成为了开源存储的当红明星,国内外已经拥有众多用户群体,下面简单说一下Ceph的用户群。
(1)国外用户群
1)CERN:CERN IT部门在2013年年中开始就运行了一个单一集群超过10 000个VM和100 000个CPU Cores的云平台,主要用来做物理数据分析。这个集群后端Ceph包括3PB的原始容量,在云平台中作为1000多个Cinder卷和1500多个Glance镜像的存储池。在2015年开始测试单一30 PB的块存储RBD集群。
2)DreamHost:DreamHost从2012年开始运行基于Ceph RADOSGW的大规模对象存储集群,单一集群在3PB以下,大约由不到10机房集群组成,直接为客户提供对象存储服务。
3)Yahoo Flick:Yahoo Flick自2013年开始逐渐试用Ceph对象存储替换原有的商业存储,目前大约由10机房构成,每个机房在1PB~2PB,存储了大约2 500亿个对象。
4)大学用户:奥地利的因斯布鲁克大学、法国的洛林大学等。
(2)国内用户群
1)以OpenStack为核心的云厂商:例如UnitedStack、Awcloud等国内云计算厂商。
2)Ceph产品厂商:SanDisk、XSKY、H3C、杉岩数据、SUSE和Bigtera等Ceph厂商。
3)互联网企业:腾讯、京东、新浪微博、乐视、完美世界、平安科技、联想、唯品会、福彩网和魅族等国内互联网企业。
6. 社区项目开发迭代
目前Ceph社区采用每半年一个版本发布的方式来进行特性和功能的开发,每个版本发布需要经历设计、开发、新功能冻结,持续若干个版本的Bug修复周期后正式发布下一个稳定版本。其发布方式跟OpenStack差不多,也是每半年发布一个新版本。
Ceph会维护多个稳定版本来保证持续的Bug修复,以此来保证用户的存储安全,同时社区会有一个发布稳定版本的团队来维护已发布的版本,每个涉及之前版本的Bug都会被该团队移植回稳定版本,并且经过完整QA测试后发布下一个稳定版本。
代码提交都需要经过单元测试,模块维护者审核,并通过QA测试子集后才能合并到主线。社区维护一个较大规模的测试集群来保证代码质量,丰富的测试案例和错误注入机制保证了项目的稳定可靠。
7. Ceph版本
Ceph正处于持续开发中并且迅速提升。2012年7月3日,Sage发布了Ceph第一个LTS版本:Argonaut。从那时起,陆续又发布了9个新版本。Ceph版本被分为LTS(长期稳定版)以及开发版本,Ceph每隔一段时间就会发布一个长期稳定版。Ceph版本具体信息见表1-1。欲了解更多信息,请访问https://Ceph.com/category/releases/。
表1-1 Ceph版本信息
Ceph版本名称 Ceph版本号 发布时间
Argonaut V0.48 (LTS) 2012.6.3
Bobtail V0.56 (LTS) 2013.1.1
Cuttlefish V0.61 2013.5.7
Dumpling V0.67 (LTS) 2013.8.14
Emperor V0.72 2013.11.9
Firefly V0.80 (LTS) 2014.3.7
Giant V0.87.1 2015.2.26
Hammer V0.94 (LTS) 2015.4.7
Infernalis V9.0.0 2015.5.5
Jewel V10.0.0 2015.11
Jewel V10.2.0 2016.3