机房360首页
当前位置:首页 » 其他 » 浅析Ceph技术概况及其设计思想

浅析Ceph技术概况及其设计思想

来源:机房360 作者:机房360 更新时间:2015-5-29 20:40:56

摘要:本文将对Ceph的基本情况进行概要介绍,以期读者能够在不涉及技术细节的情况下对Ceph建立一个初步印象。

  Ceph的概况

  1. 什么是Ceph?

  Ceph的官方网站Ceph.com上用如下这句话简明扼要地定义了Ceph:

  “Ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability.”

  也即,Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式的存储系统。应该说,这句话确实点出了Ceph的要义,可以作为理解Ceph系统设计思想和实现机制的基本出发点。在这个定义中,应当特别注意“存储系统”这个概念的两个修饰词,即"统一的"和"分布式的"。

  具体而言,“统一的”意味着Ceph可以一套存储系统同时提供对象存储、块存储和文件系统存储三种功能,以便在满足不同应用需求的前提下简化部署和运维。而“分布式的”在Ceph系统中则意味着真正的无中心结构和没有理论上限的系统规模可扩展性。

  在实践当中,Ceph可以被部署于上千台服务器上。截至2013年3月初,Ceph在生产环境下部署的最大规模系统为 Dreamhost公司的对象存储业务集群,其管理的物理存储容量为3PB.

  2. 为什么要关注Ceph?

  事实上,Ceph并不是一个刚刚出现的开源项目.与此相反.从最初发布到逐渐流行.Ceph走过了七年以上的漫长路程。笔者以为,之所以应当对Ceph加以了解,其原因大致有两个方面:

  首先,Ceph本身确实具有较为突出的优势。

  Ceph值得一提的优势颇多,包括统一存储能力、可扩展性、可靠性、性能、自动化的维护等等。本质上,Ceph的这些优势均来源于其先进的核心设计思想,笔者将其概括为八个字——“无需查表,算算就好”。

  基于这种设计思想,Ceph充分发挥存储设备自身的计算能力,同时消除了对系统单一中心节点的依赖,从而实现了真正的无中心结构.基于这一设计思想和结构,Ceph一方面实现了高度的可靠性和可扩展性,另一方面保证了客户端访问的相对低延迟和高聚合带宽。

  通过后续内容的介绍,读者可以看到,Ceph几乎所有优秀特性的实现,都与这个核心设计思想有关。

  其次,Ceph目前在OpenStack社区中备受重视。

  OpenStack是目前最为流行的开源云操作系统。而据笔者观察,Ceph之所以在近一两年间热度骤升,其最为有力的推动因素就是OpenStack社区的实际需求。目前而言,Ceph已经成为OpenStack社区中呼声最高的开源存储方案之一,其实际应用主要涉及块存储和对象存储,并且开始向文件系统领域扩展。

  3. Ceph的产生与发展

  通常而言,开源项目的来源有三:一是学校里的大牛作的课题,论文发够然后开源;二是企业里的大牛搞的产品,机缘巧合于是开源;三是某些大牛突然显灵,然后一票人跟着一起开源。

  每一类的例子都有不少,而不同起源的开源项目也有着自身的不同特点。具体而言,第一类项目的原理和技术上很可能颇有独到之处,而Ceph就正在此列。相比之下,第二类项目的设计实现很可能颇为成熟,并且在开源之前或者开源初期就获得生产环境下的实际部署应用机会。这种出身背景上的因素,对于一个开源项目的后续发展很有可能产生影响。

  言归正传。Ceph项目起源于其创始人Sage Weil在加州大学Santa Cruz分校攻读博士期间的研究课题。项目的起始时间为2004年。

  在2006年的OSDI学术会议上,Sage发表了介绍Ceph的论文,并在该篇论文的末尾提供了Ceph项目的下载链接。由此,Ceph开始广为人知。

  Ceph使用C++语言开发。对于一个典型的强调性能的系统项目,这一选择可以理解。

  作为开源项目,Ceph遵循LGPL协议。

  根据Inktank官方网站上的信息,Cpeh的生态系统参加下图:

  

 

 

  不难看出,图中列出的厂商或组织带有明显的云计算气息。

  4. Sage Weil其人其事

  在展开后续的技术讨论之前,适度八卦Sage Weil的人生经历实在是很有必要,因为这位兄台委实是 IT男青年中凤毛麟角的在工程、研究、创业三个领域都有涉猎且都颇有建树的神人。

  Sage在工程上的能力自然不必多言,而他发表Ceph论文的OSDI也是计算机操作系统领域首屈一指的最高水平学术会议。

  至于创业方面,Sage是 DreamHost的联合创始人,彼时是1997年,他刚上大学不久.有兴趣的同学可以去LinkedIn研究一下Sage的个人简历,基本上是想工作就工作,想上学就上学,想创业就创业,想读博就读博,随心所欲,天马行空,令人油然而生一种表示敬佩的冲动。

  Ceph的设计思想

  分析开源项目,时常遇到的一个问题就是资料不足。有时间写代码的大牛们通常是都是没有时间或者根本不屑于写文档的。而不多的文档通常又是使用手册之类的东西。即便偶尔有设计文档通常也是语焉不详。在这种情况下,想从代码里反向把设计思想提炼出来,毕竟不是人人都能做到的。

  值得我们庆幸的是,Ceph是一个典型的起源于学术研究课题的开源项目。虽然学术研究生涯对于Sage而言只是其光辉事迹的短短一篇,但毕竟还是有几篇学术文献可供参考。这也为我们提供了难得的,从顶层视角入手分析一个系统领域的优秀开源项目的机会。

  1. Ceph针对的目标应用场景

  理解Ceph的设计思想,首先还是要了解Sage设计Ceph时所针对的目标应用场景,换言之,“做这东西的目的是啥?”

  事实上,Ceph最初针对的目标应用场景,就是大规模的、分布式的存储系统。所谓“大规模”和“分布式”,是指至少能够承载PB级别的数据,并且由成千上万的存储节点组成。

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/2015529/n926768414.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片