第一部分 架构 3
第1章 架构示例 3
1.1 架构示例:传统网络模型(nova) 3
1.1.1 概述 4
1.1.2 详细描述 6
1.1.3 可选的扩展 8
1.2 架构示例:OpenStack网络服务 8
1.2.1 概述 8
1.2.2 详细描述 10
1.2.3 组件配置示例 16
1.3 关于架构的最后几句话 19
第2章 准备及部署 20
2.1 自动化部署 20
2.1.1 磁盘分区及RAID 21
2.1.2 网络配置 23
2.2 自动化配置 23
2.3 远程管理 23
2.4 关于准备和部署OpenStack的最后几句话 24
2.5 总结 24
第3章 云控制器设计和云系统管理 25
3.1 硬件注意事项 26
3.2 服务的分隔 27
3.3 数据库 28
3.4 消息队列 28
3.5 向导服务 28
3.6 应用程序接口(API) 29
3.7 扩展 29
3.8 调度 29
3.9 镜像 30
3.10 控制面板 30
3.11 认证及授权 31
3.12 网络相关注意事项 31
第4章 计算节点 32
4.1 选择CPU 32
4.2 选择超级管理程序 33
4.3 实例存储解决方案 33
4.3.1 非计算节点存储:共享文件系统 34
4.3.2 计算节点存储:共享文件系统 35
4.3.3 计算节点存储:非共享文件系统 35
4.3.4 动态迁移的问题 35
4.3.5 文件系统的选择 36
4.4 过量分配 36
4.5 日志记录 37
4.6 网络连接 37
4.7 总结 37
第5章 扩展 38
5.1 起点 38
5.2 添加云控制器节点 40
5.3 隔离云系统 40
5.3.1 nova单元和区域 41
5.3.2 可用域和主机集合 41
5.4 可扩展的硬件 43
5.4.1 硬件采购 43
5.4.2 容量规划 44
5.4.3 老化测试 44
第6章 存储决策 45
6.1 临时性存储 45
6.2 持久性存储 45
6.2.1 对象存储 45
6.2.2 块存储 47
6.3 OpenStack存储概念 47
6.4 选择存储后端 48
6.5 结论 51
第7章 网络设计 52
7.1 管理网络 52
7.2 公共地址选项 53
7.3 IP地址规划 53
7.4 网络拓扑 54
7.4.1 OpenStack虚拟机内部的VLAN配置 55
7.4.2 多网卡分配 56
7.4.3 多主机和单主机网络 56
7.5 网络服务 56
7.5.1 NTP 56
7.5.2 DNS 56
7.6 总结 57
第二部分 运维 61
第8章 了解全局 61
8.1 使用OpenStack控制面板进行管理 61
8.2 命令行工具 61
8.2.1 安装工具软件 62
8.2.2 管理的命令行工具 62
8.2.3 获得凭据 63
8.2.4 检查API调用 64
8.2.5 服务器和服务 66
8.2.6 计算节点诊断 67
8.3 网络检查 68
8.4 用户和项目 69
8.5 正在运行的实例 70
8.6 总结 71
第9章 管理项目和用户 72
9.1 项目还是租户 72
9.2 管理项目 73
9.3 配额 74
9.3.1 设置镜像配额 74
9.3.2 设置计算服务配额 75
9.3.3 设置对象存储配额 77
9.3.4 设置块存储配额 79
9.4 用户管理 80
9.5 创建新用户 80
9.6 将用户与项目关联 81
9.6.1 授权定制化 83
9.6.2 用户间的干扰 84
9.7 总结 85
第10章 面向用户的运维 86
10.1 镜像 86
10.1.1 添加镜像 86
10.1.2 在项目间共享镜像 87
10.1.3 删除镜像 87
10.1.4 其他命令行界面选项 88
10.1.5 镜像服务和数据库 88
10.1.6 镜像服务数据库查询示例 88
10.2 flavor 88
10.2.1 私有flavor 89
10.2.2 如何修改现存的flavor 90
10.3 安全组 90
10.3.1 通用的安全组配置 90
10.3.2 终端用户的安全组配置 91
10.4 块存储 93
10.5 实例 94
10.5.1 启动实例 94
10.5.2 实例启动失败 95
10.5.3 使用实例特有的数据 96
10.6 关联安全组 98
10.7 浮动IP 98
10.8 添加块存储 99
10.9 制作快照 100
10.10 数据库中的实例 102
10.11 祝你好运! 103
第11章 维护、故障和调试 104
11.1 云控制器和存储代理的故障及维护 104
11.1.1 计划中的维护 104
11.1.2 重启云控制器或存储代理 104
11.1.3 重启云控制器或存储代理之后 105
11.1.4 云控制器彻底故障 105
11.2 计算节点的故障和维护 106
11.2.1 计划中的维护 106
11.2.2 计算节点重启之后 106
11.2.3 虚拟机实例 107
11.2.4 检测并从故障实例中恢复数据 107
11.2.5 卷 110
11.2.6 计算节点彻底故障 110
11.2.7 /var/lib/nova/instances 111
11.3 存储节点故障和维护 112
11.3.1 重启存储节点 112
11.3.2 关闭存储节点 112
11.3.3 更换一块Swift磁盘 112
11.4 处理彻底故障 113
11.5 配置管理 114
11.6 使用硬件 114
11.6.1 添加计算节点 114
11.6.2 添加对象存储节点 115
11.6.3 替换组件 115
11.7 数据库 115
11.7.1 数据库连接 115
11.7.2 性能与优化 116
11.8 HDWMY 116
11.8.1 每小时 116
11.8.2 每天 116
11.8.3 每星期 116
11.8.4 每个月 117
11.8.5 每季度 117
11.8.6 每半年 117
11.9 确定哪个组件已被破坏 117
11.9.1 跟踪日志 117
11.9.2 CLI上运行的守护进程 118
11.10 卸载 119
第12章 网络排障 120
12.1 使用“ip a”检查网络接口状态 120
12.2 云中的nova-network流量虚拟化 121
12.3 云中的OpenStack网络服务流量虚拟化 122
12.4 找出网络路径中的故障 128
12.4.1 tcpdump 128
12.4.2 iptables 129
12.5 nova-network在数据库中的网络配置 130
12.6 用nova-network排查DHCP故障 131
12.7 DNS故障排查 134
12.8 Open vSwitch故障排查 135
12.9 处理网络命名空间 136
12.10 总结 137
第13章 日志和监控 138
13.1 日志在哪里 138
13.2 阅读日志 139
13.3 跟踪实例的请求 140
13.4 添加自定义日志语句 141
13.5 RabbitMQ Web管理界面或rabbitmqctl 141
13.6 集中化日志管理 142
13.6.1 rsyslog客户端配置 142
13.6.2 rsyslog服务器端配置 143
13.7 StackTach 144
13.8 监控 144
13.8.1 进程监控 144
13.8.2 资源告警 145
13.8.3 用Ceilometer来测量和遥测 146
13.8.4 OpenStack特有的资源 146
13.8.5 智能告警 148
13.8.6 趋势分析 149
13.9 总结 150
第14章 备份和恢复 151
14.1 备份什么 151
14.2 数据库备份 152
14.3 文件系统备份 152
14.3.1 计算服务 152
14.3.2 镜像目录和发送 153
14.3.3 身份服务 153
14.3.4 块存储 153
14.3.5 对象存储 153
14.4 恢复备份 153
14.5 总结 154
第15章 定制化 155
15.1 创建OpenStack开发环境 156
15.2 定制对象存储(swfit)中间件 158
15.3 定制OpenStack计算服务(nova)调度器 164
15.4 定制控制面板(Horizon) 169
15.5 总结 169
第16章 OpenStack上游 170
16.1 获得帮助 170
16.2 报告bug 171
16.2.1 确认和划分优先级 172
16.2.2 修复bug 173
16.2.3 修复被接受后 173
16.3 加入OpenStack社区 173
16.4 如何为文档作贡献 174
16.5 安全信息 174
16.6 查找额外的信息 175
第17章 高级配置 176
17.1 不同驱动间的区别 176
17.2 执行周期性任务 177
17.3 谈谈具体的配置 178
17.3.1 计算服务、组网和存储的安全配置 178
17.3.2 高可用性 178
17.3.3 启用IPv6支持 178
17.3.4 计算服务的周期性任务频率 178
17.3.5 对象存储的地理注意事项 178
第18章 升级 180
18.1 升级之前的测试环境 180
18.2 准备回滚 181
18.3 升级 181
18.4 如何从Grizzly升级到Havana:Ubuntu 182
18.4.1 对用户的影响 182
18.4.2 升级的注意事项 182
18.4.3 做备份 183
18.4.4 管理仓库 183
18.4.5 升级配置文件 183
18.4.6 在控制器节点上升级软件包 185
18.4.7 在控制器节点上停止服务、升级数据库模式,并重启服务 186
18.4.8 在计算节点上升级软件包和重启服务 187
18.4.9 在块存储节点上升级软件包和重启服务 187
18.5 如何从Grizzly升级到Havana:Red Hat Enterprise Linux和其衍生版 188
18.5.1 对用户的影响 188
18.5.2 升级的注意事项 188
18.5.3 做备份 188
18.5.4 管理仓库 189
18.5.5 升级配置文件 189
18.5.6 在控制器节点上升级软件包 191
18.5.7 在控制器节点上停止服务,升级数据库模式,并重启服务 192
18.5.8 在计算节点上升级软件包和重启服务 193
18.5.9 在块存储节点上升级软件包和重启服务 193
18.6 清理和最终的配置文件升级 194
18.7 回滚一次失败的升级 194
附录A 用例 198
附录B 云中秘事 202
附录C 使用路线图 212
附录D Icehouse预览 218
附录E 参考资源 227
术语表 229