精通OpenStack(原书第2版)
书籍作者:禅丹·杜塔·裘得哈里(Chandan |
ISBN:9787111616825 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:9655 |
创建日期:2021-02-14 |
发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
本书在版的基础上增加了OpenStack的*新功能。书中详细介绍OpenStack基础架构;展示如何创建自己的OpenStack私有云;讲述OpenStack支持的各种管理程序和容器技术;介绍OpenStack中的各种存储类型和高级网络。通过本书,读者将开发故障排除技能,并全面了解OpenStack中的高可用性和故障转移等服务。并且,通过实例,使读者获得运行集中式日志记录服务器和监视OpenStack服务的经验。
作者简介
奥马尔·海德希尔(Omar Khedher)是一位拥有多年云计算经验的网络和系统工程师,参与过众多基于OpenStack的私有云项目,同时也参与过很多与AWS相关的公有云项目。作为系统管理员,Omar在虚拟化、存储以及网络方面拥有丰富的经验,目前就职于Fyber,其所在的团队主要参与采用*新的开源工具以及DevOps理论搭建云和将传统业务迁移到云上等项目。
坚登。杜塔。乔杜里(Chandan Dutta Chowhury)是瞻博网络公司的技术带头人,主要负责OpenStack Neutron插件。他拥有超过11年部署基于Linux系统解决方案的经验。目前负责瞻博网络公司私有云解决方案的建立和维护。
前言
今天,随着新功能和子项目的增加,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中虚拟网络的管理。此外,本章还重点介绍了如何简化虚拟网络和路由器的复杂配置。最后,在本章的结尾部分
目录
译者序
前言
关于作者和审校者
第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 基于路由的网络连接实现 1