Preface 前言
数据—这是个简单的词,但它存储着整个世界的过去、现在和将来。同时,它也是现存的任何系统的最关键元素。我们生活在一个技术时代,它每秒钟都会产生巨量的数据,并且随着时间的迁移,这些数据的量级会达到让人不可思议的程度。然而,我们如何才能安全、可靠并面向未来地存储这些永远都在产生的数据呢?本书将讨论一个存储技术规则的改变者,它将重新定义存储的未来。
Ceph是种开源技术,它是软件定义存储的领导者。Ceph具备极好的可靠性、统一性和鲁棒性。它比现存的其他存储解决方案更加完整、经济。Ceph开辟了一个全新的、数据存储的途径。它是分布式的、可大规模扩展的,并且没有单点故障。更重要的是,它运行在商用硬件之上,这使得它具备令人惊讶的经济性。它可以帮你打破昂贵的厂商锁定方案的枷锁,在存储上采用企业级的开源技术。
Ceph集中了各种企业级特性,例如高度的可靠性、鲁棒性、可扩展性、纠删码、分层缓存等。经过十年,Ceph已经足够成熟,也使得它鹤立鸡群并且引领存储的方向。它是目前流行并且将高速发展的技术。统一的Ceph存储系统能够满足你在数据存储上的任何需求。Ceph是真正的统一,也就意味着在单个存储系统里提供文件存储、块存储和对象存储。这使得Ceph非常灵活,并且能够满足你所有的数据需求。它就是你在数据存储上所有问题的答案。
云计算是下一个思维变革,而类似Ceph这样的存储系统是云计算基础设施中最关键的部件。Ceph在云存储领域有自己强大的影响力。它已经是OpenStack、CloudStack这样的云平台中首选的开源企业级软件定义存储。这些云平台利用Ceph的特性,提供了鲁棒的、可扩展的艾字节(EB)级公有云或者私有云基础设施。除此之外,虚拟化平台(例如KVM和libvirt)完美支持Ceph,专用的虚拟化解决方案也支持(例如VMware)Ceph,而HyperV也即将支持Ceph。
在Inktank(现在是Red Hat的一部分)的支持下,Ceph无疑是存储行业里的下一个重大突破。Ceph具有一个令人惊叹的社区,并且有快速的开发周期,使其更可靠。尽管Ceph是完全开源的,但是用户可以享受来自Red Hat及其商业伙伴的企业级支持。这是个优点。
本书涵盖的内容第1章概述Ceph的发展、历史,以及未来的方向。该章解释常见存储的挑战,以及Ceph如何处理这些挑战并成为游戏规则改变者。同时也包括Ceph和其他存储系统的比较。
第2章讨论实例,并展示搭建Ceph集群的实际步骤。它也包括一个用于在VirtualBox上创建Ceph沙盒环境并纵向扩展的向导。
第3章深入Ceph内部架构,详细地解释每一个组件。通过逐渐实践式地解释组件达到更好的学习效果,并了解它们的相关性。
第4章介绍Ceph怎样管理数据,实践内容将让你了解它的每一个部分。该章也包括CRUSH、PG(Placement Group,归置组)和池的细节。
第5章讨论企业级Ceph集群所需要的硬件计划。该章也包括手动或者使用ceph-deploy自动搭建Ceph集群的实际步骤。
第6章包括用实践方式解释Ceph中的文件、块和对象三种存储类型,以及如何配置和提供每一种类型的存储。该章也包括快照、复制、兼容S3和swift的对象存储等。
第7章涵盖从系统管理的角度管理和操作Ceph的一切内容。包括日常操作、纵向扩展和收缩、硬件更换,同时还详细介绍CRUSH管理和它的高级概念。
第8章可以让你有能力监控自己的Ceph集群和它的所有组件。该章涵盖了开源的Ceph监控仪表盘项目,例如Kraken和ceph-dash,以及它们的安装和配置。
第9章一步步教你搭建自己的OpenStack测试环境以及将它与Ceph集成。该章解释了Ceph如何使OpenStack锦上添花,以及OpenStack组件如何使用Ceph。
第10章涵盖了Ceph的高级概念,例如从硬件和软件角度进行性能调优。该章也介绍使用纠删码和缓存分层的方法,并讨论Ceph基准测试工具。
阅读本书所需要的软件阅读本书所需要的各种软件如下:
VirtualBox 4.0或更高版本(https://www.virtualbox.org/wiki/Downloads)CentOS 6.4(http://wiki.centos.org/Download)Ceph software packages 0.78或更高版本(http://ceph.com/resources/downloads/)S3 Client,通常是S3cmd(http://s3tools.org/download)Python-swiftclient用于监控的Kraken管理控制台(https://github.com/krakendash)用于监控的ceph-dash管理控制台(https://github.com/Crapworks/ceph-dash)OpenStack RDO(http://rdo.fedorapeople.org/rdo-release.rpm)本书读者对象本书的目标读者是那些想通过Ceph进入软件定义存储领域的IT人员和存储管理员。当然,它也面向希望了解如何使用Ceph,以及它如何工作,以便开始开发并为Ceph开源项目贡献的任何人。
本书也为想了解传统存储和软件定义的云存储之间差异的IT经理和专家提供了重要息。
Forward 推荐序我们喜欢称呼Ceph为“未来的存储”,这是一个能够引起很多不同层的人共鸣的称呼。对于系统架构师而言,Ceph的系统架构满足了所有人都希望构建的一类系统的需求。它是模块化和可扩展的,并且有容错设计的。对于用户来说,Ceph为传统和新兴的工作负载提供了一系列存储接口,可以在商用硬件上运行,并且支持仅以适度的资本投资来部署生产集群。对于免费软件爱好者来说,Ceph持续推动着这些技术,这些技术的代码库是完全开源的,且允许所有人免费审查、修改并完善这些代码,在存储行业中这些代码仍然成本昂贵且具有专有的使用权限。
Ceph项目始于我在加州大学圣克鲁斯的一个研究计划,这个计划由几个能源部实验室(洛斯·阿拉莫斯、劳伦斯·利弗莫尔和桑迪亚)资助。这个计划的目标是进一步加强拍字节(PB)级别的扩展、基于对象的存储系统。在2005年加入该组织的时候,我最初的重点是为文件系统构建可扩展的元数据管理,即如何在多个服务器之间管理文件和目录层次结构,这样,系统就可以响应超级计算机中的100万个处理器,在同一时间将文件写入文件系统的同一目录下。在接下来的3年里,我们主要研究了这个关键概念,然后构建了一个完整的体系结构并一直致力于这种系统的实现。
2006年当我们将最初描述Ceph的学术论文发表,并将相关代码开源且发布在网上后,我想我的主要工作就已经完成了。这个系统“运转正常”,现在开源社区的魔力和协作开发已经开始运转并迅速把Ceph变成自由软件,它也是我一直想在自己的数据中心运行的软件。我花了些时间才意识到原型和生产代码之间的巨大差距,还有高效的自由软件社区是需要随着时间的推移来建立的。我们在未来几年会继续发展Ceph,目标不变。我们构建了一个先进的分布式存储系统,并且完全免费,它之于存储行业正如Linux之于服务器市场。
围绕Ceph项目建立一个拥有活跃用户和开发者的社区是这次经历最有益的一部分。而在2012年和2013年成立Inktank商业公司来推动Ceph的产品化时,社区的主要话题就是沟通和审查。在那个时间点我们的主要问题是如何投资和雇用那些不为我们工作的专家和贡献者一起来构建这个社区。我相信对于开源模型的热切关注和理解最终使得Inktank和Ceph获得成功。我们试图建立一个包含用户、合作伙伴以及竞争对手而我们不占垄断地位的生态系统。
Karan Singh就是通过这种形式,在过去的几年中从Ceph社区浮现出来的一个社区成员。他是我们早期基于邮件和IRC论坛的一个活跃会员,在这个论坛,Ceph用户和开发者通过线上的方式开展他们的业务,主题包括开始使用Ceph的求助,讨论最佳的硬件或软件配置选项,分享崩溃报告和跟踪bug,或者合作开发新特性。
虽然我们在网上已经彼此认识好几年了,我最近才有机会私下和 Karan见面,我才发现他一直在努力写一本关于Ceph的书。我发现它证明了该社区的多样性,并成功完成了本书—第一本关于Ceph的纸质书,它是由一个和初始Ceph研发团队以及Inktank公司没有直接关系的人写的,但它促使Ceph成为人们关注的焦点。Karan在Ceph研究上雄厚的技术背景和在社区深厚的根基,让他能从一个理想的技术角度看Ceph的影响以及最重要的用户体验。
—Sage WeilRed Hat公司Ceph首席架构师