转载自:http://yizhaolingyan.net/?p=11
开源技术专家章宇同学(@一棹凌烟)在C3沙龙分享过Ceph之后,最近来了劲头,一口气写了一系列《Ceph浅析》的博文,共8篇:
- “Ceph浅析”系列之一——前言
- “Ceph浅析”系列之二——Ceph概况
- “Ceph浅析”系列之三——Ceph的设计思想
- “Ceph浅析”系列之四——Ceph的结构
- “Ceph浅析”系列之五——Ceph的工作原理及流程
- “Ceph浅析”系列之六——Ceph与OpenStack
- “Ceph浅析”系列之七——关于Ceph的若干想法
- “Ceph浅析”系列之八——小结
这一系列文章对于想要初步了解Ceph文件系统的同学而言是相当不错的入门资料。
开篇,章宇介绍Ceph说:
Ceph无疑是目前人气最高的开源存储项目之一。
Ceph是一个发展了七年的分布式存储系统,特点是“统一的”和“分布式的”。
“统一的”意味着Ceph可以一套存储系统同时提供对象存储、块存储和文件系统存储三种功能,以便在满足不同应用需求的前提下简化部署和运维。而“分布式的”在Ceph系统中则意味着真正的无中心结构和没有理论上限的系统规模可扩展性。
前三篇主要是背景介绍,从第四篇开始,章宇开始介绍Ceph的结构。
Ceph的核心是其最底层的基础存储系统RADOS,RADOS的上面提供了向本机上层提供API的基础库librados,面向Web调用提供的RADOS GW RESTful API,以及上层的块存储设备RBD和文件系统Ceph FS。文中介绍了为什么Ceph提供的东西要远远超出Amazon S3、Swift提供的东西:
Swift(以及S3)提供的API所操作的“对象”只有三个:用户账户、用户存储数据对象的容器、数据对象。并且,所有的操作均不涉及存储系统 的底层硬件或系统信息。……而librados API的设计思想则与此完全不同。一方面,librados中没有账户、容器这样的高层概念;另一方面,librados API向开发者开放了大量的RADOS状态信息与配置参数,允许开发者对RADOS系统以及其中存储的对象的状态进行观察,并强有力地对系统存储策略进行控制。换言之,通过调用librados API,应用不仅能够实现对数据对象的操作,还能够实现对RADOS系统的管理和配置。这对于S3和Swift的RESTful API设计是不可想像的,也是没有必要的。
librados事实上更适合对于系统有着深刻理解,同时对于功能定制扩展和性能深度优化有着强烈需求的高级用户。
在接下来的第五篇中,章宇先介绍了RADOS中最为核心的、基于计算的对象寻址机制,然后说明对象存取的工作流程,之后介绍RADOS集群维护的工作过程,最后结合Ceph的结构和原理对其技术优势加以回顾和剖析。
第六篇介绍Ceph在OpenStack社区中引起的反响,可以用一句话总结:
整体而言,Ceph事实上是目前OpenStack生态系统中呼声最高的开源存储解决方案。这一点从笔者在OpenStack 2013 HongKong Summit上的亲身体验可以得到印证。目前,以HP、Dell、Intel等为代表的企业IT领导厂商,和以Mirantis、eNovance、UnitedStack为代表的若干OpenStack社区新兴厂商,都将Ceph作为重要的乃至于首选的开源存储解决方案。
第七篇是作者自己研究Ceph的经验分享:
- 开源的东西可以性能很好,当然坑也是很多,你能配好算你牛
- 太复杂的硬件可能不适合Ceph
- 在Ceph上,存储类型、存储策略都是可以非常灵活的配置的
- RADOS很强大,拿来做计算任务也是可以的
- Ceph还是不成熟,但当大家都忍不住开始用的时候,成熟起来就很快了