本书基于OpenStack Kilo版讲述了部署相关的内容,是作者多年实践经验的总结。书中不仅对上一版进行了修订,还增加了桌面虚拟化、Neutron与SDN、分布式存储、Swift对象存储、Hadoop弹性集群、Heat与Ceilometer组件、Docker、VMware与OpenStack镜像互转等新内容。
OpenStack中国社区核心技术交流群管理员之作
企业评估OpenStack云平台能力的参考书
云计算、网络、存储以及大数据处理融为一体的实践部署指导书
OpenStack中国社区核心技术交流群的管理员之一,志力于推动OpenStack在中国企业的应用,帮助企业降低IT成本,提高经济收益。
1989年毕业于吉林大学计算机系,从modem、3 、Novell、x.25、DDN、FrameRelay、ATM等开始网络技术学习,从SCO Unix、dBase、FoxBase、Oracle、Informix等开始学习主机与数据库技术。
1999年,加入朗讯科技公司。至2011年,一直在外企工作。虽然期间也从事了销售与渠道管理工作,但由于对技术的热爱以及前期在网络方面的知识储备,从未中断学习技术。
2012年,开始从事OpenStack云计算系统的技术、实验以及724运行的生产类系统的部署,完成了大量的实验工作。
目 录
第1章 OpenStack基本操作系统环境的
PXE自动部署 1
1.1 PXE、Kickstart与Preseed简介 2
1.1.1 PXE简介 2
1.1.2 Kickstart与Preseed简介 2
1.2 PXE服务器的准备 2
1.2.1 选择Ubuntu操作系统 3
1.2.2 Ubuntu操作系统的基本安装
与更新 3
1.3 复制Ubuntu和CentOS操作系统文件 5
1.3.1 复制Ubuntu操作系统全目录、内核与启动镜像文件 5
1.3.2 复制CentOS操作系统全目录、内核与启动镜像文件 6
1.4 PXE客户端操作系统的选择与引导
过程 6
1.4.1 创建PXE客户端导示文件 7
1.4.2 选择安装配置文件 7
1.5 CentOS宿主机的Kickstart配置文件 9
1.6 OpenStack计算节点的主机Preseed
配置文件 12
1.7 使用PXE安装CentOS 7的脚本 15
1.8 常见问题与处理 17
1.9 小结 17
1.10 参考资源 17
第2章 OpenStack与网络 18
2.1 网卡管理工具ethtool 18
2.1.1 安装与使用ethtool 18
2.1.2 网卡子接口 20
2.1.3 网卡信息文件 21
2.1.4 OpenStack:运用网卡子接口
模拟多网卡 22
2.2 网桥及网桥管理工具bridge-utils 22
2.2.1 安装与使用bridge-utils 23
2.2.2 理解网桥的IP地址与虚拟机
的IP地址 23
2.2.3 Ubuntu下网桥的配置文件 24
2.2.4 CentOS下网桥的配置文件 24
2.2.5 将虚拟机与某个网桥连接 24
2.3 虚拟局域网VLAN 25
2.3.1 VLAN协议802.1Q 25
2.3.2 接入端口与中继端口 26
2.3.3 VLAN管理工具vconfig 26
2.4 主机多网卡静态路由配置 28
2.5 Open vSwitch简介与实验 28
2.5.1 Open vSwitch简介 29
2.5.2 安装Open vSwitch 29
2.5.3 使用ovs-vsctl管理OVS 31
2.5.4 OVS的数据库配置与网络
配置文件的关系 33
2.5.5 设置VLAN及VLAN接口的
IP地址 34
2.5.6 OVS支持OpenFlow的SDN
模式 34
2.6 构建云中的网络 35
2.6.1 VLAN的优势与局限 35
2.6.2 GRE的特点 36
2.6.3 VXLAN的特点 36
2.7 Linux内核的VXLAN功能实验记录 37
2.7.1 实验环境及目标 37
2.7.2 配置与测试VXLAN 38
2.7.3 测试与结果 40
2.8 Linux内核VXLAN与Open vSwitch的
结合 40
2.9 网络名字空间及网络虚拟设备 41
2.9.1 网络名字空间 41
2.9.2 网络名字空间与系统空间的
数据转发 41
2.10 小结 42
2.11 参考资源 42
第3章 OpenStack基本控制服务多点
部署 43
3.1 部署环境说明 43
3.2 控制节点主机环境准备 45
3.2.1 服务器硬件准备 45
3.2.2 操作系统环境准备 45
3.3 虚拟机镜像的准备 46
3.3.1 虚拟机镜像网络接口准备 46
3.3.2 虚拟机镜像NTP安装 47
3.3.3 虚拟机镜像Kilo源安装 47
3.4 OpenStack基本控制服务组件的安装
与配置 48
3.4.1 OpenStack基本控制服务组件简介 48
3.4.2 MySQL服务器的安装与配置 48
3.4.3 RabbitMQ服务器的安装与
配置 51
3.4.4 Keystone服务器的安装与配置 53
3.4.5 租户、用户、角色、服务端点及用户身份环境变量 55
3.4.6 决定用户操作权限的policy.
json文件 56
3.4.7 Glance服务器的安装与配置 62
3.4.8 Nova API节点的安装与配置 66
3.4.9 Horizon服务器的安装与配置 71
3.5 OpenStack基本服务运行简要验证 74
3.6 小结 74
3.7 参考资源 74
第4章 nova-network多机部署及
企业应用 75
4.1 nova-network多主机部署简介 75
4.2 部署环境说明 76
4.3 nova-network FlatDHCP部署模式 76
4.3.1 计算节点主机准备 77
4.3.2 安装Ubuntu操作系统 77
4.3.3 网络配置 77
4.3.4 时间服务 78
4.3.5 安装OpenStack Kilo源 78
4.3.6 软件安装 78
4.3.7 服务配置 78
4.3.8 服务启动 81
4.3.9 运行验证 81
4.4 创建并管理虚拟机 82
4.5 nova-net workVLAN部署模式 88
4.6 nova-network元数据处理 89
4.6.1 元数据简要介绍 89
4.6.2 元数据请求及服务模式 89
4.6.3 元数据处理过程 90
4.7 nova-network企业应用模式调整 91
4.7.1 OpenStack企业内部应用的
调整要求 91
4.7.2 nova-network的IP地址管理及流量模式 91
4.7.3 企业多点多主机nova-network部署示意图 93
4.7.4 企业内多网段与虚拟机多网卡 94
4.8 小结 95
4.9 参考资源 96
第5章 OpenStack桌面虚拟化 97
5.1 虚拟桌面协议介绍 97
5.2 免费使用的xVDI System I虚拟桌面
系统 99
5.3 xVDI System I 虚拟桌面系统部署 100
5.3.1 xVDI-Server 镜像下载与解压 100
5.3.2 xVDI-Server 软件代码、root及IP地址信息 101
5.3.3 xVDI-Server 配置 101
5.3.4 xVDI-Server 服务的运行状态
验证 102
5.3.5 xVDI客户端的安装与使用 103
5.4 无法连接Windows虚拟机的异常
处理 105
5.4.1 无法连接OpenStack中的Windows虚拟机 105
5.4.2 Windows虚拟机运行性能表现不佳 106
5.5 小结 106
5.6 参考资源 106
第6章 OpenStack Neutron 网络服务 107
6.1 部署环境说明 107
6.2 Neutron组件的构成及原理 108
6.3 Neutron 组件的安装 110
6.3.1 Neutron Server的安装 110
6.3.2 网络节点软件安装 114
6.3.3 计算节点Neutron Agent组件
的安装 116
6.3.4 调整nova-api与计算节点的nova.conf配置文件 117
6.4 Linuxbridge VLAN/VXLAN网络模式
配置 119
6.4.1 部署架构 119
6.4.2 相关配置文件说明 120
6.4.3 重启Neutron相关的服务 123
6.5 Open vSwitch GRE部署模式及相关
配置文件 125
6.5.1 GRE部署架构 125
6.5.2 创建br-ex网桥 125
6.5.3 相关配置文件说明 126
6.5.4 重启Neutron相关的服务 127
6.5.5 调整nova-api与计算节点的nova.conf配置文件 129
6.6 Neutron网络模式下元数据服务路径 131
6.7 Neutron模式下创建网络的相关操作 133
6.7.1 查看当前环境中的网络 134
6.7.2 创建公网与子网 135
6.8 Neutron DVR 140
6.9 参考资源 141
第7章 Neutron与SDN融合 142
7.1 广义的SDN 142
7.2 Arista 官方SDN原理图 142
7.3 实验环境说明 143
7.4 配置Arista交换机 144
7.4.1 配置交换机管理的IP 144
7.4.2 将交换机注册到CVX中 145
7.4.3 访问交换机的API 146
7.4.4 配置交换机的中继端口 146
7.4.5 启用链路发现协议(LLDP) 146
7.4.6 配置交换机支持Neutron指令 148
7.5 配置Neutron Server 149
7.5.1 为neutron-server打补丁 149
7.5.2 配置ml2使用Arista驱动程序 150
7.5.3 重建neutron数据库 151
7.5.4 配置网络节点及计算节点 152
7.5.5 重启Neutron相关的服务 153
7.6 Neutron与Arista SDN联动测试 153
7.7 测试总结 156
7.8 参考资源 156
第8章 分布式存储系统 157
8.1 分布式文件系统MooseFS 157
8.1.1 MFS的架构简介 158
8.1.2 MFS的安装与配置 158
8.1.3 实验环境 158
8.1.4 mfs-master服务器安装 159
8.1.5 mfs-metalogger服务器的安装 161
8.1.6 mfs-chunk服务器的安装 163
8.1.7 MFS客户端的安装 166
8.1.8 MFS功能测试 168
8.1.9 OpenStack计算节点集成MFS中央存储 171
8.2 GlusterFS系统安装 171
8.2.1 部署环境说明 171
8.2.2 准备GlusterFS存储节点
虚拟机镜像 172
8.2.3 创建GlusterFS存储集群 173
8.2.4 创建GlusterFS存储卷 178
8.2.5 GlusterFS卷访问安全控制 181
8.2.6 安装客户端 182
8.3 Ceph系统安装 183
8.3.1 安装环境说明 184
8.3.2 准备ceph-deploy、Ceph mon及osd的虚拟机镜像 185
8.3.3 安装Ceph mon节点 187
8.3.4 增加cephmond和cephmone
节点 191
8.3.5 关于mon初始成员的法定人
数问题 192
8.3.6 创建Ceph osd节点集群 192
8.3.7 同步所有节点的时间 200
8.3.8 查看集群的健康状况 200
8.3.9 创建存储池 201
8.4 用户管理 202
8.5 客户端操作 203
8.5 小结 204
8.6 参考资源 204
第9章 OpenStack中央存储及虚拟机
动态迁移 205
9.1 NFS中央存储模式 205
9.1.1 NetApp的NFS服务准备 205
9.1.2 计算节点客户端NFS的安装
与配置 207
9.2 虚拟机动态迁移 207
9.2.1 准备要求 208
9.2.2 调整libvirt服务及nova.conf的配置 208
9.2.3 动态迁移实验 209
9.3 NFS系统的不足及pNFS的发展 210
9.3.1 NFS的不足 210
9.3.2 pNFS的发展 210
9.4 参考资源 211
第10章 Cinder卷服务 212
10.1 Cinder的安装与配置及连接Netapp
存储后端 212
10.1.1 部署环境说明 212
10.1.2 Cinder服务器的安装及配置 213
10.1.3 验证服务的运行状态 216
10.1.4 创建、使用与删除卷 217
10.2 连接Gluster存储后端 220
10.2.1 实验环境说明 220
10.2.2 安装与配置Cinder及计算
节点 220
10.2.3 测试Cinder、计算节点与Gluster后端的连通性 222
10.2.4 Cinder与Gluster协作测试 222
10.3 连接Ceph存储后端 224
10.3.1 实验环境说明 224
10.3.2 安装Ceph软件到相关节点 225
10.3.3 准备存储池及用户 225
10.3.4 配置计算节点 226
10.3.5 配置Cinder 227
10.3.6 验证Cinder与计算节点均
可以创建卷 228
10.3.7 创建云硬盘并将其附加到
虚拟机中 228
10.4 小结 229
10.5 参考资源 229
第11章 Swift存储系统部署 230
11.1 Swift系统简介及原理 230
11.1.1 Swift系统的来源 230
11.1.2 Swift系统的基本原理 230
11.2 Swift环境部署简介 232
11.3 公共服务部署与服务注册 233
11.3.1 NTP时间安装 233
11.3.2 虚拟机镜像Kilo源安装 234
11.3.3 ssh-key生成与下发 234
11.3.4 注册Swift服务 234
11.4 account-container-server部署 235
11.4.1 网络配置 235
11.4.2 配置主机Hosts文件 236
11.4.3 服务安装 236
11.4.4 配置数据存储盘 236
11.4.5 配置rsync服务 236
11.4.6 启动rsync服务 237
11.4.7 配置account-server服务 237
11.4.8 配置container-server服务 238
11.4.9 Swift服务验证配置 239
11.4.10修改文件夹权限 239
11.4.11 启动服务 239
11.5 object-server部署 239
11.5.1 网络配置 239
11.5.2 配置主机Hosts文件 240
11.5.3 安装服务 240
11.5.4 配置数据存储盘 240
11.5.5 配置rsync服务 241
11.5.6 启动rsync服务 241
11.5.7 配置object-server服务 242
11.5.8 Swift服务验证配置 242
11.5.9 修改文件夹权限 242
11.5.10 启动服务 243
11.6 proxy-server部署 243
11.6.1 网络配置 243
11.6.2 配置主机Hosts文件 243
11.6.3 软件安装 244
11.6.4 服务配置 244
11.6.5 Swift服务验证配置 245
11.6.6 修改文件夹权限 245
11.6.7 重启服务 245
11.7 Swift存储中使用ring文件的
创建与分发 246
11.7.1 account-server中使用的ring文件的创建与同步 246
11.7.2 container-server中使用的ring文件的创建与同步 247
11.7.3 object-server中使用的ring文件的创建与同步 248
11.7.4 Swift存储的ring文件
下发 251
11.8 proxy-server双机心跳服务部署 252
11.8.1 检查proxy-server的Hosts解析 252
11.8.2 安装心跳服务 252
11.8.3 服务配置 253
11.8.4 启动心跳服务 253
11.8.5运行验证 253
11.9 Swift验证与实践 254
11.9.1 设置身份验证的环境变量 254
11.9.2 查看Swift状态 255
11.9.3 新建容器 255
11.9.4 上传对象 255
11.9.5 删除对象 256
11.9.6 下载对象 256
11.10 Windows下Swift客户端的使用 256
11.10.1 客户端下载 256
11.10.2 客户端安装 256
11.10.3 客户端使用 257
11.10.4 通过客户端上传文件 260
11.11 Swift故障恢复 261
11.11.1 模拟object服务器数据
丢失 261
11.11.2 模拟Object服务器硬盘
故障 263
11.11.3 模拟object-server系统
故障 265
11.12 小结 269
11.13 参考资源 269
第12章 OpenStack与Docker 270
12.1 Docker简介 270
12.2 安装与运行Docker 271
12.2.1 Docker基础安装 271
12.2.2 查找及下载Docker镜像 271
12.2.3 启动并登录Docker容器 271
12.2.4 Docker与网络名字空间 272
12.2.5 Ceph RBD存储卷持久化 274
12.3 Machine、Swarm、Compose及
Flocker 276
12.4 Docker与OpenStack的融合 277
12.4.1 Machine方案 277
12.4.2 nova-docker方案 278
12.4.3 heat-docker方案 278
12.4.4 Magnum方案 279
12.5 nova-docker方案实践 279
12.5.1 novadocker的安装 280
12.5.2 配置计算节点 280
12.5.3 配置Glance 280
12.5.4 下载及上传镜像 280
12.5.5 创建虚拟机 281
12.5.6 查看网络信息 282
12.6 参考资源 283
第13章 Heat与弹性集群伸缩 284
13.1 Telemetry简介 284
13.2 Telemetry安装环境 285
13.3 Telemetry服务的安装与配置 285
13.3.1 MongoDB的安装与配置 285
13.3.2 安装Telemetry 287
13.4 Telemetry Agent安装 290
13.5 创建警告 292
13.6 Heat简介 296
13.7 Heat部署环境信息 297
13.8 Heat服务的安装与配置 297
13.8.1 创建heat数据库 297
13.8.2 向Keystone注册Heat服务 297
13.8.3 安装软件 298
13.8.4 配置服务 299