首页>参考读物>计算机科学与技术>综合

精通OpenStack(原书第2版)
作者 : [德]奥马尔·海德希尔(Omar Khedher),[印]坚登·杜塔·乔杜里(Chandan Dutta Chowdhury) 著
译者 : 山金孝 刘世民 肖力 译
出版日期 : 2019-01-23
ISBN : 978-7-111-61682-5
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 321
开本 : 16
原书名 : Mastering OpenStack,Second Edition
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书在第一版的基础上增加了OpenStack的最新功能。书中详细介绍OpenStack基础架构;展示如何创建自己的OpenStack私有云;讲述OpenStack支持的各种管理程序和容器技术;介绍OpenStack中的各种存储类型和高级网络。通过本书,读者将开发故障排除技能,并全面了解OpenStack中的高可用性和故障转移等服务。并且,通过实例,使读者获得运行集中式日志记录服务器和监视OpenStack服务的经验。

图书特色

实战经验丰富的云技术专家撰写,全面、系统阐述OpenStack私有云架构设计、核心功能、自动化部署与运维的实用技术、方法及实践
从OpenStack的自动化编排部署与实施、日志监控、故障排查到性能调优与基准测试,全方位覆盖时下热门Openstack话题

图书前言

今天,随着新功能和子项目的增加,OpenStack已成为一个不断扩展的大型开源项目。随着数以百计大型企业采用并不断为OpenStack生态系统做出贡献,OpenStack必将成为下一代私有云解决方案。随着新项目的不断集成,OpenStack提供的服务范围也在不断增加。新项目的不断集成,要归功于OpenStack模块化架构和其核心组件出色的稳定性。事实证明,OpenStack是一个成熟的私有云平台,可提供基础架构即服务(IaaS)功能。随着新项目的不断出现,OpenStack生态系统正朝着平台即服务(PaaS)的方向发展。
为何要考虑采用OpenStack呢?目前,已有诸多用例和实践表明,基于OpenStack的基础架构可以满足企业各种业务需求和开发需要。此外,还要考虑的是,如何在私有云构建过程中统一、标准化企业基础架构设施,OpenStack将是最合适的选择。模块化云平台最基本的设计目标就是为底层基础架构的管理提供更大的灵活性。将传统数据中心转向私有云架构,可充分利用自动化运维的强大功能,并提高服务交付的响应能力。在OpenStack私有云的配置部署中,你会发现启用新功能组件是一件非常容易的事情。作为由插拔式组件构成的云计算软件,OpenStack的模块化架构展现了其强大的云管理平台功能。此外,OpenStack的另一个优势是其每个服务都提供了REST API。OpenStack的这些特征体现了其对自动化思维的完全拥抱,并且OpenStack极易与系统中的已有功能进行集成。此外,OpenStack为企业解决传统IT架构面临的问题和供应商锁定窘境提供了可选的最佳途径。在最新版本中,OpenStack提供了更多的模块和插件来支持第三方软件服务,包括计算、存储和网络组件。
在第2版中,我们将重新组织本书的内容结构和学习方式,并涵盖OpenStack最新版本中的新特性。为了便于理解,我们将重新回顾OpenStack的组件和设计模式,并继续探索、研究和学习OpenStack。另外,我们的新版本也在不断更新OpenStack核心服务架构的新功能,这些新功能涵盖了计算隔离、容器化、新的网络服务模型,包括软件定义网络(SDN)以及新孵化出来的OpenStack存储项目。在本书中,我们始终以开篇部署的OpenStack私有云为主线,并以最佳实践形式分享部署运维经验。与第1版不同,在新版本中,我们通过以容器方式运行的系统管理工具自动化部署OpenStack,从而构建一个模拟真实生产环境的实验环境。这一切都将让你更深入地了解OpenStack生态系统中的新特性,以及如何采用OpenStack来满足业务需求。
本书的最后部分还提供了对OpenStack生产就绪环境的补充,包括运维管理、故障排除、监控和基准测试工具集。
主要内容
第1章回顾了OpenStack核心服务架构,并重点介绍了每个架构设计的更新功能。本章以OpenStack初始逻辑设计开始,以物理模型设计结束,并在物理模型设计中介绍了存储、计算和网络服务的评估方法。本章内容将帮助你进行合理的硬件选型,以便部署、构建基于生产环境的OpenStack私有云。
第2章介绍了DevOps的发展趋势以及如何利用DevOps工具来部署和管理OpenStack私有云。本章主要介绍了DevOps工具Ansible,并使用Ansible作为系统管理工具对OpenStack进行自动化部署和管理。为了增强OpenStack基础架构管理和运维,本章还简要介绍了基础架构即代码(IaC)的概念。为了更好地隔离OpenStack服务,本章采用基于容器的方式部署OpenStack,最终模拟出一个真实的OpenStack生产环境。
第3章主要对运行在云控制器节点中的各种服务更新功能进行介绍,并对OpenStack服务的高可用和容错设计做初步讨论,这些讨论主要涉及OpenStack的核心组件、数据库以及消息队列系统。本章还针对不同的OpenStack核心组件和基础服务进行了Ansible角色和playbook分解。
第4章涵盖了OpenStack中的计算服务,并介绍了Nova最新支持的各种Hypervisor。Docker作为快速发展的容器技术,OpenStack对其提供了很多支持,因此本章对OpenStack的Docker支持项目Magnum进行了详细介绍。此外,本章还介绍了针对大规模OpenStack集群而引入的各种新概念,包括计算和主机隔离、可用区、区域以及Nova中的Cell。同时,本章花了较大篇幅对与实例生命周期相关的OpenStack调度器进行了介绍。最后,本章详细介绍了计算服务的Ansible playbook,以及如何通过playbook在现有OpenStack环境中新增计算节点。OpenStack集群中的几种备份方案也在本章中进行了讨论。
第5章扩大了对OpenStack支持的不同存储类型和备选方案的介绍,同时介绍了OpenStack最新版本中有关对象和块存储的更新功能。Manilla是OpenStack最新支持的一个文件系统共享存储项目,本章对其在OpenStack生态系统中的架构层次进行了详细介绍。最后,本章还介绍了与块和对象存储(也包括Ceph)相关的角色和Ansible playbook。
第6章重点介绍OpenStack当前网络服务的实现原理,包括网络新功能、更新后的Neutron插件,以及OpenStack最新版本中不同的隧道网络实现方式。本章描述了基于Neutron的不同网络实现方案,详细介绍了各种网络组件和术语,从而简化了OpenStack中虚拟网络的管理。此外,本章还重点介绍了如何简化虚拟网络和路由器的复杂配置。最后,在本章的结尾部分介绍了防火墙即服务(FWaaS)和VPN即服务(VPNaaS)。
第7章介绍了OpenStack中网络相关的高级话题。本章以专项形式重点介绍软件定义网络(SDN)和网络功能虚拟化(NFV)的概念,并讨论它们在OpenStack中的集成应用。在本章的结尾部分还探讨了OpenStack中负载均衡即服务的新实现方法。
第8章重点介绍OpenStack云平台的操作管理和使用方法。本章是对运维管理人员如何管理用户、项目以及定义底层资源使用方式的指导。另外,本章还介绍了如何使用OpenStack编排服务Heat来帮助用户自动化编排所需资源。同时,还介绍了基础架构即代码的概念,以及其对现代基础架构需求的实现。Heat已作为OpenStack定义模板资源的内置工具,本章除对它进行介绍外,为了扩展各种工具的使用,还对支持多云环境编排的新型工具Terraform进行了介绍。
第9章重点介绍了OpenStack中每个组件的各种高可用设计模式,包括如何设置OpenStack高可用集群中Active和Passive服务。本章不仅利用外部强大工具实现了消息队列、数据库和其他服务的高可用性,还介绍了包括网络服务在内的OpenStack原生服务的高可用设计。
第10章探讨了OpenStack中计量数据收集服务的新特性。本章详细介绍了OpenStack最新版本中计量数据收集服务的构成,包括警报、事件和指标。此外,本章还介绍了如何使用Nagios等外部流行工具来对云平台进行监控。在本章的后半部分,我们介绍了如何使用不同的故障排除工具和方法来诊断OpenStack集群中的常见问题。
第11章重点介绍了OpenStack中的日志文件,以及在解决OpenStack故障时如何使用日志进行深入排查。通过本章的内容,读者将学会如何使用当前流行的管道日志工具,如ELK(ElasticSearch、LogStash和Kibana)堆栈,高效地解析OpenStack服务中的日志文件。另外,本章还介绍了ELK堆栈架构中最新的稳定版本。同时,本章还对如何使用有效的ELK查询来定位、分析问题的根本原因做出了详细说明。
第12章重点介绍了OpenStack学习使用过程中相对高级的主题,即OpenStack基准测试和性能调优。通过本章介绍的专为OpenStack测试而开发的性能测试工具Rally,你将能够更深入地理解OpenStack云平台的内部运行机理,而这对于云平台容量及其架构的调优非常关键。此外,本章还介绍了对OpenStack数据平面进行测试评估的工具Shaker,并介绍了如何使用Shaker工具对网络带宽进行基准测试。
需要的背景知识
本书假定读者有基本的Linux操作系统和云计算概念。新版本基于OpenStack中的最近更新功能丰富了大量内容,另外,熟悉OpenStack生态系统也非常重要。同时,读者需要具备对网络术语、系统管理工具和架构设计模式等基本知识的掌握和理解。与第1版不同,在第2版中,我们使用Ansible作为OpenStack基础架构管理的主要工具。本书使用的是OpenStack的Ansible官方项目,项目地址为:https://github.com/openstack/openstack-ansible。鉴于Ansible的使用,如果能够很好地理解YAML语法,对于阅读本书将有很大帮助。
你可以使用任何工具来搭建测试环境,例如Oracle的VirtualBox、Vagrant或VMware工作站版本。读者可以使用github中OpenStack-Ansible项目的All-In-One(OSA,一体化)方式来构建实验环境。本书建议在物理硬件上安装OpenStack以搭建生产就绪的环境。因此,在你的环境中,需要物理网络基础架构。另外,如果正确地配置了虚拟网络环境,也可以在虚拟环境中运行OpenStack以进行测试。
本书用到的软件列表如下。
操作系统:CentOS 7或者Ubuntu 14.04。
OpenStack:Mitaka或者更新的发行版。
VirtualBox:4.5版或者更新的版本。
Vagrant:1.7版或者更新的版本。
Ansible服务器:2.2版或者更新的版本。
如果准备运行OpenStack开发环境,下面是最低的硬件需求:
一台支持CPU硬件虚拟化的物理机。
8核CPU。
12GB内存。
60GB空余磁盘空间。
两张网卡。
下载OpenStack和其他工具所需的软件包需要访问Internet。另外,有关安装最新版OpenStack或更新旧版本软件包的详细说明,请参阅http://docs.openstack.org中给出的指南。
面向的读者
本书主要面向希望部署基于OpenStack私有云的云计算工程师、架构师和DevOps工程师。本书也适用于那些热衷于OpenStack新特性、新功能,以及希望扩展自身知识,并将OpenStack生态系统中的新功能和新项目追加至现有生产环境中的云计算从业人士。本书并未提供有关安装、部署和运行OpenStack服务的详细步骤,因此,读者可专注于OpenStack各种高级特性和方法的理解。在这一版本中,我们提供了部署和运行OpenStack环境的更多选择,因此读者可以按照本书每章中的示例进行实际操作。
下载示例代码
本书的示例代码可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。

上架指导

计算机/云计算

封底文字

本书首先介绍OpenStack的架构,然后介绍当在OpenStack环境中部署和运营时如何使用DevOps自动化模式。接着手把手地指导用户搭建自己的OpenStack私有云环境。你将了解到OpenStack所支持的多种虚拟机监控程序和容器技术,并掌握如何依据可靠性和可用性的理念对计算节点进行划分。同时,书中还将介绍OpenStack所支持的各种存储类型以及诸如SDN和NFV的高级网络功能。最后,你还将学到如何运行日志服务器和监控OpenStack服务。
本书还将介绍如何基于OpenStack服务日志进行性能调优。通过阅读这些内容,你将会掌握OpenStack的性能测试和调优,掌握如何通过新的开源技术部署、管理OpenStack云。

通过阅读本书,你将能够:
了解OpenStack组件和核心服务的架构设计,以及它们是如何相互配合的。
设计针对不同场景的高可用方案,避免单点故障。
通过编排工具部署生产级多节点环境。
通过高级配置提升OpenStack的性能。
了解OpenStack所能支持的多种虚拟机监控程序和容器技术。
熟悉实际生产环境中的环境部署方式以及实际用例。
通过DevOps模式自动化地部署和管理OpenStack环境。
监控云基础设施,以便在必要的时候对环境进行维护并提升性能。

作者简介

[德]奥马尔·海德希尔(Omar Khedher),[印]坚登·杜塔·乔杜里(Chandan Dutta Chowdhury) 著:奥马尔·海德希尔(Omar Khedher)是一位拥有多年云计算经验的网络和系统工程师,参与过众多基于OpenStack的私有云项目,同时也参与过很多与AWS相关的公有云项目。作为系统管理员,Omar在虚拟化、存储以及网络方面拥有丰富的经验,目前就职于Fyber,其所在的团队主要参与采用最新的开源工具以及DevOps理论搭建云和将传统业务迁移到云上等项目。
坚登。杜塔。乔杜里(Chandan Dutta Chowhury)是瞻博网络公司的技术带头人,主要负责OpenStack Neutron插件。他拥有超过11年部署基于Linux系统解决方案的经验。目前负责瞻博网络公司私有云解决方案的建立和维护。

译者序

OpenStack在国内的兴起与发展,是与国内大环境和技术成长周期相契合的,目前社区呈现出的“东热西冷”就是最好的证明。目前而言,OpenStack已成为开源云计算的事实标准,不论是否熟知与喜好,OpenStack似乎已成为国内企业自主可控的私有云建设的必然选择。当然,OpenStack社区的发展也未辜负诸多用户的期许,从2010年的第1个版本Austin到2018年8月的Rocky版本,OpenStack社区已走过了8个年头,Rocky已是社区发行的第18个版本。从最初的计算、存储、网络等基本功能,到拥抱Docker、Kubernetes和NFV等新生技术,再到Serverless、GPU和边缘计算,在技术大潮面前,OpenStack从未止步!除了核心功能的不断演进,围绕OpenStack的部署运维和交付升级也在不断进化。从最初基于类似RPM包或源代码的手工安装,到基于磁盘镜像的自动化安装部署,再到基于Docker镜像或Helm的持续交付,OpenStack正在变得越来越简单,越来越智能。但是,我们需要记住一个事实:越是简单智能的东西,涉及的技术栈越是复杂,故障排查对技术人员的要求也越高。
从全球范围来看,欧美企业的OpenStack用户未必有国内多,但是从对OpenStack脾性的掌握和使用经验来看,国内很多企业仍处于摸石头过河阶段。当前,对OpenStack的架构原理解释、设计参考架构、部署运维手册等资料,主要还是源自社区官方网站或英文书籍的翻译本。虽然国内部分用户和厂商工程师也贡献了一些与OpenStack相关的中文书籍,但是相对于庞大的国内OpenStack用户群,我们认为,市面上仅存的中文书籍不足以满足广大用户需求,尤其早期的OpenStack中文书籍多以讲解原理和设计为主,对OpenStack私有云真正落地后终端用户最为关心的部署实施和交付运维,仍然存在较大的空缺。
本书原版在国外OpenStack用户群中具有较好的口碑,覆盖了OpenStack私有云架构设计、核心功能讲解、自动化部署与运维等终端用户最为关心的内容,尤其是针对OpenStack的DevOps、CI/CD、OVN与NFV等内容的引入与介绍,以及云环境下的自动化编排工具Terraform和Ansible、监控工具ELK和Nagios、测试工具Rally和Shaker等内容的引入,从OpenStack的自动化编排部署与实施、日志监控、故障排查、性能调优与基准测试,全方位覆盖了时下最热门,也是国内用户最关心的OpenStack话题。基于本书英文原版书籍所呈现出来的丰富内容,本着为国内OpenStack爱好者和用户贡献微薄之力的初心,我们以敬畏之心力争将这本书原汁原味地呈现给大家,希望能够为国内OpenStack用户提供一本覆盖面相对齐全、完善的参考书籍。同时,作为OpenStack社区的参与者,也希望借此为社区的推广和发展贡献应有之力。在翻译过程中,考虑到中西文化差异的存在,可能会给国内云计算爱好者对本书的理解带来不便,为此,我们本着技术分享与传递的精神,从全文组织上对译文进行了适当的结构重组,以确保读者朋友们更好地理解原著内容,同时针对原著中部分深奥晦涩的语句,我们以直白明了的中文进行了意译和解释,以求用简洁通俗的文字呈现作者思想之精华。
作为本书的译者,我们在翻译过程中一直本着客观中立的态度。原书中的一些方法和工具有时可能会出现水土不服的情况,或者最新OpenStack版本已经有所更新。但是,通篇来看,原书中的很多方法、观点和工具还是值得推荐和参考的,作为译者,我们也建议读者朋友保持学习的态度,带着思考来阅读本书,以自身实际情况为出发点,到书中寻求答案,再结合社区资料深入分析,或许这也是阅读任何一本参考书籍的最佳方法。

山金孝
2018年10月

2010年10月,OpenStack发布了第1个版本;2018年8月,发布了它的第18个版本Rocky。作为一个用户,我谈谈用户视角的感受。
作为某大型集团基础云平台团队,我们基于OpenStack在集团内搭建了一个面向集团内部用户的企业基础云平台,以及一个小型公有云环境。私有平台的主要技术特征如下。
计算:支持KVM、ESXi和裸金属服务器等三个资源池。
网络:采用Neutron + VLAN + OVS实现了虚拟网络。
存储:采用Ceph和SAN存储实现了块存储,采用Ceph实现了对象存储。
区域:在两个城市三个机房部署了3个区域,每个区域内划分资源池,资源池内再按机架划分可用区。三个层级都用户可见,可按需选择。另外,我们还尝试搞过一个小型公有云区域。
组件:主要利用了Mitaka版本中的Glance、Nova、Neutron、Cinder、Keystone、Heat、Telemetry、OVSvAPP、Trove、Ironic等组件。
云管理平台:自主研发的云管理平台。
团队:最多的时候有8个人的OpenStack研发团队,3个人的运维团队。
我作为团队负责人,在做完这个项目后,有如下几点感受:
这个云平台运行得还好,我们在规划、技术和产品选型、研发、运维等方面都做得不错,团队非常给力,研发周期较短,迭代快速。现在它支撑着集团大大小小几百套系统,而且很稳定,运维压力比较小。
也出现过若干稳定性问题:我们的小型公有云环境采用的是Neutron VRRP HA vRouter和Open vSwitch,曾经出现过Neutron VR偶尔会不明原因自动切换的情况;KVM虚拟机偶尔自动重启甚至宕机等;KVM对Windows的支持比较差,偶尔出现莫名其妙的问题,比如磁盘脱机、蓝屏、无法启动等。
以Ceilometer为基础的监控组件很不健全,为了上生产系统,我们进行了较大的改造。
除了常用的几个核心模块之外,其他模块的产品化程度都不太高。以Trove为例,我们花了不少时间,几乎重写了一半的代码,也仅实现了最基本的数据库实例的创建和管理功能。
OpenStack离公有云的需求还有差距,比如在网络和规模性上。
从实际情况来看,如果企业有一个OpenStack研发团队,或者找了一个靠谱的外部供应商,云环境规模不是特别大,业务不是非常复杂,还有几个给力的运维,OpenStack私有云可以运行得挺好。至少在国内,OpenStack已经成为自主可控的私有云云平台的主要代表之一,在各行各业发光发热。
无论如何,OpenStack将在IT发展史上留下浓墨重彩的一笔。我个人对OpenStack有着很深的感情。是它让我认识了什么是云,云是怎么构建、运行和维护的;是从研究它开始,我从传统软件领域进入了云领域,开始了写技术博客的漫漫历程,也通过它结识了很多朋友。在此,我谨代表我个人感谢OpenStack项目,感谢OpenStack每一行代码和每一个文档,感谢OpenStack社区,感谢所有给OpenStack做过贡献的公司和人们。
不久前,在我的个人微信公众号“世民谈云计算”内,我曾发表过一篇关于OpenStack的文章《OpenStack的八年之痒》,在文章发表后两天左右的时间里,阅读量居然超过15?000。很多朋友通过微信跟我交流他们的想法和感慨,以及正在或曾经为OpenStack奋战的时光。还有很多朋友发表了许多评论,里面有很多真知灼见。短短两天的时间里这么多人在阅读、转发、评论着这篇文章,而在过去8年多的时间里,有更多的人在贡献着、使用着、推广着、思考着、学习着、关心着、讨论着甚至争论着它。我想,这正是OpenStack的魅力,是开源的魅力,是云的魅力。祝福OpenStack有更好的发展!

刘世民
2018年10月

我从2009年开始涉足KVM虚拟化,所有开源的云管理方案都研究过,到目前为止,这些开源的云管理方案中,OpenStack项目发展得最好,经过8年18个版本的迭代,OpenStack的稳定性已经获得公认。
目前IaaS需求还非常强劲,尤其是传统行业云才开始准备普及,传统行业一般更倾向于自建私有云,这正是OpenStack的强项。OpenStack看起来热度有所降低,正好说明它已经进入真正落地的阶段,已经归于平常,但这并不意味着它不重要了。
我曾在工作中维护过大小十几个OpenStack私有云,深感OpenStack的项目从设计、建设到运维,对从业人员的技能和经验要求都非常高。本书作者多年参与OpenStack项目,书中内容围绕OpenStack项目设计、部署、计算、存储、网络、高可用、监控、日志追踪、性能测试和优化进行讨论,基本涵盖了OpenStack运维中经常涉及的内容。
经过8年的发展,OpenStack的生态已经形成,虽然OpenStack的部署、运维相对比较复杂,但对真正下决心使用私有云的组织来说,这是可以克服的问题。最主要的是许多组织和个人还在不断完善OpenStack,使OpenStack更好用。
正是因为OpenStack的复杂性,造成了使用OpenStack有一定门槛,OpenStack运维人才缺口一直存在,相信通过阅读本书,可以让学习OpenStack的难度降低一些,让更多的人熟悉OpenStack。

