CN105404549B - 基于yarn架构的虚拟机调度系统 - Google Patents
基于yarn架构的虚拟机调度系统 Download PDFInfo
- Publication number
- CN105404549B CN105404549B CN201510886444.4A CN201510886444A CN105404549B CN 105404549 B CN105404549 B CN 105404549B CN 201510886444 A CN201510886444 A CN 201510886444A CN 105404549 B CN105404549 B CN 105404549B
- Authority
- CN
- China
- Prior art keywords
- module
- resource
- virtual machine
- resourcemanager
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于yarn架构的虚拟机调度系统,属于云系统领域,包括ResourceManager模块,NodeManager模块,YarnProxy模块,AnalysisServer模块和Hypervisor主机。本发明通过对YARN进行功能扩充,使系统可以同时运行任务调度器和虚拟机调度器,支持使用不同的调度算法调度不同类型的资源。本发明对资源进行统一管理,大幅度降低不同资源的运维成本。添加的AnalysisServer模块能够对实时的虚拟机资源使用情况进行分析,对于不同需求的客户提供不同的超卖系数,解决资源利用率低的问题。
Description
技术领域
本发明属于云系统领域,特别是涉及一种虚拟机调度系统。
背景技术
近些年来,云计算大潮风起云涌,现在很多的公司尤其是互联网公司都建立起了自己的公有云或私有云。云计算的强烈需求,促进了虚拟化技术发展,为了提高资源利用率,虚拟化服务器就变成了大多数公司的选择,而目前主流的虚拟机资源调度系统只能满足特定的需求,无法扩展至其他类型的资源调度,对系统资源进行统一管理。其使用的调度算法实现都是以用户申请的资源量为输入,实际系统运行过程中,虚拟机在大部分时间不会满负荷使用其所占资源,导致系统资源利用率低。而且对于需求不同的用户,使用同一的标准进行配置虚拟机,可能导致对于性能要求较高的用户不能达到流畅使用的目的,同时,普通用户也会造成资源浪费的情况。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种能够降低不同资源的运维成本且解决资源利用率低的虚拟机调度系统。
为实现上述目的,本发明提供了一种基于yarn架构的虚拟机调度系统,包括ResourceManager模块(资源调度管理器),NodeManager模块(节点管理器),YarnProxy模块(Yarn服务代理),AnalysisServer模块(资源使用分析)和Hypervisor主机(虚拟化服务器);
所述ResourceManager模块基于应用程序对资源的需求进行调度;
所述NodeManager模块监控应用程序的资源使用情况(CPU、内存、硬盘及网络)并且向所述ResourceManager模块汇报;
所述YarnProxy模块用于上报Hypervisor主机的资源信息到ResourceManager模块;部署虚拟机时发送资源申请请求到ResourceManager模块获取合适的主机;从分析系统获取虚拟机资源使用情况更新到ResourceManager模块;
所述AnalysisServer模块用于对虚拟机使用的资源进行分析和调整,使用RESTAPI通信,查询虚拟机资源使用信息,通过YarnProxy更新主机负载信息到ResourceManager模块;
所述Hypervisor主机用于运行需要调度的VM。
较佳的,所述ResourceManager模块包括ResourceTrackerService模块、ApplicationMasterService模块、ClientRMService模块、VMscheduler模块和Jobscheduler模块;
所述ResourceTrackerService模块用于资源追踪服务,负责NodeManager模块将Node信息上报到ResourceManager模块;
所述ApplicationMasterService模块用于应用程序管理服务,负责处理ApplicationMaster模块相关请求,包括注册和完成ApplicationMaster模块请求,ApplicationMaster模块对ResourceManager模块的分配请求;
所述ClientRMService模块用于客户端通过RPC协议ClientRMProtocol向ResourceManager模块发送应用程序提交请求;
所述VMscheduler模块用于负责执行虚拟机调度任务,支持分级调度;
所述Jobscheduler模块用于执行任务调度。
较佳的,所述NodeManager模块包括Container模块,ApplicationMaster模块;
所述Container模块是Yarn中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源),所述Container模块是由ApplicationMaster模块向ResourceManager模块申请的,ResouceManager模块中的资源调度器异步分配给ApplicationMaster模块,所述Container模块运行由ApplicationMaster模块向资源所在的NodeManager模块发起;
所述ApplicationMaster模块用于应用程序管理,负责向调度器索要适当的资源容器、运行任务、跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。
较佳的,所述YarnProxy模块包括ProxyClient模块、ProxyAppMaster模块和ProxyNodeManager模块;
所述ProxyClient模块用于向ResourceManager模块发送应用程序提交申请,获取ApplicationId;
所述ProxyAppMaster模块是unmanaged类型的applicationmaster,运行在YarnProxy宿主机上,用于申请虚拟机所需要的资源,获得资源后在对应的Hypervisor上启动虚拟机;
所述Proxy NodeManager模块上报Hypervisor模块的资源使用情况到ResourceManager模块用于调度决策。
较佳的,所述分级调度采用两级调度,第一级使用规则调度,根据虚拟化类型、主机标签、存储标签、主机标签、主机所在区域、虚拟机使用的网络选择出一组主机;第二级使用负载调度,根据负载和调度算法目标从以上一组主机中选择确定的主机。
较佳的,所述VMscheduler模块采用BestFit,FirstFit,Package,Random,Striping调度算法中的一种。
较佳的,所述AnalysisServer模块采用当前的主机剩余资源量和历史主机剩余资源量来进行主机负载分析,这样可以保证在虚拟机使用资源动态变化时能快速为其增加资源分配。
较佳的,所述的AnalysisServer模块为不同需求的用户设置不同的超卖系数,从而提升资源使用率和用户使用体验。
本发明的有益效果是:本发明通过对YARN进行功能扩充,使系统可以同时运行任务调度器和虚拟机调度器,支持使用不同的调度算法调度不同类型的资源。本发明对资源进行统一管理,大幅度降低不同资源的运维成本。添加的AnalysisServer模块能够对实时的虚拟机资源使用情况进行分析,对于不同需求的客户提供不同的超卖系数,解决资源利用率低的问题。
附图说明
图1是本发明一具体实施方式使用的基于Yarn架构的虚拟机调度系统工作逻辑示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
如图1所示,一种基于Yarn架构的虚拟机调度系统,包括ResourceManager模块,NodeManager模块,YarnProxy模块,AnalysisServer模块和Hypervisor主机。
所述ResourceManager模块是一个资源调度器,它基于应用程序对资源的需求进行调度。所述NodeManager模块是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况(CPU、内存、硬盘、网络)并且向调度器汇报。所述YarnProxy模块是一个Yarn代理服务,主要负责上报Hypervisor主机的资源信息到ResourceManager;部署虚拟机时发送资源申请请求到ResourceManager获取合适的主机;从分析系统获取虚拟机资源使用情况更新到ResourceManager。所述AnalysisServer对于虚拟机使用的资源进行分析和调整,使用REST API通信,查询虚拟机资源使用信息,通过YarnProxy更新主机负载信息到ResourceManager。
所述Hypervisor是虚拟化服务器,需要调度的VM(虚拟机)运行在其上。
YarnProxy通过ProxyClient注册unmanaged AppMaster,获取ApplicationId,并保持心跳。Hypervisor上报资源信息及已有虚拟机信息到YarnProxy。YarnProxy通过根据AnalysisServer模块用户需求信息计算可以使用的Hypervisor资源量,然后YarnProxy调用ResourceTrackerService rpc接口注册Hypervisor信息和已有虚拟机信息到ResourceManager。YarnProxy启动定时线程后,从AnalysisServer获取Hypervisor的当前负载信息,更新Hypervisor负载信息到ResourceManager和AnalysisServer模块。接着YarnProxy调用ApplicationMasterService rpc接口申请资源,ResourceManager根据请求的规则参数过滤主机,根据虚拟化类型,Hypervisor标签,存储标签,Hypervisor标签,Hypervisor所在区域,虚拟机使用的网络等要求选择出一组Hypervisor,然后ResourceManager根据二级负载调度的调度算法选择一个合适的Hypervisor,返回Hypervisor信息给YarnProxy,并更新Hypervisor的资源使用信息。最终YarnProxy在ResourceManager返回的Hypervisor上创建虚拟机。
YarnProxy通过ProxyClient注册unmanaged AppMaster,获取ApplicationId,并保持心跳。
2.Hypervisor上报资源信息及已有虚拟机信息到YarnProxy。YarnProxy通过根据AnalysisServer模块用户需求信息计算可以使用的Hypervisor资源量,具体计算过程如下:
本系统对于主机资源剩余量的计算采用当前资源剩余量+历史资源剩余量的方案。历史资源剩余量是一个调度周期的资源剩余量的平均值。
3.YarnProxy调用ResourceTrackerService rpc接口注册Hypervisor信息和已有虚拟机信息到ResourceManager。
4.YarnProxy启动定时线程,从AnalysisServer获取Hypervisor的当前负载信息,更新Hypervisor负载信息到ResourceManager和AnalysisServer模块。
5.YarnProxy调用ApplicationMasterService rpc接口申请资源。
6.ResourceManager根据请求的规则参数过滤主机,根据虚拟化类型,Hypervisor标签,存储标签,Hypervisor标签,Hypervisor所在区域,虚拟机使用的网络等要求选择出一组Hypervisor。
7.ResourceManager根据二级负载调度的调度算法选择一个合适的Hypervisor,返回Hypervisor信息给YarnProxy,并更新Hypervisor的资源使用信息。调度算法有BestFit(取当前空闲资源最大的主机),FirstFit(取第一个符合资源要求的主机),Package(将虚拟机分配到尽可能少的主机上),Random(随机选取一个符合负载要求的主机),Striping(将虚拟机分散到尽可能多的主机上)等。用户可根据自身需求选择不同的调度算法,默认值为BestFit调度算法。。
8.YarnProxy在ResourceManager返回的Hypervisor上创建虚拟机。
本发明设计开发了新的统一资源调度系统,目前支持虚拟机调度和任务调度,并且可以方便地扩展至物理设备调度和容器调度等。AnalysisServer模块在保证用户服务质量的前提下提高了资源利用率,YarnProxy也大大地简化了Hypervisor、AnalysisServer和Yarn的交互。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (8)
1.一种基于yarn架构的虚拟机调度系统,其特征在于:包括ResourceManager模块(资源调度管理器),NodeManager模块(节点管理器),YarnProxy模块(Yarn服务代理),AnalysisServer模块(资源使用分析)和Hypervisor主机(虚拟化服务器);
所述ResourceManager模块基于应用程序对资源的需求进行调度;
所述NodeManager模块监控应用程序的资源使用情况并且向所述ResourceManager模块汇报;
所述YarnProxy模块用于上报Hypervisor主机的资源信息到ResourceManager模块;部署虚拟机时发送资源申请请求到ResourceManager模块获取合适的主机;从分析系统获取虚拟机资源使用情况更新到ResourceManager模块;
所述AnalysisServer模块用于对虚拟机使用的资源进行分析和调整,使用REST API通信,查询虚拟机资源使用信息,通过YarnProxy更新主机负载信息到ResourceManager模块;
所述Hypervisor主机用于运行需要调度的VM。
2.如权利要求1所述的基于yarn架构的虚拟机调度系统,其特征是:所述ResourceManager模块包括ResourceTrackerService模块、ApplicationMasterService模块、ClientRMService模块、VMscheduler模块和Jobscheduler模块;
所述ResourceTrackerService模块用于资源追踪服务,负责NodeManager模块将Node信息上报到ResourceManager模块;
所述ApplicationMasterService模块用于应用程序管理服务,负责处理ApplicationMaster模块相关请求,包括注册和完成ApplicationMaster模块请求,ApplicationMaster模块对ResourceManager模块的分配请求;
所述ClientRMService模块用于客户端通过RPC协议ClientRMProtocol向ResourceManager模块发送应用程序提交请求;
所述VMscheduler模块用于负责执行虚拟机调度任务,支持分级调度;
所述Jobscheduler模块用于执行任务调度。
3.如权利要求1所述的基于yarn架构的虚拟机调度系统,其特征是:所述NodeManager模块包括Container模块,ApplicationMaster模块;
所述Container模块是Yarn中资源的抽象,它封装了某个节点上一定量的资源,所述Container模块是由ApplicationMaster模块向ResourceManager模块申请的,ResouceManager模块中的资源调度器异步分配给ApplicationMaster模块,所述Container模块运行由ApplicationMaster模块向资源所在的NodeManager模块发起;
所述ApplicationMaster模块用于应用程序管理,负责向调度器索要适当的资源容器、运行任务、跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。
4.如权利要求1所述的基于yarn架构的虚拟机调度系统,其特征是:所述YarnProxy模块包括ProxyClient模块、ProxyAppMaster模块和Proxy NodeManager模块;
所述ProxyClient模块用于向ResourceManager模块发送应用程序提交申请,获取ApplicationId;
所述ProxyAppMaster模块是unmanaged类型的applicationmaster,运行在YarnProxy宿主机上,用于申请虚拟机所需要的资源,获得资源后在对应的Hypervisor上启动虚拟机;
所述Proxy NodeManager模块上报Hypervisor模块的资源使用情况到ResourceManager模块用于调度决策。
5.如权利要求2所述的基于yarn架构的虚拟机调度系统,其特征是:所述分级调度采用两级调度,第一级使用规则调度,根据虚拟化类型、主机标签、存储标签、主机标签、主机所在区域、虚拟机使用的网络选择出一组主机;第二级使用负载调度,根据负载和调度算法目标从以上一组主机中选择确定的主机。
6.如权利要求1或5所述的基于yarn架构的虚拟机调度系统,其特征是:VMscheduler模块采用BestFit,FirstFit,Package,Random,Striping调度算法中的一种。
7.如权利要求1所述的基于yarn架构的虚拟机调度系统,其特征是:
所述AnalysisServer模块采用当前的主机剩余资源量和历史主机剩余资源量来进行主机负载分析。
8.如权利要求1所述的基于yarn架构的虚拟机调度系统,其特征是:
所述的AnalysisServer模块为不同需求的用户设置不同的超卖系数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510886444.4A CN105404549B (zh) | 2015-12-06 | 2015-12-06 | 基于yarn架构的虚拟机调度系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510886444.4A CN105404549B (zh) | 2015-12-06 | 2015-12-06 | 基于yarn架构的虚拟机调度系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105404549A CN105404549A (zh) | 2016-03-16 |
CN105404549B true CN105404549B (zh) | 2019-04-26 |
Family
ID=55470048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510886444.4A Active CN105404549B (zh) | 2015-12-06 | 2015-12-06 | 基于yarn架构的虚拟机调度系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105404549B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291546B (zh) * | 2016-03-30 | 2020-07-14 | 华为技术有限公司 | 一种资源调度方法及装置 |
CN106856510B (zh) * | 2017-02-27 | 2019-08-16 | 中国联合网络通信集团有限公司 | 虚拟私有云路由转发调度方法、系统和虚拟路由器 |
CN108563504A (zh) * | 2018-02-24 | 2018-09-21 | 国家计算机网络与信息安全管理中心 | 一种资源管控方法和装置 |
CN108563509A (zh) * | 2018-04-28 | 2018-09-21 | 北京京东金融科技控股有限公司 | 数据查询实现方法、装置、介质及电子设备 |
CN109885377B (zh) * | 2018-11-23 | 2023-04-28 | 中国银联股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 |
CN110597639B (zh) * | 2019-09-23 | 2021-07-30 | 腾讯科技(深圳)有限公司 | Cpu分配控制方法、装置、服务器及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866918A (zh) * | 2012-07-26 | 2013-01-09 | 中国科学院信息工程研究所 | 面向分布式编程框架的资源管理系统 |
CN102929773A (zh) * | 2012-11-07 | 2013-02-13 | 曙光云计算技术有限公司 | 信息采集方法和装置 |
CN102981910A (zh) * | 2012-11-02 | 2013-03-20 | 曙光云计算技术有限公司 | 虚拟机调度的实现方法和装置 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
CN104112049A (zh) * | 2014-07-18 | 2014-10-22 | 西安交通大学 | 基于P2P构架的MapReduce任务跨数据中心调度系统及方法 |
WO2014210443A1 (en) * | 2013-06-28 | 2014-12-31 | Pepperdata, Inc. | Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system |
CN104301389A (zh) * | 2014-09-19 | 2015-01-21 | 华侨大学 | 一种云计算系统的能效监控和管理方法与系统 |
-
2015
- 2015-12-06 CN CN201510886444.4A patent/CN105404549B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866918A (zh) * | 2012-07-26 | 2013-01-09 | 中国科学院信息工程研究所 | 面向分布式编程框架的资源管理系统 |
CN102981910A (zh) * | 2012-11-02 | 2013-03-20 | 曙光云计算技术有限公司 | 虚拟机调度的实现方法和装置 |
CN102929773A (zh) * | 2012-11-07 | 2013-02-13 | 曙光云计算技术有限公司 | 信息采集方法和装置 |
WO2014210443A1 (en) * | 2013-06-28 | 2014-12-31 | Pepperdata, Inc. | Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
CN104112049A (zh) * | 2014-07-18 | 2014-10-22 | 西安交通大学 | 基于P2P构架的MapReduce任务跨数据中心调度系统及方法 |
CN104301389A (zh) * | 2014-09-19 | 2015-01-21 | 华侨大学 | 一种云计算系统的能效监控和管理方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105404549A (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105404549B (zh) | 基于yarn架构的虚拟机调度系统 | |
Srirama et al. | Application deployment using containers with auto-scaling for microservices in cloud environment | |
CN109983441B (zh) | 用于批作业的资源管理 | |
Almeida et al. | Resource management in the autonomic service-oriented architecture | |
Van den Bossche et al. | Cost-efficient scheduling heuristics for deadline constrained workloads on hybrid clouds | |
US8752059B2 (en) | Computer data processing capacity planning using dependency relationships from a configuration management database | |
CN103092698B (zh) | 云计算应用自动部署系统及方法 | |
US10999216B2 (en) | Resource allocation and provisioning in a multi-tier edge-cloud virtualization environment | |
CN107066319A (zh) | 一种面向异构资源的多维调度系统 | |
CN110661842B (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
Liu et al. | A survey on virtual machine scheduling in cloud computing | |
CN101986661B (zh) | 一种改进的虚拟机群下MapReduce数据处理方法 | |
CN102495759A (zh) | 一种云计算环境中作业调度的方法 | |
US20190095245A1 (en) | System and Method for Apportioning Shared Computer Resources | |
CN104158841A (zh) | 计算资源分配方法 | |
Walraven et al. | Adaptive performance isolation middleware for multi-tenant saas | |
TWI591488B (zh) | Intelligent supply of resources to distribute modules and cloud services for the installation system | |
CN113055416A (zh) | 容器集群节点资源池的管理方法和装置 | |
Benali et al. | A pareto-based Artificial Bee Colony and product line for optimizing scheduling of VM on cloud computing | |
Yin et al. | Eaers: An enhanced version of autonomic and elastic resource scheduling framework for cloud applications | |
Mosoti Derdus et al. | Virtual machine sizing in virtualized public cloud data centres | |
Praveenchandar et al. | The feasible job scheduling algorithm for efficient resource allocation process in cloud environment | |
CN110362383A (zh) | 面向季节型非平稳并发量的p-e权衡的vm迁移方法 | |
Thakkar et al. | Achieving multilevel elasticity for distributed stream processing systems in the cloud environment: A review and conceptual framework | |
Emamqeysi et al. | A review of methods for resource allocation and operational framework in cloud computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |