《OpenStack开源云王者归来 云计算、虚拟化、Nova、Swift、Quantum与Hadoop》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:戢友
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302367000
  • 页数:633 页
图书介绍:本书分4篇19章,其中入门篇介绍了云计算的概念及需要基础知识,重点介绍了如何使用Xen、Kvm、Libvirt这些工具的使用;安装篇对OpenStack每个组件的安装都进行了详细的介绍,除此以外还给出了整个云计算系统的部署参考;剖析篇则重点剖析了OpenStack的内部结构,分别介绍了各个组件的内部实现;扩展篇则介绍了如何在OpenStack的基础上进行扩展与定制。

第1篇 基础篇 2

第1章 OpenStack概述 2

1.1云计算简介 2

1.1.1什么是云计算 2

1.1.2什么是云存储 3

1.1.3私有云与公有云 4

1.2为什么使用云计算 5

1.2.1方案1:简单的服务部署 5

1.2.2方案2:分布式服务部署 6

1.2.3方案3:基于虚拟化的服务部署 8

1.2.4方案4:云计算的解决方案 11

1.3 OpenStack架构 13

1.3.1 OpenStack与云计算 13

1.3.2 OpenStack发展与现状 13

1.3.3 OpenStack优势 14

1.3.4 OpenStack学习建议 15

1.4 OpenStack各个组件及功能 16

1.4.1虚拟机管理系统Nova 16

1.4.2磁盘存储系统Glance与Swift 17

1.4.3虚拟网络管理Quantum 18

1.4.4 OpenStack三大组件 18

1.5小结 19

第2章 虚拟化技术 20

2.1虚拟化技术简介 20

2.1.1 KVM 20

2.1.2Xen 21

2.1.3Libvirt 22

2.2安装Libvirt虚拟化工具 22

2.2.1安装KVM 22

2.2.2安装Libvirt 24

2.3虚拟机配置文件详解 25

2.3.1 xml描述hypervisor 26

2.3.2虚拟机整体信息 28

2.3.3系统信息 29

2.3.4硬件资源特性 29

2.3.5突发事件处理 30

2.3.6 raw格式image 30

2.3.7 qcow2格式image 31

2.3.8格式的选择 34

2.3.9多个image 35

2.3.10虚拟光盘 36

2.3.11虚拟网络 36

2.3.12 vnc配置 39

2.4制作image 39

2.4.1 virt-manager创建image 40

2.4.2 virsh命令创建image 44

2.5快速启动虚拟机 47

2.5.1手动安装 47

2.5.2直接复制 47

2.5.3 qcow2快速创建 48

2.5.4修改qcow2image 49

2.5.5大批量创建虚拟机 52

2.6虚拟机桌面显示 57

2.6.1准备工作 58

2.6.2创建Windows 7Image 58

2.6.3创建Windows 7虚拟机 60

2.6.4 spice桌面显示 61

2.7常见错误与分析 62

2.8小结 63

2.8.1常用的virsh命令 63

2.8.2磁盘快照管理 66

第2篇 安装篇 70

第3章 安装Keystone安全认证服务 70

3.1 Keystone简介 70

3.2搭建局域网源 71

3.2.1局域网apt-get源搭建方法 71

3.2.2局域网python源搭建方法 72

3.2.3 Ubuntu-12.10局域网源 74

3.3搭建 MySQL数据库 74

3.3.1 apt-get安装MySQL 74

3.3.2源码安装MySQL 78

3.4安装RabbitMQ消息通信服务 80

3.5安装Keystone 81

3.5.1 python源码包的安装 81

3.5.2 Keystone自动化安装 83

3.5.3 Keystone客户端使用及测试 91

3.5.4 Keystone的管理 92

3.6常见错误与分析 94

3.6.1无法下载python依赖包 95

3.6.2 Keystone命令运行失败 95

3.7小结 96

第4章 安装Swift存储服务 97

4.1 Swift基本概念 97

4.1.1 Swift的特性 97

4.1.2 Swift的架构 98

4.1.3 Swift的故障处理 99

4.1.4 Swift的集群部署 100

4.2搭建环境 101

4.2.1准备工作 101

4.2.2创建Proxy Node 102

4.2.3创建Storage Node 102

4.3安装Proxy服务 102

4.3.1解决依赖关系 103

4.3.2注册Swift服务 104

4.3.3配置Proxy服务 105

4.3.4启动Proxy服务 108

4.4安装存储服务 109

4.4.1磁盘格式化 110

4.4.2同步服务 112

4.4.3子服务 113

4.4.4启动存储服务 115

4.5管理存储服务 116

4.5.1使用存储服务 116

4.5.2删除存储节点 117

4.5.3添加存储节点 117

