CN115202839A - 一种基于容器的任务调度方法及系统 - Google Patents
一种基于容器的任务调度方法及系统 Download PDFInfo
- Publication number
- CN115202839A CN115202839A CN202210745984.0A CN202210745984A CN115202839A CN 115202839 A CN115202839 A CN 115202839A CN 202210745984 A CN202210745984 A CN 202210745984A CN 115202839 A CN115202839 A CN 115202839A
- Authority
- CN
- China
- Prior art keywords
- task
- standby
- main
- server
- tasks
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种基于容器的任务调度方法及系统,确定子任务的个数,确定服务器个数,为每个子任务部署一个主任务和一个备任务,主任务用于执行该子任务,备任务用于在主任务出现故障时转换为主任务继续执行该子任务;依据负载均衡原则将所有主任务和备任务调度给各个服务器,且同一个子任务的主任务和备任务不在同一个服务器上部署;在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址。优点:任意任务实例或者计算节点故障都不影响任务的最终完成;任务负载被平均的分摊到了各个节点,各个节点都为任务完成提供了计算能力。
Description
技术领域
本发明涉及一种基于容器的任务调度方法及系统,属于资源管理任务调度技术领域。
背景技术
业界通用的分布式计算管理系统中,业务往往需要自行管理计算数据,或者直接配置好每个节点运行的计算任务数量和数据集序号,资源利用不充分,不具备动态伸缩能力。同时服务在进行弹性扩展后,往往需要自行管理端口号,比如进行端口号递增操作,弹性扩展不灵活,且业务代码需要跟随管理系统的特性进行修改。
发明内容
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种自动化程度高、可靠性高、具备弹性伸缩能力、资源利用率高、灵活性高的基于容器的任务调度方法及系统。
为解决上述技术问题,本发明提供一种基于容器的任务调度方法,包括:
获取某个应用提交的子任务,确定子任务的个数,获取用于承载任务运行的服务器,确定服务器个数;为每个子任务部署一个主任务和一个备任务,主任务用于执行该子任务,备任务用于在主任务出现故障时转换为主任务继续执行该子任务;
依据负载均衡原则将所有主任务和备任务调度给各个服务器,且同一个子任务的主任务和备任务不在同一个服务器上部署;在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址。
进一步的,还包括:在增加服务器或服务器故障离线时,依据负载均衡原则对主任务和备任务进行自动迁移。
进一步的,所述子任务为计算任务或服务进程。
进一步的,所述负载均衡原则为:
判断各个服务器之间某个类型的主任务或备任务的数量之差是否大于预设的阈值,当大于阈值时进行任务的迁移,当不大于阈值时为负载均衡。
进一步的,所述依据负载均衡原则将所有主任务和备任务调度给各个服务器,包括:
为每个子任务分配一个组播地址,该子任务对应的主任务和备任务共用该组播地址,根据每个服务器的子任务部署情况以及负载均衡原则让服务器加入多个不同的组播地址,将每个子任务需要的数据通过不同的组播地址分发到对应的服务器上。
进一步的,所述在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址,包括:
将每个主任务和备任务运行在一个容器内部,每个容器进行完全的资源和网络隔离,并且配置独立的IP地址,在服务正常运行时,如果某个类型的服务平均负载高于设定的阈值,则自动增加服务的容器,为增加的这些容器分配不同的IP地址。
进一步的,所述在增加服务器或服务器故障离线时,依据负载均衡原则对主任务和备任务进行自动迁移,包括:
当识别到增加空闲服务器时,将任务迁移到新的节点运行,并满足负载均衡原则;所述将任务迁移到新的节点运行,包括:首先迁移备任务到空闲服务器,在备任务开始正常运行后,切换为主任务,该备任务对应的原先主任务自动降为备任务;
当识别到服务器故障离线时,将该服务器运行的主任务和备任务依据负载均衡原则迁移到其他服务器上重新启动。
一种基于容器的任务调度系统,包括:
获取模块,用于获取某个应用提交的子任务,确定子任务的个数,获取用于承载任务运行的服务器,确定服务器个数;为每个子任务部署一个主任务和一个备任务,主任务用于执行该子任务,备任务用于在主任务出现故障时转换为主任务继续执行该子任务;
均衡处理模块,用于依据负载均衡原则将所有主任务和备任务调度给各个服务器,且同一个子任务的主任务和备任务不在同一个服务器上部署;在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址。
一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述的方法中的任一方法。
一种计算设备,包括,
一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述的方法中的任一方法的指令。
本发明所达到的有益效果:
1、处理能力和服务能力高,计算任务和服务进程完全分布式并发运行;2、自动化程度高,从数据划分到数据传输过程不需要人工干预;3、可靠性高,任意任务实例或者计算节点故障都不影响任务的最终完成;4、资源使用率高,任务负载被平均的分摊到了各个节点,各个节点都为任务完成提供了计算能力;5、弹性扩展能力强,在系统运行过程中允许增删处理节点,服务扩展不需要修改端口;6、可移植性好,所有功能完全是有计算机程序实现,可运行在各种UNIX和Linux、Windows操作系统上,不需要借助任何操作系统自带的软件;综上所述,本发明具有处理能力高、自动化程度高、可靠性高、资源利用率高、弹性扩展能力强、可移植性好等特点。
附图说明
图1是本发明中分布式系统的任务初始化示意图;
图2是是本发明中分布式任务故障、恢复过程和负载均衡示意图;
图3(a)是本发明中分布式任务故障过程流程图、图3(b)是本发明中分布式任务恢复过程流程图;
图4(a)是本发明中12个组播通道分布式任务数据分发示意图;图4(b)是本发明中8个组播通道分布式任务数据分发示意图;
图5是本发明中分布式服务实例弹性扩展示意图;
图6是本发明中资源弹性扩展的示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
一种基于容器的任务调度方法,包括:获取某个应用提交的子任务,确定子任务的个数,获取用于承载任务运行的服务器(节点),确定服务器(节点)个数;为每个子任务部署一个主任务和一个备任务,主任务用于执行该子任务,备任务用于在主任务出现故障时转换为主任务继续执行该子任务;
依据负载均衡原则将所有主任务和备任务调度给各个服务器,且同一个子任务的主任务和备任务不在同一个服务器上部署;在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址;
在增加服务器或减少服务器时,依据负载均衡原则对主任务和备任务进行自动迁移
如图1所示,某个应用提交给管理程序的子任务数是12,表明应用希望共有12个任务分布式的运行在系统的所有服务器上。管理程序随之将前置数据的全集均衡地划分成12个数据子集。然后将任务进程分发到4个应用服务器,在每台服务器启动3个进程实例,使得每台服务器的处理任务是负载均衡的。
如图2所示,每个节点运行了3个主任务和3个备任务,某个时刻sca01节点的3号主任务发生故障,则任务3进入故障状态。然后sca04节点的3号备任务立刻升级为主任务。同时管理程序会在其他节点再启动一个3号备任务,保证系统每个任务均有一主一备两个实例。同时选择启动3号备任务的节点不存在3号故障任务。同时为了保证每个节点任务负载均衡,8和10号也进行了相应的迁移和状态切换,最终保持每个节点有3个备任务。
管理程序使用数据子集的编号通过一定的数学算法计算出一个唯一的通道号,使用电力系统的消息总线将数据子集发送给对应的处理进程实例。
如图3(a)和图3(b)所示,本方法讨论的任务故障处理包括主任务故障处理和备任务故障处理。如果故障任务是主任务,则将系统中的备任务切换为主任务,同时在备任务数最少的节点上启动一个备任务。如果故障任务是备任务,则直接在其它备任务数最少的节点上启动一个备任务。如果备任务启动失败,则在备任务次少的节点上启动备任务。
当任务恢复时,该任务自动变成备任务。如果该备任务已经存在2个,则在备任务数较多的节点上删除该备任务。
如图4(a)所示,总共有12个组播通道发送应用的数据,每个组播通道对应一个组播地址。每个任务配备一个组播地址,同一组播地址的主任务和备任务共用一个组播通道。图中可以看到,1号节点只需要接收1,2,3,4,7,10总共6个组播通道的数据,占总组播通道数的一半,节约了一半的网络流量。如图4(b)所示,当任务分布更加分散的时候,例如总共8个处理节点,每个节点部署一个主任务和一个备任务,则每个节点仅需要加入2个组播通道,每个节点的数据传输量仅占总和的四分之一。使得每个服务器只需要接收子任务所需的数据,减轻了网卡的流量负载。
如图5所示,自底向上分三层排列,最底层最大的长方体代表物理机处理节点,中间一层较小的长方体代表运行服务的容器,最上层的小正方体代表服务实例。我们还给服务实例赋予编号。图中箭头左侧代表初始状态,只有一个服务实例在运行。右侧代表服务负载增加后,在本机增加一个容器运行服务实例2,在第二个物理机新启动了2个容器,运行服务实例3和4。每个服务实例所在的容器都隔离了网络命名空间,同时通过配置网桥和路由,达到拥有独立IP地址的效果,这样每个服务实例可以不修改代码,继续使用原来的端口port1继续提供服务,不会造成冲突。
如图6所示,当管理程序发现一个新节点sca04加入到系统中时,首先各个节点均取出一个备任务迁移到sca04上运行,迁移完毕后sca04上出现10,11,12这三个备任务。第二步,这三个备任务在接收完数据后,切换为主任务。此时其他节点sca01-sca03分别多出10,11,12这3个主任务,它们均切换为本机的备任务。最后每个节点的备任务进行负载均衡流程处理,最终sca04新节点也运行了3个备任务。各个节点的主备任务均达到负载均衡状态。
相应的本发明还提供一种基于容器的任务调度系统,其特征在于,包括:
获取模块,用于获取某个应用提交的子任务,确定子任务的个数,获取用于承载任务运行的服务器,确定服务器个数;为每个子任务部署一个主任务和一个备任务,主任务用于执行该子任务,备任务用于在主任务出现故障时转换为主任务继续执行该子任务;
均衡处理模块,用于依据负载均衡原则将所有主任务和备任务调度给各个服务器,且同一个子任务的主任务和备任务不在同一个服务器上部署;在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址。
相应的本发明还提供一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述的方法中的任一方法。
相应的本发明还提供一种计算设备,其特征在于,包括,
一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述的方法中的任一方法的指令。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种基于容器的任务调度方法,其特征在于,包括:
获取某个应用提交的子任务,确定子任务的个数,获取用于承载任务运行的服务器,确定服务器个数;为每个子任务部署一个主任务和一个备任务,主任务用于执行该子任务,备任务用于在主任务出现故障时转换为主任务继续执行该子任务;
依据负载均衡原则将所有主任务和备任务调度给各个服务器,且同一个子任务的主任务和备任务不在同一个服务器上部署;在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址。
2.根据权利要求1所述的基于容器的任务调度方法,其特征在于,还包括:在增加服务器或服务器故障离线时,依据负载均衡原则对主任务和备任务进行自动迁移。
3.根据权利要求1所述的基于容器的任务调度方法,其特征在于,所述子任务为计算任务或服务进程。
4.根据权利要求1所述的基于容器的任务调度方法,其特征在于,所述负载均衡原则为:
判断各个服务器之间某个类型的主任务或备任务的数量之差是否大于预设的阈值,当大于阈值时进行任务的迁移,当不大于阈值时为负载均衡。
5.根据权利要求1所述的基于容器的任务调度方法,其特征在于,所述依据负载均衡原则将所有主任务和备任务调度给各个服务器,包括:
为每个子任务分配一个组播地址,该子任务对应的主任务和备任务共用该组播地址,根据每个服务器的子任务部署情况以及负载均衡原则让服务器加入多个不同的组播地址,将每个子任务需要的数据通过不同的组播地址分发到对应的服务器上。
6.根据权利要求1所述的基于容器的任务调度方法,其特征在于,所述在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址,包括:
将每个主任务和备任务运行在一个容器内部,每个容器进行完全的资源和网络隔离,并且配置独立的IP地址,在服务正常运行时,如果某个类型的服务平均负载高于设定的阈值,则自动增加服务的容器,为增加的这些容器分配不同的IP地址。
7.根据权利要求2所述的基于容器的任务调度方法,其特征在于,所述在增加服务器或服务器故障离线时,依据负载均衡原则对主任务和备任务进行自动迁移,包括:
当识别到增加空闲服务器时,将任务迁移到新的节点运行,并满足负载均衡原则;所述将任务迁移到新的节点运行,包括:首先迁移备任务到空闲服务器,在备任务开始正常运行后,切换为主任务,该备任务对应的原先主任务自动降为备任务;
当识别到服务器故障离线时,将该服务器运行的主任务和备任务依据负载均衡原则迁移到其他服务器上重新启动。
8.一种基于容器的任务调度系统,其特征在于,包括:
获取模块,用于获取某个应用提交的子任务,确定子任务的个数,获取用于承载任务运行的服务器,确定服务器个数;为每个子任务部署一个主任务和一个备任务,主任务用于执行该子任务,备任务用于在主任务出现故障时转换为主任务继续执行该子任务;
均衡处理模块,用于依据负载均衡原则将所有主任务和备任务调度给各个服务器,且同一个子任务的主任务和备任务不在同一个服务器上部署;在服务器中为每个主任务和备任务增加一个容器,用于运行任务,每个容器拥有独立IP地址。
9.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求1至7所述的方法中的任一方法。
10.一种计算设备,其特征在于,包括,
一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1至7所述的方法中的任一方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210745984.0A CN115202839A (zh) | 2022-06-29 | 2022-06-29 | 一种基于容器的任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210745984.0A CN115202839A (zh) | 2022-06-29 | 2022-06-29 | 一种基于容器的任务调度方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115202839A true CN115202839A (zh) | 2022-10-18 |
Family
ID=83578099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210745984.0A Pending CN115202839A (zh) | 2022-06-29 | 2022-06-29 | 一种基于容器的任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115202839A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116155957A (zh) * | 2023-04-19 | 2023-05-23 | 华芯(嘉兴)智能装备有限公司 | 一种分拣机控制程序的运行方法、装置和电子设备 |
-
2022
- 2022-06-29 CN CN202210745984.0A patent/CN115202839A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116155957A (zh) * | 2023-04-19 | 2023-05-23 | 华芯(嘉兴)智能装备有限公司 | 一种分拣机控制程序的运行方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11855904B2 (en) | Automated migration of compute instances to isolated virtual networks | |
EP2652594B1 (en) | Multi-tenant, high-density container service for hosting stateful and stateless middleware components | |
US11169840B2 (en) | High availability for virtual network functions | |
CN108462656B (zh) | 基于容器的业务融合部署的资源调度方法及装置 | |
US10911529B2 (en) | Independent groups of virtual network function components | |
CN103200036B (zh) | 一种电力系统云计算平台的自动化配置方法 | |
CN111399970B (zh) | 一种预留资源管理方法、装置和存储介质 | |
WO2018014933A1 (en) | Allocating vnfc instances with anti affinity rule to hosts | |
US11755432B2 (en) | Reserving failover capacity in cloud computing | |
CN106572137B (zh) | 一种分布式服务资源管理方法和装置 | |
CN111857951A (zh) | 容器化部署平台及部署方法 | |
US10880367B2 (en) | Load balancing stretched clusters in a distributed network | |
US11301299B2 (en) | Data based scheduling for horizontally scalable clusters | |
CN115202839A (zh) | 一种基于容器的任务调度方法及系统 | |
CN111835685A (zh) | 一种监控Nginx网络隔离空间的运行状态的方法和服务器 | |
US11385972B2 (en) | Virtual-machine-specific failover protection | |
US11531572B2 (en) | Cross-cluster host reassignment | |
CN105208111A (zh) | 一种信息处理的方法及物理机 | |
US11226829B2 (en) | Trigger correlation for dynamic system reconfiguration | |
Zhu et al. | Load balancing model under multiple failures with workload-dependent failure probability | |
CN114338670B (zh) | 一种边缘云平台和具有其的网联交通三级云控平台 | |
CN107562510B (zh) | 一种应用实例的管理方法及管理设备 | |
KR102231359B1 (ko) | 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 프로세스 스케줄링 방법 | |
CN112583653A (zh) | 压力测试方法、装置及计算机存储介质 | |
WO2020163117A1 (en) | Hosting virtual machines on a secondary storage system |
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 |