OpenStack架构分析与实践

副标题:无

作   者:管增辉

分类号:

ISBN:9787113249632

微信扫一扫,移动浏览光盘

简介


本书以实战开发为原则,以关键模块架构分析及项目开发为主线,通过OpenStack开发中常用的8个典型组件和若干典型项目案例,详细介绍了云平台中的计算、网络、存储、服务编排、智能运维等模块,并针对OpenStack中通用的关键技术进行了详细介绍。对于每一部分内容的讲解,章节的*后都会配备相应的实战案例供大家参考。

目录


第1章 走进OpenStack

1.1OpenStack是什么 1

1.1.1OpenStack的作用 1

1.1.2OpenStack的应用场景 2

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

1.2 为什么要学习OpenStack3

1.2.1OpenStack在云计算中的地位 3

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

1.3 如何学习OpenStack4

1.3.1对学习者的技术要求 4

1.3.2OpenStack的学习路线 4

1.4OpenStack的基本架构 5

1.5OpenStack的核心组件 7

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

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

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

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

2.1OpenStack部署方式 12

2.1.1DevStack方式部署 13

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

2.1.3RDO方式部署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 开发工具之Pycharm33

2.3.1Pycharm的安装与配置 33

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

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

2.3.3Pycharm与PDB的选用比较 35

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

第3章 虚拟化

3.1 虚拟化技术的现状 37

3.2KVM的管理工具Libvirt 38

3.2.1Libvirt简介 38

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

3.2.2Libvirt的体系结构 40

3.3OpenStack与虚拟化的结合 42

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

第4章 OpenStack通用技术

4.1RPC服务实现分析 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.2RabbitMQ实现RPC通信 58

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

4.3RESTful 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.4TaskFlow的实现 72

4.4.1TaskFlow常见使用场景 72

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

4.4.3TaskFlow具体实现 74

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

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

4.5 基于Eventlet的多线程技术 78

4.5.1进程、线程与协程 78

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

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

4.5.3创建协程的常用API 80

4.5.4定时和监听:Hub 81

4.5.5Eventlet中的并发机制 83

第5章 Nova—计算组件

5.1Nova架构 84

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

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

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

5.2nova-api服务 89

5.2.1nova-api服务的作用 89

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

5.3nova-scheduler服务 95

5.3.1基本原理及代码结构 96

5.3.2调度过程 97

5.3.3配置分析 100

5.4nova-compute服务 101

5.4.1nova-compute服务的作用 101

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

5.4.3nova-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.1nova-scheduler服务的启动流程 117

5.7.2虚拟机创建的流程 120

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

第6章 Neutron—网络组件

6.1Neutron的发展历程 126

6.2 网络基础 127

6.2.1网络的基本概念 127

6.2.2常用的网络设备 131

6.2.3虚拟网络技术 131

6.2.4Neutron网络的基本概念 133

6.3Neutron核心架构 135

6.3.1Neutron部署结构 135

6.3.2Neutron组成部件 136

6.3.3ML2 Core Plugin 138

6.3.4DHCP服务 141

6.3.5路由服务 142

6.3.6元数据服务 144

6.3.8Neutron使用示例 147

6.4 高级服务(AdvancedServices) 149

6.4.1Load Balancer as a Service(LBaaS) 149

6.4.2Firewall as a Service(FWaaS) 153

6.4.3VPN as a Service(VPNaaS) 155

6.5 典型网络模型分析 156

6.5.1Linux Bridge Flat/VLAN网络模型 156

6.5.2Open vSwitch VxLAN网络模型 161

6.5.3小结 171

第7章 Heat—服务编排组件

7.1Heat架构分析 172

7.1.1Heat组件的基本架构 173

7.1.2Heat对资源的管理 175

7.1.3认识HOT模板 177

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

7.2Heat中的锁机制 182

7.3Heat中的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.2Heat Stack创建流程 195

第8章 Keystone—认证组件

8.1Keystone的架构 198

8.1.1Keystone的作用 199

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

8.1.3基本架构解析 203

8.1.4自定义Keystone Plugin 205

8.1.5支持使用External Plugin 206

8.2Keystone中的基本概念 207

8.2.1API V2和API V3 207

8.2.2其他常见概念 208

8.2.3多区域multi-region 209

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

8.3.1Keystone的安装部署 211

8.3.2Keystone基本操作 212

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

8.4Keystone的认证流程 215

8.4.1认证方式 215

【示例8-2】以查看虚拟机列表为例,使用X-Auth-Token构造一个

合法的HTTP请求 215

8.4.2令牌生成方式 216

8.4.3Keystone工作流程 220

第9章 Cinder—块存储组件

9.1Cinder架构分析 222

9.2Cinder的安装 225

9.2.1安装与配置存储节点 225

9.2.2安装与配置控制节点 227

9.2.3安装与配置Backup服务 231

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

9.2.5Cinder配置存储后端 234

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

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

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

9.4.1cinder-api代码目录结构 239

9.4.2cinder-api服务启动流程 240

9.4.3REST请求的路由 242

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

9.5.1Volume创建示例 245

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

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

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

第10章 Ceilometer—数据采集组件

10.1Ceilometer架构分析 254

10.1.1Ceilometer中的基本概念 255

10.1.2旧版Ceilometer架构 256

10.1.3新版Ceilometer架构 258

10.2数据处理 260

10.2.1Notification Agents数据收集 261

10.2.2Polling Agents数据收集 262

10.2.3数据转换与发布 263

10.3Pipelines 265

10.4计量项 267

10.5Agent和Plugin 269

10.5.1Polling Agents 270

10.5.2Plugins 272

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

10.6.1系统介绍 274

10.6.2准备模板 275

10.6.3创建系统 277

第11章 Glance—镜像组件

11.1Glance架构分析 279

11.2状态分析 280

11.3代码结构与概念分析 281

11.3.1Metadata定义 283

11.3.2Domain模型 285

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

11.3.3Task定义 287

11.4Glance的安装与配置 287

11.4.1Glance安装部署 288

11.4.2Glance基本配置 292

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

11.5镜像缓存 293

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

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

12.1Vitrage架构 297

12.1.1High Level架构设计 298

12.1.2Low Level架构设计 300

12.2Vitrage安装部署 301

12.2.1手动方式安装部署Vitrage 301

12.2.2通过DevStack安装Vitrage 303

12.3Vitrage 模板 304

12.3.1Templates(模板)的结构 304

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

12.3.2模板的加载过程 306

12.3.3添加自定义模板 307

12.4Vitrage Evaluator 310

12.5自定义Datasources 312

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

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

13.1Mistral—工作流组件 317

13.1.1Mistral应用场景 318

13.1.2Mistral中的重要概念 318

13.1.3Mistral功能介绍 320

13.1.4Mistral架构分析 322

13.1.5Mistral实战应用 322

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

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

13.2OpenStack智能运维解决方案 326

13.2.1可视化的Dynatrace 327

13.2.2VirtTool Networks 327

13.2.3智能运维Vitrage 329

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

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

14.1.1cloud-init的安装与配置 333

14.1.2cloud-init对VM进行配置 338

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

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

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

14.2.1Redis HA方案实现 347

14.2.2Redis Cluster集群实现 358

第15章 OpenStack架构与代码实践

15.1OpenStack架构设计思路 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


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

OpenStack架构分析与实践
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon