CN109885377B - 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 - Google Patents

统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 Download PDF

Info

Publication number
CN109885377B
CN109885377B CN201811405694.1A CN201811405694A CN109885377B CN 109885377 B CN109885377 B CN 109885377B CN 201811405694 A CN201811405694 A CN 201811405694A CN 109885377 B CN109885377 B CN 109885377B
Authority
CN
China
Prior art keywords
container
virtual machine
resource
node
management module
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
Application number
CN201811405694.1A
Other languages
English (en)
Other versions
CN109885377A (zh
Inventor
祖立军
翟孟冬
袁航
吕智慧
吴金坛
何朔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201811405694.1A priority Critical patent/CN109885377B/zh
Publication of CN109885377A publication Critical patent/CN109885377A/zh
Priority to PCT/CN2019/094796 priority patent/WO2020103465A1/zh
Priority to US17/041,943 priority patent/US11467864B2/en
Priority to TW108124482A priority patent/TWI723459B/zh
Application granted granted Critical
Publication of CN109885377B publication Critical patent/CN109885377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种通过统一资源调度协调器创建虚拟机和/或容器的方法,所述方法包括:接收创建所述虚拟机和/或所述容器的指令,其中所述指令包括所述虚拟机和/或所述容器的参数;根据所述参数从物理节点中选择出第一计算节点;根据所要创建的类型,将所述参数和所述第一节点的信息相应地发送给虚拟机管理模块和/或容器管理模块;在所述虚拟机和/或所述容器创建完成后,从所述虚拟机管理模块和/或所述容器管理模块接收资源分配情况;以及在记录资源变化情况后,将所述资源分配情况同步给所述容器管理模块和/或所述虚拟机管理模块。本发明还提供了一种统一资源调度协调器、统一资源调度系统以及计算机存储介质。

Description

统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统
技术领域
本发明涉及云计算技术,特别地,涉及统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统以及计算机存储介质。
背景技术
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池,(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,需要投入很少的管理工作,或与服务供应商进行很少的交互。
虚拟化是云计算构建资源池的一个主要方式。所谓虚拟化,是通过软件手段对计算机硬件资源镜像整合管理和再分配的一种技术。常用的手段有基于虚拟机的虚拟化和基于容器的虚拟化。
在现有的大数据应用部署虚拟机方案中,虚拟机与容器物理资源池相互独立,分别单独调度,例如虚拟机由OpenStack管理,容器由K8S管理,两大开源平台直接部署操作物理机。这样,虚拟机与容器的物理机资源池不能复用,同时网络、存储共享打通存在跨域瓶颈,管理复杂。也有现有方案提出将容器作为PaaS的支撑,将容器运行于虚拟机内。在该现有方案中,虚拟机与容器物理资源池仍分别单独调度,例如虚拟机由OpenStack管理,容器由K8S管理,导致虚拟机与容器之间的网络、存储共享打通存在瓶颈,管理复杂。
以上公开于本发明背景部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
鉴于此,根据本发明的一个方面,提供了一种通过统一资源调度协调器创建虚拟机和/或容器的方法,所述方法包括:接收创建所述虚拟机和/或所述容器的指令,其中所述指令包括所述虚拟机和/或所述容器的参数;根据所述参数从物理节点中选择出第一计算节点;根据所要创建的类型,将所述参数和所述第一节点的信息相应地发送给虚拟机管理模块和/或容器管理模块,使得所述虚拟机管理模块通过所述第一计算节点上的虚拟机管理代理模块为所述虚拟机分配计算资源和/或使得所述容器管理模块通过所述第一计算节点上的容器管理代理模块为所述容器分配计算资源;在所述虚拟机和/或所述容器创建完成后,从所述虚拟机管理模块和/或所述容器管理模块接收资源分配情况;以及在记录资源变化情况后,将所述资源分配情况同步给所述容器管理模块和/或所述虚拟机管理模块。
通过统一资源调度协调器创建虚拟机和/或容器,可将容器和虚拟机运行于同一物理机资源,使得融合调度管理成为可能。
在上述方法中,所述虚拟机和/或所述容器的参数包括所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式。
在上述方法中,根据所述参数从物理节点中选择出第一计算节点包括:根据所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式,使用就近窗口查询方法选出满足要求的第一计算节点。
在上述方法中,根据所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式,使用就近窗口查询方法选出满足要求的第一计算节点包括:设置一列表,其中每一个物理节点在所述列表中有唯一编号,所述物理节点包含一个或多个非统一内存访问架构NUMA节点及可用磁盘容量,所述NUMA节点包含该节点可用的计算资源信息;获取在所述列表中的当前窗口位置(i,i+k-1),其中i为窗口开始位置编号,k为窗口长度,(i,i+k-1)表示窗口为从编号i到编号i+k的一组物理节点;对所述当前窗口位置内的物理节点进行判断,确定是否存在满足容器和/或虚拟机对物理资源的需求的节点;若存在,则返回满足需求的节点的编号j,并将窗口向后移动,新的窗口变为(j+1,j+k);以及若不存在,则将窗口向后移动,新的窗口为(i+k,i+2k-1),并判断i是否在该新的窗口中,若是,则确定所有节点都不满足要求。
可选地,所述方法还包括:确定专用模式NUMA节点数量占比高于第一阈值且NUMA节点利用率低于第二阈值;以及从共享模式NUMA节点中随机选出一定数量的NUMA节点,对于从所选出的NUMA节点上分配资源的容器和/或虚拟机,将其资源使用方式修改为专用,并重新进行调度,其中选出的NUMA节点的数量在所有NUMA节点中的占比与第三阈值相对应。
在上述方法中,所述第一阈值、所述第二阈值以及所述第三阈值都为50%。
可选地,所述方法还包括:在使用就近窗口查询方法未能找到满足要求的计算节点时,遍历各个计算节点并统计在各个计算节点上专用模式的NUMA节点的可用资源;根据所要创建的所述虚拟机和/或所述容器的需求,分配合适的计算节点;以及在所述合适的计算节点上,重新调度资源。
在上述方法中,所分配的资源包括计算、网络以及存储资源。
根据本发明的另一个方面,提供了一种统一资源调度协调器,所述统一资源调度协调器包括:第一接收单元,用于接收创建所述虚拟机和/或所述容器的指令,其中所述指令包括所述虚拟机和/或所述容器的参数;选择单元,用于根据所述参数从物理节点中选择出第一计算节点;第一发送单元,用于根据所要创建的类型,将所述参数和所述第一节点的信息相应地发送给虚拟机管理模块和/或容器管理模块,使得所述虚拟机管理模块通过所述第一计算节点上的虚拟机管理代理模块为所述虚拟机分配计算资源和/或使得所述容器管理模块通过所述第一计算节点上的容器管理代理模块为所述容器分配计算资源;第二接收单元,用于在所述虚拟机和/或所述容器创建完成后,从所述虚拟机管理模块和/或所述容器管理模块接收资源分配情况;以及同步单元,用于在记录资源变化情况后,将所述资源分配情况同步给所述容器管理模块和/或所述虚拟机管理模块。
在上述统一资源调度协调器中,所述虚拟机和/或所述容器的参数包括所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式。
在上述统一资源调度协调器中,所述选择单元配置成根据所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式,使用就近窗口查询方法选出满足要求的第一计算节点。
在上述统一资源调度协调器中,所述选择单元包括:存储子单元,用于存储一列表,其中每一个物理节点在所述列表中有唯一编号,所述物理节点包含一个或多个非统一内存访问架构NUMA节点及可用磁盘容量,所述NUMA节点包含该节点可用的计算资源信息;获取在所述列表中的当前窗口位置(i,i+k-1),其中i为窗口开始位置编号,k为窗口长度,(i,i+k-1)表示窗口为从编号i到编号i+k的一组物理节点;判断子单元,用于对所述当前窗口位置内的物理节点进行判断,确定是否存在满足容器和/或虚拟机对物理资源的需求的节点;处理子单元,用于在存在的情况下返回满足需求的节点的编号j,并将窗口向后移动,新的窗口变为(j+1,j+k);以及在不存在的情况下将窗口向后移动,新的窗口为(i+k,i+2k-1),并同时判断i是否在该新的窗口中,若是,则确定所有节点都不满足要求。
可选地,所述统一资源调度协调器还包括:确定单元,用于确定专用模式NUMA节点数量占比高于第一阈值且NUMA节点利用率低于第二阈值;修改单元,用于从共享模式NUMA节点中随机选出一定数量的NUMA节点,对于从所选出的NUMA节点上分配资源的容器和/或虚拟机,将其资源使用方式修改为专用,并重新进行调度,其中选出的NUMA节点的数量在所有NUMA节点中的占比与第三阈值相对应。
在上述统一资源调度协调器中,所述第一阈值、所述第二阈值以及所述第三阈值都为50%。
可选地,所述统一资源调度协调器还包括:遍历统计单元,用于在使用就近窗口查询方法未能找到满足要求的计算节点时,遍历各个计算节点并统计在各个计算节点上专用模式的NUMA节点的可用资源;分配单元,用于根据所要创建的所述虚拟机和/或所述容器的需求,分配合适的计算节点;以及调度单元,用于在所述合适的计算节点上,重新调度资源。
在上述统一资源调度协调器中,所分配的资源包括计算、网络以及存储资源。
根据本发明的又一个方面,提供了一种统一资源调度系统,包括如前所述的统一资源调度协调器。
可选地,所述系统还包括:容器管理模块,用于为容器分配CPU和内存资源。
可选地,所述系统还包括:容器网络代理模块,用于接收来自容器管理模块的网络资源请求,将请求的资源模型从容器网络模型修改为第一网络模型,转发包含所述第一网络模型的修改的网络资源请求并最终获取网络资源。
在上述系统中,所述第一网络模型为Openstack neutron网络模型。
根据本发明的又一个方面,提供了一种计算机存储介质,包括指令,所述指令在运行时执行如前所述的方法。
本发明的技术方案提供了在同一物理资源池容器与虚拟机计算融合运行框架,使得可实现通过动态软硬件环境自动配置实现不同计算力的融合运行。另外,本发明的技术方案允许网络、存储处于统一管理调度,例如容器与虚拟机的网络资源可以处于同一租户网络的同一网段、容器与虚拟机可以共同使用相同的存储资源池。
通过纳入本文的附图以及随后与附图一起用于说明本发明的某些原理的具体实施方式,本发明的方法和装置所具有的其它特征和优点将更为具体地变得清楚或得以阐明。
附图说明
图1是表示本发明的一个实施例的容器/虚拟机创建的方法的流程图;
图2是表示本发明的一个实施例的统一资源调度协调器的结构图;
图3是表示本发明的一个实施例的统一资源调度系统;
图4是表示本发明的一个实施例的就近窗口查询方法的流程图;
图5是表示本发明的一个实施例的判断物理节点是否满足需求的方法的流程图;
图6是表示本发明的一个实施例的容器管理模块为容器分配CPU和内存的方法流程图;
图7是表示本发明的一个实施例的容器网络代理模块获取网络资源的方法流程图;
图8是表示本发明的一个实施例的通过存储管理模块获取磁盘资源的方法流程图;
图9是表示本发明的一个实施例的容器获取物理节点NUMA拓扑的方法流程图;
图10是表示本发明的一个实施例的减少因专用资源分配导致过多资源碎片的方法流程图;
图11是表示本发明的一个实施例的减少因专用资源分配导致过多资源碎片的方法流程图;
图12至图13分别是利用图11所示的方法对资源进行重新调度前和重新调度后的环境示意图;以及
图14是表示本发明的另一个实施例的减少因专用资源分配导致过多资源碎片的方法流程图。
具体实施方式
以下说明描述了本发明的特定实施方式以教导本领域技术人员如何制造和使用本发明的最佳模式。为了教导发明原理,已简化或省略了一些常规方面。本领域技术人员应该理解源自这些实施方式的变型将落在本发明的范围内。本领域技术人员应该理解下述特征能够以各种方式接合以形成本发明的多个变型。由此,本发明并不局限于下述特定实施方式,而仅由权利要求和它们的等同物限定。
在本发明的上下文中,术语NUMA是Non Uniform Memory Access Architecture的缩写,即非统一内存访问架构。NUMA是一种为多处理器的计算机设计的内存,内存访问时间取决于内存相对于处理器的位置。在NUMA下,处理器访问它自己的本地内存的速度比非本地内存(内存位于另一个处理器,或者是处理器之间共享的内存)快一些。
在本发明的上下文中,REST全称是Representational State Transfer,中文意思是表述性状态转移。REST指的是一组架构约束条件和原则。如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。因此,在本发明的上下文中,RESTful API表示符合REST的约束条件和原则的应用程序接口。
本专利的发明人在大数据应用部署虚拟机内容的工作中发现,随着云计算技术深化应用,虚拟机、大数据、容器的资源池融合调度将成为趋势,然而当前包括银联在内的金融机构以及其他云服务商主要的部署模式都是独立的物理资源池部署,即虚拟机专用一些物理机资源,大数据专用一些物理机,容器专用一些物理机资源,不同资源池之间无法实现快速切换。随着容器技术的逐渐成熟,其应用也将趋为广泛,因此虚拟机与容器资源的联合调度成为关键技术难点。
针对该技术难点,根据本发明的一个实施例,提供了通过统一资源调度协调器创建虚拟机和/或容器的方法。如图1所示,所述方法包括:接收创建所述虚拟机和/或所述容器的指令,其中所述指令包括所述虚拟机和/或所述容器的参数;根据所述参数从物理节点中选择出第一计算节点;根据所要创建的类型,将所述参数和所述第一节点的信息相应地发送给虚拟机管理模块和/或容器管理模块,使得所述虚拟机管理模块通过所述第一计算节点上的虚拟机管理代理模块为所述虚拟机分配计算资源和/或使得所述容器管理模块通过所述第一计算节点上的容器管理代理模块为所述容器分配计算资源;在所述虚拟机和/或所述容器创建完成后,从所述虚拟机管理模块和/或所述容器管理模块接收资源分配情况;以及在记录资源变化情况后,将所述资源分配情况同步给所述容器管理模块和/或所述虚拟机管理模块。
图2是表示本发明的一个实施例的统一资源调度协调器2000的结构图。如图2所示,统一资源调度协调器2000包括第一接收单元210、选择单元220、第一发送单元230、第二接收单元240以及同步单元250。其中,第一接收单元210用于接收创建所述虚拟机和/或所述容器的指令,其中所述指令包括所述虚拟机和/或所述容器的参数;选择单元220用于根据所述参数从物理节点中选择出第一计算节点;第一发送单元230用于根据所要创建的类型,将所述参数和所述第一节点的信息相应地发送给虚拟机管理模块和/或容器管理模块,使得所述虚拟机管理模块通过所述第一计算节点上的虚拟机管理代理模块为所述虚拟机分配计算资源和/或使得所述容器管理模块通过所述第一计算节点上的容器管理代理模块为所述容器分配计算资源;第二接收单元240用于在所述虚拟机和/或所述容器创建完成后,从所述虚拟机管理模块和/或所述容器管理模块接收资源分配情况;以及同步单元250用于在记录资源变化情况后,将所述资源分配情况同步给所述容器管理模块和/或所述虚拟机管理模块。
图3是表示本发明的一个实施例的统一资源调度系统。如图3所示,统一资源调度系统包括云统一界面、统一资源调度协调器、虚拟机管理模块、容器管理模块、容器网络代理模块、存储管理模块、镜像管理模块以及网络管理模块。
在一个实施例中,云统一界面负责对接用户与统一资源调度协调器,在创建开始前,用户通过云统一界面指定容器/虚拟机的各项参数,包括CPU数量、内存大小、磁盘大小、网络接入、使用的镜像、计算资源使用方式等。用户下达容器/虚拟机创建指令后,云统一界面将容器/虚拟机参数以Json格式进行封装,然后调用统一资源调度协调器的RESTful API将容器/虚拟机的信息发送给统一资源调度协调器。
在一个实施例中,统一资源调度协调器收到创建请求后,根据容器/虚拟机的资源需求情况和计算资源使用方式,使用调度算法从物理节点中选出一个满足容器/虚拟机要求的物理节点。如果创建的是容器,那么统一资源调度协调器调用容器管理模块的RESTfulAPI将容器参数和物理节点信息传递给容器管理模块;如果创建的是虚拟机,那么统一资源调度协调器调用虚拟机管理模块的RESTful API将虚拟机参数和物理节点信息传递给虚拟机管理模块。
在一个实施例中,容器管理模块收到创建请求后,从镜像管理模块获得容器镜像,根据容器对计算资源的使用类型获取物理节点上的CPU和内存,通过存储管理模块或docker driver获取存储资源,通过容器网络代理模块获取网络资源,最后通过dockerdriver完成容器的创建,并调用统一资源调度协调器的RESTful API将资源消耗情况通告给统一资源调度协调器。
在一个实施例中,容器网络代理模块将容器对网络资源的请求转换为OpenStack网络资源请求,并将请求发给网络管理模块,网络管理模块根据请求从网络资源池中分配网络资源,如ip地址、mac地址、端口等,并将分配的资源返回给容器网络代理模块,容器网络代理模块收到资源信息后,将网络资源分配结果返回给容器管理模块。
在一个实施例中,虚拟机管理模块收到创建请求后,从镜像管理模块获得容器镜像,根据虚拟机对计算资源的使用类型获取物理节点上的CPU和内存,通过存储管理模块或libvirt driver获取存储资源,通过网络管理模块获取网络资源,最后通过libvirtdriver完成虚拟机的创建,并调用统一资源调度协调器的RESTful API将资源消耗情况通告给统一资源调度协调器。
在一个实施例中,容器管理模块/虚拟机管理模块在获取存储资源时,可以通过两种途径。一种是获取物理节点上的存储资源,即本地存储资源,容器管理模块通过dockerdriver,虚拟机管理模块通过libvirt driver可以实现本地存储资源的获取,这种情况下在容器管理模块/虚拟机管理模块向统一资源调度协调器通告资源消耗情况时,应包含存储资源消耗情况。另一种是容器管理模块/虚拟机管理模块通过存储管理模块获取存储资源。作为示例,存储管理模块可以为OpenStack Cinder,容器管理模块/虚拟机管理模块通过调用Cinder的RESTful API获取分布式存储资源,这种情况下由Cinder向统一资源调度协调器通告存储资源消耗情况。
需要指出的是,本领域技术人员容易理解,存储资源可以不通过Cinder进行存储调度。例如,通过为容器挂载本地目录,并由统一资源调度协调器进行记录管理,也可以实现存储资源的统一调度。
在一个实施例中,统一资源调度协调器收到容器管理模块发送的资源消耗信息后,进行资源池中资源信息的更新,并将容器的资源消耗情况通告给虚拟机管理模块,虚拟机管理模块在收到信息后进行资源消耗情况的记录。同样的,统一资源调度协调器收到虚拟机管理模块发送的资源消耗信息后,进行资源池中资源信息的更新,并将虚拟机的资源消耗情况通告给容器管理模块,容器管理模块在收到信息后进行资源消耗情况的记录。
在一个实施例中,在容器和虚拟机删除时,统一资源调度协调器将容器和虚拟机占用的资源进行回收,即资源分配与创建过程相反,资源的变化情况也应同步给统一资源调度协调器。
在一个实施例中,利用统一资源调度系统创建容器/虚拟机的步骤如下所示。
首先,云统一界面通过调用统一资源调度协调器的RESTful API,将以Json格式封装好的参数发送给统一资源调度协调器,完成创建容器/虚拟机指令的发送。
其次,统一资源调度协调器收到创建指令后,根据资源分配类型,使用就近窗口查询方法选出一个满足要求的计算节点。
接着,统一资源调度协调器判断创建的类型,如果要创建容器,则将创建参数封装成Json并调用容器管理模块的RESTful API发送给容器管理模块;如果要创建虚拟机,则将创建参数封装成Json并调用虚拟机管理模块的RESTful API发送给虚拟机管理模块。
然后,容器管理模块收到创建请求后,将请求通过RPC技术转发给步骤S2中选出的计算节点上的容器管理代理模块,容器管理代理模块为容器分配计算资源,包括CPU和内存,并通过容器网络代理模块获取网络资源,通过存储管理模块获取磁盘资源,最终完成容器的创建。
在一个实施例中,容器管理模块为OpenStack Zun;虚拟机管理模块收到创建请求后,将请求通过RPC技术转发给选出的计算节点上的虚拟机管理代理模块,虚拟机管理代理模块为虚拟机分配计算资源,包括CPU和内存,并通过网络管理模块获取网络资源,通过存储管理模块获取磁盘资源,最终完成虚拟机的创建。在一个实施例中,虚拟机管理模块为OpenStack Nova,容器网络代理模块为OpenStack kuryr,网络管理模块为OpenStackneutron,存储管理模块为OpenStack Cinder。
最后,容器管理模块完成容器的创建后将资源分配情况以Json格式封装后通过调用统一资源调度协调器的RESTful API告知统一资源调度协调器,统一资源调度协调器记录资源变化情况后调用虚拟机管理模块的RESTful API将资源使用情况同步给虚拟机管理模块;虚拟机管理模块完成虚拟机的创建后将资源分配情况以Json格式封装后通过调用统一资源调度协调器的RESTful API告知统一资源调度协调器,统一资源调度协调器记录资源变化情况后调用容器管理模块的RESTful API将资源使用情况同步给容器管理模块。
图4是表示本发明的一个实施例的就近窗口查询方法的流程图。物理节点以线性列表的形式进行存储,每一个物理节点在列表中有唯一编号,物理节点包含一个或多个NUMA节点及可用磁盘容量,NUMA节点包含该节点可用CPU数量、可用内存数量等计算资源信息。如图4所示,就近窗口查询方法包括如下步骤:
S1:统一资源调度协调器获取当前的窗口位置(i,i+k-1),i为窗口开始位置编号,k为窗口长度,(i,i+k-1)表示窗口为从编号i到编号i+k的一组物理节点。
S2:对窗口内的物理节点进行判断,是否存在满足容器/虚拟机对物理资源的需求。若存在则执行步骤S3,若不存在则执行步骤S4。
S3:返回满足需求的计算节点的编号j,将窗口向后移动,新的窗口变为(j+1,j+k)。
S4:窗口向后移动,新的窗口为(i+k,i+2k-1),判断i是否在该窗口中,如果在则说明所有节点都不满足要求,返回False;如果不在则执行S2。
图5示出了图4的就近窗口查询方法中所述判断物理节点是否满足需求的方法步骤。具体如下:
S1:判断容器/虚拟机需要的磁盘资源是否能满足。如果容器/虚拟机需要本地磁盘,则判断物理节点上的可用磁盘空间是否足够,如果容器/虚拟机需要分布式存储资源,则通过调用OpenStack Cinder的RESTful API来判断分布式存储资源是否足够。如果能够满足容器/虚拟机需要的磁盘资源,则进入步骤S2,否则返回False。
S2:判断容器/虚拟机对计算资源的使用方式是什么。容器/虚拟机对计算资源的使用方式分为两种,一种为共享模式,一种为专用模式,如果使用方式为共享模式,则进入步骤S3,如果使用方式为专用模式,则进入步骤S6。
S3:共享模式下CPU可进行超配,如果物理节点上存在一种NUMA节点,从这种NUMA节点上分配资源的容器/虚拟机都是以共享方式使用资源,则进行步骤S4,反之返回False。
S4:如果创建的类型是虚拟机,则对于物理节点上的每一个步骤S3中描述的NUMA节点,判断其CPU、内存剩余量的和是否满足虚拟机的需求,如果满足则返回True,反之返回False;如果创建的类型是容器,则对于物理节点上的每一个步骤S3中描述的NUMA节点,判断其CPU、内存剩余量的和是否满足容器的需求,如果满足则返回True,反正返回False。对于容器存在一种特殊情况,即容器没有CPU或内存的需求,对于这种情况进行步骤S5。
S5:遍历物理节点上所有的NUMA节点,如果存在一种NUMA节点,从这种NUMA节点上分配资源的容器没有CPU或内存需求,且没有虚拟机从上面分配资源,则返回True,否则返回False。
S6:专用模式下CPU不可超配,如果物理节点上存在一种NUMA节点,从这种NUMA节点上分配资源的容器/虚拟机都是以专用方式使用资源,则进行步骤S7,反之返回False。
S7:判断S6中描述的NUMA节点上可用CPU和内存是否大于容器/虚拟机的需求,如果大于则返回True,反之返回False。
图6示出了容器/虚拟机创建步骤中所述容器管理模块为容器分配CPU和内存的方法步骤。具体如下:
S1:判断容器对计算资源的使用策略,如果是专用模式,执行步骤S2,如果是共享模式,执行步骤S3。
S2:在物理节点上寻找判断物理节点是否满足需求步骤S6中描述的NUMA节点,容器需要i个vcpu和kG内存,从该NUMA节点可用CPU编号中随机选出i个vcpu以及kG内存,调用docker api分配给容器。
S3:判断容器是否对CPU或内存没有要求,如果有则进行步骤S4,反之进行步骤S5。
S4:在物理节点上寻找判断物理节点是否满足需求步骤S3中描述的NUMA节点,容器需要i个vcpu和kG内存,从这类NUMA节点可用CPU编号中随机选出i个vcpu以及kG内存,调用docker api分配给容器。
S5:直接调用docker api创建容器,无需指定具体的CPU和内存情况。
图7示出了容器/虚拟机创建步骤中所述通过容器网络代理模块获取网络资源的方法步骤。具体如下:
S1:容器管理模块将容器的网络资源请求,包括子网、ip地址、mac地址等参数,这些参数被封装成Json通过RPC技术发送给容器网络代理模块。
S2:容器网络代理模块收到容器管理模块的网络资源请求后,将请求的资源模型从容器网络模型改为OpenStack neutron网络模型,并将转变后的网络资源请求通过网络管理模块的RESTful API发送给网络管理模块。
S3:网络管理模块收到网络资源请求后,从网络资源池中分配可用网络资源,如ip地址、mac地址等,并生成相应的虚拟网络设备,如veth pair等,并将资源分配结果返回给容器网络代理模块。
S4:容器网络代理模块收到网络管理模块neutron返回的资源信息后,将资源信息转换为容器网络模型,并将转换后的信息返回给容器管理模块。
图8示出了容器/虚拟机创建步骤中所述通过存储管理模块获取磁盘资源的方法步骤。具体如下:
S1:判断容器/虚拟机需要的是本地存储资源还是分布式存储资源,如果是本地存储资源,则执行步骤S2,如果是分布式存储资源,则执行S5。
S2:判断是容器还是虚拟机请求存储资源,如果是容器则执行步骤S3,如果是虚拟机则执行步骤S4。
S3:容器管理模块调用docker driver获取本地存储资源,并将存储资源消耗信息加入发送给统一资源调度协调器的资源消耗信息中。
S4:虚拟机管理模块调用libvirt driver获取本地存储资源,并将存储资源消耗信息加入发送给统一资源调度协调器的资源消耗信息中。
S5:容器管理模块/虚拟机管理模块将对存储资源的请求封装成Json,通过调用存储管理模块的RESTful API将存储请求发送给存储管理模块,存储管理模块根据资源请求从分布式存储资源池中分配资源,并将分配信息发送给容器管理模块/虚拟机管理模块,此外,还要将存储资源消耗情况同步给统一资源调度协调器。
图9示出了容器获取物理节点NUMA拓扑的方法步骤。具体如下:
S1:调用Linux内核接口numactl获取物理节点的NUMA信息。
S2:构造NUMA拓扑模型,采用key-value结构表示。NUMA拓扑包含多个NUMA节点,NUMA节点模型采用key-value结构,包括CPU编号、已用CPU编号、内存总量、内存可用量。
S3:从NUMA信息中获取NUMA节点的CPU编号和内存总量,完成NUMA拓扑变量的赋值,已用CPU编号初始为空,内存可用量初始等于内存总量。
图10示出了统一资源调度系统为减少因专用资源分配导致过多资源碎片而执行的方法步骤。具体如下:
S1:遍历所有NUMA节点,统计为采用专用模式容器/虚拟机分配计算资源的NUMA节点数量i,NUMA节点总量为sum,专用模式NUMA节点数量占比为i/sum。对于每一个NUMA节点,可用CPU数量为icpu,CPU总量为sumcpu,可用内存量为imem,内存总量为summem,NUMA节点利用率为(icpu/sumcpu+imem/summem)/2。
S2:判断专用模式NUMA节点数量占比是否高于50%且NUMA节点利用率是否低于50%,如果是执行步骤S3,反之执行步骤S1。
S3:遍历所有NUMA节点,找出所有为共享模式容器/虚拟机分配计算资源的NUMA节点,组成NUMA节点列表,从中随机选出一半NUMA节点,遍历从这些NUMA节点上分配计算资源的容器/虚拟机,对于每一个容器/虚拟机,将其资源使用方式改为专用,并通过统一资源调度协调器重新进行调度。
图11是表示本发明的一个实施例的减少因专用资源分配导致过多资源碎片的方法流程图。具体如下:
S1:遍历所有NUMA节点,统计为采用专用模式容器/虚拟机分配计算资源的NUMA节点数量i,NUMA节点总量为sum,专用模式NUMA节点数量占比为i/sum。对于每一个NUMA节点,可用CPU数量为icpu,CPU总量为sumcpu,可用内存量为imem,内存总量为summem,NUMA节点利用率为(icpu/sumcpu+imem/summem)/2。
S2:判断专用模式NUMA节点数量占比是否高于50%且NUMA节点利用率是否低于50%,如果是执行步骤S3,反之执行步骤S1。
S3:遍历所有NUMA节点,找出所有为共享模式容器/虚拟机分配计算资源的NUMA节点,组成NUMA节点列表,从中随机选出一半NUMA节点,遍历从这些NUMA节点上分配资源的容器/虚拟机,对于每一个容器/虚拟机,按照专用模式从计算节点中找到一个满足要求的计算节点,并判断新找到的计算节点与容器/虚拟机原来所在的计算节点是否为同一计算节点,若是,则执行S4,若不是则执行S5。
S4:容器/虚拟机在原计算节点上以专用模式进行资源分配。
S5:使用热迁移技术将容器/虚拟机从原计算节点迁移至新找到的计算节点,并以专用模式进行资源分配。
举例来说,参考图12,假设云平台已满足专用模式NUMA节点占比超过50%且平均利用率低于50%,其中计算节点1上的NUAM节点1和NUMA节点2是两个专用模式的NUMA节点,NUMA节点1上的可用CPU个数为1,可用内存为2G,NUMA节点2上的可用CPU个数为2,可用内存为8G,计算节点1上有共享模式容器1,使用了NUMA节点3上的1个CPU和1G内存;计算节点2上有共享模式容器2,使用了NUMA节点4上的1个CPU和1G内存,以及NUMA节点5上的1个CPU和2G内存。
在工作过程中,首先将容器1改为专用模式,并使用就近窗口查询方法遍历所有专用模式的NUMA节点,发现计算节点1上的NUMA节点1满足容器1的需求,从NUMA节点1上为容器1分配资源,并从NUMA节点3上回收相应资源。然后将容器2改为专用模式,并使用就近窗口查询方法遍历所有专用模式的NUMA节点,发现计算节点1上的NUMA节点2满足容器2的需求,将容器2从计算节点2热迁移至计算节点1,并从NUMA节点2上为容器2分配资源。
结束后两个计算节点的资源使用情况如图13所示。此时容器1以专用模式从NUMA节点1上分配资源,消耗掉了NUMA节点1上的1个CPU和1G内存;容器2以专用模式从NUMA节点2上分配资源,消耗掉了NUMA节点2上的2个CPU和3G内存,实现了碎片空间的减少。
图14是表示本发明的另一个实施例的减少因专用资源分配导致过多资源碎片的方法流程图。特别地,图14中示出的减少资源碎片的方法主要针对未找到符合要求计算节点的情形。具体如下:
S1:创建共享模式的容器/虚拟机,如果没有找到满足要求的计算节点则执行S2,反之则按正常流程在找到的计算节点上为容器/虚拟机分配资源。
S2:使用就近窗口查询方法遍历所有计算节点,对于每一个计算节点上专用模式的NUMA节点,memi表示NUMA节点i的可用内存量,cpui表示NUMA节点i的可用CPU个数,
Figure BDA0001877284480000151
表示计算节点上专用模式NUMA节点的可用内存总量,
Figure BDA0001877284480000152
表示计算节点上专用模式NUMA节点的可用cpu总数,n为计算节点上专用模式NUMA节点的数量。如果找到计算节点满足
Figure BDA0001877284480000153
大于容器/虚拟机需要的内存且
Figure BDA0001877284480000154
大于容器/虚拟机需要的CPU个数,则执行S3,否则认为所有计算节点都没有足够的资源可用。
S3:在找到的计算节点上,从专用模式NUMA节点上为容器/虚拟机分配资源。
举例来说,计算节点1中NUMA节点1和NUMA节点2上均运行的是专用模式的容器/虚拟机,NUMA节点1上可用的CPU个数为2,可用内存为2G,NUMA节点2上可用的CPU个数为2,可用内存为4G。现需要创建一共享模式的容器,该容器需要4个CPU和4G内存,假设通过就近窗口查询方法未能找到满足要求的计算节点,则再次遍历计算节点,统计其专用模式的NUMA节点上可用CPU个数和可用内存总数,发现计算节点1中NUMA节点1和NUMA节点2的可用CPU总数为4,可用内存总数为6G,满足容器的需求,认为计算节点1符合要求,将容器分配至计算节点1进行资源分配。在分配后,NUMA节点1为容器提供了2个CPU,NUMA节点2为容器提供了2个CPU和4G内存,实现了碎片空间的减少。
需要指出的是,图11和图14的方法是针对不同情况的碎片优化方法,因此本领域技术人员可以理解,上述方法可同时使用,并不会导致冲突。
下面以具体实例来进行说明。
例1:我们假设计算节点1有两个NUMA节点,分别为NUMA节点0和NUMA节点1,每个NUAM节点有4个CPU和32G内存,磁盘可用空间为100G,并且当前没有容器或虚拟机,创建的容器需要2个CPU,16G内存,10G volume磁盘,计算资源使用方式为专用,连接的网络为net1。
云统一界面发出创建容器的指令后,统一资源调度协调器接受到该指令,从指令中获取容器的CPU要求为2个,内存需要16G,硬盘需要10G,类型为volume,需要连接的网络为net1,协调器根据这些信息进行筛选,发现计算节点1满足要求,将计算节点1的信息和容器信息打包后发送给容器管理。在计算节点1上的容器管理发现NUMA节点0中的计算资源符合容器的要求,从中随机选出2个CPU,假设选中的CPU编号为0和1,将NUMA节点0的已用CPU中加入编号0和1,可用内存减去16G。然后将存储资源信息发送给存储管理,存储管理生成一个大小为10G的volume,返回给容器管理,并将该信息同步给统一资源调度协调器,协调器中计算节点1的可用存储空间减少10G。然后将网络信息发送给容器网络代理,网络代理将容器网络请求转换为OpenStack neutron网络请求,发送给网络管理,网络管理从net1中分配合适的IP地址、mac地址、端口等网络资源给容器管理,容器管理据此完成容器的网络模块创建。创建完成后,将容器的CPU、内存消耗情况同步给统一资源调度协调器,统一资源调度协调器将计算节点1中的NUMA节点0可用CPU数量减2,可用内存减去16G。
例2:我们假设计算节点1有两个NUMA节点,分别为NUMA节点0和NUMA节点1,每个NUAM节点有4个CPU和32G内存,磁盘可用空间为100G,并且当前没有容器或虚拟机,创建的虚拟机需要6个CPU,16G内存,10G本地磁盘,计算资源使用方式为共享,连接的网络为net1。
云统一界面发出创建容器的指令后,统一资源调度协调器接受到该指令,从指令中获取虚拟机的CPU要求为6个,内存需要16G,硬盘需要10G,类型为本地存储,需要连接的网络为net1,协调器根据这些信息进行筛选,发现计算节点1满足要求,将计算节点1的信息和虚拟机信息打包后发送给虚拟机管理。在计算节点1上的虚拟机管理发现NUMA节点0和NUMA节点1中的计算资源和符合虚拟机的要求,从中随机选出6个CPU,假设选中的CPU编号为0、1、2、3、6、7,将NUMA节点0的已用CPU中加入编号0、1、2、3,可用内存减去16G,将NUMA节点1的已用CPU中加入编号6、7。之后调用libvirt driver获取大小为10G的本地磁盘空间。然后将网络信息发送给网络管理,网络管理从net1中分配合适的IP地址、mac地址、端口等网络资源给虚拟机管理。虚拟机管理依据上述获取的资源完成虚拟机的创建,并将资源消耗信息同步给统一资源调度协调器,统一资源调度协调器将计算节点1的NUMA节点0可用CPU数量减4,可用内存减去16G,NUMA节点1可用CPU数量减去2,计算节点1上可用磁盘空间减去10G。
例3:我们假设计算节点1有两个NUMA节点,分别为NUMA节点0和NUMA节点1,每个NUAM节点有4个CPU和32G内存,磁盘可用空间为60G,NUMA节点0的可用CPU数量为3,可用内存为18G,NUMA节点1的可用CPU数量为2,可用内存为16G,计算节点1上有一个容器,一个虚拟机,容器从NUMA节点0上分配计算资源,资源使用方式为专用,虚拟机从NUMA节点1上分配计算资源,资源使用方式为共享;计算节点2有两个NUMA节点,分别为NUMA节点0和NUMA节点1,每个NUAM节点有4个CPU和32G内存,磁盘可用空间为100G,并且当前没有容器或虚拟机,创建的虚拟机需要3个CPU,40G内存,40G本地磁盘,计算资源使用方式为共享,连接的网络为net1。
云统一界面发出创建容器的指令后,统一资源调度协调器接受到该指令,从指令中获取虚拟机的CPU要求为3个,内存需要40G,硬盘需要40G,类型为本地存储,需要连接的网络为net1,协调器根据这些信息进行筛选,发现计算节点1上NUMA节点0为资源使用模式为专用的容器分配计算资源,不符合要求,NUMA节点1上没有足够可用的CPU,仍然不符合要求,计算节点1不符合要求;计算节点2的两个NUMA节点可用CPU数量为8,大于虚拟机需要的3,可用内存数量为64G,大于虚拟机需要的40G,可用磁盘空间为60G,大于虚拟机需要的40G,虚拟机对计算资源的使用方式为共享,可用两个NUMA节点的资源,因此计算节点2满足要求,统一资源调度协调器将计算节点2的信息和虚拟机信息打包后发送给虚拟机管理。在计算节点2上的虚拟机管理发现NUMA节点0和NUMA节点1中的计算资源和符合虚拟机的要求,从中随机选出3个CPU,假设选中的CPU编号为0、1、2,将NUMA节点0的已用CPU中加入编号0、1、2,可用内存减去32G,将NUMA节点1的可用内存减去8G。之后调用libvirt driver获取大小为40G的本地磁盘空间。然后将网络信息发送给网络管理,网络管理从net1中分配合适的IP地址、mac地址、端口等网络资源给虚拟机管理。虚拟机管理依据上述获取的资源完成虚拟机的创建,并将资源消耗信息同步给统一资源调度协调器,统一资源调度协调器将计算节点1的NUMA节点0可用CPU数量减3,可用内存减去32G,NUMA节点1可用内存减去8G,计算节点1上可用磁盘空间减去40G。
综上所述,本发明提出了一种容器与虚拟机计算资源融合调度的调度器。调度器记录物理资源情况,资源种类包括CPU、内存和磁盘,并通过RESTful API与物理资源上的容器/虚拟机异构资源管理进行通信,容器/虚拟机异构资源管理在物理资源上部署的代理通过调用调度器的RESTful API将收集到的计算资源情况和资源分配情况以Key-value格式封装后发送给调度器,调度器通过调用容器/虚拟机资源管理的RESTful API将调度信息以Key-value格式封装后发送给容器/虚拟机异构资源管理,并与容器/虚拟机异构资源管理分配信息进行比对验证。此外,根据资源统计得到的物力资源情况通过调度算法调度容器/虚拟机运行在合适的物理节点上,实现容器/虚拟机在相同的物理资源池上的联合调度。
调度器依据容器/虚拟机对计算资源的使用方式不同,将资源使用方式分为共享和专用两种类型。其中共享模式下容器/虚拟机可以使用物理节点上任意的CPU和内存,而专用模式下容器/虚拟机以NUMA节点为最小单位分配CPU和内存资源。调度器在执行调度任务时,根据资源使用模式以NUMA节点为资源分配单位为容器/虚拟机寻找合适的物理节点,被专用模式的容器/虚拟机占用的NUMA节点将不能分配资源给共享模式的容器/虚拟机,反之亦然。
调度器在快速分配场景下,采用就近窗口查询方法,快速查询可用物理节点。就近窗口查询方式如下:物理节点包含的各种资源信息以结构体的形式组合成物理节点模型,各物理节点以线性列表的形式被调度器检索,调度器维持一个长度为K的窗口,即物理节点列表中长度为K的一段列表,每次需要进行节点选择时,从这段列表中进行选择,如果存在满足要求的节点,假设在列表中的编号为i,则返回该节点编号i并将窗口向后移动,窗口范围变成从i+1到i+k;如果在该窗口中没有找到满足要求的节点,则窗口向后滑动K,在新的窗口中重复上述查找操作,直到找到合适的节点或遍历至本次选择开始的地方为止,若找到合适的节点则返回该节点的编号,若遍历至本次选择开始的地方,则返回布尔值False。
当专用模式的NUMA节点数量占比超过50%且NUMA节点内的平均资源利用率低于50%时,认为出现因专用资源分配导致过多资源碎片的情况。这种情况下调度器会将50%的采用共享模式的容器/虚拟机转为专用模式,并将这些容器/虚拟机重新进行调度,尽可能地将这些容器/虚拟机调度到采用专用模式的NUMA节点上,充分利用计算资源。
基于以上调度器,容器/虚拟机资源管理通过调用Linux内核接口numactl获取物理节点的NUMA拓扑信息,并以key-value形式记录了NUMA拓扑信息的映射描述以及使用情况,调度器通过专用与共享分类方式,兼容实现CPU、内存与虚拟化资源的绑定映射与共享分时复用。
基于以上调度器,容器资源的网络分配不采用单独管理方式,而是通过网络代理映射,以容器网络与虚拟机网络模型转换的方式,实现容器接入虚拟机网络(例如OpenStack Neutron),从而实现处于同一租户网络的同一网段的容器和虚拟机可以互通。容器网络模型经过网络代理映射后和虚拟机网络资源模型统一化,网络资源可实现统一管理。
基于以上调度器,对于物理机本地磁盘调度,容器资源使用本地存储采用磁盘格式化成文件系统后的挂载模式,虚拟机采用块设备映射模式,从而体现容器本地磁盘的挂载优势。对于远程网络存储使用,统一采用存储管理模块统一管理。
以上例子主要说明了本发明的统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统以及计算机存储介质。尽管只对其中一些本发明的具体实施方式进行了描述,但是本领域普通技术人员应当了解,本发明可以在不偏离其主旨与范围内以许多其他的形式实施。因此,所展示的例子与实施方式被视为示意性的而非限制性的,在不脱离如所附各权利要求所定义的本发明精神及范围的情况下,本发明可能涵盖各种的修改与替换。

Claims (19)

1.一种通过统一资源调度协调器创建虚拟机和/或容器的方法,其特征在于,所述方法包括:
接收创建所述虚拟机和/或所述容器的指令,其中所述指令包括所述虚拟机和/或所述容器的参数;
根据所述参数从物理节点中选择出第一计算节点;
根据所要创建的类型,将所述参数和所述第一计算节点的信息相应地发送给虚拟机管理模块和/或容器管理模块,使得所述虚拟机管理模块通过所述第一计算节点上的虚拟机管理代理模块为所述虚拟机分配资源和/或使得所述容器管理模块通过所述第一计算节点上的容器管理代理模块为所述容器分配资源;
在所述虚拟机和/或所述容器创建完成后,从所述虚拟机管理模块和/或所述容器管理模块接收资源分配情况;
在记录资源变化情况后,将所述资源分配情况同步给所述容器管理模块和/或所述虚拟机管理模块,其中,根据所述参数从物理节点中选择出第一计算节点包括:
根据所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式,使用就近窗口查询方法选出满足要求的第一计算节点。
2.如权利要求1所述的方法,其中,所述虚拟机和/或所述容器的参数包括所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式。
3.如权利要求1所述的方法,其中,根据所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式,使用就近窗口查询方法选出满足要求的第一计算节点包括:
设置一列表,其中每一个物理节点在所述列表中有唯一编号,所述物理节点包含一个或多个非统一内存访问架构NUMA节点及可用磁盘容量,所述NUMA节点包含该节点可用的计算资源信息;
获取在所述列表中的当前窗口位置(i,i+k-1),其中i为窗口开始位置编号,k为窗口长度,(i,i+k-1)表示窗口为从编号i到编号i+k的一组物理节点;
对所述当前窗口位置内的物理节点进行判断,确定是否存在满足容器和/或虚拟机对物理资源的需求的节点;
若存在,则返回满足需求的节点的编号j,并将窗口向后移动,新的窗口变为(j+1,j+k);以及
若不存在,则将窗口向后移动,新的窗口为(i+k,i+2k-1),并判断i是否在该新的窗口中,若是,则确定所有节点都不满足要求。
4.如权利要求1所述的方法,其中,所述方法还包括:
确定专用模式NUMA节点数量占比高于第一阈值且NUMA节点利用率低于第二阈值;以及
从共享模式NUMA节点中随机选出一定数量的NUMA节点,对于从所选出的NUMA节点上分配资源的容器和/或虚拟机,将其资源使用方式修改为专用,并重新进行调度,其中选出的NUMA节点的数量在所有NUMA节点中的占比与第三阈值相对应。
5.如权利要求4所述的方法,其中,所述第一阈值、所述第二阈值以及所述第三阈值都为50%。
6.如权利要求1或2所述的方法,其中,所述方法还包括:
在使用就近窗口查询方法未能找到满足要求的计算节点时,遍历各个计算节点并统计在各个计算节点上专用模式的NUMA节点的可用资源;
根据所要创建的所述虚拟机和/或所述容器的需求,分配合适的计算节点;以及
在所述合适的计算节点上,重新调度资源。
7.如权利要求1所述的方法,其中,所分配的资源包括计算、网络以及存储资源。
8.一种统一资源调度协调器,其特征在于,所述统一资源调度协调器包括:
第一接收单元,用于接收创建虚拟机和/或容器的指令,其中所述指令包括所述虚拟机和/或所述容器的参数;
选择单元,用于根据所述参数从物理节点中选择出第一计算节点;
第一发送单元,用于根据所要创建的类型,将所述参数和第一节点的信息相应地发送给虚拟机管理模块和/或容器管理模块,使得所述虚拟机管理模块通过所述第一计算节点上的虚拟机管理代理模块为所述虚拟机分配计算资源和/或使得所述容器管理模块通过所述第一计算节点上的容器管理代理模块为所述容器分配计算资源;
第二接收单元,用于在所述虚拟机和/或所述容器创建完成后,从所述虚拟机管理模块和/或所述容器管理模块接收资源分配情况;
同步单元,用于在记录资源变化情况后,将所述资源分配情况同步给所述容器管理模块和/或所述虚拟机管理模块,
其中,所述选择单元配置成根据所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式,使用就近窗口查询方法选出满足要求的第一计算节点。
9.如权利要求8所述的统一资源调度协调器,其中,所述虚拟机和/或所述容器的参数包括所述虚拟机和/或所述容器的资源需求情况和计算资源使用方式。
10.如权利要求8所述的统一资源调度协调器,其中,所述选择单元包括:
存储子单元,用于存储一列表,其中每一个物理节点在所述列表中有唯一编号,所述物理节点包含一个或多个非统一内存访问架构NUMA节点及可用磁盘容量,所述NUMA节点包含该节点可用的计算资源信息;获取在所述列表中的当前窗口位置(i,i+k-1),其中i为窗口开始位置编号,k为窗口长度,(i,i+k-1)表示窗口为从编号i到编号i+k的一组物理节点;
判断子单元,用于对所述当前窗口位置内的物理节点进行判断,确定是否存在满足容器和/或虚拟机对物理资源的需求的节点;
处理子单元,用于在存在的情况下返回满足需求的节点的编号j,并将窗口向后移动,新的窗口变为(j+1,j+k);以及在不存在的情况下将窗口向后移动,新的窗口为(i+k,i+2k-1),并同时判断i是否在该新的窗口中,若是,则确定所有节点都不满足要求。
11.如权利要求8所述的统一资源调度协调器,其中,所述统一资源调度协调器还包括:
确定单元,用于确定专用模式NUMA节点数量占比高于第一阈值且NUMA节点利用率低于第二阈值;
修改单元,用于从共享模式NUMA节点中随机选出一定数量的NUMA节点,对于从所选出的NUMA节点上分配资源的容器和/或虚拟机,将其资源使用方式修改为专用,并重新进行调度,其中选出的NUMA节点的数量在所有NUMA节点中的占比与第三阈值相对应。
12.如权利要求11所述的统一资源调度协调器,其中,所述第一阈值、所述第二阈值以及所述第三阈值都为50%。
13.如权利要求8所述的统一资源调度协调器,其中,所述统一资源调度协调器还包括:
遍历统计单元,用于在使用就近窗口查询方法未能找到满足要求的计算节点时,遍历各个计算节点并统计在各个计算节点上专用模式的NUMA节点的可用资源;
分配单元,用于根据所要创建的所述虚拟机和/或所述容器的需求,分配合适的计算节点;以及
调度单元,用于在所述合适的计算节点上,重新调度资源。
14.如权利要求8所述的统一资源调度协调器,其中,所分配的资源包括计算、网络以及存储资源。
15.一种统一资源调度系统,包括如权利要求8至14中任一项所述的统一资源调度协调器。
16.如权利要求15所述的系统,其中,所述系统还包括:
容器管理模块,用于为容器分配CPU和内存资源。
17.如权利要求15或16所述的系统,其中,所述系统还包括:
容器网络代理模块,用于接收来自容器管理模块的网络资源请求,将请求的资源模型从容器网络模型修改为第一网络模型,转发包含所述第一网络模型的修改的网络资源请求并最终获取网络资源。
18.如权利要求17所述的系统,其中,所述第一网络模型为Openstack neutron网络模型。
19.一种计算机存储介质,包括指令,所述指令在运行时执行如权利要求1至7中任一项所述的方法。
CN201811405694.1A 2018-11-23 2018-11-23 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 Active CN109885377B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811405694.1A CN109885377B (zh) 2018-11-23 2018-11-23 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统
PCT/CN2019/094796 WO2020103465A1 (zh) 2018-11-23 2019-07-05 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统
US17/041,943 US11467864B2 (en) 2018-11-23 2019-07-05 Unified resource scheduling coordinator, method for creating a virtual machine and/or container, and unified resource scheduling system
TW108124482A TWI723459B (zh) 2018-11-23 2019-07-11 統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811405694.1A CN109885377B (zh) 2018-11-23 2018-11-23 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统

Publications (2)

Publication Number Publication Date
CN109885377A CN109885377A (zh) 2019-06-14
CN109885377B true CN109885377B (zh) 2023-04-28

Family

ID=66924958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811405694.1A Active CN109885377B (zh) 2018-11-23 2018-11-23 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统

Country Status (4)

Country Link
US (1) US11467864B2 (zh)
CN (1) CN109885377B (zh)
TW (1) TWI723459B (zh)
WO (1) WO2020103465A1 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885377B (zh) * 2018-11-23 2023-04-28 中国银联股份有限公司 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统
CN110297693B (zh) * 2019-07-04 2020-07-28 北京伟杰东博信息科技有限公司 一种分布式软件任务分配的方法及其系统
CN112433841B (zh) * 2019-08-26 2023-08-01 中国移动通信集团浙江有限公司 一种资源池调度方法、系统、服务器和存储介质
CN110515602B (zh) * 2019-09-17 2023-08-18 成都源动数据科技有限公司 一种在线交互式编程开放实验系统
CN110704161B (zh) * 2019-09-27 2022-05-31 联想(北京)有限公司 虚拟机创建方法、装置及计算机设备
CN112583625B (zh) * 2019-09-30 2023-12-08 中兴通讯股份有限公司 网络资源管理方法、系统、网络设备和可读存储介质
US11182196B2 (en) * 2019-11-13 2021-11-23 Vmware, Inc. Unified resource management for containers and virtual machines
US11755354B2 (en) * 2019-11-20 2023-09-12 Sap Se NUMA-aware resource allocation and placement of database containers
CN111338758A (zh) * 2020-02-24 2020-06-26 华云数据(厦门)网络有限公司 资源管理方法、装置和电子设备
US11630700B2 (en) * 2020-03-23 2023-04-18 T-Mobile Usa, Inc. Local edge device
US11507431B2 (en) * 2020-04-01 2022-11-22 Microsoft Technology Licensing, Llc Resource allocation for virtual machines
CN111796906A (zh) * 2020-06-03 2020-10-20 科东(广州)软件科技有限公司 一种容器管理方法、装置、设备及存储介质
CN111638961A (zh) * 2020-06-04 2020-09-08 中国工商银行股份有限公司 资源调度系统和方法、计算机系统和存储介质
CN113821157A (zh) * 2020-06-18 2021-12-21 中移(苏州)软件技术有限公司 一种本地磁盘挂载方法、装置、设备及存储介质
CN113849259A (zh) * 2020-06-28 2021-12-28 华为技术有限公司 一种虚拟机和容器混合调度系统、方法、调度器及装置
CN113301087B (zh) * 2020-07-21 2024-04-02 阿里巴巴集团控股有限公司 资源调度方法、装置、计算设备和介质
CN113760441A (zh) * 2020-08-31 2021-12-07 北京京东尚科信息技术有限公司 容器创建方法、装置、电子设备及存储介质
CN112148489A (zh) * 2020-09-22 2020-12-29 网易(杭州)网络有限公司 游戏资源调度方法、装置、设备及存储介质
US11740921B2 (en) * 2020-11-23 2023-08-29 Google Llc Coordinated container scheduling for improved resource allocation in virtual computing environment
CN112565475B (zh) * 2020-12-01 2023-07-11 成都精灵云科技有限公司 容器集群业务层添加新节点的ip地址分配方法
CN112965788B (zh) * 2021-03-22 2023-12-22 西安电子科技大学 一种混合虚拟化方式的任务执行方法、系统及设备
CN113225388B (zh) * 2021-04-22 2023-05-16 深信服科技股份有限公司 一种分布式调度方法及装置、设备、存储介质
CN113472848A (zh) * 2021-05-31 2021-10-01 济南浪潮数据技术有限公司 一种虚拟机和容器的网络融合方法、装置及相关设备
CN113485786B (zh) * 2021-06-29 2022-05-17 济南浪潮数据技术有限公司 一种基于云物理机实现pod挂载cinder卷的方法及系统
CN113612688B (zh) * 2021-07-14 2023-03-24 曙光信息产业(北京)有限公司 分布式软件定义网络控制系统及其构建方法
CN113608833A (zh) * 2021-07-19 2021-11-05 曙光信息产业(北京)有限公司 虚拟机创建方法、装置、计算机设备和存储介质
CN113709241B (zh) * 2021-08-26 2024-01-23 上海德拓信息技术股份有限公司 一种云场景下物理资源的调度分配组合方法与系统
CN113872673A (zh) * 2021-09-27 2021-12-31 哈工大机器人(中山)无人装备与人工智能研究院 一种卫星星座仿真的容器云资源调度系统及其调度方法
CN114138464B (zh) * 2021-11-10 2023-10-31 浪潮卓数大数据产业发展有限公司 基于容器的端口分配方法及系统
CN114363021B (zh) * 2021-12-22 2023-11-03 绿盟科技集团股份有限公司 网络靶场系统、网络靶场系统的虚拟网络实现方法及装置
CN114553874B (zh) * 2022-02-28 2023-04-18 北京理工大学 一种混合仿真云平台及自动化部署方法
CN114637576A (zh) * 2022-03-22 2022-06-17 支付宝(杭州)信息技术有限公司 用于生成容器分配方案的方法及装置
CN114968477A (zh) * 2022-04-21 2022-08-30 京东科技信息技术有限公司 容器热迁移方法及容器热迁移装置
CN114816665B (zh) * 2022-04-22 2023-03-24 北京志凌海纳科技有限公司 混合编排系统及超融合架构下虚拟机容器资源混合编排方法
CN114710366B (zh) * 2022-05-31 2022-11-04 阿里巴巴(中国)有限公司 云计算系统中的跨安全区域的资源访问方法及电子设备
CN117215712A (zh) * 2022-06-02 2023-12-12 华为技术有限公司 一种容器的创建方法、装置及存储介质
CN115033348B (zh) * 2022-08-10 2022-10-25 北京腾达泰源科技有限公司 一种对虚拟机和容器统一管理方法、系统、设备及介质
CN116049908B (zh) * 2023-04-03 2023-06-06 北京数力聚科技有限公司 一种基于区块链的多方隐私计算方法及系统
CN116302363B (zh) * 2023-05-16 2023-08-04 苏州浪潮智能科技有限公司 一种虚拟机创建方法、系统、计算机设备及存储介质
CN116610270B (zh) * 2023-07-21 2023-10-03 湖南马栏山视频先进技术研究院有限公司 一种视频处理的存算分离方法及视频存算分离系统
CN116627661B (zh) * 2023-07-24 2023-11-03 杭州谐云科技有限公司 算力资源调度的方法和系统
CN116820687B (zh) * 2023-08-29 2023-12-05 银河麒麟软件(长沙)有限公司 基于kubelet的NUMA架构资源分配方法及系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581224B2 (en) 2003-07-10 2009-08-25 Hewlett-Packard Development Company, L.P. Systems and methods for monitoring resource utilization and application performance
WO2009108344A1 (en) * 2008-02-29 2009-09-03 Vkernel Corporation Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US8561072B2 (en) 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
CN103064724A (zh) * 2012-12-14 2013-04-24 北京伸得纬科技有限公司 虚拟机构建方法及装置
CN103049334B (zh) * 2012-12-14 2015-09-30 华为技术有限公司 一种任务处理的方法和虚拟机
CN104011685B (zh) 2012-12-26 2016-05-25 华为技术有限公司 一种虚拟机系统的资源管理方法、虚拟机系统和装置
US9575797B2 (en) * 2015-03-20 2017-02-21 International Business Machines Corporation Virtual machine migration between hypervisor virtual machines and containers
US11483405B2 (en) * 2015-06-10 2022-10-25 Platform9, Inc. Private cloud as a service
CN105404549B (zh) * 2015-12-06 2019-04-26 北京天云融创软件技术有限公司 基于yarn架构的虚拟机调度系统
US10241674B2 (en) * 2015-12-11 2019-03-26 Vmware, Inc. Workload aware NUMA scheduling
CN106919445B (zh) * 2015-12-28 2021-08-20 华为技术有限公司 一种在集群中并行调度容器的方法和装置
EP3226135A3 (en) * 2016-03-30 2018-01-31 AppFormix, Inc. Real-time cloud-infrastructure policy implementation and management
US10985997B2 (en) * 2016-05-06 2021-04-20 Enterpriseweb Llc Systems and methods for domain-driven design and execution of metamodels
US10866767B2 (en) * 2016-05-31 2020-12-15 Vmware, Inc. Enforcing limits on a self-serve model for provisioning data volumes for containers running in virtual machines
US11251179B2 (en) 2016-06-30 2022-02-15 International Business Machines Corporation Long channel and short channel vertical FET co-integration for vertical FET VTFET
CN106293945A (zh) * 2016-08-11 2017-01-04 浪潮(北京)电子信息产业有限公司 一种跨虚拟机的资源感知方法及系统
US9697144B1 (en) * 2016-08-23 2017-07-04 Red Hat, Inc. Quality of service enforcement and data security for containers accessing storage
US20180088973A1 (en) * 2016-09-25 2018-03-29 Dinesh Subhraveti Methods and systems for interconversions among virtual machines, containers and container specifications
US10884816B2 (en) * 2017-03-28 2021-01-05 International Business Machines Corporation Managing system resources in containers and virtual machines in a coexisting environment
US10547521B1 (en) * 2017-03-29 2020-01-28 Juniper Networks, Inc. Network dashboard with multifaceted utilization visualizations
US10868742B2 (en) * 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
US11068314B2 (en) * 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
CN107135103B (zh) * 2017-05-08 2021-03-19 网宿科技股份有限公司 在异构资源上构建内容分发网络平台的方法和系统
CN107426034B (zh) * 2017-08-18 2020-09-01 国网山东省电力公司信息通信公司 一种基于云平台的大规模容器调度系统及方法
US11556386B2 (en) * 2017-09-18 2023-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Synthesizing a resource request to obtain resource identifier based on extracted unified model, user requirement and policy requirements to allocate resources
US10534629B1 (en) * 2017-10-31 2020-01-14 EMC IP Holding Company LLC Virtual data management services
CN107967167A (zh) * 2017-12-01 2018-04-27 江苏润和软件股份有限公司 一种面向复杂虚拟化环境的云平台资源调度方法
US10871998B2 (en) * 2018-01-18 2020-12-22 Red Hat, Inc. Usage instrumented workload scheduling
CN108595306B (zh) * 2018-04-18 2021-03-26 大连理工大学 一种面向混部云的服务性能测试方法
CN109885377B (zh) 2018-11-23 2023-04-28 中国银联股份有限公司 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统

Also Published As

Publication number Publication date
WO2020103465A1 (zh) 2020-05-28
TW202021328A (zh) 2020-06-01
US20210117220A1 (en) 2021-04-22
US11467864B2 (en) 2022-10-11
TWI723459B (zh) 2021-04-01
CN109885377A (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
CN109885377B (zh) 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统
JP4119162B2 (ja) 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
CN107209710B (zh) 节点系统、服务器设备、缩放控制方法和程序
US9003002B2 (en) Efficient port management for a distributed network address translation
US8010651B2 (en) Executing programs based on user-specified constraints
US8972983B2 (en) Efficient execution of jobs in a shared pool of resources
WO2017133623A1 (zh) 一种数据流处理方法、装置和系统
US9772801B2 (en) Performing volume expansion in storage management system
US10397132B2 (en) System and method for granting virtualized network function life cycle management
US7167854B2 (en) Database control method
KR20140027518A (ko) 클라우드 환경 내 가상 자원들의 할당을 위한 방법 및 장치
JPS63239551A (ja) 多重プロセッサメモリの管理方法とその装置
WO2014131317A1 (zh) 一种核资源分配方法、装置及众核系统
US10686875B2 (en) Elastically scalable document-oriented storage services
US10810044B2 (en) Enhanced cache memory allocation based on virtual node resources
CN108200211A (zh) 集群中镜像文件下载的方法、节点和查询服务器
CN107577733B (zh) 一种数据复制的加速方法及系统
US20130166670A1 (en) Networked storage system and method including private data network
CN109298949B (zh) 一种分布式文件系统的资源调度系统
US20120151175A1 (en) Memory apparatus for collective volume memory and method for managing metadata thereof
JP5461448B2 (ja) 資源予約装置及び方法及びプログラム
CN115063282A (zh) 一种gpu资源调度方法、装置、设备及存储介质
CN114237974A (zh) 一种数据备份方法及装置、设备、存储介质
Dobson et al. Linux support for NUMA hardware
CN112559164A (zh) 一种资源共享方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40003719

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant