本文针对目前云数据中心主机服务器在空转时间段对能源消耗巨大的问题,建立了虚拟资源申请–分配模型,提出了一种虚拟资源分配的策略。该策略在满足用户需求前提下,对主机服务器最大化利用,以此来降低基础设施对能源的消耗。通过“端”对云任务进行统计综合,提交云中心,云中心的资源管理器对云任务进行统一分配,以达到对服务器的最佳利用。仿真结果表明,我们提出的策略对不同任务数目、类型的云任务调度具有较好的效果,能够提高云计算中心服务器的利用率。 In this paper, a virtual resource application-allocation model and an efficient virtual resource al-location strategy are presented aiming at the huge energy consumption problem during the idle time of host server in cloud data center. The strategy can maximize the use of the host server and reduce energy consumption of the infrastructure under the premise of meeting the users’ needs. The cloud tasks are submitted to the cloud center after the statistical synthesis at the ends of the cloud, and unified allocated by the resource manager of cloud center in order to achieve optimal utilization of the servers. Simulation results show that our proposed strategy has good effect for different number and type of cloud tasks scheduling, and can improve the utilization of cloud computing center server.
于宁1,2,张金泉1,2*,倪丽娜1,2
1山东科技大学信息科学与工程学院,山东 青岛
2山东科技大学山东省智慧矿山信息技术省级重点实验室,山东 青岛
收稿日期:2016年3月5日;录用日期:2016年3月26日;发布日期:2016年3月29日
本文针对目前云数据中心主机服务器在空转时间段对能源消耗巨大的问题,建立了虚拟资源申请–分配模型,提出了一种虚拟资源分配的策略。该策略在满足用户需求前提下,对主机服务器最大化利用,以此来降低基础设施对能源的消耗。通过“端”对云任务进行统计综合,提交云中心,云中心的资源管理器对云任务进行统一分配,以达到对服务器的最佳利用。仿真结果表明,我们提出的策略对不同任务数目、类型的云任务调度具有较好的效果,能够提高云计算中心服务器的利用率。
关键词 :云计算,虚拟资源,分配策略
云计算通过互联网提供动态、易扩展、虚拟化的资源,提供这些资源的往往是具有庞大规模计算机集群的云数据中心。通常情况下,一个云计算中心有数万甚至数百万的服务器,这些云计算中心的能源消耗是巨大的。可以通过两种途径减少这些大规模基础设施对能源的消耗:一是降低单一服务器的能耗;二是进行虚拟资源优化来提高服务集群的整体资源利用率。
目前对于虚拟资源优化的相关研究主要集中于优化资源调度、优化资源分配以及资源有效管理等方面。有学者提出分层调度方法 [
虚拟资源可分为:计算型、通信型、磁盘型以及三者之间的互相组合 [
我们对整个资源申请过程建立模型。其中用户通过端向云服务集群申请资源,端在统计用户的申请后,向资源管理器递交统计结果,资源管理器通过综合分析资源申请与云服务集群中资源的使用情况,计算判断得出虚拟资源分配的最优配置,并将结果提交给云服务集群,最后云集群分配资源。图1为我们所提出的虚拟资源申请–分配模型。
模型将云资源申请–分配整体流程概括化表示。云用户是虚拟资源的申请者,代表云计算模型中的消费者。云服务集群为虚拟资源的提供者,代表云计算模型中的生产者。“端”代表云计算模型中的中间商,通过利用资源管理器,统计云用户的资源申请,在进行综合分析的基础上,向云集群申请到合适的资源并分配给云用户。这样也就完成了一次云资源申请–分配的流程。
假设在某一时刻有n个用户向端提交资源申请,对于这一时刻,端对云用户所申请资源的统计结果用一个n × 3的资源申请矩阵s1表示:
假设服务集群中每个主机服务器能承载的最大资源数为。对于整个服务器集群,可分为三类:正在使用且已存储满、正在使用且未满、未使用。第一种可以不予考虑,第二种我们用资源可分配矩阵m表示,其中 表示第i台主机剩余可分配的资源。
在对整个资源申请进行建模分析之后,虚拟资源分配问题可简化为两个分支:
一是如何将资源申请首先分配到运行中的未满服务器中;
二是如何将未分配的资源进行优化配置,使得新开服务器可以最佳利用。
本文的虚拟资源申请—分配模型采用以下步骤:1) 检测运行中的服务器是否可继续分配;2) 可分配则分配并且继续检验;3) 若不可分配则将剩余申请进行综合配置并分配到新开服务器中。
第一个分支:检测运行中的服务器是否可继续分配,可以通过比对建立的两个矩阵。
将申请资源矩阵与可分配资源矩阵进行逐一比对。考虑资源分配效率,比对若满足条件
图1. 虚拟资源分配模型
若矩阵s2非空,则表示有资源申请未满足,并且运行中的服务器已经不能满足资源分配需求,因此需要重开服务器。
这里我们引入线性不等式方程。通过求解线性不等式方程来使得新开服务器资源利用率达到最大。因为s2矩阵是从资源申请矩阵抽离出的一部分,我们假设仍有t个任务未分配,用如下矩阵表示:
对于新开服务器,其能承载的最大资源数为
将此不等式进行整理得:
对于此不等式,因为缺少目标函数,所以并没有确切的解。而解此不等式的最好办法是枚举所有可能性,即将
因为云计算面向的客户群是庞大的,同样资源申请数目也是庞大的。所以在建立的s2矩阵中,会有多行。因此若对s2直接处理,计算量很大。本文选择对s2进行分组,其中分组数目综合考虑云任务申请资源大小以及服务器的配置高低。假设分组完成后每组所含云任务数量为COUNT,此时的t = COUNT。再解上面的线性不等式,根据COUNT的数量来决定难易。
仿真平台使用Java在Eclipse上开发。平台模拟拥有一定数量服务器的数据中心,并随机产生一定数目的云任务用于实例验证。云任务的数目为1~7000,已开启的服务器数量定义为1~50台之间,未开启的服务器数目为0~500台。假定每台主机具有4 G内存、10 M带宽、10 G存储。
1) 固定分组数目,对比先到先得策略与本文策略。
首先固定云任务分组数量为每组10个,随机产生100~7000个云任务,对比先到先得策略(First Come First Served)与本文策略,如图2所示。
系统在接受到虚拟云任务后,通过对云任务进行统计,得到在最优情况下需要开启的主机服务器数目,然后对比先到先得策略与本文策略实际开启的主机数目。图中显示,在云任务只有较少数量时,产生的主机额外开销比较大。但是随着云任务数量的增加,两种策略产生的主机额外开销基本稳定。通过对比,本文的策略优于先到先得策略,主机额外开销稳定在7%左右。
2) 分组数目对策略的影响
本文采取策略需要分组来使得新开主机达到最优利用,分组之后每组虚拟云任务数量一般在5~19之间,主要根据主机配置以及云任务大小来定。固定云任务数量为2000,通过对比每组6~19个云任务的分组,如图3所示,随着每组云任务数量的不断增多,额外主机开销渐趋稳定,但策略运行时间急剧增加。因此通过考虑各方面因素,每组云任务数量定在10~14,策略会达到最优。
本文研究在满足云计算环境用户资源申请的前提下,如何有效降低数据中心服务器的能耗。论文提
图2. 先到先得策略与本文策略下产生的额外主机开销对比
图3. 每组所含云任务数目不同情况下的额外主机开销与运行时间对比
出了一种高效率的虚拟资源分配策略,通过云中间商“端”对云用户虚拟任务进行统计,资源管理器对云任务进行分组,找到每一组中新开启主机的最优任务配比,以使主机服务器得到最大利用。模拟仿真了不同条件来测试策略的性能。结果表明,本文策略比先到先分配策略有优势,并且本文策略在云任务数量增多以及分组数目的变化的情况下均有一定的稳定性,能成功提高主机服务器的利用率。
本文得到国家自然科学基金项目(No. 61272093),山东省高等学校科技计划项目(No. J15LN19, No. J13LN18),青岛市博士后研究人员应用研究项目(云计算在矿山地质数据存储及分析中的应用)的支持。
于宁,张金泉,倪丽娜. 云计算中虚拟资源高效分配策略研究 An Efficient Virtual Resources Allocation Strategy for Cloud Computing[J]. 计算机科学与应用, 2016, 06(03): 184-189. http://dx.doi.org/10.12677/CSA.2016.63023
http://dx.doi.org/10.1016/j.jcss.2013.02.004
http://dx.doi.org/10.1016/j.procs.2014.07.074
http://dx.doi.org/10.1186/s13638-015-0256-y