APP下载

基于OpenStack的云平台虚拟集群部署设计

2016-10-18武佳宁

微型电脑应用 2016年6期
关键词:镜像集群组件

武佳宁

基于OpenStack的云平台虚拟集群部署设计

武佳宁

OpenStack凭借灵活高效的资源调度、弹性安全的资源整合管理和完全开源的公共项目迅速崛起。通过对OpenStack核心系统框架描绘和核心项目组件逐一分析,提出了可应用于企业级的OpenStack的云平台虚拟集群架构设计方案,并对该方案的云计算层和云存储层进行了剖析。

云计算;OpenStack;集群部署

0 引言

OpenStack是由美国国家航空航天局(NASA)和Rackspace合作开发,由Apache授权的开源云计算。截止到2015年10月15日,OpenStack-Liberty版本正式下线,至此OpenStack共发布了12个版本。OpenStack的主版本以字母表顺序排列,用年份加当年排序生成版本号,第一版版本号为Austin(2010.1)。OpenStack是IaaS组件,是为云计算基础架构提供开放式的可扩展的操作环境,用户可以自由的使用云服务并且建立自己的私有云,用来供企业事业单位的内部资源共享[1,2]。OpenStack通过子项目对云计算平台的计算、网络、存储等资源进行管理,也提供虚拟化技术的技术支持[3]。通过这些年的演变OpenStack已经得到主流数据中心的广泛支持,目前它已经成为企事业单位部署云计算服务的集成引擎[4,5]。

1 OpenStack核心系统框架构建

1.1OpenStack核心系统框架

OpenStack是Iaas交付型模型,代码完全开放,为企业提供了灵活可行的架构解决方案,为程序技术人员提供出色的开源框架及高扩展的API[6,7]。OpenStack采用模块化设计,在一个系统的体系下生成了十多个不同的核心开发项目,还有孵化项目、支持项目和相关项目,他们是由项目组建的相关程度和成熟程度来分解的。各个核心项目可以根据用户的选择挑选使用,也可以通过组件之间的合作运行来实现各种功能。

OpenStack的8个主要核心项目组件系统框架如图1所示:

图1 OpenStack核心系统框架图

Heat提供的是可预先定义的云部署服务。用户通过Horizon就是UI门户组件在web界面访问OpenStack,通过该门户调用其他的核心项目组件为自己服务。所有项目组件都需要通过keystone身份验证授权服务,通过验证后得以调用Nova计算组件。Nova组件把相关信息存储在对象存储(Swift)和块存储(Cinder)中,并得到检索服务。网络管理(Neutron)为Nova提供虚拟网络管理,镜像(Glance)提供虚拟镜像管理,它也可以存储在Swift中。

1.2OpenStack核心项目组件

OpenStack的核心项目组件可以联合在一起为用户提供完整的云架构服务,也可以分开独立工作,为用户提供云存储、虚拟化服务、镜像或者操作系统服务。下面我们分析一下OpenStack最基本的5个核心项目组件。

1.21Nova——计算(Compute)

Nova是OpenStack核心项目组件中最重要的计算服务,其复杂度也是最高的。作为一套控制器,它为虚拟主机提供了开关机、创建调度、迁移调整等服务,可以根据不同的用户(单独或集群)的需求控制虚拟主机来配置CPU、内存等设备,在多个实例的特定项目中还能设置网络。Nova组件通过管理hypervisor来管理虚拟主机,它可以为用户提供预先设置好的镜像,或者存储用户自行创建的镜像,这样用户就可以把镜像以虚拟机的形式启动。其中Nova-API模块接收来自外部的数据访问;Nova-Compute模块管理来自虚拟机的各项指令和具体实施;Nova-Scheduler模块则进行算法调度。到Kilo版本,开始通过stackforge模块提供对外的管控、EC2兼容等接口,取代了以前版本中的EC2 API模块转换服务。虚拟主机的调度调整和逻辑判断是通过scheduler模块完成的,模块与模块之间的通信是由消息队列传递的,到Kilo版本进一步标准化了scheduler的接口并做了优化。

1.22Swift——对象存储(Object Storage)

Swift自Austin版本就已经集成在OpenStack核心项目组件中,与Nova项目组件服务组成了最早的OpenStack服务平台。所以在OpenStack服务平台中所有的数据都被定义为一个对象,Swift则是用于可扩展并且支持多租户的分布式对象存储系统中,它通过高级容错和内置冗余机制来操作对象文件实现对象存储服务,可用于媒体存储、文档镜像文件备份等,并支持文件检索和文件存储。Swift-Proxy是Swift的一个模块,它对外提供存取接口,当一个对象经过Swift-Proxy接口及接入后,通过account、object、container模块来定位对象,所以在OpenStack服务平台中对象被描述为(account,object,container)。

1.23Glance——镜像服务(Image Service)

Glance为OpenStack解决管理虚拟镜像问题,能够为虚主机提供镜像上传、验证、删除、存储等功能,在Bexar版本中正式发布。Glance的主要接口是镜像注册和镜像指派,比如把一个新生成的镜像注册到数据库中,或者在实例化虚拟镜像时指派它到某实体机上用以启动虚拟主机。其中Glance-API模块接收外部数据;Glance-Registry模块保存镜像文件的元数据并且负责检索处理元数据;Glance-Adapter模块处理匹配存储类型。到Kilo版本,Glance做了一些优化,新版本里Glance可以使用多个Swift来存储镜像,这样在大数据部署的情况下大大减少了大规模请求时造成的存储瓶颈;增加了配置文件更新免重启设置、多字段排序功能和镜像自动格式转化等实用的新改进。

1.24Keystone——身份服务(Identity Service)

Keystone在Essex版开始正式从Nova和Glance中剥离,是OpenStack核心项目组件中提供身份验证服务的,提供登录认证、用户管理、服务规则和访问控制等服务的组件。OpenStack的所有项目组件都需要Keystone提供服务,包括Account服务、Authentication服务和Authorization服务,这3种重要的服务被称为3A服务。在部署OpenStack时要先部署Keystone,并把Nova、Swift、Glance、Neutron、Horizo等服务在Keystone中提前注册,才能使其他服务被授权并允许使用。Keystone还为OpenStack提供了无需身份在线确认就可以离线获取身份PKI令牌的功能,还支持多用户身份管理并支持角色接入控制和群组管理控制,给予了管理员较大的权利。

1.25Neutron——网络&地址管理(Network)

Neutron前身Quantum项目,Quantum是在Folsom版发布的,到Havana版中正式变更为Neutron,为OpenStack提供灵活的物理网络服务,是云计算环境下的虚拟网络功能组件。Neutron是基于可插拔式插件的架构,其核心插件Neutron-core plugin是核心插件,它提供逻辑API和功能实现之间的连接,当网络连接请求发出后,Neutron中的插件就会对网络的连接各个方面进行分析处理,它虚拟化了IP地址、子网、网络中间设备,利用基于插件的架构完成网络连接。到Kilo版本,Neutron解耦核心插件以及分离高级服务,并在IPv6功能方面有很多优化,比如支持一个网络分配多个IPv6前缀;增强了IPv6 路由的技术支持;可以为DHCPv4和DHCPv6设置额外的DHCP选项。

2 OpenStack的云平台虚拟集群架构部署

OpenStack云平台虚拟集群分为两层:一层是云计算,一层是云存储。云计算层负责部署高复杂度任务,虚拟服务器管理,镜像管理,调度作业、资源配置策略等。该层相当高级管理和指挥层,它操作这个环境,通过组件与用户交互,为用户提供UI界面,为开发者提供API端口,通过API访问云管理,还要有身份验证系统和监控系统。根据一些企业数据中心和网络信息中心网络拓扑的特点,部署Openstack云平台虚拟集群,当前的架构中为用户提供了虚拟的服务以及强大的计算能力,该架构在多服务器的基础上并行计算及存储能力,高效利用各节点的信息处理能力,节约了响应时间及硬件成本。利用OpenStack服务部署的云平台虚拟集群架构设计,如图2所示:

图2 基于OpenStack的云平台虚拟集群架构设计图

3 基于OpenStack的云平台虚拟集群架构

3.1构建OpenStack虚拟化集群系统架构

云计算层通过虚拟化技术架构整合的硬件资源,通过OpenStack的几大核心项目组件的功能设计开发,对服务器、存储设备以及网络整合形成高效、统一、规模庞大的虚拟资源管理层。OpenStack的核心项目组件既可以独立工作,也可以合作部署,对于核心组件Nova部署在性能强劲的服务器中,对于Keystone、Glance、Swift分别部署但可以对服务器的要求降低,核心的项目分布式部署在多个服务器中,组成的集群架构实现了云计算的高性能及较强的处理并发事件的能力。如图2,Nova核心组件部署在高性能的服务器上,对各个组建服务器和交换机进行监控管理,各个网络设备处于局域网中,使得虚拟数据访问更加快捷安全,这样虚拟化云计算服务层只有通过交换机与外网的通信,即在一个与外网不直接接触的状态。

3.2构建OpenStack云平台存储系统架构

云平台的计算信息、网络信息、镜像数据等资源都需要资源层提供存储服务,OpenStack的云存储可以构建大规模大容量的存储系统,它还包括虚拟镜像存储,对虚拟机的镜像文件进行存储、检索和查询。在企业级云平台部署中资金一般投入不能过高,因此在集群架构的设计中,加入了对象存储技术,这种方式通过服务器的叠加和良好的可扩展性,给了企业一个可以自主控制成本的优化方式。如图2,云平台虚拟集群的存储需要存储服务器若干,可以根据具体需求增加扩展存储节点,通过网络交换机连接各存储节点,并需要身份认证交换机控制访问,代理服务器控制负载保证负载均衡,这些基本元素构架了存储系统。该云存储可扩展支持多应用,支持文档、数据、视频存储等静态数据存储和开发数据存储,无限扩展所以容量无限,提供了弹性的云存储。

3.3构建OpenStack云系统横向扩展

构建成功了OpenStack云系统,新资源源源不断的添加到服务器,就会有扩展的需求,OpenStack支持横向扩展,用户可以在已有的OpenStack云系统中直接添加新的服务器,在升级扩展的过程中可以做到不影响系统运行、不间断系统服务。

3.3.1OpenStack云系统扩展规划

规划云系统的系统扩展性,需要平衡许多配置变量,可能很难达到完美配置方案,在实际运维中通过监控系统指标可以对系统的规划提供许多指标从而进一步优化系统。一般从云系统的核心数量出发,通过如下公式:

可运行虚拟机估算数量=物理核数× 重用因子/ 每实例所需虚拟核数

系统需求的存储估算容量=磁盘空间容量×可运行虚拟机估算实例数量

通过公式计算出估算虚拟机数量和存储容量就可以规划出在云系统中需要添加多少资源。OpenStack的系统默认值如表1所示:

表1 OpenStack的系统默认值

举一个实例是m1.medium类型的例子:假设每个虚拟机需要2个虚拟核,50GB存储空间,物理核数200个,CPU重用因子为16倍。那么按照公式,硬件环境可以支持的虚拟机实例为16×200/2=1600个, 需要存储空间为1600× 50≈80TB。

估算了需要扩展的虚拟机数量和存储空间,还要考虑用户使用虚拟机的性能问题,不光考虑硬件本身的技术指标还要考虑性能需求和预算的问题,性能方面包括CPU总性能以及核数,存储性能、内存空间、网络带宽等因素。

3.3.2OpenStack控制器节点的扩展

