第—部分 基础篇 2
第1章 OpenStack简介 2
1.1 OpenStack概述 2
1.2 OpenStack的结构 3
1.3 OpenStack的功能与作用 4
1.4 OpenStack与ClouddStack的比较 6
1.5 OpenStack应用现状和发展趋势 8
1.6 体验OpenStack 10
1.6.1 初探OpenStack 10
1.6.2 创建OpenStack虚拟机实例 12
1.6.3 创建虚拟机流程概述 14
1.6.4 创建OpenStack磁盘实例 16
1.6.5 创建块存储流程概述 20
1.7 OpenStack体系结构 22
1.7.1 OpenStack设计原则 22
1.7.2 OpenStack架构 23
1.8 OpenStack的开发资源 24
1.8.1 OpenStack社区 24
1.8.2 OpenStack基金会 25
1.8.3 OpenStack项目资料 25
1.9 OpenStack非核心项目介绍 29
1.9.1 Ironic项目介绍 29
1.9.2 Tempest项目介绍 33
第2章 OpenStack的安装 35
2.1 在Ubuntu上使用二进制包安装 35
2.1.1 控制节点的安装 35
2.1.2 网络节点的安装 55
2.1.3 计算节点的安装 60
2.1.4 块存储节点的安装 64
2.2 在Ubuntu上使用源代码编译安装 66
2.2.1 控制节点的安装 67
2.2.2 计算节点的安装 79
2.2.3 网络节点的安装 81
2.2.4 块存储节点的安装 82
第二部分 进阶篇 84
第3章 OpenStack组织结构一览 84
3.1 组件关系 84
3.1.1 Nova组件 85
3.1.2 Swift组件 87
3.1.3 Keystone组件 87
3.1.4 Glance组件 88
3.1.5 Neutron组件 89
3.1.6 Cinder组件 89
3.2 OpenStack目录组织结构 90
3.2.1 Nova目录结构 90
3.2.2 Swift目录结构 91
3.2.3 Keystone目录结构 92
3.2.4 Glance目录结构 92
3.2.5 Neutron目录结构 93
3.2.6 Cinder目录结构 93
3.3 OpenStack配置文件 94
3.3.1 Nova配置文件及日志 94
3.3.2 Swift配置文件及日志 95
3.3.3 Keystone配置文件及日志 95
3.3.4 Glance配置文件及日志 96
3.3.5 Neutron配置文件及日志 96
3.3.6 Cinder配置文件及日志 96
3.4 小结 98
第4章 OpenStackAPI的介绍和开发 99
4.1 简述NovaAPI体系 99
4.1.1 WSGI架构 99
4.1.2 API响应流程 102
4.1.3 扩展API的加载 103
4.1.4 NovaAPI列表 104
4.1.5 分页查询和查询优化 106
4.1.6 如何编写一个核心API 108
4.1.7 如何编写一个扩展API 108
4.1.8 通过Filter为API增加功能 109
4.2 理解Eventlet 110
4.3 自定义DashBoard面板 112
4.3.1 理解Django框架 112
4.3.2 Django界面国际化 112
4.3.3 玩转Horizon 115
第5章 Keystone认证组件 119
5.1 认证组件Keystone介绍 119
5.1.1 基本概念 119
5.1.2 用户管理 120
5.1.3 服务管理 123
5.2 配置文件及参数选项 123
5.2.1 keystone.conf配置文件示例 124
5.2.2 keystone-paste.ini配置文件示例 134
5.2.3 logging.conf配置文件示例 136
5.2.4 连接OpenStack服务到Keystone 137
5.3 原理分析 139
5.3.1 Keystone认证原理 139
5.3.2 图解Keystone 143
5.4 关键源代码阅读 146
5.4.1 源代码分析之服务启动 146
5.4.2 源代码分析之CLI调用 151
5.5 案例:配置Keystone使用Active Directory进行认证 152
第6章 Glance镜像组件 154
6.1 镜像组件介绍 154
6.1.1 Glance表结构 155
6.1.2 Glance中镜像的概念 157
6.2 Glance的配置文件 159
6.2.1 glance-api.conf文件概述 159
6.2.2 配置镜像缓存 163
6.2.3 glance-registry.conf文件概述 165
6.3 设置Glance的后端存储 166
6.4 制作镜像 167
6.4.1 使用virt-install创建CentOS镜像 167
6.4.2 在Ubuntu上使用QEMU相关命令制作Windows镜像 170
第7章 Nova计算组件 174
7.1 Nova组件介绍 174
7.2 虚拟化组件 175
7.3 配置文件及参数 177
7.3.1 数据库配置 178
7.3.2 Hypervisor配置 179
7.3.3 RPC配置 181
7.3.4 配额设置 182
7.3.5 日志配置 183
7.3.6 调度配置 184
7.3.7 VNC配置 184
7.4 关键源代码阅读 185
7.4.1 Nova服务启动 185
7.4.2 虚拟机状态转换 188
7.4.3 Nova Context 195
7.4.4 Keystone认证处理 195
7.4.5 REST API调用 196
7.4.6 组件间RPC调用 198
7.4.7 Hypervisor驱动 198
7.5 虚拟机镜像格式 202
第8章 Neutron网络组件 203
8.1 Neutron概述 203
8.2 使用Open vSwitch的plugin 208
第9章 Cinder块存储组件 216
9.1 Cinder交互流程 216
9.1.1 Nova现有块设备操作API统计 216
9.1.2 Nova-Cinder交互流程分析 217
9.1.3 相关代码源文件 226
9.1.4 使用Cinder实现云硬盘需要注意的问题 227
9.2 配置从Volume启动虚拟机 227
9.3 使用Ceph作为Cinder的后端 230
第10章 OpenStack日常运维 233
10.1 维护与诊断 233
10.1.1 控制节点和Swift的维护与纠错 233
10.1.2 计算节点的维护与纠错 234
10.1.3 网络诊断 239
10.2 标准化修复与例行检查流程 246
10.2.1 标准化修复 246
10.2.2 例行检查 247
10.3 日志与监控 247
10.3.1 定位错误 247
10.3.2 错误日志 248
10.3.3 集中管理日志 252
10.3.4 监控 253
10.4 备份与恢复 257
10.4.1 需要备份的数据 257
10.4.2 数据库备份 257
10.4.3 文件系统备份 258
10.4.4 数据恢复 259
第11章 使用Fuel快速安装OpenStack 260
11.1 Fuel规划 261
11.2 Fuel安装及使用 263
11.3 小结 273