基于yarn架构的虚拟机调度系统的制作方法

文档序号:9646482阅读:368来源:国知局
基于yarn架构的虚拟机调度系统的制作方法
【技术领域】
[0001] 本发明属于云系统领域,特别是涉及一种虚拟机调度系统。
【背景技术】
[0002] 近些年来,云计算大潮风起云涌,现在很多的公司尤其是互联网公司都建立起了 自己的公有云或私有云。云计算的强烈需求,促进了虚拟化技术发展,为了提高资源利用 率,虚拟化服务器就变成了大多数公司的选择,而目前主流的虚拟机资源调度系统只能满 足特定的需求,无法扩展至其他类型的资源调度,对系统资源进行统一管理。其使用的调度 算法实现都是以用户申请的资源量为输入,实际系统运行过程中,虚拟机在大部分时间不 会满负荷使用其所占资源,导致系统资源利用率低。而且对于需求不同的用户,使用同一的 标准进行配置虚拟机,可能导致对于性能要求较高的用户不能达到流畅使用的目的,同时, 普通用户也会造成资源浪费的情况。

【发明内容】

[0003] 有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种能够降低不 同资源的运维成本且解决资源利用率低的虚拟机调度系统。
[0004] 为实现上述目的,本发明提供了一种基于yarn架构的虚拟机调度系统,包括 ResourceManager模块(资源调度管理器),NodeManager模块(节点管理器),YarnProxy 模块(Yarn服务代理),AnalysisServer模块(资源使用分析)和Hypervisor主机(虚拟 化服务器);
[0005] 所述ResourceManager模炔基于应用程序对资源的需求进行调度;
[0006] 所述NodeManager模块监控应用程序的资源使用情况(CPU、内存、硬盘及网络)并 且向所述ResourceManager模块汇报;
[0007] 所述YarnProxy模块用于上报Hypervisor主机的资源信息到ResourceManager 模块;部署虚拟机时发送资源申请请求到ResourceManager模块获取合适的主机;从分析 系统获取虚拟机资源使用情况更新到ResourceManager模块;
[0008] 所述AnalysisServer模块用于对虚拟机使用的资源进行分析和调整,使 用RESTAPI通信,查询虚拟机资源使用信息,通过YarnProxy更新主机负载信息到 ResourceManager模块;
[0009] 所述Hypervisor主机用于运行需要调度的VM。
[0010]较佳的,所述ResourceManager模块包括ResourceTrackerService模 块、ApplicationMasterService模块、ClientRMService模块、VMscheduler模块和 Jobscheduler模块;
[0011] 所述ResourceTrackerService模块用于资源追踪服务,负责NodeManager模块将 Node信息上报到ResourceManager模块;
[0012] 所述ApplicationMasterService模块用于应用程序管理服务,负责处理 ApplicationMaster模块相关请求,包括注册和完成ApplicationMaster模块请求,ApplicationMaster模块对ResourceManager模块的分配请求;
[0013] 所述ClientRMService模块用于客户端通过RPC协议ClientRMProtocol向 ResourceManager模块发送应用程序提交请求;
[0014] 所述VMscheduler模块用于负责执行虚拟机调度任务,支持分级调度;
[0015] 所述Jobscheduler模块用于执行任务调度。
[0016] 较佳的,所述NodeManager模块包括Container模块,ApplicationMaster模块;
[0017] 所述Container模块是Yarn中资源的抽象,它封装了某个节点上一定量 的资源(CPU和内存两类资源),所述Container模块是由ApplicationMaster模块 向ResourceManager模块申请的,ResouceManager模块中的资源调度器异步分配给 ApplicationMaster模块,所述Container模块运行由ApplicationMaster模块向资源所在 的NodeManager模块发起;
[0018] 所述ApplicationMaster模块用于应用程序管理,负责向调度器索要适当的资源 容器、运行任务、跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。
[0019] 较佳的,所述YarnProxy模块包括ProxyClient模块、ProxyAppMaster模块和 ProxyNodeManager模块;
[0020] 所述ProxyClient模块用于向ResourceManager模块发送应用程序提交申请,获 取Applicationld;
[0021] 所述ProxyAppMaster模块是unmanaged类型的applicationmaster,运行在 YarnProxy宿主机上,用于申请虚拟机所需要的资源,获得资源后在对应的Hypervisor上 启动虚拟机;
[0022] 所述ProxyNodeManager模块上报Hypervisor模块的资源使用情况到 ResourceManager模块用于调度决策。
[0023] 较佳的,所述分级调度采用两级调度,第一级使用规则调度,根据虚拟化类型、主 机标签、存储标签、主机标签、主机所在区域、虚拟机使用的网络选择出一组主机;第二级使 用负载调度,根据负载和调度算法目标从以上一组主机中选择确定的主机。
[0024] 较佳的,所述VMscheduler模块米用BestFit,FirstFit,Package,Random, Striping调度算法中的一种。
[0025] 较佳的,所述AnalysisServer模块采用当前的主机剩余资源量和历史主机剩余 资源量来进行主机负载分析,这样可以保证在虚拟机使用资源动态变化时能快速为其增加 资源分配。
[0026] 较佳的,所述的AnalysisServer模块为不同需求的用户设置不同的超卖系数,从 而提升资源使用率和用户使用体验。
[0027] 本发明的有益效果是:本发明通过对YARN进行功能扩充,使系统可以同时运行任 务调度器和虚拟机调度器,支持使用不同的调度算法调度不同类型的资源。本发明对资源 进行统一管理,大幅度降低不同资源的运维成本。添加的AnalysisServer模块能够对实时 的虚拟机资源使用情况进行分析,对于不同需求的客户提供不同的超卖系数,解决资源利 用率低的问题。
【附图说明】
[0028]图1是本发明一【具体实施方式】使用的基于Yarn架构的虚拟机调度系统工作逻辑 示意图。
【具体实施方式】
[0029] 下面结合附图和实施例对本发明作进一步说明:
[0030] 如图1所示,一种基于Yarn架构的虚拟机调度系统,包括ResourceManager模块, NodeManager模块,YarnProxy模块,AnalysisServer模块和Hypervisor主机。
[0031] 所述ResourceManager模块是一个资源调度器,它基于应用程序对资源的需求进 行调度。所述NodeManager模块是每一台机器框架的代理,是执行应用程序的容器,监控应 用程序的资源使用情况(CPU、内存、硬盘、网络)并且向调度器汇报。所述YarnProxy模块 是一个Yarn代理服务,主要负责上报Hypervisor主机的资源信息到ResourceManager;部 署虚拟机时发送资源申请请求到ResourceManager获取合适的主机;从分析系统获取虚拟 机资源使用情况更新到ResourceManager。所述AnalysisServer对于虚拟机使用的资源进 行分析和调整,使用RESTAPI通信,查询虚拟机资源使用信息,通过YarnProxy更新主机负 载信息到ResourceManager。
[0032] 所述Hypervisor是虚拟化服务器,需要调度的VM(虚拟机)运行在其上。
[0033]YarnProxy通过ProxyClient注册unmanagedAppMaster,获取Applicationld, 并保持心跳。Hypervisor上报资源信息及已有虚拟机信息到YarnProxy。YarnProxy通 过根据AnalysisServer模块用户需求信息计算可以使用的Hypervisor资源量,然后 YarnProxy调用ResourceTrackerServicerpc接 口注册Hypervisor信息和已有虚拟机信 息到ResourceManager。YarnProxy启动定时线程后,从AnalysisServer获取Hypervisor 的当前负载信息,更新Hypervisor负载信息到ResourceManager和AnalysisServer模块。 接着YarnProxy调用ApplicationMasterServicerpc接 口申请资源,ResourceManager 根据请求的规则参数过滤主机,根据虚拟化类型,Hypervisor标签,存储标签,Hypervisor 标签,Hypervisor所在区域,虚拟机使用的网络等要求选择出一组Hypervisor,然 后ResourceManager根据二级负载调度的调度算法选择一个合适的Hypervisor,返回 Hypervisor信息给YarnProxy,并更新Hypervisor的资源使用信息。最终YarnProxy在 ResourceManager返回的Hypervisor上创建虚拟机。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1