首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于系统架构的云计算虚拟资源动态调配研究

作者:向华伟 吕垚 张雪坚 来源:电子技术与软件工程

摘 要

针对目前主流的云资源管理产品资源调度和资源动态调配方式对应用系统安全、稳定方面的存在隐患,本文提出了一种基于系统架构的虚拟资源动态评估方法,其中,基于熵值法的资源评估模型对系统资源负载情况进行评估;通过时间序列方法,预测未来业务周期的变化情况,结合SOA松耦合型系统架构,针对应用系统特点制定安全、有效的资源动态调整策略。既实现了资源的有效利用、减少能源消耗,也提高了资源调整的安全性、保障了用户服务质量(QoS)。

【关键词】云资源 熵值法 时间序列 系统架构 容量评估

1 引言

云计算架构分为IaaS、Paas、SaaS三个层次,其中基础设施即服务(IaaS)作为云计算架构的基础,在云计算架构中发挥着至关重要的作用,而虚拟化技术则是对IaaS的最好支撑。近年来国内越来越多的大型企业都在进行本企业的云计算构建,其中私有云是这些企业的首选。目前私有云的建设主要还是集中在资源虚拟化建设使用阶段,由于私有云为企业或组织自建平台,用于支持本企业或组织的运营和发展需求,对于云平台资源的使用和业务特点各有不同。

在企业私有云的构建过程中,对云资源的管理成为了企业首要解决的问题,目前业界已有一系列的相关产品和应用,如:VMWare vSphere、微软的Hyper-V、Amazon EC2等,这些产品都不同程度的实现了对云资源的管理,包括物理资源和虚拟资源。在云资源中,虚拟资源将占很大的比例,随着云计算的不断推广,可能比例还会呈上升趋势。通过对这些虚拟化产品的研究,其管理对象主要还是以虚拟机为主,包括虚拟机的创建、收回,虚拟机迁移、调度等功能,实现资源的动态平衡,提高资源利用率。

这些主流的虚拟化产品虽然已经实现了资源的调度和动态调配,但是,一方面这种调整是基于虚拟机迁移技术,在不改变虚拟机配置的基础上实现;另一方面基于这种动态资源调整可能会对系统安全、稳定等方面产生影响。因此,本文将提出一种结合业务系统架构,建立一套基于主流虚拟机迁移技术的云资源容量评估模型,对云资源容量进行动态评估,基于评估结果来制定资源调整策略是一种比较安全的方案。

2 相关工作

目前,还没有一种基于系统架构的合理、安全的资源动态调配评估方案,相关研究有:VMWare vSphere,通过DRS+DPM技术,DRS用于动态调整主机负载,自动将负载较重的的虚拟机通过VMotion迁移到负载较轻的主机上,达到集群中主机资源的负载均衡。DPM会将群集层以及主机层容量和运行在群集中的虚拟机所需要的容量做比较。然后,DPM会根据比较的结果,将负载较轻的虚拟机进行集中化,释放闲置资源,达到资源的有效利用。此方法是一种简单、高效的解决方案,虽然解决了资源的动态调配,但虚拟机的资源配置并未发生变化,当业务系统的资源需求超过承载该系统的虚拟机资源时,这种方式是无法满足的;同时没有结合业务系统特点,对于资源的分配仍有很大的调整空间。

文献提出在整体资源受限条件下的多任务多资源同时调配的全局优化调配模式;文献采用远程缓存和虚拟机迁移两种技术进行虚拟资源动态调配;文献提出了一种基于熵优化和动态加权负载评估的多目标优化评估机制;文献提出了负载均衡模型框架,对虚拟机负载情况和虚拟机集群负载情况进行量化评估,实现了虚拟机集群负载的均衡和弹性的伸缩。

既有的文献多侧重于对虚拟机的静态或动态虚拟化资源调整,来满足资源弹性伸缩的目的,这种方式虽然实现了资源的动态调配,但是太过于注重资源本身,而忽略了每个应用系统之间的差异。对于应用系统而言,其架构就决定了系统是否具备可扩展性的特征,传统的紧耦合型系统架构大多只能支持系统的纵向扩展,即通过调整资源配置来实现扩展;而目前流行的SOA松耦合型系统架构,这种架构的特点是能够支持业务变化的灵活性,在能够支持纵向扩展的基础上,也能够支持系统的横向扩展,即通过调整资源数量来满足系统对资源的需求。

因此,本文对云资源调配策略的研究,借鉴文献中对虚拟机集群的负载情况的量化评估方法,对系统负载进行评估;通过时间序列方法,预测下一个业务周期的变化情况,结合SOA松耦合型系统架构,针对应用系统特点制定安全、有效的资源调整策略。既实现了资源的有效利用、减少能源消耗,也提高了资源调整的安全性、保障了用户服务质量(QoS)。

3 基于系统架构的虚拟资源动态调配

本文研究的云资源动态调配是基于松耦合的SOA系统架构,假设云资源池中的物理资源无限大。一方面,随着业务系统的运行,数据量的增加和业务的扩展,原来申请的系统资源将逐渐不能满足系统的需求,这种情况向系统并入新的资源来满足系统日益增长的需求;另一方面,每个业务系统运行过程中都有其业务运行周期,如:业务周期分为高、中、低。不同的业务周期对资源消耗也不尽相同,这就需要根据业务周期的变化来判断需要增加资源还是释放资源。

基于此架构,我们定义‘服务单元’的概念,一个服务单元由一台或多台虚拟机构成,并具备独立的服务能力。假设每台虚拟机的配置都相同。

3.1 基于熵值法的资源评估模型

3.1.1 资源评估指标

一般我们将CPU使用率、内存利用率、磁盘使用率、网络使用率作为负载数据指标,这些指标都会对虚拟机的性能产生至关重要的影响。我们在此提出综合指标‘资源利用率’,来代表某个虚拟机或服务单元以及应用系统的整体资源负载情况。

3.1.2 资源负载评估模型

根据业务系统逻辑构成层次,将系统架构分为服务器层、服务单元层、系统层。系统资源负载评价采用自下而上的评价思路,上层资源负载可通过判断下层负载获得;下层的变化最终影响和决定上层状态。系统资源负载评价过程如图1所示。

(1)服务单元资源负载评估。记衡量资源使用情况的指标有p项,服务单元内有m个虚拟机,系统虚拟机总数为n,共采集了t个时刻的指标数据。

①熵权法计算指标权重。

样本数据为当前时刻全部虚拟机的采集指标,样本容量为n,即样本包含n个虚拟机的指标数据,指标数量为p。模型最终输入如下:

其中Xi为指标i的样本值,xij为第i个虚拟机第j个指标的取值。

不同指标的数量级和量纲可能有所不同,需要进行标准化处理以消除数量级和量纲的影响。

对于越大越好的指标,作如下转换:

对于越小越好的指标,作如下转换:

为了便于理解,记处理后的数据仍为xij。

计算第j项指标下第i个虚拟机占该指标的比重:

计算第j项指标的熵值:

其中k>0,ln为自然对数,ej>0,式中常数k与样本容量n有关:

计算第j项指标的差异系数,对于第j项指标,指标值xij的差异越大,对方案评价的作用越大,熵值就越小,则:gj越大指标越重要。

求各个指标的权数:

得到的指标权重向量记为W:

②资源利用率评估。

记为第k个虚拟机第i个指标在时间点j的取值,则虚拟机指标数据集合为:

Lk表示虚拟机k上指标的采集数据集合。

服务单元的数据集合为单元内所有虚拟机的数据集合,记为:

不同的任务对资源的要求不同,同时虚拟机的配置性能也可能不同,因此引入权重因子,记为虚拟机k的权重,则虚拟机权重的集合可以表示为:

经过第一个步骤的计算,得到指标权重向量如下:

定义虚拟机k在j时刻的负载,并描述虚拟机实时的负载状态:

定义虚拟机k在指标i上的负载能力为,表示虚拟机k在指标i的取值上限(如:CPU使用率小于75%正常,则该值为75%),则指标i负载能力Ri为:

指标i上的负载能力,可以根据各单位的管理规定或经验给出一个合理的范围[a,b]。

单元在时间点j时指标i的负载率为实际负载对负载能力的占比,计算公式为:

其中

表示虚拟机在时刻j对资源i的实际使用率,即实际负载。

最终可以得到服务单元在时刻j对资源的使用率为:

实际应用中,资源使用情况是在一定区间内波动,不可能总是达到资源100%利用,因此可以根据业务情况划定区间进行分级,定义业务系统资源正常使用区间为[a,b],其中b为上限,a为下限:S>b:过载;S∈[a,b]:正常;S

(2)业务系统资源负载评估。在该业务分析中,各个单元中的服务器配置相同,因此系统级资源利用率的整体情况用单元的平均使用率表示。

记单元数量为N,单元h的使用率为Sh,系统资源利用率记为Rate,则:

Rate按区间分级:过载、正常、空闲。

[说明]:对于系统资源利用率Rate的分级,可以根据用户实际需要定义一个范围值,认为系统资源利用率在这个范围时,系统资源使用最优。

3.2 基于时间序列的资源预测模型

要实现云资源的动态调整,我们就必须了解什么时候调整。每个线上业务系统都有其业务运行周期,有日频度、月频度,也可能还有年频度,系统业务平稳时,不会出现大的波动,只有当业务发生变化的时候,才会出现大的波动,因此,调整的时间选择应该在上一个业务周期结束下一个业务周期到来之前进行调整,这样才具有预先调整的意义,否则事后调整可能可能已经对系统运行造成了严重影响。

根据大量历史数据,应用差分自回归滑动平均预测模型(时间序列),结合业务时间窗口,预测下一个业务周期的数据,掌握下一个业务周期数据的变化情况。

3.3 基于系统架构的容量评估模型

一个业务系统在运行过程中,如果用户量超过系统的最大承载量时,系统对资源的需求会增大,系统的性能会降低,甚至出现宕机的风险;同时系统的硬件资源负载超过一定范围后,也会影响系统性能,导致系统变慢或宕机。在此,我们排除应用本身的性能、应用软件的性能以及系统接口相关性能等因素,通过系统应用性能和系统资源性能两个方面来判定是否要进行资源调整。

首先,建立系统应用性能基线和系统资源性能基线;其次,通过预测模型预测系统应用性能指标和系统资源性能指标,通过预测数据与基线数据的对比,来确定是否需要进行资源调整;最后,结合业务系统架构,找到服务单元与系统应用性能指标和资源性能指标之间的关系,结合业务周期预测结果,得出具体的调整量。

3.3.1 建立性能性能基线

根据3.2章节的时间序列模型构建系统应用性能基线和系统资源性能基线,其中系统资源性能基线中的资源利用率指标由3.1章节的基于熵值法的资源评估模型进行评估。

3.3.2 资源调整评估

判断一个系统是否资源过盛或闲置的判断依据如下:(1)当预测的在线用户数或资源利用率有任何一个超过限制(最大支持在线用户数或资源使用率),则都需要调整(增加资源)。(2)当预测的资源利用率低于标准资源利用率最小值时,则需要进行调整(资源释放)。

将系统平均响应时间和系统资源利用率分别使用S和R表示,将资源利用率的标准范围用[a,b]表示。预测的下一个业务周期的在线用户数为U’,预测的系统资源利用率为R’。

业务系统对资源的使用情况存在以下几种情况:

(1)资源不足:使用性能测试方法中的负载测试和压力测试方法,在系统平均响应时间和系统资源利用率在运行性能参数的范围内,测试出系统支持的最大用户数,我们用U表示。

根据判断依据,当R’>R(b)或U’>U时,需要进行资源调整,调整策略为:增加资源。

(2)资源过盛:在系统平均响应时间在指定的范围内,只要资源利用率小于标准最小值,那么就需要考虑释放资源,这时与在线用户数的多少无关。

根据判断依据,当R’

(3)资源满足:在线用户数和资源利用率都在标准值范围时,则不进行调整。

根据判断依据,当S<5并且R’∈[a,b]时,则不需要进行资源调整。

3.3.3 资源调整策略

N0:表示当前服务单元数量

Nt:表示未来t时刻服务单元数量

M:表示调整的服务单元数量

(1)增加资源情况分析。

Umax:表示系统最大支持在线用户数或最大并发量

那么,每个单元的服务能力我们用P表示:P=U/N

Ut:表示下一个业务周期在线用户数预测值或系统并发量预测值。

那么,需要至少增加的单元数量为:

当M出现小数时,考虑到我们调整的都是服务单元,因此应该调整为整数,向上取整。

(2)释放资源情况分析。

Rmax:表示资源利用率上限

Rmin:表示资源利用率下限

M:表示调整的服务单元数量

Rt:表示下一个业务周期在系统资源利用率预测值

Mmax:最多需要释放的单元数量为:

Mmin:最少需要释放的单元数量为:

如果Mmax,Mmin出现小数,同样采用取整,因为此时是释放资源,因此向下取整。

4 总结

云计算虚拟化技术为资源池中基础设施的管理带来极大的便利,但与此同时也对资源管理者提出了新的挑战,如何解决云计算服务的虚拟机动态部署与调度过程中的动态资源管理问题,实现资源的负载均衡、提高资源利用率成为了需要研究的课题。本文提出了一种基于系统架构的虚拟资源动态评估模型,通过该模型,可对负载过高的虚拟资源进行迁移或补充,对资源负载过低的资源进行释放,实现负载均衡、提高了资源利用率、有效减少能耗的目的,基于该模型制定资源调整策略是一种较为安全、可靠的解决方案。

参考文献

[1]尹敬齐.受限条件下云资源的全局优化调配研究[J].计算机测量与控制,2013.

[2]王志钢,汪小林,罗英伟.云计算架构下的深层次动态资源调配[J].集成技术,2012.

[3]左利云,曹志波,董守斌.云计算虚拟资源的熵优化和动态加权评估模型[J].软件学报,2013.

[4]朱志祥,许辉辉,王雄.基于云计算的弹性负载均衡方案[J].西安邮电大学学报,2013.

[5]周文煜.虚拟化集群资源调度机制研究[JD].中国科技大学,2012.

[6]李爱国,厍向阳.数据挖掘原理、算法及应用[M].西安:西安电子科技大学出版社,2012.

[7]李雄飞,董元方,李军.数据挖掘与知识发现[M].北京:高等教育出版社,2010.

作者单位

云南电网有限责任公司信息中心 云南省昆明市 650206