转自:https://www.ustack.com/blog/ceph-distributed-block-storage/
1. Ceph简介
Ceph是统一分布式存储系统,具有优异的性能、可靠性、可扩展性。Ceph的底层是RADOS(可靠、自动、分布式对象存储),可以通过LIBRADOS直接访问到RADOS的对象存储系统。RBD(块设备接口)、RADOS Gateway(对象存储接口)、Ceph File System(POSIX接口)都是基于RADOS的。
LIBRADOS(Native API):
- read、write
- snapshot
- append、tuncate、clone range
- object level key-value mappings
RADOS Gateway(REST API):
- 兼容S3和Swift接口
RBD(Block Storage ):
- Thinly provisioned
- Resizable images
- Image import/export
- Image copy or rename
- Read-only snapshots
- Revert to snapshots
- Ability to mount with Linux or QEMU KVM clients!
Ceph File System:
- It provides stronger data safety for mission-critical applications.
- It provides virtually unlimited storage to file systems.
- Applications that use file systems can use Ceph FS with POSIX semantics. No integration or customization required!
- Ceph automatically balances the file system to deliver maximum performance.
Ceph的核心是RADOS,它是分布式对象存储系统,由自修复、自管理、智能的存储节点组成。RADOS作为数据持久层,是RADOSGW、RBD、CEPH FS的基础。分布式对象存储的基本问题是如何分布数据到上千个存储节点上,RADOS的核心是CRUSH(一个可扩展的伪随机数据分布算法)。CRUSH能够有效映射数据对象到存储节点上,而且能够处理系统的扩展和硬件失效,最小化由于存储节点的添加和移除而导致的数据迁移。CRUSH算法达到了效率和扩展性这两个矛盾的目标,更详细的介绍在 CRUSH算法介绍 CRUSH具体分析 。
2. Ceph社区
Ceph最新稳定版本是 0.61 Cuttlefish(5月7号发布),下个稳定版本是 0.67 Dumpling (8月份发布)。
主要贡献者(大部分是Inktank公司的员工,因此Ceph目前还是由Inktank公司掌控着):
- Sage Weil: https://github.com/liewegas
- Yehuda Sadeh: https://github.com/yehudasa
- TOmmi Virtanen: https://github.com/tv42
- Greg Farnum:https:https://github.com/gregsfortytwo
- Josh Durgin: https://github.com/jdurgin
- Samuel Just: https://github.com/athanatos
- Wido den Hollander: https://github.com/wido
项目统计:
- http://www.ohloh.net/p/cephfs
- https://github.com/ceph/ceph/graphs
- Ceph项目从2004年6月份启动,源于Sage Weil的博士论文。
- 一共有101个代码贡献者(从项目开始以来)
- 一共有24万行代码
- 大部分是用C++写的
- 最近30天有14个代码贡献者
从统计数据来看,Ceph最近的开发很活跃。
社区设施:
- 有邮件列表和IRC: http://ceph.com/resources/
- 有项目管理:http://tracker.ceph.com/projects/ceph
- FIX ISSUES的方式: GitHub pull request.
- 安装部署:http://ceph.com/docs/master/install/
- 帮助文档:非常详细 http://ceph.com/docs/
- 路线图: http://wiki.ceph.com/01Planning/01Roadmap/Schedule
- build状态:http://ceph.com/gitbuilder.cgi
- wiki: http://wiki.ceph.com/
- 有自己的design summit: http://ceph.com/events/ceph-developer-summit/
完善的社区设施和规范可以保证Ceph的开发进度和质量,详细的帮助文档可以吸引更多的用户使用Ceph,开放的Design Summit能够吸引更多的开发者参与Ceph。
主要子项目:
- devops(自动化部署和运维)
- fs(POSIX接口)
- linux kernel client
- performance(主要是用于测试ceph的性能)
- rbd(Block Storage)
- rgw(RADOS Gateway)
- teuthology(ceph test suite)
在Ceph的项目管理中,我们可以发现有以上子项目。devops 项目能够让用户更好的安装、管理Ceph。performance项目能够用于Ceph性能的调优(Ceph可以设置很多选项)。teuthology 项目能够提高Ceph代码的可靠性。
版本发布策略:
- Point Releases — ad hoc
- Interim Releases — 每两周发布一个开发版
- Stable Releases — 每三个月发布一个稳定版
- LTS Releases — coming soon!规范的发布策略表示Ceph项目越来越成熟。
3. Ceph的影响力
Ceph本来就有一定的影响力(源于它的架构和功能),大家对它抱有很大的希望。自从inktank公司成立之后,inktank公司也不断推动Ceph与其他系统的整合,提高Ceph的影响力。
Ceph对其他系统的支持
- OpenStack
- CloudStack
- OpenNebula
- Hadoop
Ceph的使用调查:
在ceph的邮件列表中做的调查 http://ceph.com/community/results-from-the-ceph-census/
在收到的81份调查反馈中(不包括Dreamhost)
- 有36个公司在调查Ceph中
- 有24个公司在预生产环境使用Ceph
- 有21个公司在生产环境使用Ceph
在生产环境中,已经使用的裸磁盘有1154TB。Dreamhost已经超过 3PB了。在预生产环境中,一共有2466TB。(不包括一个特别的样本,它有20PB)。平均每个集群的大小是72TB(不包括一个特别的样本,它有20PB,用于部署OpenStack。另外一个特别的样本是1PB,是CRNET SA的预生产环境。)
在OpenStac Design Summit 2013中的一个 Session:roadmap-for-ceph-integration-with-openstack
他们打算全面集成ceph到openstack上,让nova、cinder、glance、ceilometer、keystone都用上ceph。
提高ceph和cinder、swift、ceilometer、glance的集成度。
他们打算邀请开发者:
- 给openstack core projects集成ceph
- 开发ceph的核心组件(RADOS、RGW、RBD)
在OpenStac Design Summit 2013中的一个Topic:Wicked Easy Ceph Block Storage & OpenStack Deployment with Crowbar
在OpenStac Design Summit 2013中的一个Session:new-features-for-ceph-with-cinder-and-beyond
当前稳定版本Bobtail的新特性:
Improved OSD threading
Filesystem and journal related-locks are now more fine-grained
Boosted single disk IOPS from 6K to 22K
Restructure how map updates are handled, letting each placement group process them independently
Recovery QoS
Message priority system reworked to prevent starvation
Recovery operations can be lower priority than client I/O without starving
Requests to access an object can increase recovery priority for that object
Keystone Integration
RADOS gateway can talk to keystone to authenticate swift api requests
Let keystone manage your users
Supported by the Ceph juju charm
下一个稳定版本Cuttlefish的新特性:
Incremental backup for block devices
On-disk encryption
REST management API for RADOS gateway
More performance improvements(especially for small I/O)
More!! http://www.inktank.com/about-inktank/roadmap/
下下个稳定版本Dumpling的新特性
Geo-replication for RADOS gateway(跨机房)
REST management API for Ceph cluster
...
Ceph的第一次Design Summit:
把OpenStack社区作为榜样,Ceph社区进步很快。在Design Summit上,还有国防科技大学Li Wang教授做的一个Session。
4. Inktank公司介绍
通过分析Inktank的招聘信息可以知道Inktank公司的主要工作内容。
Inktank当前主要工作是开发Ceph,并和其他云平台进行整合。公司提供的服务有:
- 咨询服务:education, evaluation, implementation and system optimization of Ceph infrastructure.
- 支持服务: Pre-production subscription、production subscription(提供四种级别的服务)
- 培训服务
合作伙伴有:
hastexo、Dell、Mirantis、Alcatel-Lucent、SUSE、eNovance、Critix、Canonical
客户有:
DreamHost Bloomberg AT&T ebay intel filoo netelligent HUAWEI Unity zatta
管理层:
- Seagewei(Founder & CTO):Ceph的作者。也是DreamHost的co-founder,年轻的时候创建WebRing,并卖掉。
- Bryan Bogensberger(CEO):他创建过SaaS公司Marketingisland, 创建过PaaS公司Reasonably Smart。他还在IaaS公司Joyent、DreamHost做过高级行政职务。
- Simon Anderson(Chairman):他是DreamHost的CEO,Ceph的主要赞助者,给Inktank提供了初始资金和战略意见。他已经参与过15个Startup。
- Mark Kampe(Vice President, Engineering):40年的操作系统软件的开发经验,在小公司待过,也在大公司(IBM,SUN,HDS)待过。在Inktank,他负责建立团队、方法论、流程,以便把
Ceph变成企业级存储平台。 - Wolfgang Schulze(Vice President, Professional Services):他负责Inktank的全球的专业服务团队,包括support,consulting,education.他有20年的IT经验。
- Debbie Moynihan(Vice President, Marketing):她负责Inktank的全球的市场战略和执行。她有15年的B2B市场经验。
- Ross Turk(Vice President, Community):他负责和用户、贡献者、开源社区建立关系。他也有15年的IT经验。他以前在SourceForge工作。
- Neil Levine(Vice President, Product Managemen):他以前是Canonical的GM/VP。
- Nigel Thomas(Vice President, Business Development):负责销售。
- Artur Elizarov(Vice President, People Strategy and Administration):负责人力资源。
融资:
Inktank从Canonical的创始人Mark Shuttleworth 得到 $1 million 的投资。
5. 观察
- Ceph统一的架构满足了云计算和大数据对存储系统的需求。
- Ceph背后的力量很大,Inktank会积极整合Ceph到OpenStack、CloudStack、OpenNebula、Hadoop系统中,借助这些平台的力量推广Ceph。
- Inktank打算吸引更多用户、开发者、厂商的目光:
- 建设更规范的开源社区,学习OpenStack召开Design Summit。
- 推出更积极的发布时间表和新功能。