OpenStack控制器节点的扩展比较方便,可以通过添加更多节点来横向扩展云系统,如果我们准备扩展的云系统没有更高运行要求就可以按照和以前系统的配置进行扩展。如果我们遇到的是扩展运行要求更高一层的云系统,那需要从注意以下几点配置扩展:用户访问量需要扩展增强,可以采用负载均衡的方式,把访问请求分摊到各个服务器中,只要是标准的HTTP负载均衡方式都能够完成分摊工作,也有些可以通过MySQL进行负载均衡;多进程问题,可以通过修改配置文件中的标示,让多进程在几个CPU硬件上分摊进程,分配计算任务;对于运维多个服务问题,可以直接通过消息队列通讯的服务把它们安装到其他服务器中完成。

3.3.3硬件扩展

云系统虽然灵活多变, 但是要求底层服务器的硬件稳定并且要求配置匹配,要求服务器至少CPU类型相同,从而支持实例迁移。OpenStack的硬件采购支持商品硬件,就是市场上提供的各种标配服务器,如果横向扩展预算不足也支持现有服务器升级改造。硬件改造完成后就着手规划系统容量,首先考虑云控制器的容量,一般在允许的情况下应给计算和存储多预留容量,Nova-scheduler需根据内存信息和CPU核数进行资源管理和调配。如果遇到CPU不同的情况,则要根据CPU性能重新计算每个节点需要的存储容量。在规划中还要注意安装监控系统,以便随时了解资源的使用情况以及用户增长情况,以便适时的考虑购置新硬件。最后,为了避免服务器高负荷运转造成的设备故障频发,可以在扩展初期就进行高负荷测试用来测试硬件的应对能力,一般是通过不间断的连续运行CPU和磁盘的性能测试软件3-7天,让硬件的负荷达到极限。

4 总结

通过开源OpenStack云计算平台和虚拟化技术的开发,本文提供了一种基于OpenStack的云平台虚拟集群部署设计。该云平台虚拟集群充分利用了OpenStack的众多能够提供独立服务的核心项目组件,以及云平台虚拟化的技术优势,完成了平台构建。利用OpenStack的Glance服务灵活的部署虚拟环境和各个服务器所需要的虚拟资源,不仅提高了资源利用率,还大大降低了成本。下一步还将进一步研究该集群的其他系统功能效率,以便不断提高其使用性能并完善负载均衡等问题。

[1] 朱近之.智慧的云计算[M].北京:北京电子工业出版社,2010.

[2] 雷万云.云计算技术、平台及应用案例[Ml.北京.清华大学出版社,2011.

[3] 耿向东. 走下云端,让云计算落地开花 [J]. 中国新通信,2012,03.

[4] 邓倩妮,陈全.云计算及其关键技术 [J].计算机应用,2009,29

[5] 怀进鹏,李沁,胡春明.基于虚拟机的虚拟计算环境研究与设计[J].软件学报,2007,18

[6] 盛宪锋,及俊川,周小军.基于虚拟化技术的私有云APCS平台设计[J].计算机工程,2011,08

[7] 曾龙海,张博锋,张丽华.基于云计算平台的虚拟集群构建技术研究[J].微电子学与计算机,2010,27

Design of Virtual Cluster Deployment on Cloud Platform Based on OpenStack

Wu Jianing
(Shaanxi Xueqian Normal University, Xi,an 710100,China)

OpenStack is rapid raising by its flexible efficient resource scheduling, flexible security resource integration management and fully open source public projects. By the description of OpenStack core system framework and the detail analysis of its core project components,this paper proposes a design scheme of virtual cluster deployment on the cloud platform which can be applied to enterprise level OpenStack, and analyzes the cloud computing layer and cloud storage layer.

Cloud Computing; OpenStack; Clustered Deploy

TP311

A

1007-757X(2016)06-0015-03

2016.02.15)

陕西省教育科学规划课题(SGH13377);陕西学前师范学院教学改革项目(15JG022Q)

武佳宁(1981-),女,西安人,陕西学前师范学院工程师,研究方向:网络技术、实验室管理,西安,710100

猜你喜欢

镜像集群组件
无人机智能巡检在光伏电站组件诊断中的应用
镜像
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
海上小型无人机集群的反制装备需求与应对之策研究
镜像
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
风起新一代光伏组件膜层:SSG纳米自清洁膜层