当前位置:首页 > 工业技术
OpenStack架构分析与实践
OpenStack架构分析与实践

OpenStack架构分析与实践PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:管增辉,曾凡浪编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2018
  • ISBN:9787113249632
  • 页数:378 页
图书介绍:本书以实战开发为原则,以关键模块架构分析及项目开发为主线,通过OpenStack开发中最常见的8个典型模块和若个典型项目案例,详细介绍了云平台中的计算、网络、存储、服务编排、智能运维等模块,并针对OpenStack中通用的关键技术进行了详细介绍。
《OpenStack架构分析与实践》目录

第1章 走进OpenStack 1

1.1 OpenStack是什么 1

1.1.1 OpenStack的作用 1

1.1.2 OpenStack的应用场景 2

1.1.3 什么类型的工作要学OpenStack 3

1.2 为什么要学习OpenStack 3

1.2.1 OpenStack在云计算中的地位 3

1.2.2 云计算新时代:容器vs虚拟化 4

1.3 如何学习OpenStack 4

1.3.1 对学习者的技术要求 4

1.3.2 OpenStack的学习路线 4

1.4 OpenStack的基本架构 5

1.5 OpenStack的核心组件 7

1.5.1 计算资源管理:Nova组件 7

1.5.2 存储资源管理:Cinder/Swift组件 8

1.5.3 网络资源管理:Neutron组件 9

第2章 OpenStack部署与社区贡献流程 12

2.1 OpenStack部署方式 12

2.1.1 DevStack方式部署 13

2.1.2 手动部署分布式OpenStack环境 18

2.1.3 RDO方式部署OpenStack 22

2.2 为OpenStack社区作贡献 25

2.2.1 提交前的环境准备 26

2.2.2 代码贡献流程 28

【示例2-1】代码贡献流程之bug Fix 28

2.2.3 文档贡献流程 30

【示例2-2】以heat为例来演示HTML的生成过程 31

2.2.4 其他内容的贡献流程 32

2.3 开发工具之Pycharm 33

2.3.1 Pycharm的安装与配置 33

2.3.2 使用Pycharm对代码进行远程调试 34

【示例2-3】通过Pycharm调试OpenStack中nova list的代码 34

2.3.3 Pycharm与PDB的选用比较 35

【示例2-4】开发工具之PDB断点调试 35

第3章 虚拟化 37

3.1 虚拟化技术的现状 37

3.2 KVM的管理工具Libvirt 38

3.2.1 Libvirt简介 38

【示例3-1】通过Libvirt提供的API virsh对虚拟机生命周期实现管理 39

3.2.2 Libvirt的体系结构 40

3.3 OpenStack与虚拟化的结合 42

3.4 虚拟机配置libvirt.xml详解 45

第4章 OpenStack通用技术 49

4.1 RPC服务实现分析 49

【示例4-1】在OpenStack RPC中创建Server并实现Client向Server发送请求(以rpc、calll为例) 53

4.2 消息队列服务分析 54

4.2.1 透彻理解中间件RabbitMQ 54

【示例4-2】通过“Hello World”演示如何RabbitMQ的消息收发过程 55

4.2.2 RabbitMQ实现RPC通信 58

【示例4-3】RabbitMQ之RPC通信案例 58

4.3 RESTful API开发框架 64

4.3.1 灵活但不易用:基于Pastedeploy和Routes的API框架 65

【示例4-4】通过nova list获取虚拟机的命令,根据Nova的api-paste.ini来说明是如何路由的 68

4.3.2 基于Pecan的API框架 69

4.4 TaskFlow的实现 72

4.4.1 TaskFlow常见使用场景 72

4.4.2 TaskFlow中必须理解的重要概念 73

4.4.3 TaskFlow具体实现 74

【示例4-5】TaskFlow仔细看,重实践得体感 74

【示例4-6】TaskFlow功能多,长流程特别火 76

4.5 基于Eventlet的多线程技术 78

4.5.1 进程、线程与协程 78

4.5.2 Eventlet依赖的两个库:greenlet和select.epoll 79

【示例4-7】greenlet库应用之协程切换 79

4.5.3 创建协程的常用API 80

4.5.4 定时和监听:Hub 81

4.5.5 Eventlet中的并发机制 83

第5章 Nova——计算组件 84

5.1 Nova架构 84

5.1.1 Nova基本架构及服务组成 85

5.1.2 Nova内部服务间的通信机制 86

5.1.3 Nova内部服务间协同工作 88

5.2 nova-api服务 89

5.2.1 nova-api服务的作用 89

5.2.2 nova-api服务的启动流程 91

5.3 nova-scheduler服务 95

5.3.1 基本原理及代码结构 96

5.3.2 调度过程 97

5.3.3 配置分析 100

5.4 nova-compute服务 101

5.4.1 nova-compute服务的作用 101

5.4.2 nova-compute服务的启动流程 103

5.4.3 nova-compute服务的日志分析 105

5.5 周期性任务的实现 106

5.5.1 什么是周期性任务 107

5.5.2 周期性任务的代码 108

5.6 资源及服务刷新机制 111

5.6.1 服务上报机制 111

5.6.2 主机资源刷新机制 112

5.7 典型流程分析 117

5.7.1 nova-scheduler服务的启动流程 117

5.7.2 虚拟机创建的流程 120

5.8 案例实战——Nova以Ceph作为后端存储 122

第6章 Neutron——网络组件 126

6.1 Neutron的发展历程 126

6.2 网络基础 127

6.2.1 网络的基本概念 127

6.2.2 常用的网络设备 131

6.2.3 虚拟网络技术 131

6.2.4 Neutron网络的基本概念 133

6.3 Neutron核心架构 135

6.3.1 Neutron部署结构 135

6.3.2 Neutron组成部件 136

6.3.3 ML2 Core Plugin 138

6.3.4 DHCP服务 141

6.3.5 路由服务 142

6.3.6 元数据服务 144

6.3.8 Neutron使用示例 147

6.4 高级服务(Advanced Services) 149

6.4.1 Load Balancer as a Service(LBaaS) 149

6.4.2 Firewall as a Service(FWaaS) 153

6.4.3 VPN as a Service(VPNaaS) 155

6.5 典型网络模型分析 156

6.5.1 Linux Bridge+Flat/VLAN网络模型 156

6.5.2 Open vSwitch+VxLAN网络模型 161

6.5.3 小结 171

第7章 Heat——服务编排组件 172

7.1 Heat架构分析 172

7.1.1 Heat组件的基本架构 173

7.1.2 Heat对资源的管理 175

7.1.3 认识HOT模板 177

7.1.4 小实例:通过HOT模板创建虚拟机 180

7.2 Heat中的锁机制 182

7.3 Heat中的Hook机制 184

【示例7-1】在通过Heat进行资源定义时,应该如何使用Hook(钩子) 185

【示例7-2】通过Heat创建一个Stack,在创建Stack时,需要通过Environment来定义Hook(钩子) 186

7.4 案例实战——Heat典型案例 189

7.4.1 通过Heat模板创建Stack 189

7.4.2 Heat Stack创建流程 195

第8章 Keystone——认证组件 198

8.1 Keystone的架构 198

8.1.1 Keystone的作用 199

8.1.2 Keystone与其他组件间的关系 201

8.1.3 基本架构解析 203

8.1.4 自定义Keystone Plugin 205

8.1.5 支持使用External Plugin 206

8.2 Keystone中的基本概念 207

8.2.1 API V2和API V3 207

8.2.2 其他常见概念 208

8.2.3 多区域multi-region 209

8.3 Keystone的安装部署与基本操作 211

8.3.1 Keystone的安装部署 211

8.3.2 Keystone基本操作 212

【示例8-1】使用OpenStack user create创建一个名为test的用户 212

8.4 Keystone的认证流程 215

8.4.1 认证方式 215

【示例8-2】以查看虚拟机列表为例,使用X-Auth-Token构造一个合法的HTTP请求 215

8.4.2 令牌生成方式 216

8.4.3 Keystone工作流程 220

第9章 Cinder——块存储组件 222

9.1 Cinder架构分析 222

9.2 Cinder的安装 225

9.2.1 安装与配置存储节点 225

9.2.2 安装与配置控制节点 227

9.2.3 安装与配置Backup服务 231

9.2.4 安装正确性验证及Cinder基本操作 232

9.2.5 Cinder配置存储后端 234

【示例9-1】LVM作为Cinder的后端存储 234

