OpenStack云计算实战
作者: 钟小平,许宁 著
出版时间: 2019
全书共12章,内容包括OpenStack云计算基础、单节点云平台一体化部署、基础环境、API与客户端、Keystone身份服务、Glance镜像服务、Nova计算服务、Neutron网络服务、Cinder块存储服务、Swift对象存储服务、Temetry计量与监控服务和Heat编排服务,以及多节点OpenStack云平台。
目录
- 第1章 OpenStack云计算基础....................1
- 1.1云计算概述 ..................1
- 1.1.1云计算的概念 ................1
- 1.1.2云计算架构 ................2
- 1.1.3云计算部署模式 .............3
- 1.1.4云计算解决方案 ............4
- 1.1.5裸金属云 ...................5
- 1.2Linux虚拟化技术 ...............6
- 1.2.1计算机虚拟化基础 ............6
- 1.2.2OpenStack所支持的虚拟化技术 ......................7
- 1.2.3KVM——基于 Linux内核的虚拟化解决方案 ...............8
- 1.2.4Libvirt套件 ................10
- 1.3了解 OpenStack .............11
- 1.3.1什么是 OpenStack ..........11
- 1.3.2OpenStack项目的组成 .......12
- 1.3.3OpenStack基金会与社区 ......14
- 1.3.4OpenStack版本演变 ..........14
- 1.4OpenStack的架构 .............15
- 1.4.1OpenStack的概念架构 .......15
- 1.4.2OpenStack的逻辑架构 .......16
- 1.4.3OpenStack组件之间的通信关系 ....................17
- 1.4.4OpenStack的物理架构 ......18
- 1.4.5OpenStack的物理网络类型 ...21
- 1.5部署 OpenStack .............22
- 1.5.1选择操作系统平台 ..........22
- 1.5.2部署拓扑 .................22
- 1.5.3OpenStack部署工具 ..........22
- 1.5.4部署 OpenStack的技术需求 .....26
- 1.6习题 .......................27
- 第2章单节点的 OpenStack一体化部署 ..............28
- 2.1使用Packstack安装单节点OpenStack云平台 .............28
- 2.1.1准备安装环境 ..............28
- 2.1.2准备所需的软件库 ..........32
- 2.1.3安装Packstack安装器 .......33
- 2.1.4运行 Packstack安装 OpenStack .................33
- 2.2OpenStack Dashboard操作界面....................36
- 2.2.1OpenStack Dashboard 主界面 ..................36
- 2.2.2项目管理界面 ..............38
- 2.2.3管理员管理界面 ..............38
- 2.2.4身份管理界面 ..............39
- 2.3创建虚拟机实例 ...............40
- 2.3.1添加安全组访问规则 .........40
- 2.3.2创建或导入密钥对 .........41
- 2.3.3添加镜像 .................42
- 2.3.4创建并运行虚拟机实例 .......43
- 2.4定制虚拟网络实现虚拟机与外网通信...................48
- 2.4.1将网络接口与外部桥接口 br-ex进行关联 .................48
- 2.4.2配置虚拟网络 .............49
- 2.4.3为虚拟机实例分配浮动 IP 地址 ....................54
- 2.4.4使用 SSH访问虚拟机实例 .....55
- 2.4.5基于提供者网络的虚拟机实例 ...57
- 2.5习题 .......................58
- 第3章OpenStack基础环境..................59
- 3.1OpenStack云部署架构设计 ......59
- 3.1.1示例架构的物理部署 ..........60
- 3.1.2示例架构的虚拟网络方案 .......61
- 3.1.3主机节点的网络拓扑 ..........62
- 3.2主机节点网络设置 ............63
- 3.2.1NetworkManager服务 ......63
- 3.2.2网络连接配置 ..............63
- 3.2.3禁用防火墙与 SELinux .......63
- 3.2.4配置主机节点时钟同步 .......63
- 3.3数据库服务器及其配置 .........65
- 3.3.1SQL数据库 ................65
- 3.3.2NoSQL数据库 ............68
- 3.4消息队列服务及其配置 .........70
- 3.4.1消息队列与消息总线 ..........70
- 3.4.2AMQP模型与原理 .........70
- 3.4.3AMQP与 OpenStack .........72
- 3.4.4RabbitMQ及其部署 ...........73
- 3.5习题 .......................74
- 第4章OpenStack API与 客户端 ................75
- 4.1RESTful API和 WSGI ..........75
- 4.1.1RESTful API简介 ..........75
- 4.1.2OpenStack的 RESTful API ...76
- 4.1.3Web服务器网关接口 WSGI ...77
- 4.1.4OpenStack API的传统框架 ...77
- 4.1.5OpenStack API的新型框架 ...80
- 4.2OpenStack API的基本使用 ......81
- 4.2.1调用 OpenStack API的方式 .....81
- 4.2.2OpenStack的认证与 API请求 流程 ................83
- 4.2.3获取 OpenStack认证令牌 ......83
- 4.2.4发送 API请求 .............85
- 4.3OpenStack命令行客户端 .......87
- 4.3.1使用命令行的必要性 ..........87
- 4.3.2安装命令行客户端 ..........87
- 4.3.3OpenStack客户端语法 .......87
- 4.3.4OpenStack客户端认证 ......88
- 4.3.5通过 OpenStack客户端创建一个 实例 ................88
- 4.4基于 Horizon的 Dashboard 界面..................89
- 4.4.1Horizon主要功能 ..........89
- 4.4.2Horizon设计理念 ..........89
- 4.4.3Horizon与 Django框架 ........90
- 4.4.4Horizon功能框架 ..........91
- 4.4.5自定义 OpenStack Horizon ....92
- 4.4.6手动安装 Horizon ..........94
- 4.5通过日志排查故障 ............95
- 4.6通用库 Oslo ................96
- 4.7习题 .......................97
- 第5章OpenStack身份服务....................98
- 5.1身份服务基础 ...............98
- 5.1.1Keystone主要功能 ...........98
- 5.1.2Keystone基本概念 ...........99
- 5.1.3Keystone的管理层次结构 ...100
- 5.1.4Keystone体系结构 ..........101
- 5.1.5Keystone认证流程 ..........104
- 5.2基于 Dashboard界面进行身份管理 操作..............105
- 5.2.1项目管理 ...............105
- 5.2.2用户管理 ...............108
- 5.2.3组管理 ..................109
- 5.2.4角色管理 ...............110
- 5.3基于命令行界面进行身份管理 操作................111
- 5.3.1管理项目、用户和角色 ........111
- 5.3.2创建并管理服务和服务用户 .....113
- 5.4通过 oslo.policy实现权限管理 ....114
- 5.5手动安装和部署 Keystone .......116
- 5.5.1创建 Keystone数据库 ......116
- 5.5.2安装和配置 Keystone及相关 组件 .................117
- 5.5.3配置 Apache HTTP服务器 ....118
- 5.5.4完成安装 ...............118
- 5.5.5为后续的服务创建统一的服务项目 ..................119
- 5.6习题 .....................119
- 第6章OpenStack镜像服务...................120
- 6.1镜像服务基础 .................120
- 6.1.1镜像与镜像服务 ............120
- 6.1.2Glance架构 ..............124
- 6.1.3Glance工作流程 ...........125
- 6.1.4理解镜像和实例的关系 ........126
- 6.1.5镜像元数据定义 ...........129
- 6.1.6Glance的配置文件 ..........130
- 6.2管理 Glance镜像 ..............131
- 6.2.1基于 Web界面管理镜像 ......131
- 6.2.2基于命令行管理镜像 ........133
- 6.2.3镜像的问题排查 ............135
- 6.3制作 OpenStack镜像 ..........135
- 6.3.1制作 OpenStack Linux镜像 ....135
- 6.3.2cloud-init工作机制及其 应用 ..................139
- 6.3.3制作 OpenStack Windows 镜像 ..................145
- 6.4手动安装和部署 Glance ........155
- 6.4.1基础工作 ...............155
- 6.4.2安装和配置组件 ...........155
- 6.4.3完成安装 ...............157
- 6.5习题 .....................157
- 第7章OpenStack计算服务...................158
- 7.1OpenStack计算服务基础 ........158
- 7.1.1什么是 Nova .............158
- 7.1.2Nova系统架构 .............159
- 7.1.3API组件 ...............159
- 7.1.4Scheduler组件 ............160
- 7.1.5Compute组件 ..............163
- 7.1.6Conductor组件 ............164
- 7.1.7Placement API组件 ........164
- 7.1.8控制台接口 ...............165
- 7.1.9虚拟机实例化流程 ...........165
- 7.2Nova部署架构 ..............166
- 7.2.1Nova物理部署 .............166
- 7.2.2Nova的 Cell架构 .........166
- 7.3Nova的元数据工作机制 .......169
- 7.3.1元数据及其注入 ............169
- 7.3.2配置驱动器 ...............169
- 7.3.3元数据服务 ...............171
- 7.3.4虚拟机实例访问元数据服务 .....172
- 7.4使用和管理计算服务 ..........173
- 7.4.1部署虚拟机实例的前提 ........173
- 7.4.2创建虚拟机实例 ............174
- 7.4.3访问虚拟机实例 ............177
- 7.4.4管理虚拟机实例 ............178
- 7.4.5管理实例类型 ............179
- 7.4.6为虚拟机实例注入管理员密码 ..................182
- 7.5手动安装和部署 Nova ...........183
- 7.5.1在控制节点上安装和配置 Nova 组件 .................184
- 7.5.2在计算节点上安装和配置 Nova 组件 ...............186
- 7.6习题 .....................187
- 第8章OpenStack网络服务...................189
- 8.1Linux虚拟网络 ..............189
- 8.1.1Linux网络虚拟化 .........189
- 8.1.2Linux虚拟网桥 ............190
- 8.1.3虚拟局域网 ...............190
- 8.1.4开放虚拟交换机 ...........191
- 8.2OpenStack网络服务基础 ........192
- 8.2.1Neutron网络结构 ...........192
- 8.2.2网络、子网与端口 ...........193
- 8.2.3网络拓扑类型 ............193
- 8.2.4Neutron基本架构 ...........194
- 8.2.5neutron-server ...........195
- 8.2.6插件、代理与网络提供者 .....196
- 8.2.7Neutron的物理部署 ........196
- 8.3Neutron主要插件、代理与服务 ...197
- 8.3.1ML2插件 .................197
- 8.3.2Linux Bridge代理 ...........198
- 8.3.3Open vSwitch代理 ..........199
- 8.3.4DHCP代理 ...............200
- 8.3.5Linux网络名称空间 .........202
- 8.3.6Neutron路由器 ............203
- 8.3.7L3代理 .................204
- 8.3.8FWaaS..................205
- 8.4Neutron网络配置和管理 ......205
- 8.4.1虚拟网络类型 ............206
- 8.4.2OpenStack网络命令行 ........209
- 8.4.3创建提供者网络 ...........210
- 8.4.4创建自服务网络 ...........211
- 8.4.5配置虚拟路由器 ...........214
- 8.5手动安装和部署 Neutron ......217
- 8.5.1主机网络配置 ............217
- 8.5.2安装和配置控制节点 ........218
- 8.5.3安装和配置计算节点 ........220
- 8.6习题 .....................221
- 第9章OpenStack存储服务...................222
- 9.1Cinder块存储服务基础 ........222
- 9.1.1Cinder的主要功能 ...........222
- 9.1.2Cinder与 Nova的交互 ........223
- 9.1.3Cinder架构 ..............223
- 9.1.4cinder-api服务 ...........225
- 9.1.5cinder-scheduler服务 ........225
- 9.1.6cinder-volume服务 ........226
- 9.1.7cinder-backup服务 ........229
- 9.1.8Cinder的物理部署 ...........230
- 9.2Cinder的配置与管理 .........230
- 9.2.1图形界面的卷操作 ...........230
- 9.2.2命令行的卷操作 ............235
- 9.2.3配置存储后端 ............237
- 9.2.4管理块存储服务配额 ........239
- 9.3手动安装和部署 Cinder .........240
- 9.3.1安装和配置存储节点 ........240
- 9.3.2安装和配置控制节点 ........242
- 9.3.3安装和配置备份服务........243
- 9.4Swift对象存储系统 ............243
- 9.4.1Swift概述 ................243
- 9.4.2对象的层次数据模型 ........244
- 9.4.3对象存储的组件............245
- 9.4.4对象存储集群的层次结构 .....248
- 9.4.5Swift架构................249
- 9.5Swift的配置与管理 ............250
- 9.5.1代理服务及其配置 ...........250
- 9.5.2存储服务及其配置 ...........252
- 9.5.3一致性服务及其配置 ........253
- 9.5.4环的创建和管理 ............255
- 9.5.5存储策略管理 ............258
- 9.6手动安装和部署 Swift ...........260
- 9.6.1配置网络 ...............260
- 9.6.2安装和配置控制节点 ........260
- 9.6.3安装和配置存储节点 ........261
- 9.6.4创建和分发初始环 ...........263
- 9.6.5完成安装 ...............265
- 9.7习题 .....................265
- 第10章OpenStack计量与监控................267
- 10.1Telemetry服务概述 ...........267
- 10.1.1Telemetry服务的子项目 ...267
- 10.1.2Telemetry服务的架构 ......268
- 10.2Ceilometer数据收集服务 ......269
- 10.2.1Ceilometer的主要功能 .....269
- 10.2.2数据类型计量项和事件 ......269
- 10.2.3Ceilometer的架构 .........270
- 10.2.4数据处理和管道 ..........272
- 10.2.5存储和访问数据 ..........273
- 10.3Gnocchi资源索引和计量存储服务 .................273
- 10.3.1Gnocchi简介 .............274
- 10.3.2Gnocchi的基本架构 .......274
- 10.3.3Gnocchi的后端存储 .......275
- 10.3.4Gnocchi的归档策略 .......275
- 10.3.5规划 Gnocchi的存储 ......276
- 10.3.6Statsd.................277
- 10.3.7API..................277
- 10.3.8Metricd...............277
- 10.4配置和管理计量和监控服务 .....277
- 10.4.1数据收集配置 .............277
- 10.4.2管道配置 ................280
- 10.4.3发布器配置 .............281
- 10.4.4配置和管理 Gnocchi .......281
- 10.4.5通过 Gnocchi API管理和使用计量服务 ................283
- 10.5手动安装计量和监控服务 ........284
- 10.5.1安装和配置 Telemetry服务....................284
- 10.5.2启用计算服务计量 .........286
- 10.5.3启用块存储计量 ..........287
- 10.5.4启用对象存储计量 .........288
- 10.5.5启用其他 OpenStack服务计量....................288
- 10.6Aodh警告服务 ............289
- 10.6.1Aodh的组件 ..............289
- 10.6.2Aodh的系统架构 ...........289
- 10.6.3管理和使用Aodh警告 ......291
- 10.6.4使用警告................291
- 10.6.5手动安装 Aodh警告服务 ...293
- 10.7习题 ......................295
- 第11章OpenStack编排服务................296
- 11.1Heat编排服务基础 ..........296
- 11.1.1什么是编排服务 ..........296
- 11.1.2Heat的目的和任务 ........297
- 11.1.3Heat架构 ...............297
- 11.2Heat编排模板 .............298
- 11.2.1模板结构 .................299
- 11.2.2模板版本与描述信息 .......300
- 11.2.3参数组 .................300
- 11.2.4输入参数 ................300
- 11.2.5资源....................302
- 11.2.6输出参数.................303
- 11.2.7条件....................303
- 11.2.8内置函数 .................303
- 11.3管理和使用 Heat编排 .........305
- 11.3.1使用 packstack命令安装 Heat 服务...............305
- 11.3.2创建栈完成编排任务 .......306
- 11.3.3创建模板定制编排任务 ......308
- 11.4安装和配置 Heat .............312
- 11.4.1准备....................312
- 11.4.2安装和配置组件..........313
- 11.4.3完成安装 ................314
- 11.5习题 ......................314
- 第12章多节点 OpenStack 云平台...............315
- 12.1增加一个计算节点 ............315
- 12.1.1准备安装 .................315
- 12.1.2编辑应答文件 .............316
- 12.1.3运行Packstack安装 ......317
- 12.1.4验证双节点部署 ..........318
- 12.1.5管理主机聚合 .......320
- 12.2虚拟机实例的迁移........322
- 12.2.1在计算节点之间配置 SSH无密码访问 .......322
- 12.2.2虚拟机实例的冷迁移 ...323
- 12.2.3虚拟机实例的实时迁移 ...325
- 12.3多节点 OpenStack的部署 .....333
- 12.3.1使用工具部署多节点 OpenStack........333
- 12.3.2手动部署多节点 OpenStack ...333
-
12.4习题 .............334