【摘要】:OpenStack平台是一个开源项目,是旨在提供基础设施即服务的云平台,可扩展性强是其最大的特点。身份服务 Keystone是为OpenStack的所有项目提供统一身份验证、服务规则和服务令牌的功能。表7-1 OpenStack与AWS的映射关系OpenStack与AWS最大的同在于服务定位。而OpenStack最大的优势在于它可以兼容Amazon平台上的AMI格式。这样用户就可以使用OpenStack部署同的面向IaaS的云端平台。
OpenStack平台是一个开源项目,是旨在提供基础设施即服务的云平台,可扩展性强是其最大的特点。OpenStack是一个纯IaaS服务模型,它的目的是让任何组织都可以通过OpenStack和标准化的硬件设施来创建和提供云计算服务。OpenStack也可用作建立防火墙内的私有云,提供机构或企业内各部门共享资源[3,4]。
1.OpenStack核心组件
OpenStack是由几个主要组件组合起来完成一些具体的工作。OpenStack的Kilo版主要由以下核心组件或服务组成:
(1)计算服务(Nova) Nova是OpenStack的核心部分,旨在提供一个IaaS的可伸缩云计算平台,用于为单个用户或群组管理虚拟机实例的整个生命周期,根据用户需求提供虚拟服务。它创建一个抽象层,让CPU、内存、网络适配器和硬盘驱动器等服务器资源实现虚拟化,并具有提高利用率和自动化的功能。它的实时虚拟管理具有启动、调整大小、挂起、停止和重新引导功能,这是通过集成一组受支持的虚拟机管理程序来实现的。另外,它还可以在计算节点上缓存VM镜像,实现更快的配置。在运行镜像时,可以通过应用程序编程接口(API)以编程方式存储和管理文件。
它的架构与功能类似于EC2和Rackspace Cloud Servers。Nova本身不包含Hypervisors,而是定义一个能驱动原有底层架构与虚拟化操作系统沟通的机制。
(2)镜像服务(Glance) Glance的主要功能是为虚拟硬盘镜像提供发现、注册和交付服务,同时还具有快照和备份功能。
用户可采用多种格式为服务提供私有和公共镜像,这些格式包括VHD(Microsoft Hyper-V)、VDI(VirtualBox)、VMDK(VMware)、QCOW2(QEMU)等。其提供用于创建/上传镜像、删除镜像和编辑镜像基本信息的RESTful API。
(3)对象存储(Swift) Swift对应亚马逊的S3,通过键值对的方式实现对象文件的存储读取,可以为Glance提供镜像存储和卷备份服务。Swift项目最初由Rackspace开发。它可以用于存储邮件、照片和文档等。它提供RESTful API用于上传和下载文件到集群。支持语言包括Java、C#、PHP、Python和Ruby等。
(4)数据库服务(Trove) 为用户在OpenStack的环境中提供可扩展和可靠的关系和非关系数据库引擎服务。
(5)数据处理服务(Sahara) Sahara的基本功能是允许OpenStack软件控制Hadoop集群。Sahara有两种使用模式:①基本的大数据集群应用模式,也称为基本模式;②通过EDP机制引入分析即服务模式,也称为EDP模式。基本模式要求用户自己从底层搭建Hadoop虚拟机、建立集群,技术门槛较高;而EDP模式类似于AWS EMR服务,对底层的Hadoop集群操作和Hadoop业务操作进行封装,暴露给用户的只是简单的接口。
(6)网络服务(Neutron) Neutron提供管理局域网的能力,为OpenStack其他服务提供网络连接服务。用户可以定义网络、子网和路由器,配置DHCP、DNS和负载均衡等,网络支持GRE和VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch,然后向这些网络分配IP地址和VLAN。动态IP地址允许用户向VM分配和再分配固定的外部IP地址。
(7)块存储(Cinder) Cinder与亚马逊的EBS弹性云硬盘类似,实现了对块存储的创建和管理,为虚拟机提供云硬盘服务。与Cinder一起使用的最常见存储是Linux服务器存储。云用户可通过仪表板管理他们的存储需求。该系统提供了用于创建块设备、附加块设备到服务器和从服务器分离块设备的接口。另外,也可以使用快照功能来备份Cinder卷。
(8)遥测服务(Ceilometer) Ceilometer负责收集OpenStack内部发生的几乎所有事件,为计费和监控以及其他服务提供数据支撑。
(9)编排服务(Heat) Heat提供一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。
(10)面板服务(Horizon) Horizon是基于OpenStack API接口开发的以Web方式展现的服务,用于简化用户对服务的操作,如启动实例、分配IP地址和配置访问控制等。(www.chuimin.cn)
(11)身份服务(Keystone) Keystone是为OpenStack的所有项目提供统一身份验证、服务规则和服务令牌的功能。Keystone本身没有提供身份验证,但它可以集成其他各种目录服务,如可插拔认证模块(PAM)、轻型目录访问协议(LDAP)等。通过这些插件,它能够实现多种形式的身份验证,包括简单的用户名密码凭据以及复杂的多因子系统。
(12)裸金属服务(Ironic) Ironic提供裸金属服务基础设施服务。
总之,OpenStack一直努力使每个项目尽可能独立,这使得用户可以选择只部署一个功能子集,并将它与提供类似或互补功能的其他系统和技术相集成。其中Nova、Glance和Keystone是必选组件,其他组件是可选的。然而,全功能的私有云很可能需要使用几乎所有功能才可以正常运作,而且各元素需要被紧密地集成在一起。
2.OpenStack与AWS的关系
由于OpenStack定位是亚马逊AWS的开源实现,所以OpenStack的很多内容都和亚马逊是对应的,OpenStack与AWS的映射关系见表7-1。
表7-1 OpenStack与AWS的映射关系

OpenStack与AWS最大的不同在于服务定位。AWS让使用者使用IaaS服务,而OpenStack则是建立IaaS服务。AWS是自由度很高的IaaS平台。利用虚拟机几乎可以搭配各种Amazon云端服务。而OpenStack最大的优势在于它可以兼容Amazon平台上的AMI格式。这样用户就可以使用OpenStack部署不同的面向IaaS的云端平台。
3.OpenStack组件关系
典型的OpenStack实现将会集成大多数组件。图7-1所示为一个比较典型的OpenStack架构[5]。
其中,Horizon是图形用户界面,管理员可以使用它来管理分配给用户的资源。Keystone处理授权用户的管理,网络组件即Neutron定义提供组件之间连接的网络。Nova负责处理工作负载的流程。它的计算实例通常需要进行某种形式的持久存储,可以是基于块的(Cinder)或基于对象的(Swift)。Nova还需要一个镜像来启动一个实例。Glance将会处理这个请求,它可以有选择地使用Swift作为其存储后端。

图7-1 OpenStack架构
相关推荐