云计算之OpenStack架构详解
发布时间:2022-10-08 11:30:19 所属栏目:云计算 来源:
导读: 总体框架:
OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为
OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为
|
总体框架: OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。 OpenStack开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为Swift),并OpenStack镜像服务(代号Glance)的集合。 OpenStack提供了一个操作平台,或工具包,用于编排云。 下面列出Openstack的详细构架图: 基于云计算技术的数字图书馆云服务平台架构研究_云计算架构方案_云计算及其分布式架构 Openstack的网络拓扑结构图: 基于云计算技术的数字图书馆云服务平台架构研究_云计算及其分布式架构_云计算架构方案 整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。(这四个节点也可以安装在一台机器上,单机部署),其中: 控制节点负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等计算节点负责虚拟机运行网络节点负责对外网络与内网络之间的通信存储节点负责对虚拟机的额外存储管理等等 硬件虚拟化KVM技术: Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。 KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。 OpenStack与KVM的解决方案: 目前,新版本开发代号为Essex。此前发布有四个版本:Austin、Bexar、Cactus与Diablo。新版本发布包含云计算控制中心Nova、镜像服务Glance、认证服务Keystone和Dashboard项目Horizon,也包括对象存储项目Swift。 由此可以看出,OpenStack是一个框架,一个可以建立公有云和私有云的基础架构。它并不是一个现成的产品,要想开展基础架构方面的工作,企业需要顾问和开发人员。很多时候还需要第三方的集成工具。 OpenStack几乎支持所有的虚拟化管理程序,不论是开源的(Xen与KVM)还是厂商的(Hyper-V与VMware)。但在以前,OpenStack是基于KVM开发的,KVM常常成为默认的虚拟机管理程序。两者都使用相同的开放源理念与开发方法。 如今,多数企业用户在IT环境中使用了超过一种的虚拟化软件,有一半的用户选择将开源产品作为性价比更高的虚拟化替代方案。IDC报道中指出,OpenStack是KVM增长的一个巨大机会。OpenStack是一个具有巨大的行业发展动力,并拥有一个充满活力的社区的云计算平台,有95%的OpenStack平台由KVM驱动。因此,随着OpenStack的增长,KVM也会相应增长。 一、控制节点架构: 控制节点包括以下服务 管理支持服务 基础管理服务 扩展管理服务 1)管理支持服务包含MySQL与Qpid两个服务 2)基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务 3)扩展管理服务包含Cinder,Swift,Trove,Heat,Centimeter五个服务 控制节点一般来说只需要一个网络端口用于通信/管理各个节点 二、网络节点架构 网络节点仅包含Neutron服务 Neutron:负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,管理虚拟机之上的防火等等 网络节点包含三个网络端口 三、计算节点架构 计算节点包含Nova,Neutron,Telemeter三个服务 1)基础服务 2)扩展服务 计算节点包含最少两个网络端口 四、存储节点架构 存储节点包含Cinder,Swift等服务 存储节点包含最少两个网络接口 五、各个组件作用及关系 Openstack发展至今,总共集成了下面几个组件: 组件间的关系图如下: 云计算及其分布式架构_基于云计算技术的数字图书馆云服务平台架构研究_云计算架构方案 重要组件介绍 5.1、OpenStack认证服务--Keystone Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴定。下图显示了身份认证服务流程: 云计算架构方案_云计算及其分布式架构_基于云计算技术的数字图书馆云服务平台架构研究 Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。 除此之外,Keystone提供以下三种服务: 令牌服务:含有授权用户的授权信息 目录服务:含有用户合法操作的可用服务列表 策略服务:利用Keystone具体指定用户或群组某些访问权限 keystone认证服务注意点: 服务入口:如Nova、Swift和Glance一样每个OpenStack服务都拥有一个指定的端口和专属的URL,我们称其为入口(endpoints)。区位:在某个数据中心,一个区位具体指定了一处物理位置。在典型的云架构中,如果不是所有的服务都访问分布式数据中心或服务器的话,则也称其为区位。用户:Keystone授权使用者。PS:代表一个个体,OpenStack以用户的形式来授权服务给它们。用户拥有证书(credentials),且可能分配给一个或多个租户。经过验证后,会为每个单独的租户提供一个特定的令牌。服务:总体而言,任何通过Keystone进行连接或管理的组件都被称为服务。举个例子,我们可以称Glance为Keystone的服务。角色:为了维护安全限定,就云内特定用户可执行的操作而言,该用户关联的角色是非常重要的。PS:一个角色是应用于某个租户的使用权限集合,以允许某个指定用户访问或使用特定操作。角色是使用权限的逻辑分组,它使得通用的权限可以简单地分组并绑定到与某个指定租户相关的用户。租间:租间指的是具有全部服务入口并配有特定成员角色的一个项目。PS:一个租间映射到一个Nova的“project-id”,在对象存储中,一个租间可以有多个容器。根据不同的安装方式,一个租间可以代表一个客户、帐号、组织或项目。 5.2、OpenStack计算设施--Nova Nova是OpenStack计算的弹性控制器。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口,而且这些接口与Amazon的Web服务接口是兼容的。 功能及特点: 实例生命周期管理计算资源管理网络与授权管理基于REST的API异步连续通信支持各种宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V Nova弹性云(OpenStack计算部件)包含以下主要部分: API Server(nova-api)消息队列(rabbit-mq server)运算工作站(nova-compute)网络控制器(nova-network)卷管理(nova-volume)调度器(nova-scheduler) 解释如下: 1)API服务器(nova-api) API服务器提供了云设施与外界交互的接口,它是外界用户对云实施管理的唯一通道。通过使用web服务来调用各种EC2的API,接着API服务器便通过消息队列把请求送达至云内目标设施进行处理。作为对EC2-api的替代,用户也可以使用OpenStack的原生API,我们把它叫做“OpenStack API”。 2)消息队列(Rabbit MQ Server) OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用,当请求接收后便则立即触发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作,在此异步通信起到了很大作用,使整个系统变得更加高效。 3)调度器(nova-scheduler) 调度器负责把nova-API调用送达给目标。调度器以名为“nova-schedule”的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,比如负载、内存、子节点的远近、CPU架构等等。强大的是nova调度器采用的是可插入式架构。 目前nova调度器使用了几种基本的调度算法: 随机化:主机随机选择可用节点; 可用化:与随机相似,只是随机选择的范围被指定; 简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器。 4)运算工作站(nova-compute) 运算工作站的主要任务是管理实例的整个生命周期。他们通过消息队列接收请求并执行,从而对实例进行各种操作。在典型实际生产环境下,会架设许多运算工作站,根据调度算法,一个实例可以在可用的任意一台运算工作站上部署。 (编辑:草根网_马鞍山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


浙公网安备 33038102330472号