内容简介
《Ceph分布式存储学习指南》将展示规划、部署和有效管理Ceph集群所需的所有技能,指导你了解Ceph的技术、架构和组件。通过分步骤解释每个Ceph组件的部署,本书将带你学习Ceph存储配置以及Ceph与OpenStack的集成。然后,你将了解如何部署和设置Ceph集群,探索各种组件以及为什么需要它们。通过学习本书,你不仅会了解Ceph的基础知识,甚至会成为熟悉Ceph高级特性的专家。
目录
推荐序
译者序
作者简介
前言
第1章 Ceph存储介绍1
1.1 概要1
1.2 Ceph的历史和发展2
1.3 Ceph和存储的未来3
1.3.1 Ceph云存储解决方案4
1.3.2 Ceph软件定义存储解决方案6
1.3.3 Cehp统一存储解决方案6
1.3.4 下一代架构6
1.3.5 Raid时代的终结7
1.4 兼容性组合8
1.5 Ceph块存储8
1.6 Ceph文件系统9
1.7 Ceph对象存储10
1.8 Ceph与其他存储解决方案11
1.9 GPFS12
1.10 iRODS12
1.11 HDFS12
1.12 Lustre12
1.13 Gluster13
1.14 Ceph13
总结14
第2章 Ceph实战部署15
2.1 使用VirtualBox创建沙箱环境15
2.2 从零开始部署你的第一个Ceph集群20
2.3 纵向扩展Ceph集群—添加monitor和OSD22
2.3.1 添加Ceph monitor22
2.3.2 添加Ceph OSD23
总结24
第3章 Ceph架构和组件25
3.1 Ceph存储架构25
3.2 Ceph RADOS26
3.2.1 Ceph对象存储设备27
3.2.2 Ceph monitor32
3.2.3 librados35
3.2.4 Ceph块存储35
3.2.5 Ceph对象网关36
3.3 Ceph MDS37
3.4 为Ceph集群部署MDS37
3.5 Ceph文件系统38
总结39
第4章 Ceph内部构件40
4.1 Ceph底层实现40
4.2 对象40
4.3 CRUSH42
4.3.1 CRUSH查找43
4.3.2 CRUSH层级结构44
4.3.3 恢复和再平衡45
4.3.4 编辑CRUSH map45
4.3.5 定制集群布局46
4.4 PG47
4.4.1 计算PG数48
4.4.2 修改PG和PGP48
4.4.3 PG peering、up集合和acting集合50
4.5 Ceph池50
4.6 Ceph数据管理53
总结55
第5章 Ceph部署56
5.1 Ceph集群硬件规划56
5.1.1 监控需求57
5.1.2 OSD需求57
5.1.3 网络需求58
5.1.4 MDS需求59
5.2 再次配置VirtualBox环境59
5.3 准备安装Ceph59
5.4 Ceph集群手工部署61
5.4.1 安装依赖61
5.4.2 部署Ceph集群62
5.4.3 部署monitor62
5.4.4 创建OSD65
5.5 扩展集群66
5.5.1 添加monitor67
5.5.2 添加OSD68
5.6 使用ceph-deploy工具部署Ceph集群69
5.7 升级Ceph集群70
5.7.1 升级monitor71
5.7.2 升级OSD72
总结73
第6章 Ceph存储配置74
6.1 RADOS块设备74
6.1.1 创建你的第一个Ceph客户端75
6.1.2 映射RADOS块设备77
6.1.3 调整Ceph RBD的大小79
6.1.4 Ceph RBD快照80
6.1.5 复制Ceph RBD82
6.2 Ceph文件系统85
6.2.1 使用内核驱动程序挂载CephFS85
6.2.2 通过FUSE方式挂载CephFS86
6.3 使用Ceph RADOS网关的对象存储87
6.3.1 创建虚拟机88
6.3.2 安装RADOS网关89
6.3.3 配置RADOS网关92
6.3.4 创建radosgw用户96
6.3.5 访问Ceph对象存储97
6.4 S3 API兼容的Ceph对象存储97
总结102
第7章 Ceph操作及管理103
7.1 Ceph服务管理103
7.1.1 采用sysvinit运行Ceph103
7.1.2 根据类型启动守护进程104
7.1.3 根据类型停止守护进程105
7.1.4 启动及停止所有守护进程105
7.1.5 启动及停止指定守护进程106
7.2 把Ceph作为服务运行106
7.2.1 启动、停止所有守护进程107
7.2.2 启动、停止指定守护进程107
7.3 横向扩展Ceph集群107
7.4 向Ceph集群中添加OSD节点108
7.5 Ceph集群缩容110
7.6 从Ceph集群中移除并关闭一个OSD111
7.7 从Ceph集群中移除OSD112
7.8 替换出故障的磁盘设备113
7.9 管理CRUSH map115
7.10 确定CRUSH的位置116
7.11 CRUSH map内部细节117
7.12 将不同的池置于不同的OSD中119
总结122
第8章 监控Ceph集群123
8.1 监控Ceph集群123
8.1.1 检查集群健康状况124
8.1.2 监控集群事件124
8.1.3 集群利用率统计125
8.1.4 检查集群的状态125
8.1.5 基于密钥的集群验证126
8.2 监控Ceph MON127
8.2.1 MON状态127
8.2.2 MON法定人数状态127
8.3 监控Ceph OSD128
8.3.1 OSD树视图128
8.3.2 OSD统计129
8.3.3 检查CRUSH map129
8.3.4 监控PG130
8.4 监控MDS132
8.5 使用开源管理控制台监控Ceph133
8.5.1 Kraken133
8.5.2 ceph-dash工具136
8.5.3 Calamari138
总结138
第9章 Ceph与OpenStack的集成139
9.1 OpenStack简介139
9.2 Ceph—OpenStack的最佳搭档140
9.3 创建OpenStack测试环境141
9.3.1 启动一个OpenStack主机141
9.3.2 安装OpenStack143
9.3.3 Ceph和OpenStack145
9.3.4 在OpenStack节点安装Ceph145
9.3.5 为OpenStack配置Ceph146
总结152
第10章 Ceph性能调优和基准测试153
10.1 Ceph性能概述153
10.2 Ceph性能关键点—硬件层面154
10.2.1 CPU154
10.2.2 内存155
10.2.3 网络155
10.2.4 磁盘156
10.3 Ceph性能调优—软件层面156
10.3.1 集群配置文件157
10.3.2 配置文件段157
10.4 Ceph集群性能优化158
10.4.1 全局调优参数158
10.4.2 OSD调优参数158
10.4.3 客户端调优参数161
10.4.4 通用调优参数161
10.5 Ceph纠删码162
10.5.1 低成本冷存储164
10.5.2 实现纠删码164
10.6 Ceph缓存分层167
10.6.1 writeback模式167
10.6.2 read-only模式167
10.6.3 部署缓存分层168
10.7 使用RADOS bench对Ceph进行基
前言/序言
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首席架构师
Ceph分布式存储学习指南 下载 mobi epub pdf txt 电子书 格式