OpenStack开源虚拟化平台 云计算 (第三版) 第 8 章 CLOUD COMPUTING Third Edition 电子工业出版社《云计算(第三版)》配套课件 云计算 (第三版) CLOUD COMPUTING Third Edition 第 8 章 OpenStack开源虚拟化平台 主编:刘鹏 教授
云计算的红宝书 微信扫描二维码 关注云计算头条 电子工业出版社《云计算(第三版)》配套课件 本套PPT下载地址:http://www.chinacloud.cn/list.aspx?cid=20 云计算的红宝书 书籍购买地址:http://weidian.com/item.html?itemID=1469775685&p=-1 (包邮且有刘鹏教授亲笔签名) 微信扫描二维码 关注云计算头条
刘 鹏 教授、博导、学科带头人,清华大学博士。现任中国云计算专家咨询委员会秘书长、中国信息协会大数据分会副会长、工业与信息化部云计算研究中心专家。 主持完成科研项目25项,发表论文80余篇,出版专业书籍15本。获部级科技进步二等奖4项、三等奖4项。主编了国内第一本云计算教材《云计算》和第一本云计算编程书籍《实战Hadoop》。创办了知名的中国云计算(chinacloud.cn)和中国大数据(thebigdata.cn)网站。 曾率队夺得2002 PennySort国际计算机排序比赛冠军,两次夺得全国高校科技比赛最高奖,并三次夺得清华大学科技比赛最高奖。 荣获“全军十大学习成才标兵”(排名第一)、南京“十大杰出青年”、江苏省“333高层次人才培养工程”中青年科学技术带头人、清华大学“学术新秀”等称号。
OpenStack 既是一个社区,也是一个项目和一个开源软件,提供了一个部署云的操作平台或工具集。用OpenStack易于构建虚拟计算或存储服务的云,既可以为公有云、私有云,也可以为大云、小云提供可扩展、灵活的云计算。
Rackspace公司 “云文件”平台(Swift) 美国宇航局NASA “星云”平台(Nova)
8.1 OpenStack背景介绍 8.2 计算服务Nova 8.3 对象存储服务Swift 8.4 镜像服务Glance
8.1 OpenStack背景介绍 Nova Swift OpenStack 为NASA的计算处理服务而开发 Rackspace开发的存储服务组件
8.1 OpenStack背景介绍 8.1.1 OpenStack是什么 8.1.2 OpenStack的主要服务
8.1 OpenStack背景介绍 OpenStack是什么 OpenStack是一个管理计算、存储和网络资源的数据中心云计算开放平台,通过一个仪表板,为管理员提供了所有的管理控制,同时通过Web界面为其用户提供资源。
8.1 OpenStack背景介绍 OpenStack是什么 计算资源管理 存储资源管理 网络资源管理 IP地址的数量、路由配置、安全规则将爆炸式增长;传统的网络管理技术无法真正高扩展、高自动化地管理下一代网络
8.1 OpenStack背景介绍 8.1.1 OpenStack是什么 8.1.2 OpenStack的主要服务
用标准的硬件进行PB级的安全、可靠的存储 8.1 OpenStack背景介绍 OpenStack的主要服务 OpenStack有三个主要的服务成员:计算服务(Nova)、存储服务(Swift)、镜像服务(Glance) 计算服务(Nova) 管理虚拟机 通过API调用openStack 用户 通过Glance创建和管理镜像快照 管理员 对象存储组件 (Swift) 用标准的硬件进行PB级的安全、可靠的存储 镜像管理组件(Nova) 管理镜像 通过Swift存储快照
8.1 OpenStack背景介绍 OpenStack的主要服务 1.计算服务Nova 5.网络管理服务Quantum 2.对象存储服务Swift 6.存储管理服务Cinder 3.镜像服务Glance 7.仪表盘Horizon 4.身份认证服务keystone
8.1 OpenStack背景介绍 8.2 计算服务Nova 8.3 对象存储服务Swift 8.4 镜像服务Glance
Nova是OpenStack云中的计算组织控制器 Nova处理OpenStack云中实例(instances)生命周期的所有活动。这样使得Nova成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。 但是,Nova并不具有虚拟化能力,相反它使用Libvirt API来与被支持的Hypervisors交互。Nova通过一个与Amazon Web Services(AWS)EC2 API兼容的Web Services API来对外提供服务。
8.2 计算服务Nova 8.2.1 Nova组件介绍 8.2.2 Libvirt简介 8.2.3 Nova中的RabbitMQ解析
8.2 计算服务Nova Nova 组件介绍 1.API Server(Nova-Api) 2.Message Queue(Rabbit MQ Server) OpenStack节点之间通过消息队列使用AMQP(Advanced Message Queue Protocol)完成通信。
8.2 计算服务Nova Nova 组件介绍 3.Compute Worker(Nova-Compute) Compute Worker管理实例生命周期,通过Message Queue接收实例生命周期管理的请求,并承担操作工作。 4.Network Controller(Nova-Network) Network Controller处理主机的网络配置,包括IP地址分配、为项目配置VLAN、实现安全组、配置计算节点网络。
8.2 计算服务Nova Nova 组件介绍 5.Volume Workers(Nova-Volume) Volume Workers用来管理基于LVM(Logical Volume Manager)的实例卷。Volume Workers有卷的相关功能,例如新建卷、删除卷、为实例附加卷、为实例分离卷。 6.Scheduler(Nova-Scheduler) 调度器Scheduler把Nova-API调用映射为OpenStack组件。调度器作为一个Nova-Schedule守护进程运行,通过恰当的调度算法从可用资源池获得一个计算服务。 随机算法 可用域算法 简单算法
8.2 计算服务Nova 8.2.1 Nova组件介绍 8.2.2 Libvirt简介 8.2.3 Nova中的RabbitMQ解析
8.2 计算服务Nova Libvirt简介 Nova通过独立的软件管理模块实现XenServer、Hyper-V和VMWare ESX的调用与管理 同时对于其他的Hypervisor,如KVM、LXC、QEMU、UML和Xen则通过Libvirt标准接口统一实现 为了更好地理解在Nova环境下Libvirt如何管理底层的Hypervisor,先要基本了解Libvirt的体系架构与实现方法。
8.2 计算服务Nova 什么是Libvirt 虚拟化 技术实现 虚拟机 管理 集群 资源管理 (云管理) 虚拟云实现的三部曲
8.2 计算服务Nova 什么是Libvirt 各种不同的虚拟化技术都提供了基本的管理工具,比如启动、停用、配置、连接控制台等。这样在构建云管理的时候就存在两个问题。 1 如果采用混合虚拟技术,上层就需要对不同的虚拟化技术调用不同管理工具,很是麻烦。 2 可能有新的虚拟化技术更加符合现在的应用场景,需要迁移过去。这样管理平台就需要大幅改动。 Libvirt的主要目标是为各种虚拟化工具提供一套方便、可靠的编程接口,用一种单一的方式管理多种不同的虚拟化提供方式。
8.2 计算服务Nova Libvirt主要支持的功能 虚拟机管理 包括不同的领域生命周期操作,,支持多种设备类型的热插拔操作 远程机器支持 只要机器上运行了Libvirt Daemon,所有的Libvirt功能就都可以访问和使用 存储管理 任何运行了Libvirt Daemon的主机都可以用来管理不同类型的存储,创建不同格式的文件镜像 网络接口管理 任何运行了Libvirt Daemon的主机都可以用来管理物理和逻辑的网络接口。 虚拟NAT和基于路由的网络 任何运行了Libvirt Daemon的主机都可以用来管理和创建虚拟网络。
8.2 计算服务Nova Libvirt体系结构 虚拟机 (guest OS) 虚拟机 (guest OS) Hypervisor Linux 主机(Domain 0) 物理机节点
8.2 计算服务Nova Libvirt体系结构 Domain Domain QEMU Xen Libvirt QEMU driver Libvirt API与相关驱动程序的层次结构 Domain Domain QEMU Xen Libvirt QEMU driver Xen driver Libvirt API Linux 主机(Domain 0) 物理机节点
8.2 计算服务Nova Libvirt体系结构 Domain Domain Hypervisor Mgmt app Hypervisor (1)管理位于同一节点上的应用程序和域 管理应用程序通过Libvirt工作,以控制本地域 Domain Domain Hypervisor Mgmt app Hypervisor Libvirt Linux 主机(Domain 0) 物理机节点
8.2 计算服务Nova Libvirt体系结构 Mgmt app Domain Libvirt Hypervisor Libvirt (2)管理位于不同节点上的应用程序和域 该管理应用程序通过一种通用协议从本地Llibvirt连接到远程Libvirt Mgmt app Domain Libvirt Hypervisor Libvirt Libvirt Linux host (Domain 0) Linux host (Domain 0) 物理机节点 物理机节点 Network
8.2 计算服务Nova 8.2.1 Nova组件介绍 8.2.2 Libvirt简介 8.2.3 Nova中的RabbitMQ解析
8.2 计算服务Nova Nova中的RabbitMQ解析 消息队列(Queue)与数据库(Database) 任务之间、模块之间、接口之间的异步部署 系统内消息传递和信息共享 终端用户(DevOps、Developers、OpenStack) 与OpenStack系统的互动 Nova API Nova守护进程 完成终端用户的云服务请求 消息队列 和数据库
8.2 计算服务Nova RabbitMQ RabbitMQ OpenStack Nova系统 信息 交换中枢
8.2 计算服务Nova RabbitMQ RabbitMQ适合部署在一个拓扑灵活易扩展的规模化系统环境中,有效保证不同模块、不同节点、不同进程之间消息通信的时效性; RabbitMQ特有的集群HA安全保障能力可以实现信息枢纽中心的系统级备份,同时单节点具备消息恢复能力 功能性 时效性 安全可靠性 SLA 方面
8.2 计算服务Nova AMQP AMQP是应用层协议的一个开放标准,为面向消息的中间件而设计 RabbitMQ是AMQP协议的一个开源实现 OpenStack Nova各软件模块通过AMQP协议实现信息通信 AMQP协议的设计理念可归纳为基于状态的面向无连接通信系统模式 对于AMQP来讲,消息队列的状态信息决定通信系统的转发路径 IP数据包根据路由表实现报文的本地存储与逐级转发
8.2 计算服务Nova AMQP AMQP 目标 两个基本 的概念 实现端到端的信息通信 AMQP实现通信的因素是什么
8.2 计算服务Nova AMQP 交换器(Exchange) 交换器由消费者应用程序创建,并且可与其他应用程序实现共享服务 接收消息之后通过路由表将消息准确且安全地转发至相应的消息队列 每个交换器通过唯一的Exchange ID进行识别 持久交换器 持久交换器并不会因为系统重启或者应用程序终止而消除 临时交换器 驻留在内存中,随着系统的关闭而消失 自动删除交换器 随着宿主应用程序的中止而自动消亡
8.2 计算服务Nova AMQP 队列(Queue) 主要用于实现存储与转发交换器发送来的消息,队列同时也具备灵活的生命周期属性配置,可实现队列的持久保存、临时驻留与自动删除。 AMQP的 三个关键组件 消息 队列 交换器 任何一个组件的失效都会导致信息通信的中断,因此鉴于三个关键组件的重要性,系统在创建三个组件的同时会打上“Durable”标签,表明在系统重启之后立即恢复业务功能。
8.2 计算服务Nova AMQP 构成AMQP的三个关键要素的工作方式如图所示。 消息 生产者 消息队列-1 消息 消费者 消息队列-2 交换器 消息队列-3 …… 消息 生产者 消息 消费者 消息队列-N
8.2 计算服务Nova AMQP 三种不同类型的交换器 广播式交换器 (Fanout Exchange) 直接式交换器 (Direct Exchange) 主题式交换器 (Topic Exchange)
8.2 计算服务Nova Nova中的RabbitMQ应用 RabbitMQ Nova系统 目前Nova中的各个模块通过RabbitMQ服务器以RPC(远程过程调用)的方式实现通信,而且各模块之间形成松耦合关联关系,在扩展性、安全性以及性能方面均体现优势。 信息 中枢
8.2 计算服务Nova Nova中的RabbitMQ应用 1)交换器 接受消息并且将消息转发给队列。 应用程序在它的权限范围之内可以创建、删除、使用和共享交换器实例。 交换器可以是持久的、临时的或者自动删除的 2)队列 “消息队列”,它是一个具名缓冲区,它代表一组消费者应用程序保存消息。 这些应用程序在它们的权限范围内可以创建、使用、共享消息队列。 3)绑定 可以理解为交换器和消息队列之间的一种关系,绑定之后交换器会知道应该把消息发给哪个队列,绑定的关键字称为binding_key。
8.2 计算服务Nova Nova中的RabbitMQ应用 1)广播式交换器类型(fanout) 该类交换器不分析所接收到消息中的Routing Key,默认将消息转发到所有与该交换器绑定的队列中去。 广播式交换器转发效率最高,但是安全性较低,消费者应用程序可获取本不属于自己的消息。 广播交换器是最简单的一种类型,就像我们从字面上理解到的一样,它把所有接收到的消息广播到所有它所知道的队列中去,不论消息的关键字是什么,消息都会被路由到和该交换器绑定的队列中去。
8.2 计算服务Nova Nova中的RabbitMQ应用 1)广播式交换器类型(fanout) P X 在程序中申明一个广播式交换器的代码如下: channel.exchange_declare(exchange='fanout',type='fanout')
8.2 计算服务Nova Nova中的RabbitMQ应用 2)直接式交换器类型(direct) 直接式交换器的转发效率较高,安全性较好,但是缺乏灵活性,系统配置量较大。 相对广播交换器来说,直接交换器可以给我们带来更多的灵活性。 直接交换器的路由算法很简单:一个消息的routing_key完全匹配一个队列的binding_key,就将这个消息路由到该队列。 绑定的关键字将队列和交换器绑定到一起。当消息的routing_key和多个绑定关键字匹配时消息可能会被发送到多个队列中。
8.2 计算服务Nova Nova中的RabbitMQ应用 2)直接式交换器类型(direct) P X C2 Q1 Q2 orange green black Type=direct 直接交换器的工作方式
8.2 计算服务Nova Nova中的RabbitMQ应用 3)主题式交换器(Topic Exchange) P X C2 Q1 Q2 *.orange* Lazy.# *.*rabbit Type=topic
8.2 计算服务Nova Nova中的RabbitMQ应用 Nova基于RabbitMQ实现两种RPC调用 RPC.CALL 基于请求与响应方式 RPC.CAST 只是提供单向请求 Nova的各个模块在逻辑功能上可以划分为两种 主要功能是向消息队列中发送系统请求消息,如Nova-API和Nova-Scheduler; Invoker模块 从消息队列中获取Invoker模块发送的系统请求消息以及向Invoker模块回复系统响应消息,如Nova-Compute、Nova-Volume和Nova-Network。 Worker模块
8.2 计算服务Nova Nova中的RabbitMQ应用 Topic消息生产者1 点对点消息队列 Topic消息生产者 交换器 Routing Key=NODE-TYPE. NODE-ID Topic消息生产者2 共享消息队列 Topic消息生产者3 Routing Key=NODE-TYPE. Topic交换域 Direct交换域 Direct消息消费者 Direct消息生产者 Direct消息队列 交换机 Invoker RabbitMQ服务器 Worker
8.2 计算服务Nova Nova中的RabbitMQ应用 Topic消息生产者 交换器 Topic消息消费者1 点对点消息队列 Routing Key= NODE-TYPE.NODE-ID Topic交换域 Direct交换域 Direct消息消费者 Direct消息生产者 Direct消息队列 交换机 Routing Key=MSG-ID Invoker RabbitMQ服务器 Worker
8.2 计算服务Nova Nova中的RabbitMQ应用 Invoker端生成一个Topic消息生产者和一个Direct消息消费者。其中,Topic消息生产者发送系统请求消息到Topic交换器,Direct消息消费者等待响应消息。 Topic交换器根据消息的Routing Key转发消息,Topic消费者从相应的消息队列中接收消息,并传递给负责执行相关任务的Worker。 Worker根据请求消息执行完任务之后,分配一个Direct消息生产者,Direct消息生产者将响应消息发送到Direct交换器。 Direct交换器根据响应消息的Routing Key转发至相应的消息队列,Direct消费者接收并把它传递给Invoker。
Routing Key-NODE-TYPE 8.2 计算服务Nova Nova中的RabbitMQ应用 RPC.CAST的远程调用流程与RPC.CALL类似,只是缺少了系统消息响应流程。 Topic消息生产者 共享消息队列 Topic消息消费者1 交换器 Routing Key-NODE-TYPE Topic交换域 RabbitMQ服务器 Invoker Worker Topic消息消费者2
本章未完待续
百度排名首位的大数据资料和交流中心
百度排名首位的云计算资料和交流中心
终生免费的智能硬件大数据托管平台 扫一扫,进入万物云
终生免费的环境大数据共享平台 扫一扫,进入环境云
高校Hadoop教学科研 一揽子解决方案 云创大数据 给您一步到位的解决方案! 了解详情 云计算、大数据时代,社会亟需相关人才!而高校缺平台、缺人才、缺经验!怎么办? 云创大数据 给您一步到位的解决方案! 建设一个Hadoop实验平台 一套开源的Hadoop一体机和开发环境,详细的指导书籍和实验设计。 培养一支云计算师资队伍 来自云计算高手的系列培训, 早在2010年就培训了全国第一批云计算师资力量。 营造一个大数据科研环境 为科研提供技术支持,与大数据应用相结合,让科研迈上新台阶。
知名微信公众号推荐 学习云计算必须关注的公众号 刘鹏看未来 云计算头条 中国大数据 云创大数据 眼光决定成败,与刘鹏教授看未来。 微信号:lpoutlook 微信号: chinacloudnj 眼光决定成败,与刘鹏教授看未来。 刘鹏,清华博士,《云计算》作者。 资源丰富、分析深入、更新及时的云计算知识共享平台。 中国大数据 云创大数据 微信号: cStor_cn 微信号: cstorbigdata 国内大数据龙头企业。提供领先的云存储、云数据库、云视频、云传输产品和解决方案。 分享大数据技术,剖析大数据案例,讨论大数据话题。
运用云计算,精彩你生活 优秀免费云计算应用推荐 支持安卓和苹果 支持安卓和苹果 暂时仅有安卓版本
谢谢观看 云计算 (第三版) 第 8 章 CLOUD COMPUTING Third Edition 主编:刘鹏 教授 电子工业出版社《云计算(第三版)》配套课件 云计算 (第三版) CLOUD COMPUTING Third Edition 第 8 章 谢谢观看 主编:刘鹏 教授