失效链接处理 |
OpenStack架构分析与实践 PDF 下载
转载自:https://download.csdn.net/download/shuishanshu30/11048946
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/26445061.html
相关截图:
资料简介:
本书以实战开发为原则,以关键模块架构分析及项目开发为主线,通过OpenStack开发中常用的8个典型组件和若干典型项目案例,详细介绍了云平台中的计算、网络、存储、服务编排、智能运维等模块,并针对OpenStack中通用的关键技术进行了详细介绍。对于每一部分内容的讲解,章节的*后都会配备相应的实战案例供大家参考。
资料目录:
第1章 走进OpenStack 1.1 OpenStack是什么 1 1.1.1 OpenStack的作用 1 1.1.2 OpenStack的应用场景 2 1.1.3 什么类型的工作要学OpenStack 3 1.2 为什么要学习OpenStack3 1.2.1 OpenStack在云计算中的地位 3 1.2.2 云计算新时代:容器vs虚拟化 4 1.3 如何学习OpenStack4 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部署与社区贡献流程 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 开发工具之Pycharm33 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章 虚拟化 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通用技术 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—计算组件 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—网络组件 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 高级服务(AdvancedServices) 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—服务编排组件 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—认证组件 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—块存储组件 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模板创建CinderVolume 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—数据采集组件 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—镜像组件 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组件 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其他组件及智能运维方案 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系统 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架构与代码实践 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 |