文/康鹏
前言
又到春暖花开时,不负春光不负卿。
康大厨精心烹饪OpenStack大餐,即将上菜!
OpenStack 私人课堂今日第二讲,每周一期,期期不落,总有一款适合你~
OpenStack重要组件的功能
Nova
首先Nova这个项目是提供计算服务,它主要是负责实例的生命周期管理,实例在这里面也可以理解成是一个个的虚拟机,当然也未必是虚拟机,也可能是Linux的Container,其实它就是一个计算资源的单位。同时Nova还提供基于RESTFul的API接口,很方便其他系统来集成调用。Nova同时还提供了对底层Hypervisor的屏蔽,对上层应用来讲其实不需要关注底层是用什么虚拟化技术来实现的,它只会告诉你一个统一的API,就可以实现对计算资源的管理,它支撑KVM、Xen等。Nova设计的架构是支撑水平扩展,通俗地说就是当你的资源不够的时候,你可以往里面加硬件,计算资源的容量就会相应增加。
Neutron
网络服务,这个项目叫Neutron。Neutron主要提供了以下几方面的功能。一个是虚拟网络的管理,就是说通过这个组件,你可以为虚拟机创建网络的拓扑结构,比如什么时候创建网卡,什么时间这个网卡之间联通等,这些都是由网络服务来做的。同时它支撑面向租户的网络管理,就是说每个租户(用户组)可以定义自己的网络,并且你定义的网络和其他用户组定义的网络之间互不冲突,互不干扰。这是现在云计算时代给大家带来的非常便捷的地方。不像原先组网需要搬交换机、接网线、插网线。现在不需要这么做了,点点鼠标就搞定了。高度配的plug-in架构,就是说OpenStack本身提供了一个框架,只看重抽象的东西,具体的实现可以由下边不同的厂商,通过插件的形式来实现。各种网络资源的实现,由各种plugin来做,可以用OpenVSwitch来做网络管理的实现,也可以用Linux Brige来做网络管理的。我们正在做的跟华为Controller对接就是通过Plugin的方式来实现的。同样的,它也是提供基于REST的API,方便跟第三方集成。
KeyStone
KeyStone,提供OpenStack的身份认证的服务。它主要有以下这些功能。一个是认证与授权,它能知道你是谁,你能做什么。同时它提供用户、租户和角色的管理,同时提供服务目录的管理,比如说刚才提到的有这么的网络服务、计算服务以及后边的存储服务,这些服务它们调用的API长什么样,它们的URL是什么都是在服务目录管理中。支撑多认证机制,就是说它没有自己固定的认证方式,它通过支撑多种认证机制,可以提供第三方的支持。它只提供框架的东西,实现部分由不同的认证软件来做。但它默认实现了一个MySQL的认证机制。
Glance
镜像服务Glance,这个服务主要是提供一个虚拟机模板的注册与管理(查询)。虚拟机在装好操作系统后,就可以将这个镜像文件保存起来,下一次需要新建虚拟机的时候,直接load这个文件,就可以成为一个新的虚拟机,就不需要重新去安装操作系统了。这个虚拟机文件是有Glance来管理的。基于角色的访问控制,就是说你可以把这个镜像分享给很多人(同一个组、同一个部门等)。支持多格式的镜像,就是说存的那个文件其实可以有裸的格式(RAW格式),没有任何container信息的,qcow2这种格式只一种支持增量的,比较高效的存储的一种镜像文件,比如说我划一块磁盘,需要10G,最开始的10G其实并没有10G,也许只有10M,当你真正需要10G的时候,这个磁盘才会在物理设备上分配到10G的空间。支持多种后端的存储,镜像文件最终还是要保存下来的,它可以放到亚马逊的S3,也可以放到OpenStack中管理对象存储的组件swift中,另外还支持文件系统,比如就存在本地的文件系统里面,这也是可以的,但是这种情况可能会稍微差一些。它也提供了API,这些API一方面可以用来注册镜像文件,同时将文件放到各种存储后端里面。
Horizon
Horizon是通过OpenStack整体的管理界面的服务,通过这个web界面,你可以对OpenStack中几乎所有的资源进行管理。大家可以登录自己的OpenStack环境感受一下通过这个组件对运资源的管理。
Cinder
Cinder是OpenStack的块存储服务,这个块存储你可以理解成为一个网盘。类似于亚马逊的弹性块存储。什么叫弹性块存储呢?就是说这个存储可以要多少就划多少,可以随意扩展。而且是按需服务,Cinder就是提供这种类似的服务。减少Nova的复杂性,这是从设计的角度来看的,Cinder原来是叫做Volume,它属于Nova的一部分,之前Nova什么都干,功能又很复杂,现在把这一部分拆除了,作为一个新的项目叫Cinder,Cinder也支持多种后端存储,其实他的后端存储也是可以放到很多不同的存储上面,从图中可以看出,有一个请求过来,通过调度,然后将创建的volume放到不同的节点上面。每个节点可以是不同的存储类型。
Swift
Swift,这个组件的地位好像没有之前那么高了,很多有对象存储功能的存储可以将它替代,所以现在看似有点被冷落,但其实它还是很稳定的,因为OpenStack起家的时候就已经有这个项目,这部分的代码是在生态环境中被大规模部署验证过的,所以我们还是要说一下。它提供这种可靠的对象存储,可靠的意思就是一个文件,一份数据被存储到集群中,会被复制成多份,通过它自己的算法存到不同的存储节点上,有数据坏掉后,也可以基于它自己的算法回复回来。可以说它的数据永远都不会丢失。没有容量现在,也是和之前的Nova一个道理,当容量不够了,可以往里添加存储设备。无单点故障,它本身提供集群部署,就算坏一两个,数据还是可以恢复回来。支持S3 ,其实就说说它对亚马逊S3 的兼容,因为很多服务还是从亚马逊的webservice抄过来的。
Heat
Heat,编排服务,其实是从F版本才放进来的一个项目,也放在核心项目里面了,这个项目其实是为了让OpenStack上的资源用起来更舒服,更方便。它提供了一种资源的模版,比如你要部署一套Apache的HA集群,那你可以通过这个模板定义一下这个集群需要一些什么资源,以什么样的方式进行组织来部署成一个集群,它有一种模版规范,按照它的规范自己写一个模版文件,将它放在heat的模板引擎中,就会自动组织你想要的资源和部署模式。这个服务也不是OpenStack社区自己想出来的,也是从亚马逊那边照抄CloudFormation。
Ceilometer
OpenStack精美大餐还在继续,下期更精彩哦!
(更多华为资讯请关注华为开发者社区,华为自己的对外开放门户:http://developer.huawei.com/cn/ict/ ,不要问我叫啥,别人都叫我雷锋)
、