CN109426550A - 资源的调度方法及设备 - Google Patents

资源的调度方法及设备 Download PDF

Info

Publication number
CN109426550A
CN109426550A CN201710727925.XA CN201710727925A CN109426550A CN 109426550 A CN109426550 A CN 109426550A CN 201710727925 A CN201710727925 A CN 201710727925A CN 109426550 A CN109426550 A CN 109426550A
Authority
CN
China
Prior art keywords
resource
checkpoint
program
carried out
operating status
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.)
Granted
Application number
CN201710727925.XA
Other languages
English (en)
Other versions
CN109426550B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710727925.XA priority Critical patent/CN109426550B/zh
Publication of CN109426550A publication Critical patent/CN109426550A/zh
Application granted granted Critical
Publication of CN109426550B publication Critical patent/CN109426550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/461Saving or restoring of program or task context
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0607Regulated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0611Request for offers or quotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0621Item configuration or customization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Abstract

本发明的目的是提供一种资源的调度方法及设备,通过恢复未执行完成的程序的运行状态,将这些未执行完成的程序迁移到其他可用资源上继续执行,避免从头开始重新执行整个程序。另外,通过监测资源的服务价格,尤其是监测竞价型实例资源的服务价格,避免从头开始重新执行整个程序的同时,可以让用户的不同类型的程序均可以使用竞价型实例,将云厂商竞价型实例因中途销毁带来的影响降低到最小,充分利用竞价型实例低成本,高并发优点,从而达到以比自建机房、包年包月、按需定价方式更低的成本拿到更多的资源提高用户系统的并发度的目的,也可以被用来实现在线离线业务混跑等场景,最终给企业带来巨大的成本和规模优势。

Description

资源的调度方法及设备
技术领域
本发明涉及计算机领域,尤其涉及一种资源的调度方法及设备。
背景技术
云计算最近几年发展迅速,相对企业独立维护本数据中心有着高可用性低成本,弹性,按需扩展的优势。
为了进一步帮用户节省运营成本,云厂商相继推出了竞价型实例,竞价型实例的价格会上下浮动,如果用户的出价不低于实例的价格,实例会被分配给用户运行,与按需定价相比,使用竞价型实例最高可以将运营成本降低50%~90%,可以帮用户在相同预算的情况下,将计算容量提高2-10倍。
但是,一方面当用户使用的实例规格的竞价超过用户的出价时,运行中的实例可能会被自动终止,这样会造成用户已经运行较长时间的任务被中断掉,造成时间和经济成本上不必要的浪费;另一方面,当竞价型实例价格回落到比预期低更多的实例时,用户目前没有办法将这些已经在运行中的部分任务迁移到这些成本更为低廉的实例上去。
目前各家云厂商按照计价策略提供了包年包月、按需计价、竞价型等类型的云主机,竞价型云主机在保证与前两种类型具有相同可靠性、安全性、高性能、可控制性和弹性的同时,价格更低。但是竞价型实例在运行过程中却存在由于价格波动造成云主机被销毁的风险,间接导致用户服务的可用性或服务质量降低,造成时间和经济成本上的损失。
目前用户可以通过云厂商提供的以下三种功能来更好的追踪和控制竞价实例的生命周期:
1.针对可拆分或可中断的任务,云厂商提供了终止通知的机制,一般在终止实例之前2-5分钟会告知用户,用户收到通知后可以在这段时间内进行上传已完成结果,上传日志等操作。
2.针对无状态WEB服务器等类型的任务,用户可以在创建竞价实例时设置为持久性请求,云主机销毁之前会重新发送竞价型实例申请请求,价格回落之后会重新自动创建相同规格的实例。
3.针对图像渲染、大数据分析、大规模并行计算等耗时较长而且不可中断的任务,用户创建竞价型实例时可以设置数据块持久化时间(一般为1-6小时),云厂商会保证在该时间段内实例不被释放,当然持久化时间越长,竞价型实例的价格越高。
在图像渲染、基因分析等大规模计算等领域,其任务复杂度高、计算量大造成很难拆分成更细粒度的任务;而且这些任务在运行时涉及到不同厂商的插件和软件有成百上千种,无法保证所有的软件均支持中断和恢复操作,已经完成的计算过程无法保存;另外这种类型的任务一般耗时从半小时到几天不等,竞价型实例提供的数据块持久化选项(一般为1-6小时)无法满足这部分的需求。所以一旦因为竞价型实例销毁而中断运行就需要重新运行整个流程,进行重试的时间和经济成本很高。
现有的方案一般是事先统计每种类型任务的大致耗时情况,然后手动将这些任务中相对耗时较短的任务提交到竞价型实例上运行,将耗时较长的任务提交到包年包月或者按需定价的实例上运行,从而达到节省部分成本、提高系统并发度的目的。
云厂商将闲置资源以竞价型实例的形式开放给用户,相对包年包月、按需计价的实例类型能节省50%-90%的成本,在资源充足的情况下能够大大提高用户系统的并发度。
但是在某些计算量大、耗时长的大型任务的场景下,竞价型实例因价格浮动而销毁时由于用户没有合适的机制将已完成的部分任务进度保存下来以供将来恢复执行,需要在资源可用之后重新执行整个任务流程,这部分重复执行的任务进度会加大任务的执行时间,对整个社会也是一种资源的浪费。
发明内容
本发明的一个目的是提供一种资源的调度方法及设备,能够避免资源的服务终止后,需要从头开始重新执行整个未执行完成的程序。
根据本发明的一个方面,提供了一种资源的调度方法,该方法包括:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
进一步的,上述方法中,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存,包括:
将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内。
进一步的,上述方法中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
进一步的,上述方法中,将所述检查点恢复到其它可用资源上,包括:
监测资源的服务价格,当某一资源的服务价格回落到一预设阈值范围内时,将所述检查点恢复到该资源上。
进一步的,上述方法中,在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存,包括:
在资源的服务终止前,利用所述资源上的容器的C/R机制将运行于所述容器内的未执行完成的程序的容器的运行状态作为检查点保存。
进一步的,上述方法中,将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序,包括:
将所述检查点恢复到其它可用资源上的容器内;
所述其它可用资源的容器基于所述C/R机制,根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种调度器端的资源的调度方法,该方法包括:
根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
从所述服务待终止的资源或其代理端接收对应于所述运行状态保存请求的检查点信息;
向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
进一步的,上述方法中,所述检查点信息,在所述代理端基于所述运行状态保存请求,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内后,从所述服务待终止的资源或其代理端接收。
进一步的,上述方法中,所述检查点信息包括所述检查点对应的检查点路径和检查点名称。
进一步的,上述方法中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
进一步的,上述方法中,向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知,包括:
监测资源的服务价格,当某一资源的服务价格回落到一预设阈值范围内时,向该资源对应的代理端发送所述未执行完成的程序的迁移执行通知。
根据本申请的另一面,还提供一种服务待终止的资源的代理端的资源的调度方法,该方法包括:
从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
进一步的,上述方法中,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息,包括:
将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内后,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
进一步的,上述方法中,所述检查点信息包括所述检查点对应的检查点路径和检查点名称。
进一步的,上述方法中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
进一步的,上述方法中,基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存至所述共享存储空间内,包括:
基于所述运行状态保存请求,利用所述服务待终止的资源上的容器的C/R机制将运行于所述容器内的未执行完成的程序的容器的运行状态作为检查点保存至一共享存储空间内。
根据本申请的另一面,还提供一种可用资源的代理端的资源的调度方法,所述方法包括:
从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
进一步的,上述方法中,所述检查点信息包括所述检查点对应的检查点路径和检查点名称。
进一步的,上述方法中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
进一步的,上述方法中,将所述检查点恢复到可用资源上,包括:
将所述检查点恢复到所述可用资源上的容器内;
控制所述可用资源的容器基于所述C/R机制,根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种资源的调度设备,该设备包括:
保存装置,用于在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内;
恢复装置,用于将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种调度器,该调度器包括:
请求装置,用于根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
接收装置,用于从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
通知装置,用于向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
根据本申请的另一面,还提供一种服务待终止的资源的代理端,该代理端包括:
接收请求装置,用于从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
保存装置,用于基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
根据本申请的另一面,还提供一种可用资源的代理端,该代理端包括:
接收通知装置,用于从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
恢复装置,用于基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制装置,用于控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种计算机设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种计算机设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
根据本申请的另一面,还提供一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
根据本申请的另一面,还提供一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
本申请通过恢复未执行完成的程序的运行状态,将这些未执行完成的程序迁移到其他可用资源上继续执行,避免从头开始重新执行整个程序。
另外,通过监测资源的服务价格,尤其是监测竞价型实例资源的服务价格,避免从头开始重新执行整个程序的同时,可以让用户的不同类型的程序均可以使用竞价型实例,将云厂商竞价型实例因中途销毁带来的影响降低到最小,充分利用竞价型实例低成本,高并发优点,从而达到以比自建机房、包年包月、按需定价方式更低的成本拿到更多的资源提高用户系统的并发度的目的,也可以被用来实现在线离线业务混跑等场景,最终给企业带来巨大的成本和规模优势。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的一种资源的调度方法的流程图;
图2示出根据本发明另一个方面的资源的调度系统图;
图3示出根据本发明另一个方面的调度器端的资源的调度方法的流程图;
图4示出根据本发明另一个方面的服务待终止的资源的代理端的资源的调度方法的流程图;
图5示出根据本发明另一个方面的可用资源的代理端的资源的调度方法的流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请提供一种资源的调度方法,该方法包括:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存;
在此,所述资源既可以是虚拟机,也可以是物理机,所有资源可以形成资源池,资源池的来源可以是云厂商提供的竞价型实例以及用户或其他的外部闲置资源;
程序可以是进程,也可以是支持checkpoint/recovery机制的容器技术的程序,所述程序可以是一用户程序;
所述程序的运行状态包括但不限于程序的输入、输出、中间文件;具体的,程序的运行状态可以包括进程在内存中的表现,打开的文件以及其他状态等;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
在此,可以选择立即将程序迁移到现有空闲资源上去,也可以选择等待拥有充足资源且价格合理之后在其他资源如竞价实例上恢复之前保存的任务;
本实施例通过恢复未执行完成的程序的运行状态,将这些未执行完成的程序迁移到其他可用资源上继续执行,避免从头开始重新执行整个程序。
如图1所示,本申请提供一种资源的调度方法,该方法包括:
步骤S11,在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内;
在此,所述共享存储空间可以是NAS(Network Attached Storage:网络附属存储)系统,分布式文件系统、各云厂商提供的对象存储服务、云存储服务、甚至半结构化、结构化数据存储服务乃至关系数据库等,共享存储空间包括但不限于挂载的云盘、用户搭建的NAS、甚至是通过ossfs等工具挂载的对象存储;
步骤S12,从所述共享存储空间将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
在此,本实施例进一步通过将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内,便于后续访问所述共享存储空间,从所述共享存储空间将所述检查点恢复到其它可用资源上。
本申请的资源的调度方法一实施例中,本申请提供一种资源的调度方法,该方法包括:
步骤S111,在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一本地存储空间;
步骤S112,当该资源再次可用时,可以从本地存储空间读取检查点,根据所述检查点继续运行所述未执行完成的程序。
本申请的资源的调度方法一实施例中,本申请提供一种资源的调度方法,该方法包括:
步骤S121,在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一本地存储空间;
步骤S122,从所述本地存储空间读取所述检查点,并将所述检查点发送到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
本申请的资源的调度方法一实施例中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
本申请的资源的调度方法一实施例中,将所述检查点恢复到其它可用资源上,包括:
监测资源的服务价格,当某一资源的服务价格回落到一预设阈值范围内时,将所述检查点恢复到该资源上。
在此,本实施例通过监测资源的服务价格,尤其是监测竞价型实例资源的服务价格,避免从头开始重新执行整个程序的同时,可以让用户的不同类型的程序均可以使用竞价型实例,将云厂商竞价型实例因中途销毁带来的影响降低到最小,充分利用竞价型实例低成本,高并发优点,从而达到以比自建机房、包年包月、按需定价方式更低的成本拿到更多的资源提高用户系统的并发度的目的,也可以被用来实现在线离线业务混跑等场景,最终给企业带来巨大的成本和规模优势。
具体的,监测资源的服务价格可以通过用户自己轮询资源的服务价格或由云厂商提供的某种资源的服务价格的通知机制实现。
本申请的资源的调度方法一实施例中,在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存内,包括:
在资源的服务终止前,利用所述资源上的容器的C/R机制将运行于所述容器内的未执行完成的程序的容器的运行状态作为检查点保存。
另外,所述检查点保可以保存至一共享存储空间内。
具体的,例如以Docker作为例子,可以让程序在容器中运行,程序的输入、输出、中间文件均存储在某种类型的共享存储上(如挂载的云盘、用户搭建的NAS、甚至是通过ossfs等工具挂载的对象存储),用户在收到资源的服务终止通知后,可以利用容器提供的checkpoint/recovery(C/R)机制将用户容器的运行状态转成(dump)一系列的文件和目录并保存到共享存储中指定的文件路径(CheckpointPath/Checkpoint-dir)里,必要时可以选择提交(commit)容器的镜像到仓库中,称这些文件和目录为checkpoint(检查点),每个检查点对应有检查点名称(CheckpointName)和检查点路径(CheckpointPath/Checkpoint-dir),特定版本docker下可以执行如下命令创建checkpoint:
docker checkpoint create--checkpoint-dir=/task1/checkpoint task1checkpoint1
其中,/task1/checkpoint是位于共享存储上的目录,task1(容器1)是容器名称,checkpoint1为检查点名称(CheckpointName)。
本实施例配合容器技术提供的C/R技术在不影响程序主要逻辑的前提下可靠保存因资源中途终止服务而被中断的用户任务。
本申请的资源的调度方法一实施例中,将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序,包括:
将所述检查点恢复到其它可用资源上的容器内;
所述其它可用资源的容器基于所述C/R机制,根据所述检查点继续运行所述未执行完成的程序。
具体的,例如特定版本docker下可以通过执行如下命令恢复之前暂停的容器并继续执行程序:
其中,docker create语句是创建新的实例上的新的容器task1,如在图2中的创建新的实例2(launch instance2),image-task1是容器task1镜像,phthon–u/task1/run.py是容器task1的运行环境;
docker start语句是从共享存储指定的路径(CheckpointPath/checkpoint-dir)的目录的文件里恢复出容器task1的运行状态至新的容器task1继续运行,以继续所述未执行完成的程序的执行,如图2中的恢复出容器1(dispatch task1)。
本申请一个实施例的系统实现如图2所示,可以由以下部分组成:
1.调度器(task scheduler):负责申请管理资源,调度任务到可用的节点上并集中管理任务的状态;
2.代理(agent):运行在云主机的实例中,负责与调度器通信并管理该实例上所有用户任务的生命周期;
3.共享存储空间(shared storage):存储程序的输入输出数据,存储未执行完成的程序的运行状态对应的检查点(checkpoint)数据,对多资源如实例同时可见或者可以被挂载到多资源如实例上去;
4.容器(Container):可以是进程、Docker容器以及其他支持C/R机制的容器类型,主要用于运行用户的程序。
5.竞价资源池(spot instances pool):云厂商提供的竞价型实例资源池,供用户申请资源并通知。
图2中,调度器(task scheduler)从竞价资源池中申请资源并将任务调度到实例1(instance1)中,代理端1(agent1)负责将程序在其容器中执行起来,如果程序执行过程中对应的竞价型实例(instance1)没有被终止,agent与task scheduler通信上报任务完成结果。若执行任务期间,task scheduler通过轮询或被动通知收到实例1(instance1)的终止通知,task scheduler向agent1推送需要保存程序运行状态的请求,agent1将请求转换为容器支持的C/R命令,以试图将运行中的容器的运行状态转换(dump)成检查点(checkpoint)文件储存到shared storage中,必要情况下可以将容器的镜像提交(commit)到外部仓库中,agent1保存成功之后向task scheduler汇报检查点信息(checkpointinfo)以供稍后恢复执行,agent1如果保存失败或来不及保存全部运行状态信息,则可不做任何操作。
针对重要和紧急的任务,task scheduler可以立即将被中断的程序调度到其他空闲的实例如instance2上去运行,instance2对应的agent2检查到task scheduler的任务信息中的检查点信息(checkpoint info)后通过容器的C/R机制将之前保存在sharedstorage中的checkpoint内容恢复到新的容器中继续执行之前被中断的程序,如果没有检查点信息,agent2可以试图重新执行整个任务。对于优先级不高和不紧急的任务,taskscheduler可以等待竞价型实例价格回落到预期的价格之后,再重新调度这些被中断的程序到其他空闲的实例如instance2上去继续执行。
如图2和3所示,根据本申请的另一面,还提供一种调度器(task scheduler)端的资源的调度方法,该方法包括:
步骤S21,根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
在此,所述资源既可以是虚拟机,也可以是物理机,所有资源可以形成资源池,资源池的来源可以是云厂商提供的竞价型实例以及用户或其他的外部闲置资源;
程序可以是进程,也可以是支持checkpoint/recovery机制的容器技术的程序;
所述程序的运行状态包括但不限于程序的输入、输出、中间文件;具体的,程序的运行状态可以包括进程在内存中的表现,打开的文件以及其他状态等;
步骤S22,从所述服务待终止的资源(instance1)或该服务待终止的资源的代理端(agent1)接收一检查点信息,其中,所述检查点信息,可以在所述代理端基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存如保存至一共享存储空间(shared storage)内后,由所述服务待终止的资源(instance1)或该服务待终止的资源的代理端(agent1)发送;
步骤S23,向其它可用资源(instance2)对应的代理端(agent2)发送所述未执行完成的程序的迁移执行通知和检查点信息。
具体的,如图2所示,task scheduler从竞价资源池中申请资源并将任务调度到实例1(instance1)中,agent1负责将程序在其容器中执行起来,如果程序执行过程中对应的竞价型实例(instance1)没有被终止,agent1与task scheduler通信上报任务完成结果。若执行任务期间,task scheduler通过轮询或被动通知收到实例1(instance1)的终止通知,task scheduler向agent1推送需要保存程序运行状态的请求,agent1将请求转换为容器支持的C/R命令,以试图将运行中的容器状态转换(dump)成checkpoint文件储存到sharedstorage中,必要情况下可以将容器的镜像提交(commit)到外部仓库中,agent1保存成功之后向task scheduler汇报检查点信息或通知实例1(instance1)向task scheduler汇报检查点信息,以供稍后恢复执行,agent1如果保存失败或来不及保存全部运行状态信息,可以不做任何操作。
针对重要和紧急的任务,task scheduler可以立即将被中断的程序调度到其他空闲的实例如instance2上去运行。
所述共享存储空间可以是NAS系统,分布式文件系统、各云厂商提供的对象存储服务、云存储服务、甚至半结构化、结构化数据存储服务乃至关系数据库等,共享存储空间包括但不限于挂载的云盘、用户搭建的NAS、甚至是通过ossfs等工具挂载的对象存储。
另外,步骤S23中,向其它可用资源(instance2)对应的代理端(agent2)发送所述未执行完成的程序的迁移执行通知和检查点信息,迁移执行通知和检查点信息可以同时发,也可以先后发,例如在某一其它可用资源接收迁移执行通知,同意执行迁移后,再接收检查点信息。
本实施例通过保存检查点信息即未执行完成的程序的运行状态,供后续通过恢复检查点信息,将这些未执行完成的程序迁移到其他可用资源上继续执行,避免从头开始重新执行整个程序。
本申请的调度器(task scheduler)端的资源的调度方法以实施例中,所述检查点信息包括所述检查点对应的检查点路径(CheckpointPath)和检查点名称(CheckpointName)。
在此,后续可以通过检查点路径找到对应检查点名称的检查点进行恢复。
本申请的调度器(task scheduler)端的资源的调度方法以实施例中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
本申请的调度器(task scheduler)端的资源的调度方法以实施例中,步骤S23,向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知,包括:
监测资源的服务价格,当某一资源的服务价格回落到一预设阈值范围内时,向该资源对应的代理端发送所述未执行完成的程序的迁移执行通知。
在此,对于优先级不高和不紧急的任务,task scheduler可以等待竞价型实例价格回落到预期的价格之后再重新调度这些被中断的程序到其他空闲的实例如instance2上去继续执行。
具体的,监测资源的服务价格可以通过用户自己轮询资源的服务价格或由云厂商提供的某种资源的服务价格的通知机制实现。
本实施例通过监测资源的服务价格,尤其是监测竞价型实例资源的服务价格,避免从头开始重新执行整个程序的同时,可以让用户的不同类型的程序均可以使用竞价型实例,将云厂商竞价型实例因中途销毁带来的影响降低到最小,充分利用竞价型实例低成本,高并发优点,从而达到以比自建机房、包年包月、按需定价方式更低的成本拿到更多的资源提高用户系统的并发度的目的,也可以被用来实现在线离线业务混跑等场景,最终给企业带来巨大的成本和规模优势。
如图2和4所示,根据本申请的另一面,还提供一种服务待终止的资源的代理端的资源的调度方法,该方法包括:
步骤S31,从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
步骤S32,基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存如保存至一共享存储空间内,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
具体的,如图2所示,task scheduler从竞价资源池中申请资源并将任务调度到实例1(instance1)中,agent1负责将程序在其容器中执行起来,如果程序执行过程中对应的竞价型实例(instance1)没有被终止,agent与task scheduler通信上报任务完成结果。若执行任务期间,task scheduler通过轮询或被动通知收到实例1(instance1)的终止通知,task scheduler向agent1推送需要保存程序运行状态的请求,agent1将请求转换为容器支持的C/R命令,以试图将运行中的容器状态转换(dump)成checkpoint文件储存到sharedstorage中,必要情况下可以将容器的镜像提交(commit)到外部仓库中,agent1保存成功之后向task scheduler汇报检查点信息或通知实例1(instance1)向task scheduler汇报检查点信息,以供稍后恢复执行,agent1如果保存失败或来不及保存全部运行状态信息,则可以不做任何操作。
本实施例通过保存检查点信息即未执行完成的程序的运行状态,供后续通过恢复检查点信息,将这些未执行完成的程序迁移到其他可用资源上继续执行,避免从头开始重新执行整个程序。
本申请的服务待终止的资源的代理端的资源的调度方法一实施例中,所述检查点信息包括所述检查点对应的检查点路径(CheckpointPath)和检查点名称(CheckpointName)。
在此,后续可以通过检查点路径找到对应检查点名称的检查点进行恢复。
本申请的服务待终止的资源的代理端的资源的调度方法一实施例中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
本申请的服务待终止的资源的代理端的资源的调度方法一实施例中,基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存如可以保存至一共享存储空间内,包括:
基于所述运行状态保存请求,利用所述服务待终止的资源上的容器的C/R机制将运行于所述容器内的未执行完成的程序的容器的运行状态作为检查点保存如可以保存至一共享存储空间内。
具体的,例如以Docker作为例子,可以让程序在容器中运行,程序的输入、输出、中间文件均存储在某种类型的共享存储上(如挂载的云盘、用户搭建的NAS、甚至是通过ossfs等工具挂载的对象存储),用户在收到资源的服务终止通知后,可以利用容器提供的checkpoint/recovery(C/R)机制将用户容器的运行状态转成(dump)一系列的文件和目录并保存到共享存储中指定的文件路径(CheckpointPath/Checkpoint-dir)里,必要时可以选择提交(commit)容器的镜像到仓库中,可以称这些文件和目录为checkpoint(检查点),每个检查点对应有检查点名称(CheckpointName)和检查点路径(CheckpointPath/Checkpoint-dir)。
本实施例配合容器技术提供的C/R技术在不影响程序主要逻辑的前提下可靠保存因资源中途终止服务而被中断的用户任务。
如图2和5所示,本申请还提供一种可用资源的代理端的资源的调度方法,包括:
步骤S41,从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
步骤S42,基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
步骤S43,控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
具体的,如图2所示,task scheduler可以将被中断的程序调度到其他空闲的实例如instance2上去运行,instance2对应的agent2检查到taskscheduler的任务信息中的checkpoint信息即检查点信息后通过容器的C/R机制将之前保存在shared storage中的checkpoint内容恢复到新的容器中继续执行之前被中断的程序。
本实施例通过恢复检查点信息,将这些未执行完成的程序迁移到其他可用资源上继续执行,避免从头开始重新执行整个程序。
本申请的可用资源的代理端的资源的调度方法一实施例中,所述检查点信息包括所述检查点对应的检查点路径(CheckpointPath)和检查点名称(CheckpointName)。
在此,后续可以通过检查点路径找到对应检查点名称的检查点进行恢复。
本申请的可用资源的代理端的资源的调度方法一实施例中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
本申请的可用资源的代理端的资源的调度方法一实施例中,将所述检查点恢复到可用资源上,包括:
将所述检查点恢复到所述可用资源上的容器内;
控制所述可用资源的容器基于所述C/R机制,根据所述检查点继续运行所述未执行完成的程序。
具体的,例如特定版本docker下可以通过执行如下命令恢复之前暂停的容器并继续执行程序:
其中,docker create语句是创建新的实例上的新的容器task1,如在图2中的创建新的实例2(launch instance2),image-task1是容器task1镜像,phthon–u/task1/run.py是容器task1的运行环境;
docker start语句是从共享存储指定的路径(CheckpointPath/checkpoint-dir)的目录的文件里恢复出容器task1的运行状态至新的容器task1继续运行,以继续所述未执行完成的程序的执行,如图2中的dispatch task1。
根据本申请的另一面,还提供一种资源的调度设备,该设备包括:
保存装置,用于在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存如可以保存至一共享存储空间内;
恢复装置,用于将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种调度器,该调度器包括:
请求装置,用于根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
接收装置,用于从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
通知装置,用于向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
根据本申请的另一面,还提供一种服务待终止的资源的代理端,该代理端包括:
接收请求装置,用于从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
保存装置,用于基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存如可以保存至一共享存储空间内,,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
根据本申请的另一面,还提供一种可用资源的代理端,该代理端包括:
接收通知装置,用于从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
恢复装置,用于基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制装置,用于控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存如可以保存至一共享存储空间内;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存如可以保存至所述共享存储空间内,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
根据本申请的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存如可以保存至一共享存储空间内;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
根据本申请的另一面,还提供一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
根据本申请的另一面,还提供一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存如可以保存至所述共享存储空间内,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
根据本申请的另一面,还提供一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
上述设备、调度器、代理端和计算机可读存储介质各实施例的具体内容可参见各方法实施例的对应部分,在此不再赘述。
综上所述,本申请通过恢复未执行完成的程序的运行状态,将这些未执行完成的程序迁移到其他可用资源上继续执行,避免从头开始重新执行整个程序。另外,通过监测资源的服务价格,尤其是监测竞价型实例资源的服务价格,避免从头开始重新执行整个程序的同时,可以让用户的不同类型的程序均可以使用竞价型实例,将云厂商竞价型实例因中途销毁带来的影响降低到最小,充分利用竞价型实例低成本,高并发优点,从而达到以比自建机房、包年包月、按需定价方式更低的成本拿到更多的资源提高用户系统的并发度的目的,也可以被用来实现在线离线业务混跑等场景,最终给企业带来巨大的成本和规模优势。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (32)

1.一种资源的调度方法,其中,该方法包括:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
2.根据权利要求1所述的方法,其中,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存,包括:
将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内。
3.根据权利要求1所述的方法,其中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
4.根据权利要求1所述的方法,其中,将所述检查点恢复到其它可用资源上,包括:
监测资源的服务价格,当某一资源的服务价格回落到一预设阈值范围内时,将所述检查点恢复到该资源上。
5.根据权利要求1所述的方法,其中,在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存,包括:
在资源的服务终止前,利用所述资源上的容器的C/R机制将运行于所述容器内的未执行完成的程序的容器的运行状态作为检查点保存。
6.根据权利要求5所述的方法,其中,将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序,包括:
将所述检查点恢复到其它可用资源上的容器内;
所述其它可用资源的容器基于所述C/R机制,根据所述检查点继续运行所述未执行完成的程序。
7.一种调度器端的资源的调度方法,其中,该方法包括:
根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
8.根据权利要求7所述的方法,其中,所述检查点信息,在所述代理端基于所述运行状态保存请求,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内后,从所述服务待终止的资源或其代理端接收。
9.根据权利要求7所述的方法,其中,所述检查点信息包括所述检查点对应的检查点路径和检查点名称。
10.根据权利要求7所述的方法,其中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
11.根据权利要求7所述的方法,其中,向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知,包括:
监测资源的服务价格,当某一资源的服务价格回落到一预设阈值范围内时,向该资源对应的代理端发送所述未执行完成的程序的迁移执行通知。
12.一种服务待终止的资源的代理端的资源的调度方法,其中,该方法包括:
从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
13.根据权利要求12所述的方法,其中,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息,包括:
将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存至一共享存储空间内后,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
14.根据权利要求12所述的方法,其中,所述检查点信息包括所述检查点对应的检查点路径和检查点名称。
15.根据权利要求12所述的方法,其中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
16.根据权利要求12所述的方法,其中,基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,包括:
基于所述运行状态保存请求,利用所述服务待终止的资源上的容器的C/R机制将运行于所述容器内的未执行完成的程序的容器的运行状态作为检查点保存。
17.一种可用资源的代理端的资源的调度方法,其中,所述方法包括:
从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
18.根据权利要求17所述的方法,其中,所述检查点信息包括所述检查点对应的检查点路径和检查点名称。
19.根据权利要求17所述的方法,其中,所述资源包括云厂商或用户自己创建的竞价资源、包时资源和按需计价资源中到一种或任意组合。
20.根据权利要求17所述的方法,其中,将所述检查点恢复到可用资源上,包括:
将所述检查点恢复到所述可用资源上的容器内;
控制所述可用资源的容器基于所述C/R机制,根据所述检查点继续运行所述未执行完成的程序。
21.一种资源的调度设备,其中,该设备包括:
保存装置,用于在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存;
恢复装置,用于将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
22.一种调度器,其中,该调度器包括:
请求装置,用于根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
接收装置,用于从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
通知装置,用于向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
23.一种服务待终止的资源的代理端,其中,该代理端包括:
接收请求装置,用于从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
保存装置,用于基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
24.一种可用资源的代理端,其中,该代理端包括:
接收通知装置,用于从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
恢复装置,用于基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制装置,用于控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
25.一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
26.一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
27.一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
28.一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
29.一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
在资源的服务终止前,将运行于所述资源上的未执行完成的程序的运行状态作为检查点保存;
将所述检查点恢复到其它可用资源上,所述其它可用资源根据所述检查点继续运行所述未执行完成的程序。
30.一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
根据资源的服务待终止通知,向所述资源的代理端发送所述资源上的未执行完成的程序的运行状态保存请求;
从所述服务待终止的资源或其代理端,接收对应于所述运行状态保存请求的检查点信息;
向其它可用资源对应的代理端发送所述未执行完成的程序的迁移执行通知和检查点信息。
31.一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从调度器接收所述服务待终止的资源上的未执行完成的程序的运行状态保存请求;
基于所述运行状态保存请求,将运行于所述服务待终止的资源上的未执行完成的程序的运行状态作为检查点保存,并向所述调度器或通知所述服务待终止的资源向所述调度器发送对应的检查点信息。
32.一种计算机设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从调度器接收未执行完成的程序的迁移执行通知和检查点信息;
基于所述迁移执行通知和检查点信息,将所述检查点恢复到可用资源上;
控制所述可用资源根据所述检查点继续运行所述未执行完成的程序。
CN201710727925.XA 2017-08-23 2017-08-23 资源的调度方法及设备 Active CN109426550B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710727925.XA CN109426550B (zh) 2017-08-23 2017-08-23 资源的调度方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710727925.XA CN109426550B (zh) 2017-08-23 2017-08-23 资源的调度方法及设备

