openstack设计与实现是一本OpenStack必选必读经典pdf版,由英特尔开源技术中心编著。本书内容丰富翔实,以juno版本为基础,覆盖了openstack的学习到设计与实现等各个方面的内容,致力于帮助读者形成openstack及其各个主要组件与项目的拓扑。全书全面分析Nova;Swift、Cinder及Glance;Neutron;Keystone及可信计算池;Ceilometer等OpenStack相关组件项目,非常适合OpenStack技术人员、IT首席技术官、云计算研发和运维等相关人员阅读。
《openstack设计与实现》的内容组织正是为了尽一切能力帮助读者能够形成有关OpenStack 以及各个重要项目与功能比较细致的拓扑。 首先是前四章,这几章的内容希望能够帮助您对OpenStack 有个全面的认识和了解,从而形成对OpenStack 整体的拓扑。
第1 章主要介绍了OpenStack 的成长史以及它的体系结构和社区现状。
第2 章详尽地介绍了OpenStack 开发的基础流程以及如何去分析OpenStack 的源码。 第3 章介绍了OpenStack 的底层基石――虚拟化技术。大多数OpenStack 的使用者和开发者并不了解虚拟化的一些细节,有了这一章的介绍,我们能够对OpenStack 有一个进一步的认识。
第4 章将OpenStack 众多项目中所用到的通用技术加以介绍,有了这一章,我们理解各个具体项目的设计与实现时,在后续学习中可以少很多的阻碍。
然后第5~11 章的内容对OpenStack 主要组件及项目的实现进行介绍。按照认识的发展规律,通过前面几章的介绍我们已经对OpenStack 有了全局的认识和了解,接下来就可以以兴趣或工作需要为导向,寻找一个组件或项目,对其实现进行深入的钻研和分析。这些章节的内容也是希望能够尽量帮助您形成对相应项目的比较细致的拓扑,并不求对所有实现细节的详尽分析。
第5 章讨论计算组件也就是Nova 项目。Nova 为我们实现了OpenStack 这个虚拟机世界的抽象,控制着一个个虚拟机的状态变迁与生老病死,管理着它们的资源分配。 第6 章讨论存储相关的三个项目:Swift、Cinder 以及Glance。它们共同为这个虚拟机世界的主体――虚拟机提供了安身之本,负责为每个虚拟机本身的镜像以及它所产生的各种数据提供一个家,尽量地去做到“居者有其屋”。
第7 章讨论网络组件也就是Neutron 项目。没有网络,任何虚拟机都将只是这个虚拟机世界中的孤岛,不知道自己生存的价值。 安全是每个软件无法回避的问题,第8 章便针对安全问题进行讨论,包括Keystone 项目以及可信计算池的相关内容。
第9 章的内容有关计量与监控的项目Ceilometer,计量与监控是公有云运营的一个重要环节。第10 章的内容与部署有关,但是这里讨论的并不是如何部署的详细步骤与过程,而只是与部署有关的几个主要项目。
第11 章介绍了OpenStack 的控制面板。给终的用户提供一个简洁方便、用户友好的控制界面和开发者,对OpenStack 尤为重要。
目录
- 第1 章 初识OpenStack. 1
- 1.1 从虚拟化到OpenStack 1
- 1.1.1 虚拟化 1
- 1.1.2 云计算 2
- 1.1.3 OpenStack . 4
- 1.2 OpenStack 体系结构. 6
- 1.3 OpenStack 项目发展流程. 13
- 1.3.1 新项目 14
- 1.3.2 孵化项目. 14
- 1.3.3 核心项目及集成项目 15
- 1.4 OpenStack 社区. 15
- 1.4.1 邮件列表. 16
- 1.4.2 IRC 和项目例会. 16
- 1.4.3 Summit 和Meetup 17
- 1.4.4 其他社交平台 19
- 1.5 其他开源项目. 19
- 第2 章 OpenStack 开发基础 22
- 2.1 相关开发资源. 22
- 2.1.1 OpenStack 社区 22
- 2.1.2 OpenStack 文档 22
- 2.1.3 OpenStack 书籍 23
- 2.1.4 其他网络资源 24
- 2.2 OpenStack 开发的技术基础. 25
- 2.3 部署开发环境. 26
- 2.3.1 Git 26
- 2.3.2 Devstack 27
- 2.4 浏览OpenStack 源代码 31
- 2.4.1 源码目录结构 31
- 2.4.2 浏览代码的工具. 33
- 2.4.3 分析源码如何入手. 35
- 2.5 OpenStack 代码质量保证体系. 38
- 2.5.1 编码规范. 40
- 2.5.2 代码评审Gerrit 43
- 2.5.3 单元测试Tox 48
- 2.5.4 持续集成Jenkins 51
- 2.6 如何贡献. 54
- 2.6.1 文档 54
- 2.6.2 修补Bug. 55
- 2.6.3 增加Feature 57
- 2.6.4 Review 60
- 2.6.5 调试 61
- 第3 章 虚拟化 62
- 3.1 概述 62
- 3.1.1 虚拟化实现方式. 64
- 3.1.2 虚拟化现状和未来. 66
- 3.2 高层管理工具. 74
- 3.2.1 XenAPI . 74
- 3.2.2 Libvirt . 75
- 3.3 OpenStack 相关实现 84
- 3.3.1 Libvirt 驱动. 84
- 3.3.2 XenAPI 驱动. 86
- 第4 章 OpenStack 通用技术 88
- 4.1 消息总线. 88
- 4.2 SQLAlchemy 和数据库(Shane)92
- 4.3 RESTful API 和WSGI . 96
- 4.4 Eventlet . 103
- 4.5 OpenStack 通用库Oslo 106
- 4.5.1 Cliff 107
- 4.5.2 oslo.config . 111
- 4.5.3 oslo.db. 113
- 4.5.4 oslo.i18n 116
- 4.5.5 oslo.messaging 116
- 4.5.6 stevedore . 123
- 4.5.7 TaskFlow. 127
- 4.5.8 cookiecutter . 133
- 4.5.9 oslo.policy . 134
- 4.5.10 oslo.rootwrap 135
- 4.5.11 oslo.test . 138
- 第5 章 计算 141
- 5.1 Nova 体系结构 141
- 5.2 Nova API. 148
- 5.2.1 Nova API 执行过程 149
- 5.2.2 Nova API 的实现 155
- 5.3 Conductor 服务. 161
- 5.3.1 Object Model 163
- 5.4 Scheduler. 166
- 5.4.1 调度器 166
- 5.4.2 Filtering. 167
- 5.4.3 Weighting 169
- 5.5 Compute 169
- 5.6 典型工作流程. 176
- 5.6.1 创建虚拟机. 176
- 5.6.2 冷迁移与Resize . 178
- 5.6.3 热迁移 179
- 5.6.4 挂起和恢复. 181
- 5.6.5 Rebuild 和Evacuate 182
- 第6 章 存储 183
- 6.1 Swift 183
- 6.1.1 Swift 体系结构. 183
- 6.1.2 Ring 191
- 6.1.3 Swift API. 202
- 6.1.4 认证 210
- 6.1.5 对象管理与操作. 211
- 6.1.6 数据一致性. 215
- 6.2 Cinder 218
- 6.2.1 Cinder 体系结构. 218
- 6.2.2 Cinder API. 222
- 6.2.3 cinder-scheduler 224
- 6.2.4 cinder-volume . 226
- 6.2.5 cinder-backup 230
- 6.3 Glance . 232
- 6.3.1 Glance 体系结构. 232
- 6.3.2 Glance API 234
- 第7 章 网络 240
- 7.1 Neutron 体系结构. 240
- 7.1.1 Linux 虚拟网络 241
- 7.1.2 Neutron 网络抽象. 245
- 7.1.3 Neutron 架构 246
- 7.1.4 Neutron 源码结构. 247
- 7.2 Neutron API. 249
- 7.2.1 neutron-server . 250
- 7.3 ML2 Plugin 251
- 7.4 Port Binding 扩展 257
- 7.5 Open vSwitch Agent . 260
- 7.6 Service Plugin 267
- 7.6.1 Firewall . 267
- 7.6.2 LoadBalance 269
- 7.7 Neutron 热点话题. 270
- 7.7.1 DVR . 271
- 7.7.2 SDN 271
- 7.7.3 NFV/SRIOV 272
- 第8 章 安全 274
- 8.1 OpenStack 安全概述 274
- 8.2 Keystone 275
- 8.2.1 Keystone 体系结构. 275
- 8.2.2 Keystone 启动过程. 281
- 8.2.3 用户认证及令牌获取 283
- 8.2.4 签名证书生成 286
- 8.3 可信计算池. 288
- 8.3.1 体系结构. 289
- 8.3.2 Intel TXT 与TBoot . 290
- 8.3.3 可信认证与OpenAttestation 项目292
- 8.3.4 TrustedFilter 295
- 8.3.5 部署 297
- 8.4 OpenStack 安全指南 298
- 8.4.1 安全域及威胁分类. 298
- 8.4.2 通用的安全指引. 302
- 8.4.3 OpenStack 组件的安全. 302
- 第9 章 计量与监控 305
- 9.1 Ceilometer 体系架构 305
- 9.1.1 Pipeline . 308
- 9.1.2 Polling Agent 与Pollster 插件.310
- 9.1.3 Notification Agent 与Notification Listeners 插件 311
- 9.1.4 Collector 与Dispatcher 插件311
- 9.1.5 Storage/DB 312
- 9.1.6 API Server . 313
- 9.1.7 Alarm 相关 314
- 9.2 部署与使用. 315
- 9.2.1 选择数据库. 315
- 9.2.2 安装 316
- 9.2.3 配置 320
- 9.2.4 使用 323
- 9.3 Ceilometer 插件的开发 323
- 9.3.1 Pollster 324
- 9.3.2 Notification Listener 325
- 9.3.3 DB Backend Driver . 326
- 9.3.4 Compute Agent Inspector . 331
- 9.3.5 Publisher . 332
- 9.3.6 Discover 332
- 第10 章 部署 334
- 10.1 TripleO 体系结构 334
- 10.1.1 DiskImage-Builder 336
- 10.1.2 Ironic. 337
- 10.1.3 Heat 339
- 10.1.4 OS-Configuration 341
- 10.2 TripleO 部署范例 342
- 10.2.1 制作镜像. 342
- 10.2.2 搭建UnderCloud 345
- 10.2.3 搭建OverCloud 349
- 10.3 TripleO 新特性 351
- 10.3.1 iPXE . 351
- 10.3.2 Tuskar . 351
- 10.3.3 Ironic-python-agent . 352
- 10.3.4 Hash-ring. 352
- 10.3.5 Driver-factory 352
- 第11 章 控制面板 353
- 11.1 Horizon 体系结构 353
- 11.1.1 Horizon 与Django. 353
- 11.1.2 Horizon 网站布局. 355
- 11.1.3 Horzion 源码结构. 356
- 11.2 Horizon 部署. 358
- 11.3 页面渲染流程. 360