开源技术专家章宇同学( @一棹凌烟)在 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 还是不成熟,但当大家都忍不住开始用的时候,成熟起来就很快了
你是否研究过 Ceph?你是否看好 Ceph 在 2014 年的发展?欢迎交流你的观点。
评论