云计算技术及资源调度策略研究
2021-01-04余茂琴魏家植汪喆远
余茂琴,魏家植,王 强,汪喆远
(中电莱斯信息系统有限公司,江苏南京 210000)
引言
云计算作为新基建中的关键技术,在未来数字化经济中发挥着重要作用,因此,云数据中心在当下信息社会中的重要性不言而喻[1]。随着云计算数据中心规模的不断扩张,面对海量的用户工作负载请求,云计算数据中心资源的分配和调度问题在学术界和工业界都得到了广泛深入的研究和实践。
不同于以往直接为用户提供计算机基础设施,云计算本质上一种新的商业服务交付方式,提供的是虚拟服务。依托云计算数据中心,通过低成本的X86 服务器大规模集成以获取巨大算力,聚焦于应用程序和底层服务协议深度结合,以获取良好兼容性,配置多个冗余备用服务器,保障其可靠性,实现低成本高效率对大规模数据处理和存储的要求[2]。在云计算中资源配置是该技术的重要一环,直接关系到运营成本以及用户的实际体验,但资源调度是一个NP-hard 问题,目前尚未有一个较为完善的解决方案,尤其在大规模计算中,无法在有效时间内获取最优解[3],亟待进一步优化资源调度算法。
本文对云计算在数据中心的作用和主要特点进行概述,分析资源配置对云计算的能力支撑,总结了国内外对云计算资源配置的各类策略,如传统调度算法、智能调度算法等。随着5G 建设展开,云计算的基础设施规模不断增大,云计算移动端潜在用户巨大,通过云计算的合理资源配置,不仅能降低物理设备能耗,也能提高对用户任务的响应速度,给云计算提供商和用户带来巨大的收益。
1 云计算特点
(1)资源多样性
资源的多样性是云计算数据中心网络中资源的一个显著特征。云计算数据中心资源池中包括:CPU、GPU、内存、储存、网络带宽等各种资源,不同类型资源的配比组成也完全不同,需要根据任务侧重点进行个性化配置。依托规模庞大、种类齐全的云计算资源,云计算服务商为用户提供定制方案,满足用户对各类资源的需求。
(2)用户需求异构性
用户需求异构性主要体现在资源需求和服务类型不同。用户对服务质量要求的侧重点不同,同一用户下子用户的需求也不尽相同。云服务的提供商和用户签订服务水平协议(SLA),量化了云服务质量,描述所需的计算能力的预期保障用户服务质量,根据用户的付费情况、需求侧重,提供不同等级的服务。此外,用户的请求时刻变化,云计算数据中心需要细分各用户的请求,为用户提供基本的资源保障。
(3)高可靠性与高可扩展性
为了保障云服务的可靠性,云服务商采用副本策略,为用户数据提供数据备份。另外,云计算系统的资源可以扩展开发,扩展的规模能够根据用户的应用来动态调节。因此对于用户来说,他们可以随时根据需要购买任意规模的云计算资源和服务。
(4)成本低廉且计费灵活
云计算系统以大规模的廉价服务器集群为基础,使用常见的普通千兆以太网大大降低了云计算系统的成本,使得云计算系统有相当强的价格优势。除此以外,成熟的虚拟化技术把各类资源整理结合到一起,统一管理规范,云计算系统也就可以实现对系统资源使用情况的自动化控制和系统优化配置,用户端即可享受到更加灵活透明的服务。
综上,云计算系统的规模庞大,资源结构不同的设备数目大,用户的使用群体比较广泛,各自请求的任务大不相同。因此,系统时刻都要处理各类海量数据。在这种应用条件下,资源的分配管理,以更少的资源成本服务更多的用户,提高云计算资源利用率,是云计算系统资源调度策略的技术攻坚和研究方向。
2 云计算技术架构
云计算总体架构包括四层,分别为物理层、资源层、管理层、服务层,如图1 所示。物理层主要包括计算机、存储资源、网络设备、数据库,为云计算提供硬件支撑;资源层包括计算资源池、存储资源池、网络资源池、数据资源池,利用虚拟化技术,将分散、异构、海量的资源优化整合,形成一定规模的计算能力;管理层负责用户管理、任务管理、资源管理,安全管理包括身份认证、访问授权、综合防护、安全审计;服务层包括服务接口、服务注册、服务查找、服务访问等,这一层直接与用户对接,将用户需求录入,并通过管理层分配对应的计算资源[4]。
图1 云计算总体架构
如图2 所示,云计算资源调度体系架构主要包括用户、中间管理、数据中心资源池。在云计算资源调度体系中,用户根据自身需求向云服务商发送任务请求和资源申请,云服务商据调度任务的紧迫程度以及自身的预算情况,设置相应资源分配优先级,并将任务请求划分成多个子任务,多个任务之间可以相互独立,也可互相依赖。数据中心资源池是云计算环境的资源提供者,根据用户请求分配相应的资源。中间管理是连接用户和云计算资源池的枢纽,对任务队列进行划分和作业部署,完成计算资源的分配。此外,研发人员也可在中间管理层通过对其进行扩展来开发不同的云计算资源调度策略。
图2 资源分配架构图
3 云计算资源调度
3.1 需求分析
云数据运行中常伴随这样的情况:新节点不断加入到云中,旧节点不断从云中删除,这种动态变化使得系统中数据的不均衡性大大增加,导致云资源浪费,继而减小了云数据中心的效率。数据显示,云计算的服务器利用率不高,平均利用率在百分之十左右。因此必须设计合理的云资源分配算法来解决云数据中心的服务器负载不均衡问题,提高云数据系统的利用效率,采用一种什么样的调度策略来实现负载均衡分布、避免流量拥挤、加快响应速度、提高执行效率、降低能耗,它是云计算中亟待解决的问题之一。
(1)资源调度能够提升硬件的处理能力、减少硬件的投入。随着云计算技术不断成熟,其用户数量和用户需求快速增长,相应的计算资源、存储资源等各类资源也需要进行增配。通过不断增加设备,带来的成本负担过大,因此有必要对现有的硬件设备进行高效利用。
(2)资源调度技术提高了数据的响应速度。资源调度技术的运用,能够进行合理的资源调度及利用,根据用户请求类型内容,合理配置释放资源池内资源,加速任务处理效率,能够为用户提供更加优质的服务。
(3)资源调度技术增强了云计算可靠性,提高了云计算的可用性。可靠性在云计算的运用中一直是一个至关重要的因素,云计算数据中心建立在众多廉价服务器上,不可避免地会发生某个服务器故障,此时可采用云计算的资源调度技术,将故障服务器中的任务和数据迁移到别的服务器中,保障用户的正常操作。
3.2 资源调度策略
云计算资源调度策略可以分为非智能传统资源调度策略和智能化启发式资源调度策略。非智能传统资源调度策略,通常采用设定好的调度策略对资源进行简单划分,没有考虑各服务器的实际负载状况。此类型资源调度算法较为简单,易实现、开销小。然而,由于负载分配时未考虑各节点的负载情况,分配方案不一定满足负载均衡的要求,严重时甚至会导致负载不均衡。启发式资源调度策略,考虑了各节点的真实负载情况,因此任务的分配更合理,但由于要实时计算节点的负载,增加了服务器额外的计算负担,算法复杂度比较高。
(1)Min-Min 资源调度法是一种复杂程度较低的非智能传统资源调度策略,其运用广泛,计算效率较高。该算法的核心思想是在每次用户发出任务请求时,筛选出任务集中程度最低的任务,将任务交给计算性能最高的服务器上,以获取最佳的用户体验。这种方法在任务队列较少时,能够较高效地完成计算服务,但是任务会大量集中在计算性能最高的服务器上,而其他服务器却处于相对空闲的状态,造成资源的浪费。文献[5]对Min-Min 算法进行了改进,将集中程度最大任务和集中程度最小任务进行组合,减轻负载不平衡的问题;文献[6]采用二次调度策略,检测处理任务量大的服务器,将任务进行二次分配,减轻Min-Min 策略中计算性能最强的服务器负担。
(2)轮询算法(RR)是常用的默认调度算法,对各物理服务器进行循环依次请求。该算法的一个重要前提是它需要后端服务器硬件性能配置完全一致,且对业务无特殊要求。若各节点配置不同,该算法易导致配置低的服务器承担过量任务,而配置高的服务器出现浪费,造成各节点负载不均衡。
(3)加权轮询算法(WRR)相比于轮询算法,充分考虑了各节点硬件性能处理水平不平均的问题。该算法综合考虑各物理服务器性能,确定轮询概率和权重,任务按照权重比例进行分配[7]。因此,处理能力越强的节点,会优先分配任务。然而,该算法对权值设置依赖较高,若权值设置不合理,仍会导致性能低的节点被分配较多的任务。
(4)粒子群算法(PSO)是一种智能化启发式资源调度策略[8]。在资源调度中,用户请求的数量决定PSO维度,资源服务器和用户请求决定粒子的位置。考虑到用户请求计算成本和数据传输成本,该算法首先计算所有总成本并映射到工作流应用程序。之后,考虑用户请求之间的关系并分配可调度的用户请求给资源服务器。用户请求完成后,更新就绪任务列表,然后根据当前网络负载的状态,更新资源服务器之间平均通信代价,并重新粒子群映射[9]。当资源服务器不可用时,远程资源管理系统不会分配用户请求给该服务器。通过重新计算的粒子群映射,再将用户请求重新分配给可用的资源服务器,重复以上步骤,直到所有的用户请求被调度完成。
(5)遗传算法(GA)具有全局寻优能力和较强的适应性,该算法将每一个分配方案都进行编码,然后将其分配到各个计算设备上运行,根据运行时间求得适应度函数,再选择较优的个体遗传到下一代[10]。文献[11]提出双目标调度方案,染色体中的单个基因表示用户请求,一个有效序列基因的有效染色体表示资源服务器。首先采用双向用户请求优先级获得较好的初始种群,然后通过缩小任务总执行时间和均衡资源服务器的负载得到当前最好的解决方案,最后通过种群个体的遗传操作、交叉操作和变异操作不断更新种群,最终找到范围内的最优解。
(6)模拟退火算法(SA)来源于固体退火原理,通过设置冷却进度表,赋予搜索过程时变且最终趋于零的概率突跳性[12],有效避免了算法陷入局部极小,并能最终趋于全局最优。由于该算法在迭代时,是由当前新解经过简单的变换即可产生新解,目标函数差仅由变换部分产生,因此计算较快,有效地减小了时间和成本,降低了用户请求的执行时间-代价及不同用户请求间的数据传输时间-代价[13]。
4 结束语
本文针对云计算系统的特点,分析了云计算技术框架,总结了云计算中资源调度的必要性,给出目前相对成熟的资源调度方法。尽管现阶段已衍生出多种资源调度算法,但虚拟机的迁移依然不可避免,相关研究依然需要进一步研究。相关的智能算法还存在容易陷入局部最优的问题,后续研究需要进一步增强数据随机搜索能力,保障资源调度的合理路径。此外,现阶段的资源调度算法,大多以最短调度时间为目标,没有考虑到资源间的通信成本和资源调度成本,并且算法基本都以用户请求彼此独立为研究前提,忽略用户请求间的联系,后续研究应将这些因素纳入资源调度的考量因素,提升资源调度效率,降低调度成本。