4.5.4添加Proxy节点 118

4.6常见错误及分析 118

4.6.1 Keystone注册用户失败 118

4.6.2 Proxy服务无法正常启动 119

4.6.3存储服务无法使用 119

4.7小结 121

4.7.1安装Proxy Node 121

4.7.2安装Storage Node 122

第5章 安装Glance镜像服务 123

5.1 Glance简介 123

5.2 Glance服务的安装 123

5.2.1解决依赖关系 124

5.2.2注册Glance服务至Keystone 124

5.2.3 Glance源码包的安装 126

5.3 Glance服务的配置 127

5.3.1 Glance服务的基本配置 127

5.3.2使用文件系统存储镜像 128

5.3.3使用Swift对象存储服务存储镜像 130

5.3.4上传复杂的磁盘镜像 131

5.3.5上传磁盘镜像参考脚本 133

5.4Glance自动化安装 133

5.5常见错误分析 134

5.5.1上传磁盘镜像中断的解决方案 134

5.5.2 openssl出错 135

5.5.3上传大磁盘镜像的方法 135

5.6小结 136

第6章 安装Quantum虚拟网络服务 137

6.1 OpeNvSwitch虚拟交换机 137

6.1.1 OpeNvSwitch简介 137

6.1.2 GRE隧道模式 138

6.1.3 VLAN模式 142

6.2解决依赖关系 145

6.3注册Quantum服务至Keystone 146

6.4安装Quantum服务 147

6.4.1源码安装Quantum 148

6.4.2Quantum Server的配置 149

6.4.3配置OVS agent 151

6.4.4配置dhcp agent 152

6.4.5配置13agent 152

6.5 Quantum自动化安装 153

6.6 Quantum服务使用及测试 154

6.6.1创建内部网络 154

6.6.2创建外部网络 155

6.7常见错误与分析 156

6.7.1虚拟机之间无法通信 156

6.7.2 dhcp和agent服务启动警告 156

6.8小结 157

6.8.1 OpeNvSwitch的使用 157

6.8.2 Quantum的安装 157

第7章 安装Cinder块存储服务 159

7.1 Cinder基本概念 159

7.1.1 Cinder的特性 159

7.1.2 Cinder的架构 160

7.1.3 Cinder架构的优缺点 162

7.2搭建环境 163

7.2.1准备工作 163

7.2.2创建API Node 163

7.2.3创建Volume存储节点 164

7.3安装Cinder API服务 164

7.3.1解决依赖关系 164

7.3.2注册Cinder服务至Keystone 165

7.3.3配置MySQL服务 167

7.3.4修改配置文件 168

7.3.5运行Cinder API服务 169

7.4安装Cinder Volume服务 170

7.4.1准备工作 170

7.4.2启动Volume服务 171

7.5参考部署 171

7.5.1单节点部署 171

7.5.2多节点部署 177

7.6常见错误及分析 180

7.6.1虚拟机之间无法通信 180

7.6.2 cinder客户端命令执行失败 182

7.6.3没有额外分区 182

7.7小结 183

7.7.1安装Cinder API Node 183

7.7.2安装Cinder Volume Node 183

第8章 安装Nova虚拟机管理系统 184

8.1 Nova基本概念 184

8.1.1Nova的特性 184

8.1.2Nova的架构 186

8.1.3Nova架构的优缺点 189

8.2搭建环境 189

8.2.1准备工作 189

8.2.2创建节点 191

8.3安装Nova API服务 191

8.3.1准备工作 192

8.3.2解决依赖关系 194

8.3.3注册Nova服务 195

8.3.4配置MySQL服务 196

8.3.5修改Nova配置文件 197

8.4安装Nova Compute服务 199

8.4.1准备工作 199

8.4.2解决依赖关系 200

8.4.3配置文件 201

8.4.4启动服务 201

8.4.5检查服务 202

8.5参考部署 202

8.5.1单节点部署 203

8.5.2多节点部署 205

8.6客户端使用 207

8.6.1环境变量 208

8.6.2创建虚拟机 208

8.7小结 209

8.7.1安装Nova API Node 209

8.7.2安装Nova Compute Node 210

第9章 安装Dashboard Web界面 211

9.1Dashboard简介 211

9.2Dashboard的安装 211

9.2.1解决依赖关系 212

9.2.2源码安装Horizon 213

9.3Dashboard的配置 214

9.3.1 local_ settings.py文件的配置 214

9.3.2 secret_ey.py文件的修改 215

9.3.3 Apache2的配置 216

9.3.4 vncproxy的配置 217

9.4 Dashboard自动化安装 218

9.5 Web界面使用及测试 219

9.5.1登录Dashboard 219

9.5.2使用Dashboard上传镜像 221

9.5.3使用Dashboard创建网络 222

9.5.4使用Dashboard创建虚拟机 223

9.6常见错误分析 224

9.7小结 225

第10章 OpenStack部署示例 226

10.1OpenStack单节点部署 226

10.1.1单节点部署的特点 226

10.1.2准备工作 227

10.1.3系统初始化配置 229

10.1.4安装OpenStack各组件 229

10.2 OpenStack多节点部署 237

10.2.1多点部署特点 237

10.2.2部署流程 239

10.3 OpenStack实用部署 249

10.3.1实用部署特点 249

10.3.2部署流程 251

10.4常见错误及分析 255

10.4.1 eth 1网卡无法使用 256

10.4.2自建源无法使用 256

10.4.3客户端命令执行失败 256

10.5小结 257

10.5.1单节点安装 257

10.5.2多节点安装 257

10.5.3实用安装 257

第3篇 剖析篇 260

第11章 OpenStack服务分析 260

11.1RESTful API简介 260

11.2搭建RESTful API 261

11.2.1一个简单的WSGI服务 262

11.2.2使用PasteDeploy定制WSGI服务 262

11.2.3带过滤器的WSGI服务 264

11.2.4利用类来实现过滤器和应用 266

11.2.5实现WSGI服务的URL映射 268

11.3基于消息通信的RPC调用 274

11.3.1 AMQP简介 275

11.3.2 RabbitMQ分析 276

11.3.3 RPC调用的实现 278

11.4小结 290

11.4.1 RESTful API 290

11.4.2 RPC调用 291

第12章 Keystone的安全认证 292

12.1Keystone框架结构 293

12.1.1 Keystone服务端架构 293

12.1.2 Keystone客户端架构 300

12.2用户管理 303

12.2.1用户认证 303

12.2.2本地认证 310

12.2.3用户信息的维护 313

12.3多租户机制 315

12.3.1租户管理 316

12.3.2角色管理 317

12.3.3权限管理 318

12.4 Token管理 322

12.4.1 Token认证方式 322

12.4.2 Token的存储 325

12.5服务的安全认证 326

12.6 OpenStack各个模块与Keystone的交互 329

12.7小结 335

12.7.1 Keystone服务器端架构 335

12.7.2客户端发送HTTP请求流程 335

12.7.3用户认证 335

12.7.4访问OpenStack服务的流程 336

第13章 Swift存储服务 337

13.1Swift框架概述 337

13.2问题描述 338

13.3炮灰方法 339

13.4快拳方法 339

13.4.1算法原理 339

13.4.2算法实现 340

13.4.3算法分析 341

13.4.4算法破绽 342

13.5太极拳 344

13.5.1算法原理 344

13.5.2算法实现 347

13.5.3算法分析 348

13.5.4算法升级 349

13.5.5算法破绽 351

13.6虚实相生 352

13.6.1算法原理 352

13.6.2算法实现 354

13.6.3算法分析 355

13.6.4算法升级 357

13.6.5算法分析 361

13.7扩展 364

13.7.1映射中的动与不动 365

13.7.2虚节点数目 366

13.73剩余话题 368

13.8小结 369

第14章 Quantum虚拟网络 370

14.1 Quantum框架概述 370

14.2 Quantum Server服务 371

14.2.1 Quantum Server启动流程 371

14.2.2启动ovs plugiNRPC服务 375

14.2.3创建网络 377

14.2.4创建子网 379

14.2.5创建端点 380

14.3 Quantum OpenVSwitch Agent服务 384

14.3.1 Quantum OVS Agent启动流程 385

14.3.2 Quantum OVS Agent定时任务 390

14.3.3虚拟网络的实现 397

14.4 Nova与Quantum的交互 398

14.4.1分配逻辑网络资源 398

14.4.2创建OpenVSwitch端点 400

14.5 Quantum DHCP Agent服务 402

14.5.1服务的启动 403

14.5.2 Manager类 407

14.5.3 Dnsmasq DHCP的维护 410

14.6小结 416

14.6.1 Quantum主要数据库表单 416

14.6.2 Quantum OpenVSwitch Agent的启动 416

14.6.3虚拟机通信流程 417

14.6.4创建端点的流程 418

14.6.5创建Dnsmasq DHCP服务 418

第15章 Nova框架 420

15.1 Nova框架介绍 420

15.2Nova API服务 421

15.2.1 Nova API服务的启动 421

15.2.2处理HTTP请求的流程 423

15.2.3创建虚拟机流程 427

15.3 Nova RPC服务 432

15.3.1 Nova Scheduler的启动流程 433

15.3.2Nova RPC服务的创建 434

15.4Nova Scheduler服务分析 438

15.4.1创建虚拟机请求的处理流程 439

15.4.2调度算法 441

15.4.3资源信息的更新 443

15.4.4过滤和权值计算 444

15.5Nova Conductor服务 453

15.6小结 456

15.6.1创建虚拟机请求的处理流程 456

15.6.2调度算法 456

第16章 Nova Compute服务 458

16.1定时任务 458

16.1.1定时任务的启动 458

16.1.2 update_available_resource 464

16.1.3 report_driver_status 469

16.1.4 publish_service capabilities 470

16.2创建虚拟机 471

16.2.1创建虚拟机的流程 471

16.2.2创建虚拟机镜像文件 474

16.2.3创建虚拟机XML定义文件 481

16.2.4创建虚拟机和虚拟网络 487

16.3虚拟机的在线迁移 488

16.3.1 virsh命令实现在线迁移 489

16.3.2虚拟机迁移的整体流程 491

16.3.3虚拟机迁移的前期检查 494

16.3.4 Nova Compute服务中的迁移流程 502

16.4虚拟机快照管理 510

16.4.1 Nova API创建快照流程 511

16.4.2 Nova Compute创建快照流程 513

16.5小结 520

16.5.1 Nova RPC定时任务的创建 520

16.5.2 Nova Compute创建虚拟机 521

16.5.3 virsh命令迁移虚拟机 522

16.5.4 Nova Compute在线迁移 523

16.5.5 Nova Compute服务创建快照流程 524

第4篇 扩展篇 526

第17章 从OpenStack到云应用 526

17.1 Hadoop简介 526

17.1.1 HDFS文件系统 526

17.1.2 Map Reduce机制 529

17.2 Hadoop的安装 530

17.2.1准备工作 530

17.2.2 Hadoop的单节点模式 532

17.2.3 Hadoop的伪分布式模式 533

17.2.4 Hadoop的全分布式模式 536

17.3 Hadoop的性能分析 537

17.3.1 Chukwa与Hitune简介 537

17.3.2 Chukwa的安装与配置 538

17.3.3使用Hitune分析Hadoop的性能 542

17.4 Hadoop和Chukwa的自动化安装 546

17.5 OpenStack上的Android测试环境 548

17.5.1 Android测试环境简介 548

17.5.2搭建Android测试环境 549

17.6常见错误与分析 553

17.6.1 Hadoop常见错误 553

17.6.2 Chukwa常见错误 554

17.6.3搭建Android测试环境 555

17.7小结 556

17.7.1安装Hadoop 556

17.7.2安装Chukwa 557

17.7.3 Hadoop Job报表 558

17.7.4创建Android虚拟机 558

第18章 基于Nova的扩展 560

18.1定制调度算法 560

18.1.1配置fiilter 560

18.1.2添加自定义fiilter 563

18.1.3 fiilter_properties 566

18.2自定义ExtensioNAPI 569

18.2.1 ExtensioNAPI的启动流程 569

18.2.2实现自定义ExtensioNAPI 576

18.3自定义ExtentioNAPI客户端 578

18.3.1 ExtentioNAPI客户端加载流程 578

18.3.2添加ExtentioNAPI客户端 578

18.4Nova中添加自定义模块 581

18.4.1添加新模块 581

18.4.2添加新模块的API 583

18.4.3添加定时任务 587

18.4.4添加数据库接口 589

18.5小结 598

18.5.1定制fiilter的步骤 598

18.5.2添加ExtensioNAPI的步骤 598

18.5.3扩展Nova Client模块的方法 598

18.5.4添加Nova模块的步骤 598

18.5.5创建自定义Nova数据库 599

第19章 添加自定义组件 600

19.1自定义组件概述 600

19.1.1自定义组件及优缺点 600

19.1.2自定义组件的使用 601

19.1.3需求 601

19.2准备工作 602

19.2.1开发环境 602

19.2.2准备安装包 602

19.2.3安装依赖服务 602

19.2.4安装Monitor服务 604

19.3设计原理 608

19.3.1框架 608

19.3.2 Dashboard 609

19.3.3 python-monitorclient 610

19.3.4 monitor-api 611

19.4数据库设计与实现 612

19.4.1连接数据库 613

19.4.2创建数据库表单 614

19.4.3模型类 619

19.4.4访问数据库 620

19.4.5发布数据库API 623

19.5 Conductor数据库服务 623

19.5.1配置项目 624

19.5.2添加配置项 625

19.5.3 Conductor实现 626

19.5.4启动Conductor服务 628

19.6添加RESTful API 629

19.6.1 RESTful API处理流程 629

19.6.2消息路由器Router 629

19.6.3消息处理函数 630

19.6.4客户端发送请求 631

19.6.5客户端的使用 631

19.7小结 633