基于系统架构的云计算虚拟资源动态调配研究
摘 要
针对目前主流的云资源管理产品资源调度和资源动态调配方式对应用系统安全、稳定方面的存在隐患,本文提出了一种基于系统架构的虚拟资源动态评估方法,其中,基于熵值法的资源评估模型对系统资源负载情况进行评估;通过时间序列方法,预测未来业务周期的变化情况,结合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对资源的使用率为: