张福铮 黄文琦 李果 张乾坤
摘 要:由于数据中心的数量以及规模持续增加,如何合理有效利用资源成为当前研究的热点话题。为此设计一种基于OpenStack平台的云计算资源动态调度系统。分析OpenStack平台现有的调度策略以及虚拟机迁移技术,建立数据中心资源模型。根据多重阈值判定虚拟机迁移时机,进行目标虚拟机选取;分别为不同主体的物理资源赋予不同的权值系数,计算总权重并进行排序,根据排序结果选取目的主机,以完成云计算资源动态调度。实验结果表明,对比其他资源调度系统,所设计系统数据中心不均衡度较低,且平均带宽利用率较高,验证了所设计系统的有效性。
关键词:OpenStack平台;云计算;资源动态调度;调度系统
中图分类号:TN99
文献标志码:A
文章编号:1007-757X(2020)11-0063-03
Abstract:As the number and scale of data centers continue to increase, how to use resources reasonably and effectively has become a hot topic of current research. Therefore, a dynamic scheduling system of cloud computing resources based on OpenStack platform is designed. This paper analyzes the existing scheduling strategy and virtual machine migration technology of OpenStack platform, and establishes the resource model of data center. According to the multiple thresholds, the migration opportunity of virtual machine is determined, and the target virtual machine is selected;different weight coefficients are given to the physical resources of different entities, the total weight is calculated and sorted, and the target host is selected according to the sorting results to complete the dynamic scheduling of cloud computing resources. The experimental results show that compared with other resource scheduling systems, the designed system has lower data center imbalance and higher average bandwidth utilization, which verifies the effectiveness of the designed system.
Key words:OpenStack platform;cloud computing;dynamic resource scheduling;scheduling system
0 引言
云計算是一种新兴的信息化技术,它通过软、硬件结合实现数据的实时访问以及应用[1-2]。云计算服务的存在有效简化了信息流,同时实现海量数据的快速整合,为用户提供更好的空间以及场景。
随着科技的不断进步以及发展,全球数据呈爆炸式增长,科技改变了数据的生产方式,人类的生活已经和数据密不可分,不同行业也越来越依赖数据中存在的价值[3-4]。虽然现阶段云计算日益成熟,但是云计算模式在给用户带来便利的同时也带来了一系列问题,例如由于资源利用不合理导致能源消耗过多、二氧化碳排放量较高等问题。
相关学者对资源调度系统做了大量研究,文献[5]提出基于云计算的海量微服务资源调度系统。采用云计算技术,设计了微服务资源调度系统的硬件结构和软件实现流程,在调度算法设计上,采用模糊PID算法,较好地控制了资源调度中的自定义偏差,增强了系统的稳定性和实时调度功能。文献[6]提出基于BP神经网络的气象云资源调度系统。利用BP神经网络学习虚拟机载量历史数据,并对其进行预测;利用预测式虚拟机载量,设计了面向多类资源的虚拟机非增序策略;采用首次适应算法对已排序的虚拟机进行云资源调度。
设计基于OpenStack平台的云计算资源动态调度系统,通过具体的仿真实验数据,有效验证了所设计系统的优越性以及实用性。
1 系统设计
1.1 OpenStack平台资源调度策略
云数据中心资源定义的分类以及分层的方式并不是唯一的,以下将按照云计算资源映射到“计算、存储、网络”的分类标准进行建模,其中计算资源主要包含:物理服务器、虚拟服务器等;存储主要包含:共享存储、虚拟机等;网络主要包含:交换机、路由器等。将各种不同的资源映射为用户角度资源的一种形式,同时为用户提供几种典型的虚拟器服务模板进行选取,如图1所示。
利用图1给出数据中心资源模型[7],通过该模型能够得到不同资源之间的相对层次关系。
以下详细介绍不同资源实体之间的关系。
(1) 资源实体
主要是指数据中心全部相对独立的能够进行调度的资源。
(2) 物理服务器
它是组建数据中心的物理计算设备,各个服务器能够提供多个不同的虚拟服务器,其中物理服务器主要包含多个CPU、内存以及硬盘等组成。
(3) 虚拟服务器
主要是由多个物理服务器、必要的网络和存储结构组建的服务器组。
(4) 虚拟服务器集群
利用虚拟化软件在物理服务器上形成虚拟计算平台。
(5) 虚拟服务器集群
由虚拟网络连接形成的相互隔离的多个虚拟机组成。
(6) 共享存储
为计算资源提供较大容量的存储空间,它能够被所有设备应用共享。
(7) 中间件
它是一种软件服务,组建在单一或者多个物理服务器之上,提供给用户进行使用。
(8) 服务(应用)
软件作为一种服务方式,组建在单一或者多个物理服务器甚至更多数据中心之上,提供给用户的软件服务以及集成系统应用。
云计算主要利用虚拟化技术对资源进行管理以及调度[8-9]。通常情况下,需要在虚拟机的宿主主机上监控运行代理程序,采用基板管理控制器,根据智能平台管理接口对宿主主机的状况进行监控管理,将服务器信息上传给调度模块,通过调度模块来完成对虚拟机的管理。在计算服务系统中,虚拟机的数量和负载会实时变化,作为资源调度系统要实时进行跟踪以及监控,确保虚拟机资源平均分配在不同的物理机上,促使整个系统达到一个相对稳定平衡的状态,降低虚拟机对资源的竞争。
以下采用CPU使用率、内存等四维向量〈CPU,MEM,DISK,NET〉描述云计算平台的资源池,调度策略需要兼顾四种不同的计算资源,有效避免优化任意一类资源分配时对其他资源产生的影响。
当任意一台虚拟机分配资源之后,需要通过当前资源的剩余情况对资源矢量以及负载矢量进行及时修正,这样才能够达到资源调度的合理性[10]。给出基于负载的资源调度策略框架图,如图2所示。
具体策略:列举虚拟机集合中全部负载大于上限阈值的虚拟机;然后通过提到的实时监测反馈均衡调度算法获取物理资源负载最高但是并没有超过最高上限值的物理机,最后迁移到虚拟机上,更新资源矢量以及物理机负载,给出实时监测反馈模型,如图3所示。
在图3中,W代表系统中的权重值,根据用户不断发资源的请求,并且对其进行资源分配,后端服务器节点不断向负载均衡服务器反馈现阶段的资源负载情况[11],通过利用调度算法调整获取当前的权值W1。
1.2 目标虚拟机选取
在系统运行的过程中,如果物理主机超出阈值[12-13],则能够划分以下两种情况。
(1) 上限迁移触发;
(2) 下限迁移触发。
在实际应用的过程中,需要针对不同的情况制定不同的目标虚拟机选取算法。虛拟机迁移体积的计算,如式(6)。
在选取目标虚拟机之后,就需要将目标虚拟机迁移至任意一个物理主机,OpenStack主要通过计算节点选取符合资源需求的虚拟机。
针对于上限触发的情况,使用目标虚拟机选取现阶段需要迁移的一台虚拟机,主要目的是完成每一次迁移,针对目标虚拟机的选取算法都能够确保所选取的虚拟机是最适合迁移的。
针对于下限触发的情况,将主机中的虚拟机按照从大到小进行一一排序,根据排序结果进行目的主机选取以及迁移[14]。
1.3 云计算资源动态调度系统设计
综合1.1小节以及1.2小节分析,进行云计算资源动态调度系统设计,给出系统的总体结构图,如图4所示。
(1) 物理层
作为整个调度系统的资源层,物理层主要是由控制节点以及计算节点组成,物理层能够有确保上层服务的稳定运行,同时物理层也是动态调度算法最关注的对象之一。
(2) 服务层
系统的核心部分即为服务层,通过其对物理资源进行封装,确保系统硬件部分对资源的管理以及控制,同时还能够为用户提供虚拟机创建等服务。系统中的动态调度服务也在该层运行,确保最终资源实现动态调度。
(3) 业务层
业务层是整个系统的接口层[15-16],用户能够根据系统设定的方式对资源进行管理以及监控,具体包含以下几方面的功能:物理机配额查询以及剩余资源查询等,同时它能够实现用户创建、删除等,针对不同的用户进行分组以及权限划分等。
2 仿真实验
为了验证所设计系统的综合有效性,需要进行仿真实验测试,实验平台为:Pentium(R)Mobile1.73 GHz。
将所设计调度系统、文献[5]调度系统以及文献[6]调度系统分别模拟请求的虚拟机数量,对应任务的数量分别按照以下的情况进行模拟:100个到800个,分别统计三种调度系统在完成任务之后数据中心不均衡度以及带宽平均利用率。
(1) 数据中心不均衡度/(%)
三种调度系统的数据中心不均衡度对比结果,如表1所示。
由表1中的实验数据可知,所设计系统促使数据中心不均衡度较低,更加趋向于负载均衡的状态,但是另外两种调度系统数据中心不均衡度较高,这说明所设计系统能够使资源的分配达到负载均衡的目的,从而有效验证了所设计系统的优越性。
(2) 带宽平均利用率/(%)
给出三种调度系统的带宽平均利用率对比结果,如图5所示。
分析图5中的实验数据可知,所设计系统的平均宽带利用率均高于95%以上,而文献[5]调度系统和文献[6]调度系统的平均带宽利用率在92%以下。相比另外两种调度系统,所设计调度系统的平均带宽利用率明显更高一些。
3 总结
IT技术的迅猛发展,促使云计算技术日益成熟,针对云计算资源动态调度系统存在数据中心负载不均衡、平均带宽利用率较低等问题,设计出一种基于OpenStack平台的云计算资源动态调度系统。云计算面临的主要问题就是如何高效率、低损耗的进行资源利用,其中最为关键的步骤就是进行资源的调度,在需求量持续增加的情况下进行实时动态调度,确保服务的质量,同时在需求量降低的情况下动态调度,关闭系统中闲置的物理机器,降低能量损耗。在未来的研究工作中,可就如何减少云计算资源动态调度时间进行更加深入的研究。
参考文献
[1] 邓志龙, 段哲民, 李刘涛. 环境下的资源动态调度研究[J]. 西北工业大学学报, 2016,34(4):649-654.
[2] 李达港, 李磊, 金连文,等. 基于时间序列的Openstack云计算平台负载预测与弹性资源调度的研究[J]. 重庆邮电大学学报(自然科学版), 2016,28(4):560-566.
[3] 罗平, 王勇, 俸晧,等. 一种基于OpenStack的云计算虚拟机放置策略[J]. 桂林理工大学学报, 2018, 38(3):555-560.
[4] 齐平, 王福成, 王必晴,等. 云计算环境下基于可靠性感知的任务调度算法[J]. 计算机工程与科学, 2018,40(11):1925-1935.
[5] 郭骏, 张勇, 王琪,等. 基于云计算的海量微服务资源调度系统设计与实现[J]. 电子设计工程, 2019, 27(11):43-46.
[6] 杨立苑, 胡佳军, 李显风,等. 基于BP神经网络的气象云资源调度系统[J]. 计算机与现代化, 2018,5(7):68-72.
[7] 薛涛, 马腾. 基于资源权重最大资源利用率的动态资源调度算法[J]. 计算机应用研究, 2016,33(5):1374-1378.
[8] 肖胜. 基于云计算的智能电网调度系统设计[J]. 电源技术, 2018,42(2):288-290.
[9] 喻德旷, 杨谊, 钱俊. 云计算资源的动态随机扰动的粒子群优化策略[J]. 计算机应用, 2018,38(12):142-147.
[10] 周东清, 彭世玉, 程春田,等. 梯级水电站群长期优化调度云计算随机动态规划算法[J]. 中国电机工程学报, 2017,37(12):3437-3448.
[11] 齐平, 王福成, 王必晴. 一种基于图模型的可信云资源调度算法[J]. 山东大学学报(理学版), 2018,53(1):67-78.
[12] 全力, 傅明. 云计算中任务调度优化策略的研究[J]. 计算机工程, 2018,44(8):14-18.
[13] 吳俊伟, 姜春茂. 负载敏感的云任务三支聚类评分调度研究[J]. 智能系统学报, 2019,14(2):316-322.
[14] 李佳, 夏云霓. 云计算资源调度问题求解的布谷鸟搜索算法[J]. 控制工程, 2019,26(1):170-174.
[15] 陈黄科, 祝江汉, 朱晓敏,等. 云计算中资源延迟感知的实时任务调度方法[J]. 计算机研究与发展, 2017,54(2):446-456.
[16] 王欣欣, 刘晓彦. 于双适应度动态遗传算法的云计算资源调度[J]. 计算机工程与设计, 2018,39(5):1372-1376.
(收稿日期:2020.06.08)