Publications (2)

Publication Number Publication Date
CN109426550A true CN109426550A (zh) 2019-03-05
CN109426550B CN109426550B (zh) 2022-12-06

Family

ID=65498472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710727925.XA Active CN109426550B (zh) 2017-08-23 2017-08-23 资源的调度方法及设备

Country Status (1)

Country Link
CN (1) CN109426550B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321209A (zh) * 2019-06-28 2019-10-11 北京奇艺世纪科技有限公司 一种任务数据处理方法、装置及电子设备
CN110597609A (zh) * 2019-09-17 2019-12-20 深圳市及响科技有限公司 一种集群迁移与自动恢复方法及系统
CN111950835A (zh) * 2019-12-06 2020-11-17 中国人民解放军国防科技大学 基于竞价型实例的截止期约束工作流资源调度方法
WO2021046777A1 (zh) * 2019-09-11 2021-03-18 阿里巴巴集团控股有限公司 资源调度、申请与定价方法、设备、系统及存储介质
CN113034166A (zh) * 2019-12-24 2021-06-25 阿里巴巴集团控股有限公司 一种获取云服务的方法、装置及云管理服务器
CN113590326A (zh) * 2021-07-30 2021-11-02 北京百度网讯科技有限公司 服务资源调度方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734958B1 (en) * 2001-07-05 2010-06-08 At&T Intellectual Property Ii, L.P. Method and apparatus for a programming language having fully undoable, timed reactive instructions
CN104954483A (zh) * 2015-06-30 2015-09-30 深圳清华大学研究院 云计算平台中使用竞价节点部署分布式服务的方法
US20160321115A1 (en) * 2015-04-28 2016-11-03 Solano Labs, Inc. Cost optimization of cloud computing resources
US20160373560A1 (en) * 2015-06-19 2016-12-22 Stephen J. Wark Method of selective network buffering in checkpoint systems
CN106453557A (zh) * 2016-10-13 2017-02-22 内蒙古工业大学 一种IaaS服务中的双时间尺度用户动态竞价和资源管理算法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734958B1 (en) * 2001-07-05 2010-06-08 At&T Intellectual Property Ii, L.P. Method and apparatus for a programming language having fully undoable, timed reactive instructions
US20160321115A1 (en) * 2015-04-28 2016-11-03 Solano Labs, Inc. Cost optimization of cloud computing resources
US20160373560A1 (en) * 2015-06-19 2016-12-22 Stephen J. Wark Method of selective network buffering in checkpoint systems
CN104954483A (zh) * 2015-06-30 2015-09-30 深圳清华大学研究院 云计算平台中使用竞价节点部署分布式服务的方法
CN106453557A (zh) * 2016-10-13 2017-02-22 内蒙古工业大学 一种IaaS服务中的双时间尺度用户动态竞价和资源管理算法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SANDEEP SAURAV SINGH ET AL: "Sensor node failure detection using check point recovery algorithm", 《IEEE》 *
李庆华等: "一种面向移动计算的低代价透明检查点恢复协议(英文)", 《软件学报》 *
马子泰等: "云环境下使用竞价实例并考虑中间数据存储策略的工作流调度方法", 《计算机集成制造系统》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321209A (zh) * 2019-06-28 2019-10-11 北京奇艺世纪科技有限公司 一种任务数据处理方法、装置及电子设备
WO2021046777A1 (zh) * 2019-09-11 2021-03-18 阿里巴巴集团控股有限公司 资源调度、申请与定价方法、设备、系统及存储介质
CN110597609A (zh) * 2019-09-17 2019-12-20 深圳市及响科技有限公司 一种集群迁移与自动恢复方法及系统
CN111950835A (zh) * 2019-12-06 2020-11-17 中国人民解放军国防科技大学 基于竞价型实例的截止期约束工作流资源调度方法
CN113034166A (zh) * 2019-12-24 2021-06-25 阿里巴巴集团控股有限公司 一种获取云服务的方法、装置及云管理服务器
CN113590326A (zh) * 2021-07-30 2021-11-02 北京百度网讯科技有限公司 服务资源调度方法和装置
CN113590326B (zh) * 2021-07-30 2024-02-02 北京百度网讯科技有限公司 服务资源调度方法和装置

Also Published As

Publication number Publication date
CN109426550B (zh) 2022-12-06

Similar Documents

Publication Publication Date Title
CN109426550A (zh) 资源的调度方法及设备
US8595732B2 (en) Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme
CN108536532B (zh) 一种批量任务处理方法及系统
US8091087B2 (en) Scheduling of new job within a start time range based on calculated current load and predicted load value of the new job on media resources
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
US9262228B2 (en) Distributed workflow in loosely coupled computing
US8381219B2 (en) Monitoring performance on workload scheduling systems
CN101317153B (zh) 用于对象化工作流和管理行为的意图的系统和方法
US8171474B2 (en) System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US8966485B2 (en) Realizing jumps in an executing process instance
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
CN107657532A (zh) 一种业务流程的处理方法及系统
US20090094605A1 (en) Method, system and program products for a dynamic, hierarchical reporting framework in a network job scheduler
US20170046234A1 (en) Method and system for data recovery in a data system
CN102880503A (zh) 数据分析系统及数据分析方法
CN105630588A (zh) 一种分布式作业调度方法和系统
US11526382B2 (en) Cascading job scheduling in guests
US6618742B1 (en) Method for job impact learning
CN110611707A (zh) 一种任务调度的方法及装置
CN110740184A (zh) 基于微服务架构的交易策略测试系统
CN112114973A (zh) 一种数据处理方法及装置
CN107943567B (zh) 一种基于amqp协议的高可靠性任务调度方法和系统
CN112596871A (zh) 业务处理方法和装置
CN112825525B (zh) 用于处理事务的方法和装置
US10728323B2 (en) Method and apparatus for operating infrastructure layer in cloud computing architecture

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
GR01 Patent grant
GR01 Patent grant