具体描述
本书是目前有关OpenStack使用和开发方面较全面的作品,结合了作者在各自领域的实战经验和最佳实践,全方位整理和总结了各种与OpenStack相关的知识和文档,通过通俗易懂的语言,并配以大量关键代码组件,帮助读者快速高效地了解和掌握基于OpenStack的云计算环境的搭建与运营。
作者简介
黄凯,毕业于湖南大学应用数学专业,近十年来一直从事企业级容器和基础架构的设计研究,曾就职于普元软件、EMC中国研发中心等公司,亲自参与大量企业级数据应用与存储创新项目的设计开发,对分布式环境下的高性能计算有深刻认识,拥有多项关于虚拟化与弹性计算的国内外专利。目前任IBM x86云计算解决方案专家,主要从事x86数据中心的各类云计算参考方案的设计、规划、咨询以及相关红皮书的撰写,拥有丰富的云计算数据中心经验。
毛伟杰,毕业于上海理工大学信息与计算科学专业,毕业后从事虚拟化方面的工作,主要负责大型企业数据中心基于vmware的私有云规划,部署,运帷。目前就职于嘉值云计算公司,从事OpenStack相关的工作,负责研究,开发,部署基于OpenStack的云计算技术。在系统运帷和网络技术方面有丰富的经验。
顾骏杰,毕业于上海电力学院计算机科学与技术专业,毕业后一直从事云计算方案的研发、设计、规划、咨询工作,主要侧重企业私有云、云数据中心的建设、规划。目前就职于普元软件,担任云计算架构师,参与银联私有云的建设,利用开源技术结合国内企业特殊需求,深度定制化开发符合国企特色的私有云。参与云计算相关专利、论文撰写。在利用OpenStack等开源技术为国有企业私有云建设方面,拥有丰富的实战经验。
目录信息
前 言
第一部分 基 础 篇
第1章 OpenStack简介 2
1.1 OpenStack概述 2
1.2 OpenStack的结构 3
1.3 OpenStack的功能与作用 4
1.4 OpenStack与CloudStack的比较 6
1.5 OpenStack应用现状和发展趋势 8
1.6 体验OpenStack 10
1.6.1 初探OpenStack 10
1.6.2 创建OpenStack虚拟机实例 12
1.6.3 创建虚拟机流程概述 14
1.6.4 创建OpenStack磁盘实例 16
1.6.5 创建块存储流程概述 20
1.7 OpenStack体系结构 22
1.7.1 OpenStack设计原则 22
1.7.2 OpenStack架构 23
1.8 OpenStack的开发资源 24
1.8.1 OpenStack社区 24
1.8.2 OpenStack基金会 25
1.8.3 OpenStack项目资料 25
1.9 OpenStack非核心项目介绍 29
1.9.1 Ironic项目介绍 29
1.9.2 Tempest项目介绍 33
第2章 OpenStack的安装 35
2.1 在Ubuntu上使用二进制包安装 35
2.1.1 控制节点的安装 35
2.1.2 网络节点的安装 55
2.1.3 计算节点的安装 60
2.1.4 块存储节点的安装 64
2.2 在Ubuntu上使用源代码编译安装 66
2.2.1 控制节点的安装 67
2.2.2 计算节点的安装 79
2.2.3 网络节点的安装 81
2.2.4 块存储节点的安装 82
第二部分 进 阶 篇
第3章 OpenStack组织结构一览 84
3.1 组件关系 84
3.1.1 Nova组件 85
3.1.2 Swift组件 87
3.1.3 Keystone组件 87
3.1.4 Glance组件 88
3.1.5 Neutron组件 89
3.1.6 Cinder组件 89
3.2 OpenStack目录组织结构 90
3.2.1 Nova目录结构 90
3.2.2 Swift目录结构 91
3.2.3 Keystone目录结构 92
3.2.4 Glance目录结构 92
3.2.5 Neutron目录结构 93
3.2.6 Cinder目录结构 93
3.3 OpenStack配置文件 94
3.3.1 Nova配置文件及日志 94
3.3.2 Swift配置文件及日志 95
3.3.3 Keystone配置文件及日志 95
3.3.4 Glance配置文件及日志 96
3.3.5 Neutron配置文件及日志 96
3.3.6 Cinder配置文件及日志 96
3.4 小结 98
第4章 OpenStack API的介绍和开发 99
4.1 简述Nova API体系 99
4.1.1 WSGI架构 99
4.1.2 API响应流程 102
4.1.3 扩展API的加载 103
4.1.4 Nova API列表 104
4.1.5 分页查询和查询优化 106
4.1.6 如何编写一个核心API 108
4.1.7 如何编写一个扩展API 108
4.1.8 通过Filter为API增加功能 109
4.2 理解Eventlet 110
4.3 自定义DashBoard面板 112
4.3.1 理解Django框架 112
4.3.2 Django界面国际化 112
4.3.3 玩转Horizon 115
第5章 Keystone认证组件 119
5.1 认证组件Keystone介绍 119
5.1.1 基本概念 119
5.1.2 用户管理 120
5.1.3 服务管理 123
5.2 配置文件及参数选项 123
5.2.1 keystone.conf配置文件示例 124
5.2.2 keystone-paste.ini配置文件示例 134
5.2.3 logging.conf配置文件示例 136
5.2.4 连接OpenStack服务到Keystone 137
5.3 原理分析 139
5.3.1 Keystone认证原理 139
5.3.2 图解Keystone 143
5.4 关键源代码阅读 146
5.4.1 源代码分析之服务启动 146
5.4.2 源代码分析之CLI调用 151
5.5 案例:配置Keystone使用Active Directory进行认证 152
第6章 Glance镜像组件 154
6.1 镜像组件介绍 154
6.1.1 Glance表结构 155
6.1.2 Glance中镜像的概念 157
6.2 Glance的配置文件 159
6.2.1 glance-api.conf文件概述 159
6.2.2 配置镜像缓存 163
6.2.3 glance-registry.conf文件概述 165
6.3 设置Glance的后端存储 166
6.4 制作镜像 167
6.4.1 使用virt-install创建CentOS镜像 167
6.4.2 在Ubuntu上使用QEMU相关命令制作Windows镜像 170
第7章 Nova计算组件 174
7.1 Nova组件介绍 174
7.2 虚拟化组件 175
7.3 配置文件及参数 177
7.3.1 数据库配置 178
7.3.2 Hypervisor配置 179
7.3.3 RPC配置 181
7.3.4 配额设置 182
7.3.5 日志配置 183
7.3.6 调度配置 184
7.3.7 VNC配置 184
7.4 关键源代码阅读 185
7.4.1 Nova服务启动 185
7.4.2 虚拟机状态转换 188
7.4.3 Nova Context 195
7.4.4 Keystone认证处理 195
7.4.5 REST API调用 196
7.4.6 组件间RPC调用 198
7.4.7 Hypervisor驱动 198
7.5 虚拟机镜像格式 202
第8章 Neutron网络组件 203
8.1 Neutron概述 203
8.2 使用Open vSwitch的plugin 208
第9章 Cinder块存储组件 216
9.1 Cinder交互流程 216
9.1.1 Nova现有块设备操作API统计 216
9.1.2 Nova-Cinder交互流程分析 217
9.1.3 相关代码源文件 226
9.1.4 使用Cinder实现云硬盘需要注意的问题 227
9.2 配置从Volume启动虚拟机 227
9.3 使用Ceph作为Cinder的后端 230
第10章 OpenStack日常运维 233
10.1 维护与诊断 233
10.1.1 控制节点和Swift的维护与纠错 233
10.1.2 计算节点的维护与纠错 234
10.1.3 网络诊断 239
10.2 标准化修复与例行检查流程 246
10.2.1 标准化修复 246
10.2.2 例行检查 247
10.3 日志与监控 247
10.3.1 定位错误 247
10.3.2 错误日志 248
10.3.3 集中管理日志 252
10.3.4 监控 253
10.4 备份与恢复 257
10.4.1 需要备份的数据 257
10.4.2 数据库备份 257
10.4.3 文件系统备份 258
10.4.4 数据恢复 259
第11章 使用Fuel快速安装OpenStack 260
11.1 Fuel规划 261
11.2 Fuel安装及使用 263
11.3 小结 273
· · · · · · (收起)
读后感
用户评价
《OpenStack实战指南》在Horizon(仪表盘)的定制化方面给我带来了很大的启发。虽然OpenStack本身提供了强大的CLI和API,但一个直观易用的Web界面对于用户来说依然非常重要。我一直希望能够根据我们公司的业务需求,对Horizon进行一些定制,例如添加自定义的服务面板、修改UI布局或者集成第三方应用。这本书的Horizon章节详细讲解了Horizon的架构,包括其前端(AngularJS)和后端(Django)的工作方式。更重要的是,它提供了如何创建和注册自定义的Horizon面板,以及如何修改现有面板的详细步骤。书中还探讨了如何通过修改配置文件和模板来调整Horizon的视觉风格和功能。这让我对如何打造一个更符合我们用户习惯的云平台管理界面有了清晰的思路,也让我意识到Horizon的灵活性远超我的想象。
读完《OpenStack实战指南》关于Cinder(块存储服务)的部分,我感觉之前在实际操作中遇到的很多瓶颈都找到了答案。我之前一直困扰于如何有效地管理存储卷,如何在不同的后端存储(如Ceph、NFS)之间进行迁移,以及如何配置快照和卷备份以保证数据的安全性。这本书在这方面做得非常出色,它不仅详细介绍了Cinder的架构和工作流程,还针对不同的存储后端提供了详细的配置和优化指南。让我印象深刻的是,书中对于Ceph与Cinder的集成做了非常深入的讲解,包括Ceph集群的部署、RADOS块设备的创建以及Cinder与Ceph之间的映射关系。此外,作者还提供了关于iSCSI、NFS等常见存储协议的配置方法,以及如何利用Cinder实现存储卷的扩容、迁移和灾备。这些实用的技巧和深入的分析,让我能够更自信地在生产环境中管理和优化我的OpenStack存储资源。
对于Kilo、Liberty、Mitaka、Newton……不同OpenStack版本的迭代更新,我总是感到有些跟不上节奏。《OpenStack实战指南》在这方面给予了我很大的帮助。它不仅涵盖了最新版本的OpenStack,还对不同版本之间的主要变化和升级路径进行了详细的梳理。我尤其欣赏书中关于版本升级的章节,它提供了从旧版本平滑升级到新版本的详细步骤和注意事项,包括数据迁移、配置兼容性以及潜在的风险规避。例如,在从Liberty升级到Newton的过程中,我曾经因为Neutron插件的变化而遇到了不少麻烦,而这本书中关于Neutron API变化和推荐插件的说明,让我能够提前预判并解决这些问题。这种对版本演进的关注,使得这本书具有很高的时效性和实用性,能够帮助我保持对OpenStack技术前沿的了解。
总的来说,《OpenStack实战指南》是一本非常优秀的书籍。它结构清晰,内容详实,理论与实践相结合,语言通俗易懂。无论是对于刚接触OpenStack的新手,还是有一定经验的运维工程师,都能从中获得宝贵的知识和启示。这本书不仅帮助我深入理解了OpenStack的各个核心组件,还为我提供了大量解决实际问题的方案和思路。它让我对OpenStack这个复杂的云平台有了更全面、更深入的认识,并且更加自信地将OpenStack应用于实际的生产环境中。我强烈推荐这本书给所有对OpenStack感兴趣或正在使用OpenStack的读者,相信它一定会成为你工作中的得力助手。
这本书的附录部分也给了我不少惊喜。《OpenStack实战指南》的附录里,除了常见的术语表和缩略语解释,还包含了一些非常实用的故障排除技巧和性能调优指南。我之前遇到过一些难以定位的OpenStack服务启动失败的问题,而书中提供的故障排除流程和日志分析方法,帮助我快速找到了问题的根源。此外,书中还提供了一些关于如何优化计算节点、存储性能和网络吞吐量的实用建议,这些都能够直接应用到我的实际工作中,提升OpenStack平台的整体性能和稳定性。这种“锦上添花”的附录内容,更加凸显了这本书的全面性和实用性,它不仅仅是一本入门指南,更是一本值得长期参考的工具书。
这本书的标题《OpenStack实战指南》立刻吸引了我,作为一名在云原生领域摸爬滚打了多年的运维工程师,我一直在寻找一本能够深入浅出、兼具理论与实践的OpenStack书籍。市面上关于OpenStack的资料不少,但很多要么过于理论化,停留在概念层面,要么就过于碎片化,缺乏系统性。我尤其看重“实战”二字,这意味着我希望它能提供清晰的部署步骤、详细的配置示例,以及解决实际工作中可能遇到的常见问题的思路和方法。当我翻开这本书的第一页,就被其清晰的章节划分和循序渐进的讲解方式所吸引。作者并没有一开始就抛出复杂的架构图或者深奥的配置命令,而是从OpenStack的起源、发展以及核心组件的逻辑关系入手,为读者构建了一个完整的知识框架。这一点对于初学者来说尤为重要,它能够帮助他们快速理解OpenStack的全局观,避免在细节中迷失方向。
拿到《OpenStack实战指南》后,我最先关注的是它的章节安排。我发现这本书的设计非常合理,从基础的安装部署,到核心服务的详解,再到高级特性的探索,都做到了有条不紊。特别是关于Neutron(网络服务)的章节,我一直觉得这是OpenStack中最复杂也最容易出错的部分。这本书没有简单地介绍各种插件,而是深入剖析了Neutron的工作原理,包括ML2插件、OVS(Open vSwitch)的配置以及VXLAN等Overlay网络的实现。作者通过大量的图示和命令示例,将抽象的网络概念具象化,让我对网络虚拟化的理解提升了一个台阶。例如,它详细讲解了如何配置DVR(Distributed Virtual Router),这对于构建高性能、高可用的云网络至关重要。同时,书中还提供了针对不同场景的网络解决方案,例如如何为多租户环境设计隔离性更好的网络,如何优化网络性能以满足高吞吐量的应用需求。
《OpenStack实战指南》在 Keystone(身份认证服务)的集成和管理方面,提供了非常详尽的指导。我之前在构建多租户环境时,对于用户、项目、角色以及域的管理感到有些头疼,特别是如何与我们现有的LDAP/Active Directory进行集成,实现单点登录。这本书不仅深入讲解了Keystone的核心概念,如认证、授权、服务目录等,还提供了与外部身份认证系统集成的详细步骤,包括LDAP的配置、SAML的支持以及OpenID Connect的集成。它还详细介绍了如何通过API和CLI管理用户、项目、角色和领域,并提供了实际的命令示例。让我印象深刻的是,书中还讨论了如何为不同的服务配置API访问权限,以及如何实现细粒度的访问控制,这对于保障云平台的安全至关重要。
《OpenStack实战指南》在Ocean(容器服务)和Magnum(容器编排服务)的结合使用上,为我打开了新的视野。随着容器技术的兴起,我一直在思考如何将OpenStack与Kubernetes等容器编排平台 seamlessly 集成。这本书的这一部分内容恰好满足了我的需求。它详细介绍了Magnum如何为Kubernetes、Docker Swarm等容器编排引擎提供容器集群的自动化部署和管理,并提供了使用Magnum创建Kubernetes集群的详细步骤。书中还探讨了如何将OpenStack的计算、存储和网络资源有效地分配给容器集群,以及如何通过Cinder-CSi驱动实现容器存储的持久化。这些内容让我能够更深入地理解容器化应用在OpenStack上的部署和管理,为我们未来的容器化战略奠定了坚实的基础。
在企业级OpenStack的部署和运维过程中,监控和日志分析是不可或缺的环节。《OpenStack实战指南》在这一块的内容让我受益匪浅。书中详细介绍了如何集成和使用Ceilometer(遥测服务)和Gnocchi(时间序列数据库)来实现对OpenStack各个组件的性能监控和资源计量。它还讲解了如何收集和分析来自各个组件的日志,以便快速定位和解决问题。我特别关注了书中关于ELK(Elasticsearch, Logstash, Kibana)和Prometheus+Grafana的集成方案,这些都是当前行业内主流的监控和日志分析工具。书中提供了详细的配置步骤和最佳实践,让我能够构建一个强大而灵活的监控体系,及时发现并处理潜在的故障,保证云平台的稳定运行。
这本书主要还是focus在使用上,最近在做相关的事情,先从这本开始熟悉。
浪费钱
浪费钱
在虚拟化潮流刚兴起时读过,已经没有太深印象了,也不会再读了,已和主流脱轨。
在虚拟化潮流刚兴起时读过,已经没有太深印象了,也不会再读了,已和主流脱轨。