肖力
2018年10月

图书目录

译者序
前言
关于作者和审校者
第1章 OpenStack参考架构设计 1
1.1 OpenStack引领新一代数据中心 2
1.2 OpenStack逻辑架构介绍 2
1.2.1 认证管理服务Keystone 3
1.2.2 对象存储服务Swift 3
1.2.3 块存储服务Cinder 4
1.2.4 文件共享存储服务Manila 5
1.2.5 镜像注册服务Glance 5
1.2.6 计算服务Nova 6
1.2.7 网络服务Neutron 7
1.2.8 计量服务Telemetry 9
1.2.9 编排服务Heat 9
1.2.10 仪表盘服务Horizon 10
1.2.11 消息队列 10
1.2.12 数据库 10
1.3 资源准备与虚拟机创建 10
1.3.1 准备虚拟机资源 10
1.3.2 虚拟机创建流程 11
1.4 OpenStack逻辑概念设计 13
1.4.1 概念模型设计 13
1.4.2 逻辑模型设计 15
1.4.3 存储选型考虑 16
1.4.4 逻辑网络设计 17
1.5 OpenStack物理模型设计 19
1.5.1 估算硬件容量 19
1.5.2 CPU评估 20
1.5.3 内存评估 21
1.5.4 网络评估 21
1.5.5 存储评估 22
1.6 OpenStack设计最佳实践 23
1.7 总结 24
第2章 基于DevOps的OpenStack部署 25
2.1 DevOps与CI/CD 25
2.1.1 一切皆代码 26
2.1.2 DevOps与OpenStack 27
2.1.3 基础架构部署代码 28
2.1.4 OpenStack中的CI/CD 29
2.2 DevOps工具与OpenStack自动化部署 30
2.2.1 Ansible介绍 31
2.2.2 Ansible与OpenStack自动化 33
2.2.3 开发和生产环境架构 34
2.2.4 硬件与软件需求规划 35
2.2.5 网络需求规划 36
2.2.6 开发环境构建 37
2.2.7 基础架构代码环境准备 39
2.2.8 代码变更追踪 43
2.3 总结 43
第3章 OpenStack集群——云控制器和公共服务 44
3.1 集群核心概念 45
3.1.1 非对称集群 45
3.1.2 对称集群 45
3.1.3 集群分而治之 45
3.2 云控制器及其服务 46
3.2.1 Keystone服务 47
3.2.2 nova-conductor服务 50
3.2.3 nova-scheduler服务 50
3.2.4 API服务 51
3.2.5 镜像管理 51
3.2.6 网络服务 52
3.2.7 Horizon仪表板服务 52
3.2.8 计量服务 52
3.2.9 基础架构服务 53
3.3 云控制器集群部署准备 54
3.3.1 OpenStack Ansible安装部署 55
3.3.2 控制节点环境准备 57
3.4 使用OpenStack playbook部署集群 58
3.4.1 配置OpenStack Ansible 58
3.4.2 网络配置 59
3.4.3 配置主机组 59
3.4.4 用于集群部署的playbook 61
3.5 总结 63
第4章 OpenStack计算——Hypervisor选择与节点隔离 64
4.1 计算服务组件 65
4.2 Hypervisor决策 65
4.3 Docker容器与Hypervisor 66
4.4 OpenStack容器服务项目Magnum 67
4.5 计算云中的分区与隔离 69
4.5.1 可用区 69
4.5.2 主机聚合 69
4.5.3 Nova单元 70
4.5.4 区域 71
4.5.5 工作负载隔离 71
4.5.6 使用多种Hypervisor 72
4.6 资源超分 75
4.6.1 CPU分配比率 75
4.6.2 内存分配比率 76
4.7 实例临时存储规划 77
4.7.1 外部共享文件存储 77
4.7.2 内部非共享文件存储 77
4.8 理解实例启动过程 77
4.8.1 理解Nova调度流程 78
4.8.2 从镜像启动实例 78
4.8.3 获取实例元数据 78
4.8.4 添加计算节点 80
4.9 备份恢复规划 81
4.9.1 使用backup-manager进行备份 82
4.9.2 简要恢复步骤 83
4.9.3 数据保护即服务 84
4.9.4 OpenStack社区数据备份项目 84
4.10 总结 84
第5章 OpenStack块、对象存储与文件共享 85
5.1 OpenStack存储类型 86
5.1.1 临时存储 86
5.1.2 持久存储 86
5.2 Swift对象存储 87
5.2.1 Swift架构 87
5.2.2 Swift在物理设计上的规划 88
5.2.3 Swift环 89
5.2.4 Swift存储策略和纠删码 91
5.2.5 Swift硬件考虑 92
5.2.6 Swift节点资源配置考虑 93
5.2.7 Swift网络配置考虑 94
5.2.8 Swift服务部署 94
5.3 块存储服务Cinder 97
5.3.1 Cinder后端驱动和调度 99
5.3.2 Cinder服务部署 101
5.4 共享存储服务Manila 101
5.4.1 Manila共享存储项目介绍 101
5.4.2 Manila共享存储配置与使用 103
5.5 存储类型选择 104
5.6 Ceph分布式存储集群 105
5.6.1 Ceph在OpenStack中的应用 108
5.6.2 使用Ansible部署Ceph集群 108
5.6.3 将Glance镜像存储至Ceph 111
5.7 总结 112
第6章 OpenStack网络类型与安全 113
6.1 Neutron架构 114
6.1.1 Neutron插件 115
6.1.2 Neutron服务插件 115
6.1.3 Neutron代理 115
6.1.4 Neutron API扩展 115
6.2 虚拟网络实现 116
6.2.1 VLAN网络 116
6.2.2 隧道网络 116
6.2.3 虚拟交换机 118
6.2.4 ML2插件 118
6.2.5 网络类型 119
6.2.6 Neutron子网 119
6.2.7 创建虚拟网络和子网 119
6.3 Neutron网络端口连接 119
6.3.1 基于Linux Bridge的网络连接 119
6.3.2 基于OpenVSwitch的网络连接 121
6.4 Neutron虚拟网络与路由 123
6.4.1 Neutron虚拟配置路由服务 123
6.4.2 基于路由的网络连接实现 124
6.4.3 实例访问外网 125
6.4.4 外网访问实例 125
6.4.5 关联虚拟机浮动IP 126
6.5 Neutron安全组 126
6.5.1 安全组 127
6.5.2 创建安全组策略 127
6.6 Firewall as a Service 128
6.6.1 防火墙配置 128
6.6.2 创建防火墙策略和规则 129
6.7 VPN as a Service 130
6.7.1 VPN插件配置 131
6.7.2 创建VPN服务 132
6.8 总结 137
第7章 OpenStack SDN网络与NFV 138
7.1 基于SDN的网络 138
7.1.1 SDN介绍 138
7.1.2 OVS架构 139
7.2 OVN架构 140
7.2.1 OVN组件 141
7.2.2 OVN与OpenStack集成 141
7.2.3 基于OVN的虚拟网络实现 142
7.3 网络功能虚拟化 144
7.3.1 管理与编排规范 144
7.3.2 云应用拓扑编排规范模版 144
7.3.3 OpenStack Tacker项目介绍 145
7.4 基于Octavia的LBaaS实现 147
7.4.1 配置Octavia 148
7.4.2 创建负载均衡器 148
7.5 总结 150
第8章 OpenStack集群操作与管理 151
8.1 OpenStack租户操作 152
8.1.1 项目与用户管理 152
8.1.2 用户权限管理 153
8.1.3 资源配额管理 155
8.2 OpenStack编排服务 160
8.2.1 OpenStack Heat项目介绍 160
8.2.2 OpenStack模板栈及其介绍 161
8.2.3 OpenStack模板栈组织架构 162
8.2.4 栈模块化编排应用 162
8.2.5 资源编排利器Terraform 170
8.3 本章小结 178
第9章 OpenStack高可用与容错机制 179
9.1 集群高可用 179
9.1.1 不能混淆的HA概念 181
9.1.2 Open Stack中的HA级别 181
9.1.3 严格制定SLA 182
9.1.4 量化与度量SLA 183
9.1.5 HA字典 183
9.2 负载均衡器HAProxy 184
9.2.1 OpenStack服务高可用 186
9.2.2 负载均衡高可用 186
9.3 OpenStack HA实现方法 187
9.3.1 数据库高可用 188
9.3.2 消息队列高可用 191
9.4 HA规划与实现 192
9.4.1 MySQL高可用实现 192
9.4.2 RabbitMQ高可用实现 197
9.4.3 OpenStack控制节点高可用实现 200
9.4.4 网络节点高可用实现 204
9.5 Ansible实现HA 210
9.6 总结 212
第10章 OpenStack集群监控与故障排查 213
10.1 OpenStack中的Telemetry服务 214
10.1.1 Ceilometer介绍及架构 214
10.1.2 时序数据库Gnocchi 218
10.1.3 监控告警项目Aodh 219
10.2 在OpenStack中安装Telemetry 220
10.2.1 Ceilometer安装部署 221
10.2.2 Aodh告警服务配置部署 224
10.3 OpenStack监控增强 226
10.3.1 运行Nagios 227
10.3.2 Nagios监控配置 228
10.3.3 Nagios监控OpenStack 228
10.4 基于监控的OpenStack故障排除 231
10.4.1 服务的启动与运行 231
10.4.2 服务监听 233
10.4.3 拯救故障实例 234
10.4.4 网络故障排除 236
10.5 总结 239
第11章 OpenStack ELK日志处理系统 240
11.1 OpenStack日志处理 241
11.1.1 OpenStack日志解密 241
11.1.2 OpenStack外部监控系统 244
11.1.3 ELK核心概念与组件 244
11.2 ELK安装部署 246
11.2.1 ELK服务器准备 247
11.2.2 ElasticSearch安装 247
11.2.3 ElasticSearch配置 248
11.2.4 ElasticSearch功能扩展 249
11.2.5 Kibana安装 251
11.2.6 Kibana配置 251
11.2.7 LogStash安装 253
11.2.8 LogStash配置 254
11.2.9 LogStash操作 254
11.2.10 LogStash客户端准备 257
11.2.11 OpenStack日志过滤 258
11.3 OpenStack ELK功能扩展 262
11.3.1 OpenStack日志可视化 264
11.3.2 基于Kibana的故障分析 267
11.4 总结 270
第12章 OpenStack基准测试与性能调优 271
12.1 OpenStack数据库瓶颈调优 272
12.1.1 数据库瓶颈根因 273
12.1.2 OpenStack中的缓存系统 273
12.1.3 Memcached在OpenStack中的应用 274
12.1.4 Memcached安装与部署 275
12.2 OpenStack基准测试 279
12.2.1 基于Rally的OpenStack API测试 280
12.2.2 实现OpenStack SLA 280
12.2.3 Rally安装与部署 281
12.2.4 Rally配置应用 282
12.2.5 测试示例—Keystone性能调优 284
12.3 基于Shaker的OpenStack网络测试 291
12.3.1 Shaker架构 292
12.3.2 Shaker安装部署 293
12.3.3 Shaker配置应用 294
12.3.4 测试示例—OpenStack L2网络调优 296
12.4 总结 302

教学资源推荐
作者: 应明生(Mingsheng Ying) 著
作者: 李必信 廖力 王璐璐 孔祥龙 周颖 编著
作者: 郑阿奇 主编 丁有和 刘毅 编著
作者: 禹晶 孙卫东 肖创柏 编著
参考读物推荐
作者: John J. Patrick
作者: (美)Julie Dirksen 著
作者: [美]鲍里斯·肖勒(Boris Scholl) 特伦特·斯旺森(Trent Swanson) 彼得·加索维奇(Peter Jausovec) 著