随着信息化浪潮的到来,全球各行各业逐步借助信息技术深入发展。据悉,企业及互联网数据以每年50%的速率在增长。据权威调查机构Gartner预测,到2020年,全球数据量将达到35ZB,相当于80亿块4TB硬盘,数据结构的变化给存储系统带来了全新的挑战。那么有什么方法能够存储这些数据呢?我认为Ceph是解决未来十年数据存储需求的一个可行方案。Ceph是存储的未来!SDS是存储的未来!
为什么写这本书目前,磁盘具备容量优势,固态硬盘具备速度优势。但能否让容量和性能不局限在一个存储器单元呢?我们很快联想到磁盘阵列技术(Redundant Array of Independent Disk,RAID,不限于HDD)。磁盘阵列技术是一种把多块独立的硬盘按不同的方式组合起来形成一个硬盘组(Disk Group,又称Virtual Disk),从而提供比单个硬盘更高的存储性能与数据备份能力的技术。磁盘阵列技术既可提供多块硬盘读写的聚合能力,又能提供硬盘故障的容错能力。
镜像技术(Mirroring)又称为复制技术(Replication),可提供数据冗余性和高可用性;条带(Striping),可提供并行的数据吞吐能力;纠删码(Erasure Code),把数据切片并增加冗余编码而提供高可用性和高速读写能力。镜像、条带和纠删码是磁盘阵列技术经典的数据分发方式,这3种经典的磁盘技术可通过组合方式提供更加丰富的数据读写性能。
传统的磁盘阵列技术的关注点在于数据在磁盘上的分发方式,随着通用磁盘、通用服务器,以及高速网络的成本降低,使数据在磁盘上的分发扩展到在服务器节点上的分发成为可能。镜像技术、条带技术和纠删码技术基于服务器节点的粒度实现后,这些技术的特点不再局限于单个设备的性能,而是具备“横向扩展”能力。我们暂且认为这是分布式存储本质的体现。
分布式存储解决了数据体量问题,对应用程序提供标准统一的访问接入,既能提升数据安全性和可靠性,又能提高存储整体容量和性能。可以预见,分布式存储是大规模存储的一个实现方向。分布式存储广泛地应用于航天、航空、石油、科研、政务、医疗、视频等高性能计算、云计算和大数据处理领域。目前行业应用对分布式存储技术需求旺盛,其处于快速发展阶段。
Ceph是加州大学圣克鲁兹分校的Sage Weil博士论文的研究项目,是一个使用自由开源协议(LGPLv2.1)的分布式存储系统。目前Ceph已经成为整个开源存储行业最热门的软件定义存储技术(Software Defined Storage,SDS)。它为块存储、文件存储和对象存储提供了统一的软件定义解决方案。Ceph旨在提供一个扩展性强大、性能优越且无单点故障的分布式存储系统。从一开始,Ceph就被设计为能在通用商业硬件上高度扩展。
由于其开放性、可扩展性和可靠性,Ceph成为了存储行业中的翘楚。这是云计算和软件定义基础设施的时代,我们需要一个完全软件定义的存储,更重要的是它要为云做好准备。无论运行的是公有云、私有云还是混合云,Ceph都非常合适。国内外有不少的Ceph应用方案,例如美国雅虎公司使用Ceph构建对象存储系统,用于Flickr、雅虎邮箱和Tumblr(轻量博客)的后端存储;国内不少公有云和私有云商选择Ceph作为云主机后端存储解决方案。
如今的软件系统已经非常智能,可以最大限度地利用商业硬件来运行规模庞大的基础设施。Ceph就是其中之一,它明智地采用商业硬件来提供企业级稳固可靠的存储系统。
Ceph已被不断完善,并融入以下建设性理念。
每个组件能够线性扩展。
无任何单故障点。
解决方案必须是基于软件的、开源的、适应性强的。
运行于现有商业硬件之上。
每个组件必须尽可能拥有自我管理和自我修复能力。
对象是Ceph的基础,它也是Ceph的构建部件,并且Ceph的对象存储很好地满足了当下及将来非结构化数据的存储需求。相比传统存储解决方案,对象储存有其独特优势:我们可以使用对象存储实现平台和硬件独立。Ceph谨慎地使用对象,通过在集群内复制对象来实现可用性;在Ceph中,对象是不依赖于物理路径的,这使其独立于物理位置。这种灵活性使Ceph能实现从PB(petabyte)级到EB(exabyte)级的线性扩展。
Ceph性能强大,具有超强扩展性及灵活性。它可以帮助用户摆脱昂贵的专有存储孤岛。Ceph是真正在商业硬件上运行的企业级存储解决方案;是一种低成本但功能丰富的存储系统。Ceph通用存储系统同时提供块存储、文件存储和对象存储,使客户可以按需使用。
由于国内许多企业决策者逐渐认识到Ceph的优势与前景,越来越多来自系统管理和传统存储的工程师使用Ceph,并有相当数量的企业基于Ceph研发分布式存储产品,为了更好地促进Ceph在国内传播和技术交流,我们几个爱好者成立了Ceph中国社区。目前,通过网络交流群、消息内容推送和问答互动社区,向国内关注Ceph技术的同行提供信息交流和共享平台。但是,由于信息在传递过程中过于分散,偶尔编写的文档内容并不完整,导致初学者在学习和使用Ceph的过程中遇到不少疑惑。同时,由于官方文档是通过英文发布的,对英语不太熟悉的同行难于学习。鉴于此,Ceph中国社区组织技术爱好者编写本书,本书主要提供初级和中级层面的指导。根据调查反馈以及社区成员的意见,我们确定了本书内容。
本书特色在本书中,我们将采用穿插方式讲述Ceph分布式存储的原理与实战。本书侧重实战,循序渐进地讲述Ceph的基础知识和实战操作。从第1章起,读者会了解Ceph的前生今世。随着每章推进,读者将不断学习、不断深入。我希望,到本书的结尾,读者不论在概念上还是实战上,都能够成功驾驭Ceph。每个章节在讲述完基础理论知识后会有对应的实战操作。我们建议读者在自己的电脑上按部就班地进行实战操作。这样,一来读者不会对基础理论知识感到困惑,二来可让读者通过实战操作加深对Ceph的理解。同时,如果读者在阅读过程中遇到困难,我们建议再重温已阅章节或重做实验操作,这样将会加深理解,也可以加入Ceph中国社区QQ群(239404559)进行技术讨论。
读者对象本书适用于以下读者。
Ceph爱好者。
云平台运维工程师。
存储系统工程师。
系统管理员。
高等院校的学生或者教师。
本书是专门对上述读者所打造的Ceph入门级实战书籍。如果你具备GNU/ Linux和存储系统的基本知识,却缺乏软件定义存储解决方案及Ceph相关的经验,本书也是不错的选择。云平台运维工程师、存储系统工程师读完本书之后能够深入了解Ceph原理、部署和维护好线上Ceph集群。同时,本书也适合大学高年级本科生和研究生作为Ceph分布式存储系统或者云计算相关课程的参考书籍,能够带领你进入一个开源的分布式存储领域,深入地了解Ceph,有助于你今后的工作。
如何阅读本书由于Ceph是运行在GNU/Linux系统上的存储解决方案,我们假定读者掌握了存储相关知识并熟悉GNU/Linux操作系统。如果读者在这些方面知识有欠缺,可参照阅读其他书籍或专业信息网站。
本书将讲述如下的内容。
第1章 描述Ceph的起源、主要功能、核心组件逻辑、整体架构和设计思想,并通过实战的方式指导我们快速建立Ceph运行环境。
第2章 描述Ceph的分布式本质,深入分析Ceph架构,并介绍如何使用LIBRADOS库。
第3章 描述CRUSH的本质、基本原理,以及CRUSH作用下数据与对象的映射关系。
第4章 描述Ceph FS文件系统、RBD块存储和Object对象存储的建立以及使用。
第5章 描述Calamari的安装过程和基本使用操作。
第6章 描述Ceph FS作为高性能计算和大数据计算的后端存储的内容。
第7章 描述RBD在虚拟化和数据库场景下的应用,包括OpenStack、CloudStack和ZStack与RBD的结合。
第8章 描述基于Ceph的云盘技术方案和备份方案,描述网关的异地同步方案和多媒体转换网关设计。
第9章 描述Ceph的硬件选型、性能调优,以及性能测试方法。
第10章 描述CRUSH的结构,并给出SSD与SATA混合场景下的磁盘组织方案。
第11章 描述Ceph的缓冲池原理和部署,以及纠删码原理和纠删码库,最后描述纠删码池的部署方案。
第12章 对3种存储访问类型的生产环境案例进行分析。
第13章 描述Ceph日常运维细节,以及常见错误的处理方法。
勘误与支持在本书的写作过程,我们也参考了Ceph中国社区往期沙龙一线工程师、专家分享的经验和Ceph官方文档。我们热切希望能够为读者呈现丰富而且权威的Ceph存储技术。由于Ceph社区不断发展,版本迭代速度快,笔者水平有限,书中难免存在技术延后和谬误,恳请读者批评指正。可将任何意见和建议发送到邮箱
[email protected]或者
[email protected],也可以发布到Ceph中国社区问答系统http://bbs.ceph.org.cn/。我们将密切跟踪Ceph分布式存储技术的发展,吸收读者宝贵意见,适时编写本书的升级版本。Ceph中国社区订阅号为:“ceph_community”,二维码为:
欢迎读者扫描关注,“Ceph中国社区订阅号”会定期发送Ceph技术文章、新闻资讯。也欢迎读者通过这个微信订阅号进行本书勘误反馈,本书的勘误和更新也会通过订阅号发布。
致谢首先要感谢我们社区的全体志愿者,社区的发展离不开全体志愿者们无怨无悔的奉献,正是有了你们才有了社区今日的繁荣,其次要感谢所有支持过我们的企业,是你们的慷慨解囊成就了Ceph中国社区今日的壮大,最后感谢陈晓熹的校稿以及所有为本书编写提供支持、帮助的人。未来,我们也非常欢迎有志将开源事业发扬光大的同学们积极加入我们的社区,和我们一起创造Ceph未来的辉煌。
序 PrefaceCeph是目前开源世界在存储领域的里程碑式项目,它所带来的分布式、无中心化设计是目前众多商用分布式存储模仿和学习的对象。Ceph社区经过十多年发展已经成为近几年参与度增长最快的开源社区之一,而Ceph中国社区正是背后的驱动力之一。从2015年开始,Ceph中国社区一直努力在国内普及Ceph的生态,并为广大Ceph爱好者提供了交流平台,使得众多开源爱好者能够进一步了解Ceph的魅力。在过去的10年,开源世界慢慢成为了IT创新的动力,而这10年也是国内技术爱好者受益于开源的最好时间。但是,从开源爱好者到社区的深度参与方面,尤其是在世界级开源项目上,我们还存在大缺失,而这些“沟壑”需要像Ceph中国社区这样的组织来弥补。我很欣喜地看到Ceph中国社区能在最合适的时间成立并迅速成长,而且受到Ceph官方社区的认可。
Ceph中国社区从论坛的搭建,微信群的建立,公众号的众包翻译和文章分析,到活动的组织都体现了一个开源社区最富有活力的价值。本书正是Ceph中国社区给国内Ceph爱好者的一份正当其时的“礼物”,本书是多位Ceph实战者在Ceph集群运维和问题讨论中形成的经验和锦囊之集合。毫不夸张地说,本书是我目前看到的最棒的Ceph入门工具书,可以帮助对分布式存储或者Ceph不太熟悉的读者真正零距离地接触并使用它。
王豪迈2016年9月8日