第1章 云管理平台概述 1
1.1 主流云管理平台对比 2
1.2 OpenStack简介 6
1.2.1 OpenStack设计原理和体系结构 7
1.2.2 OpenStack社区和项目开发流程 11
1.2.3 OpenStack应用现状与发展趋势 12
1.3 OpenStack入门体验 15
1.3.1 初探OpenStack 15
1.3.2 创建OpenStack虚拟机实例 17
1.3.3 创建虚拟机的流程概述 19
第2章 计算管理(Nova) 23
2.1 概述 23
2.2 逻辑架构 24
2.3 物理架构 24
2.4 对主流Hypervisor的支持架构 26
2.5 与VMware的对接 27
2.6 支持的Hypervisor 28
2.7 Nova关键组件 28
2.7.1 API服务(nova-api) 28
2.7.2 消息队列(AMQP) 29
2.7.3 nova-compute 32
2.7.4 nova-cell 35
2.7.5 nova-conductor 36
2.7.6 nova-scheduler 37
2.7.7 nova-volume 39
2.7.8 nova-network 40
2.8 nova-objectstore 61
2.9 OpenStack使用流程 62
2.9.1 初始化数据库与IP池 62
2.9.2 创建用户与项目 62
2.9.3 使用euca2tools工具 63
2.9.4 创建镜像 65
2.9.5 创建虚拟机 68
2.10 K版本新特性 70
2.11 小结 73
第3章 存储管理(Cinder) 75
3.1 Cinder的架构 75
3.2 CinderAPI 76
3.3 cinder-scheduler 77
3.4 cinder-volume 79
3.5 cinder-backup 80
3.6 Cinder对存储设备及Ceph的支持 81
3.7 Nova与Cinder的交互流程分析 81
3.8 Cinder功能及典型工作流程 84
3.8.1 cinder-api服务启动流程 84
3.8.2 cinder-scheduler服务启动流程 85
3.8.3 cinder-volume服务启动流程 86
3.8.4 cinderclient部分创建流程 86
3.9 Glance 88
3.10 K版本的存储管理新功能 89
3.10.1 Glance新功能 89
3.10.2 Cinder新功能 90
3.11 小结 90
第4章 网络管理模块(Neutron) 92
4.1 网络基本概念 93
4.1.1 L2与L3 93
4.1.2 交换机与路由器 93
4.1.3 防火墙 94
4.1.4 负载均衡 94
4.1.5 DHCP服务 94
4.1.6 子网和ARP 94
4.1.7 VLAN 95
4.1.8 Overlay网络 96
4.1.9 Network NameSpace 97
4.1.10 NAT地址转换 97
4.2 Neutron的由来 98
4.2.1 nova-network的问题 99
4.2.2 Neutron项目要解决的问题 100
4.3 Neutron的架构 100
4.3.1 NeutronAPI 102
4.3.2 Neutron插件及代理介绍 103
4.3.3 ML2 104
4.3.4 Neutron核心数据模型 105
4.3.5 Neutron消息交互 106
4.3.6 租户网络与提供商网络 106
4.3.7 OpenStack网络部署架构 107
4.3.8 业务处理流程简述 108
4.4 K版本新功能 112
4.5 小结 113
第5章 计量与监控(Ceilometer) 114
5.1 Ceilometer的体系架构 114
5.2 Ceilometer计量数据采集机制 116
5.2.1 概述 116
5.2.2 计量数据采集 117
5.2.3 计量数据转换和发布 122
5.2.4 计量数据存储 123
5.3 Ceilometer告警 124
5.4 Ceilometer API服务器 126
5.5 Ceilometer的二次开发 127
5.5.1 Notification Listener插件开发 128
5.5.2 Pollster插件开发 130
5.5.3 Discovery插件开发 131
5.5.4 Compute Agent Inspector插件开发 132
5.5.5 Publisher插件开发 133
5.6 OpenStack组件计量 134
5.6.1 Nova计量 134
5.6.2 Glance计量 138
5.6.3 Cinder计量 138
5.6.4 Swift计量 139
5.6.5 Neutron计量 139
5.6.6 Keystone计量 140
5.6.7 Heat计量 141
5.6.8 Ironic计量 141
5.6.9 Ceph计量 141
5.7 K版本新功能 142
5.8 Ceilometer对接外部系统 143
5.9 OpenStack监控 144
5.10 小结 148
第6章 编排(Heat) 150
6.1 Heat概述 150
6.2 Heat架构 150
6.3 Heat API 151
6.4 Heat模板 152
6.4.1 模板结构 152
6.4.2 输入参数 153
6.4.3 资源 153
6.4.4 资源依赖 154
6.4.5 输出参数 154
6.4.6 模板执行 155
6.4.7 模板依赖 156
6.5 Heat资源类型 156
6.5.1 资源类型的使用 156
6.5.2 资源类型的实现 157
6.6 Heat引擎 158
6.7 典型场景分析 160
6.8 K版本新特性 163
6.9 与AWS CloudFormation的对比 164
6.10 小结 165
第7章 裸机管理(Ironic) 167
7.1 裸机管理通用技术 167
7.2 Ironic介绍 169
7.3 Ironic架构 169
7.4 基本运行原理和流程 171
7.5 Ironic安装 173
7.5.1 完全安装 173
7.5.2 简化安装 190
7.6 K版本新功能 192
7.7 小结 194
第8章 消息总线 195
8.1 概述 195
8.2 AMQP消息队列协议 196
8.3 OpenStack支持的消息总线类型 198
8.4 小结 200
第9章 OpenStack大数据服务(Sahara) 201
9.1 Sahara概述 201
9.1.1 Sahara的定位 201
9.1.2 Sahara的发展历程 202
9.1.3 Sahara的主要特点 203
9.2 Sahara的使用模式 205
9.3 Sahara的架构 207
9.3.1 Sahara外部架构 207
9.3.2 Sahara内部架构 208
9.4 Sahara与EMR、Serengeti的对比 210
9.4.1 Sahara与Amazon EMR的对比 210
9.4.2 Sahara与VMware Serengeti的对比 211
9.5 K版本新特性 213
9.6 小结 214
第10章 OpenStack数据库服务(Trove) 215
10.1 Trove概述 215
10.2 Trove总体构架 216
10.3 Trove主要功能和API接口 218
10.4 Trove的安装和配置 221
10.5 Trove创建实例过程 225
10.6 Trove二次开发 226
10.7 小结 229
第11章 OpenStack安全方案 230
11.1 OpenStack安全概述 230
11.2 Keystone 231
11.2.1 Keystone介绍 232
11.2.2 启动 235
11.2.3 用户认证和令牌获取 236
11.2.4 签名证书生成 238
11.2.5 多级Keystone架构 240
11.2.6 Keystone与现有用户安全认证系统的对接 241
11.3 K版本新特性 242
11.4 基于可信计算的云安全体系 242
11.4.1 可信计算平台 242
11.4.2 OpenStack中的可信计算池 244
11.5 小结 246
第12章 OpenStack孵化项目简介 248
12.1 消息队列服务(Zaqar) 249
12.1.1 概述 249
12.1.2 使用场景 251
12.1.3 逻辑架构 251
12.1.4 本节小结 252
12.2 共享文件系统服务(Manila) 253
12.2.1 概述 253
12.2.2 使用场景 254
12.2.3 逻辑架构 255
12.2.4 本节小结 259
12.3 DNS管理服务(Designate) 259
12.3.1 概述 259
12.3.2 使用场景 260
12.3.3 逻辑架构 260
12.3.4 本节小结 262
12.4 密钥管理服务(Barbican) 263
12.4.1 概述 263
12.4.2 使用场景 263
12.4.3 逻辑架构 264
12.4.4 本节小结 266
12.5 容器管理服务(Magnum) 266
12.5.1 概述 266
12.5.2 使用场景 268
12.5.3 逻辑架构 268
12.5.4 本节小结 271
参考文献 273