第1 章 初识OpenStack. 1
1.1 从虚拟化到OpenStack 1
1.1.1 虚拟化 1
1.1.2 云计算 2
1.1.3 OpenStack . 4
1.2 OpenStack 体系结构. 6
1.3 OpenStack 项目发展流程. 13
1.3.1 新项目 14
1.3.2 孵化项目. 14
1.3.3 核心项目及集成项目 15
1.4 OpenStack 社区. 15
1.4.1 邮件列表. 16
1.4.2 IRC 和项目例会. 16
1.4.3 Summit 和Meetup 17
1.4.4 其他社交平台 19
1.5 其他开源项目. 19
第2 章 OpenStack 开发基础 22
2.1 相关开发资源. 22
2.1.1 OpenStack 社区 22
2.1.2 OpenStack 文档 22
2.1.3 OpenStack 书籍 23
2.1.4 其他网络资源 24
2.2 OpenStack 开发的技术基础. 25
2.3 部署开发环境. 26
2.3.1 Git 26
2.3.2 Devstack 27
2.4 浏览OpenStack 源代码 31
2.4.1 源码目录结构 31
2.4.2 浏览代码的工具. 33
2.4.3 分析源码如何入手. 35
2.5 OpenStack 代码质量保证体系. 38
2.5.1 编码规范. 40
2.5.2 代码评审Gerrit 43
2.5.3 单元测试Tox 48
2.5.4 持续集成Jenkins 51
2.6 如何贡献. 54
2.6.1 文档 54
2.6.2 修补Bug. 55
2.6.3 增加Feature 57
2.6.4 Review 60
2.6.5 调试 61
第3 章 虚拟化 62
3.1 概述 62
3.1.1 虚拟化实现方式. 64
3.1.2 虚拟化现状和未来. 66
3.2 高层管理工具. 74
3.2.1 XenAPI . 74
3.2.2 Libvirt . 75
3.3 OpenStack 相关实现 84
3.3.1 Libvirt 驱动. 84
3.3.2 XenAPI 驱动. 86
第4 章 OpenStack 通用技术 88
4.1 消息总线. 88
4.2 SQLAlchemy 和数据库(Shane)92
4.3 RESTful API 和WSGI . 96
4.4 Eventlet . 103
4.5 OpenStack 通用库Oslo 106
4.5.1 Cliff 107
4.5.2 oslo.config . 111
4.5.3 oslo.db. 113
4.5.4 oslo.i18n 116
4.5.5 oslo.messaging 116
4.5.6 stevedore . 123
4.5.7 TaskFlow. 127
4.5.8 cookiecutter . 133
4.5.9 oslo.policy . 134
4.5.10 oslo.rootwrap 135
4.5.11 oslo.test . 138
第5 章 计算 141
5.1 Nova 体系结构 141
5.2 Nova API. 148
5.2.1 Nova API 执行过程 149
5.2.2 Nova API 的实现 155
5.3 Conductor 服务. 161
5.3.1 Object Model 163
5.4 Scheduler. 166
5.4.1 调度器 166
5.4.2 Filtering. 167
5.4.3 Weighting 169
5.5 Compute 169
5.6 典型工作流程. 176
5.6.1 创建虚拟机. 176
5.6.2 冷迁移与Resize . 178
5.6.3 热迁移 179
5.6.4 挂起和恢复. 181
5.6.5 Rebuild 和Evacuate 182
第6 章 存储 183
6.1 Swift 183
6.1.1 Swift 体系结构. 183
6.1.2 Ring 191
6.1.3 Swift API. 202
6.1.4 认证 210
6.1.5 对象管理与操作. 211
6.1.6 数据一致性. 215
6.2 Cinder 218
6.2.1 Cinder 体系结构. 218
6.2.2 Cinder API. 222
6.2.3 cinder-scheduler 224
6.2.4 cinder-volume . 226
6.2.5 cinder-backup 230
6.3 Glance . 232
6.3.1 Glance 体系结构. 232
6.3.2 Glance API 234
第7 章 网络 240
7.1 Neutron 体系结构. 240
7.1.1 Linux 虚拟网络 241
7.1.2 Neutron 网络抽象. 245
7.1.3 Neutron 架构 246
7.1.4 Neutron 源码结构. 247
7.2 Neutron API. 249
7.2.1 neutron-server . 250
7.3 ML2 Plugin 251
7.4 Port Binding 扩展 257
7.5 Open vSwitch Agent . 260
7.6 Service Plugin 267
7.6.1 Firewall . 267
7.6.2 LoadBalance 269
7.7 Neutron 热点话题. 270
7.7.1 DVR . 271
7.7.2 SDN 271
7.7.3 NFV/SRIOV 272
第8 章 安全 274
8.1 OpenStack 安全概述 274
8.2 Keystone 275
8.2.1 Keystone 体系结构. 275
8.2.2 Keystone 启动过程. 281
8.2.3 用户认证及令牌获取 283
8.2.4 签名证书生成 286
8.3 可信计算池. 288
8.3.1 体系结构. 289
8.3.2 Intel TXT 与TBoot . 290
8.3.3 可信认证与OpenAttestation 项目292
8.3.4 TrustedFilter 295
8.3.5 部署 297
8.4 OpenStack 安全指南 298
8.4.1 安全域及威胁分类. 298
8.4.2 通用的安全指引. 302
8.4.3 OpenStack 组件的安全. 302
第9 章 计量与监控 305
9.1 Ceilometer 体系架构 305
9.1.1 Pipeline . 308
9.1.2 Polling Agent 与Pollster 插件.310
9.1.3 Notification Agent 与Notification Listeners 插件 311
9.1.4 Collector 与Dispatcher 插件311
9.1.5 Storage/DB 312
9.1.6 API Server . 313
9.1.7 Alarm 相关 314
9.2 部署与使用. 315
9.2.1 选择数据库. 315
9.2.2 安装 316
9.2.3 配置 320
9.2.4 使用 323
9.3 Ceilometer 插件的开发 323
9.3.1 Pollster 324
9.3.2 Notification Listener 325
9.3.3 DB Backend Driver . 326
9.3.4 Compute Agent Inspector . 331
9.3.5 Publisher . 332
9.3.6 Discover 332
第10 章 部署 334
10.1 TripleO 体系结构 334
10.1.1 DiskImage-Builder 336
10.1.2 Ironic. 337
10.1.3 Heat 339
10.1.4 OS-Configuration 341
10.2 TripleO 部署范例 342
10.2.1 制作镜像. 342
10.2.2 搭建UnderCloud 345
10.2.3 搭建OverCloud 349
10.3 TripleO 新特性 351
10.3.1 iPXE . 351
10.3.2 Tuskar . 351
10.3.3 Ironic-python-agent . 352
10.3.4 Hash-ring. 352
10.3.5 Driver-factory 352
第11 章 控制面板 353
11.1 Horizon 体系结构 353
11.1.1 Horizon 与Django. 353
11.1.2 Horizon 网站布局. 355
11.1.3 Horzion 源码结构. 356
11.2 Horizon 部署. 358
11.3 页面渲染流程. 360