9.3 案例实战——通过Heat模板创建Cinder Volume 235

9.4 Cinder API服务启动过程分析 238

9.4.1 cinder-api代码目录结构 239

9.4.2 cinder-api服务启动流程 240

9.4.3 REST请求的路由 242

9.5 案例实战——关键代码分析 245

9.5.1 Volume创建示例 245

9.5.2 代码分析之cinder-api接收请求 247

9.5.3 代码分析之cinder-scheduler进行资源调度 249

9.5.4 代码分析之cinder-volume调用Driver创建Volume 251

第10章 Ceilometer——数据采集组件 254

10.1 Ceilometer架构分析 254

10.1.1 Ceilometer中的基本概念 255

10.1.2 旧版Ceilometer架构 256

10.1.3 新版Ceilometer架构 258

10.2 数据处理 260

10.2.1 Notification Agents数据收集 261

10.2.2 Polling Agents数据收集 262

10.2.3 数据转换与发布 263

10.3 Pipelines 265

10.4 计量项 267

10.5 Agent和Plugin 269

10.5.1 Polling Agents 270

10.5.2 Plugins 272

10.6 案例实战——Heat与Ceilometer结合,搭建一个弹性伸缩系统 274

10.6.1 系统介绍 274

10.6.2 准备模板 275

10.6.3 创建系统 277

第11章 Glance——镜像组件 279

11.1 Glance架构分析 279

11.2 状态分析 280

11.3 代码结构与概念分析 281

11.3.1 Metadata定义 283

11.3.2 Domain模型 285

【示例11-1】自定义Gateway方法 285

11.3.3 Task定义 287

11.4 Glance的安装与配置 287

11.4.1 Glance安装部署 288

11.4.2 Glance基本配置 292

【示例11-2】修改Glance后端存储为RBD 292

11.5 镜像缓存 293

11.6 案例实战——Glance常见场景之镜像创建 294

第12章 智能运维Vitrage——RCA组件 297

12.1 Vitrage架构 297

12.1.1 High Level架构设计 298

12.1.2 Low Level架构设计 300

12.2 Vitrage安装部署 301

12.2.1 手动方式安装部署Vitrage 301

12.2.2 通过DevStack安装Vitrage 303

12.3 Vitrage模板 304

12.3.1 Templates(模板)的结构 304

【示例12-1】Host处于ERROR状态时,触发告警的模板 305

12.3.2 模板的加载过程 306

12.3.3 添加自定义模板 307

12.4 Vitrage Evaluator 310

12.5 自定义Datasources 312

12.6 案例实战——Vitrage中的告警解决方案 314

第13章 OpenStack其他组件及智能运维方案 317

13.1 Mistral——工作流组件 317

13.1.1 Mistral应用场景 318

13.1.2 Mistral中的重要概念 318

13.1.3 Mistral功能介绍 320

13.1.4 Mistral架构分析 322

13.1.5 Mistral实战应用 322

【示例13-1】为Mistral添加用户自定义Action 322

【示例13-2】通过Mistral获取虚拟机数据 323

13.2 OpenStack智能运维解决方案 326

13.2.1 可视化的Dynatrace 327

13.2.2 VirtTool Networks 327

13.2.3 智能运维Vitrage 329

第14章 OpenStack应用实战:自动编排和配置高可用Redis系统 332

14.1 利用cloud-init配置虚拟机 332

14.1.1 cloud-init的安装与配置 333

14.1.2 cloud-init对VM进行配置 338

【示例14-1】通过cloud-init配置虚拟机 341

14.1.3 cloud-init调试过程与问题分析 343

14.2 Redis数据库的HA实现及Redis集群的创建 347

14.2.1 Redis HA方案实现 347

14.2.2 Redis Cluster集群实现 358

第15章 OpenStack架构与代码实践 366

15.1 OpenStack架构设计思路 366

15.1.1 业务架构设计思路 366

15.1.2 部署架构设计思路 368

15.1.3 平台用户角色设计 369

15.2 案例实战——向Heat中添加自定义资源 370

15.2.1 实现原理及思路分析 370

15.2.2 向Heat中添加Zabbix资源 371

15.2.3 定义Zabbix Action 373

15.2.4 实现AutoScaling模板 375

15.2.5 资源查看 377

返回顶部