本书通过深入剖析OpenStack架构的设计理念及具体实现,结合云计算管理平台建设理论,将理论与实践相结合,让读者知其然并知其所以然。
全书在组织形式上,采用简单明了的语法,段落简洁,配合大量的图文以及部分核心代码,形象地表述出技术应用原理。本文穿插了笔者团队积累的一些经验,特别是在应用篇,为不同场景下云计算落地分享了建设实践案例,这在业界是相对少见且比较全面的解决方案。
目录
Part 概念篇
章 云计算概述 2
1.1 云计算是什么 2
1.2 云计算发展现状 4
1.3 云计算体系架构 7
1.3.1 云计算参与者 8
1.3.2 云计算部署方式 11
1.4 云计算的影响 13
1.4.1 云计算引发了整个IT行业变革 13
1.4.2 云计算对经济社会各领域带来深刻影响 14
1.5 云计算商用解决方案 15
1.5.1 云计算解决方案 15
1.5.2 VMware vSphere解决方案 19
1.6 云计算开源解决方案OpenStack 21
1.6.1 OpenStack发展历史 22
1.6.2 OpenStack概述 23
第2章 OpenStack安装体验及入门 26
2.1 快速体验安装 26
2.2 脚本安装 28
2.3 手动安装 29
2.4 体验 35
2.4.1 创建虚拟机 36
2.4.2 添加磁盘 38
2.4.3 安全和访问设置 41
2.5 Q&A 43
2.5.1 虚拟机上是否可以安装OpenStack 43
2.5.2 找不到安装源 43
2.5.3 设置上网代理 44
2.6 如何入门提升 44
2.6.1 源码阅读 45
2.6.2 日志分析 48
2.6.3 安装问题 49
Part 架构篇
第3章 系统架构 52
3.1 整体架构剖析 52
3.2 逻辑架构 57
3.2.1 逻辑概念模型 59
3.2.2 逻辑模块划分 60
3.3 运行架构 63
3.4 开发架构 66
3.5 物理架构 67
第4章 功能剖析 70
4.1 消息队列协议AMQP 70
4.2 调度器nova-scheduler 74
4.2.1 过滤(Filtering) 76
4.2.2 权衡(Weighting) 78
4.3 计算资源管理 80
4.3.1 KVM适配 83
4.3.2 VMware适配 84
4.4 存储资源管理 85
4.4.1 Cinder功能分析 88
4.4.2 iSCSI适配 90
4.4.3 NFS适配 93
4.5 网络资源管理 94
4.5.1 IP资源管理 95
4.5.2 DHCP自动分派IP 95
4.5.3 网络连接管理 98
4.5.4 虚拟交换机管理 99
4.5.5 NAT网络映射 102
4.5.6 网络安全管理 104
4.5.7 Quantum项目介绍 106
Part 实现篇
第5章 计算资源池实现剖析 114
5.1 代码结构分析 114
5.1.1 常用命令 114
5.1.2 代码结构 115
5.2 业务逻辑模型分析 116
5.2.1 整体业务逻辑模型 116
5.2.2 Libvirt虚拟化实现模型 118
5.2.3 Xen API虚拟化实现模型 119
5.3 数据模型分析 120
5.3.1 整体数据模型 120
5.3.2 虚拟机模型instances 121
5.3.3 虚拟机状态 122
5.4 虚拟机开通 123
5.4.1 操作实现 123
5.4.2 实现剖析 126
5.4.3 开通虚拟机外部接口nova-api.create( ) 127
5.4.4 开通虚拟机内部接口pute-api.create( ) 128
5.4.5 计算节点部署虚拟机 pute-manager.run_instance() 131
5.4.6 虚拟化适配 134
5.5 虚拟机启停 138
5.5.1 虚拟机关闭 138
5.5.2 虚拟机启动 140
5.6 在线热迁移 140
5.6.1 构建NFS共享存储 142
5.6.2 修改计算节点配置 145
5.6.3 迁移虚拟机 146
5.7 VNC控制台 147
5.7.1 VNC和noVNC 147
5.7.2 实现剖析 147
5.7.3 noVNC代理的配置和部署 148
5.8 安全组管理 149
5.8.1 安全组数据模型 150
5.8.2 安全组创建和删除 151
5.9 Q&A 152
5.9.1 虚拟机部署异常 152
5.9.2 计算节点服务不能正常启动 153
5.9.3 热迁移失败 154
参考文献 154
第6章 存储资源池实现剖析 155
6.1 代码结构分析 155
6.1.1 nova-volume代码结构 155
6.1.2 Cinder代码结构 157
6.2 业务逻辑模型分析 158
6.2.1 整体模型分析 158
6.2.2 卷管理类(VolumeManager) 159
6.2.3 iSCSI实现ISCSIDriver 160
6.3 数据库模型分析 160
6.3.1 整体模型分析 160
6.3.2 卷(volumes) 161
6.4 创建和挂载弹性云硬盘操作实现 162
6.4.1 创建云硬盘操作实现 162
6.4.2 挂载云硬盘操作实现 164
6.5 机架式服务器iSCSI存储实现剖析 165
6.5.1 LVM基本概念 165
6.5.2 存储节点预处理 166
6.5.3 创建云硬盘 167
6.5.4 挂载云硬盘 168
6.6 快照管理 169
6.6.1 创建快照 170
6.6.2 快照恢复 171
第7章 网络资源池实现剖析 173
7.1 代码结构分析 173
7.1.1 Nova-work代码 173
7.1.2 Quantum代码 174
7.2 nova-work业务逻辑模型分析 176
7.2.1 业务逻辑模型 176
7.2.2 私网资源池管理NetworkManager 177
7.2.3 公网资源池管理FloatingIP 179
7.3 nova-work数据模型分析 180
7.3.1 整体模型 180
7.3.2 私有网络Networks 181
7.3.3 私网IP地址池 182
7.3.4 弹性IP地址池 183
7.4 nova-work中FlatDHCP模式 184
7.4.1 网络部署 184
7.4.2 网络连接机制剖析 185
7.4.3 高可用性 187
7.5 nova-work中VLAN模式 189
7.5.1 网络部署 189
7.5.2 网络连接机制剖析 190
7.5.3 高可用性 191
7.6 nova-work分配私网IP地址 192
7.6.1 创建私有网络 192
7.6.2 分配私网fixed IP 193
7.6.3 DHCP自动分配IP地址 197
7.7 nova-work分配弹性IP地址 199
7.7.1 操作实现 200
7.7.2 实现剖析 201
7.8 Quantum业务逻辑模型分析 203
7.8.1 Quantum-Server业务逻辑模型 203
7.8.2 Agent业务逻辑模型 204
7.9 Quantum数据模型分析 204
7.9.1 整体数据模型 204
7.9.2 Quantum模型映射关系 206
7.9.3 端口ports 207
7.10 Quantum网络模式分析 208
7.10.1 扁平共享模式(Flat) 208
7.10.2 租户私有网络 209
7.11 Quantum操作实现 211
第8章 Glance镜像管理 212
8.1 镜像功能架构 213
8.1.1 逻辑架构 213
8.1.2 开发架构 213
8.2 业务逻辑模型分析 215
8.3 数据模型分析 215
8.3.1 整体模型 215
8.3.2 镜像(images) 216
8.3.3 镜像状态 217
8.4 制作镜像 218
8.4.1 制作Windows 7镜像 218
8.4.2 制作Linux镜像 222
8.4.3 上传镜像 222
8.5 创建镜像实现分析 224
第9章 Horizon前端界面实现剖析 227
9.1 什么是Django 227
9.2 Horizon的功能和实现 228
9.2.1 Horizon介绍 228
9.2.2 功能架构 229
9.2.3 部署架构 230
9.2.4 开发架构 232
9.2.5 Horizon和Django 233
9.2.6 Horizon和其他模块的关系 234
9.3 定制Horizon 235
9.3.1 修改Web应用的标题 235
9.3.2 修改Horizon的Logo 235
9.3.3 修改Dashboard和Panel 236
9.4 国际化 236
0章 Keystone认证管理 238
10.1 Keystone架构 238
10.1.1 逻辑架构 238
10.1.2 开发架构 239
10.2 数据模型分析 241
10.2.1 整体模型 241
10.2.2 用户(user) 242
10.2.3 项目Tenant 242
10.2.4 用户项目角色关联表metadata 243
10.2.5 服务service 243
10.2.6 服务端endpoint 243
10.3 Keystone操作体验 244
10.3.1 创建项目Project 244
10.3.2 创建用户 245
10.3.3 为项目Project增加新用户 246
10.4 认证机制剖析 247
10.4.1 curl方式创建虚拟机 247
10.4.2 认证过程剖析 252
10.4.3 认证获取Token剖析 254
10.4.4 权限判断 256
10.5 Q&A 258
Part 应用篇
1章 私有云平台建设 262
11.1 概述 262
11.2 适用场景分析 263
11.2.1 选择私有云 264
11.2.2 适用场景示例——服务器应用 266
11.2.3 适用场景示例——桌面云应用 270
11.3 建设思路 274
11.3.1 建设思路转变 274
11.3.2 统筹规划、分阶段建设 277
11.4 建设过程 277
11.4.1 网络规划及部署 278
11.4.2 CPU兼容性 282
11.5 案例分析 283
11.6 私有云平台待完善 287
11.6.1 OpenStack持续优化 288
11.6.2 系统监控管理 289
11.6.3 高可用性管理 294
2章 公有云平台建设 297
12.1 谁适用公有云 297
12.2 运营商建设 298
12.2.1 小规模应用 299
12.2.2 大规模建设 300
12.3 单数据中心建设方案 301
12.3.1 网络部署方案 301
12.3.2 共享存储提升高可用性 303
12.4 多数据中心建设方案 304
12.4.1 区域Zone解决方案 305
12.4.2 单元Cell解决方案 307
后记 309
下载体验