本发明涉及云计算领域,尤其涉及一种调度方法及装置。
背景技术:
:云计算(英文:cloudcomputing)是基于互联网的相关服务的增加、使用和交付模式,通过互联网提供动态、易扩展、虚拟化的资源。现有的云计算领域中,已经实现了对基础设施资源的集中调度和发放,例如,可以通过虚拟化软件的调度器对虚拟机资源实现统一调度。基础设施资源以节点资源的方式存在,节点资源包括物理服务器资源、虚拟机、容器或类似的逻辑计算资源。每个节点资源上均部署应用或者中间件,应用或中间件以进程资源的方式存在,进程资源可以为数据库进程、应用的组件进程或者任何以进程方式存在运行的其他资源。对于节点资源和进程资源而言,某一资源的变化会导致另一资源的变化,也就是说,节点资源的调度和进程资源的调度存在双向联动。例如,在新增一个节点资源时,需要在新增的节点资源上部署和启动某些进程资源,以运行业务;在某个应用的进程资源发生故障,且该进程无法修复时,需要重启该进程所归属的节点资源或重新为该进程分配节点资源。但是,现有技术中,节点资源与进程资源之间的双向联动需要手动操作,无法实现云场景下资源调度的自动化需求。技术实现要素:本发明提供一种调度方法及装置,能够解决无法实现云场景下资源调度的自动化需求的问题。第一方面,提供一种调度装置,该调度装置包括第一调度器适配器、第二调度器适配器以及调度引擎,上述第一调度器适配器和上述第二调度器适配器分别与上述调度引擎连接,且上述第一调度器适配器与上述第二调度器适配器为不同类型的调度器适配器。具体的,上述第一调度器适配器,用于接收与其对应的第一调度器发送的包括已发生事件以及与已发生事件对应的对象的标识的事件通知,并向上述调度引擎发送该事件通知;上述调度引擎,用于接收上述第一调度器适配器发送的事件通知,并从策略库中获取分别与已发生事件对应的待执行调度操作以及第二调度器的标识,再向上述第二调度器适配器发送待执行调度操作、对象的标识以及第二调度器的标识,策略库存储有已发生事件、待执行调度操作与第二调度器的标识之间的对应关系,待执行调度操作与上述第二调度器适配器对应;上述第二调度器适配器,用于接收上述调度引擎发送的待执行调度操作、对象的标识以及第二调度器的标识,并根据第二调度器的标识,向第二调度器发送携带待执行调度操作和对象的标识的通知消息,以通知第二调度器根据对象的标识完成待执行调度操作。由于本发明实施例的调度引擎中包括存储有已发生事件、待执行调度操作与第二调度器的标识之间的对应关系的策略库,且待执行调度操作与第二调度器适配器对应,因此,调度引擎在接收到携带已发生事件的事件通知后,能够根据该策略库获取到与该已发生事件对应的待执行调度操作,并通知第二调度器适配器触发第二调度器完成待执行调度操作,实现了资源调度的双向联动,且无需手动操作,满足了云场景下资源调度的自动化需求。可选的,在本发明实施例的一种可能的实现方式中,上述第一调度器适配器为节点调度器适配器,上述第一调度器为节点调度器,上述第二调度器适配器为进程调度器适配器,上述第二调度器为进程调度器;或者,上述第一调度器适配器为进程调度器适配器,上述第一调度器为进程调度器,上述第二调度器适配器为节点调度器适配器,上述第二调度器为节点调度器。可以看出,第一调度器适配器可以为进程调度器适配器,也可以为节点调度器适配器,因此,本发明实施例提供的调度装置可以实现进程资源的变化引发节点资源的变化,也可以实现节点资源的变化引发进程资源的变化,实现了节点资源的调度与进程资源的调度的双向联动。可选的,在本发明实施例的另一种可能的实现方式中,上述第一调度器适配器,还用于获取第一注册信息,并向上述调度引擎发送第一注册信息,第一注册信息包括第一可执行事件、第一可执行调度操作以及第一设备的特征之间的对应关系,第一可执行事件为第一调度器待执行的事件,且第一可执行事件触发第一设备完成第一可执行调度操作,第一设备的特征包括第二调度器的标识;上述第二调度器适配器,还用于获取第二注册信息,并向上述调度引擎发送第二注册信息,第二注册信息包括第二可执行事件、第二可执行调度操作以及第二设备的特征之间的对应关系,第二可执行事件为第二调度器待执行的事件,且第二可执行事件触发第二设备完成第二可执行调度操作,第二设备的特征包括第一调度器的标识;上述调度引擎,用于接收并存储上述第一调度器适配器发送的第一注册信息,以及接收并存储上述第二调度器适配器发送的第二注册信息,以生成策略库。本发明实施例中的调度器适配器动态注册与该调度器适配器对应的调度器可实现的资源的调度,因此,本发明实施例提供的调度装置与调度器之间无需技术耦合,只需接口调用即可实现资源的动态调度。可选的,在本发明实施例的另一种可能的实现方式中,第一设备的特征还包括上述第二调度器适配器的标识,第二设备的特征还包括上述第一调度器适配器的标识。若第一设备的特征还包括第二调度器适配器的标识,第二设备的特征还包括上述第一调度器适配器的标识,则调度引擎中的策略库中存储的对应关系包括有第一调度器适配器的标识或第二调度器适配器的标识,利于调度引擎准确确定与哪个调度器适配器通信。第二方面,提供一种调度方法,该调度方法应用于如上述第一方面及其各种可能的实现方式中任意一项所述的调度装置。具体的,首先,第一调度器适配器接收与其对应的第一调度器发送的事件通知,并向调度引擎发送事件通知,事件通知包括已发生事件以及与已发生事件对应的对象的标识;然后,调度引擎从策略库中获取分别与已发生事件对应的待执行调度操作以及第二调度器的标识,并向第二调度器适配器发送待执行调度操作、对象的标识以及第二调度器的标识,策略库存储有已发生事件与待执行调度操作之间的对应关系,待执行调度操作与第二调度器适配器对应;最后,第二调度器适配器根据第二调度器的标识,向第二调度器发送携带待执行调度操作和对象的标识的通知消息,以通知第二调度器根据对象的标识完成待执行调度操作。进一步地,在本发明实施例的一种实现方式中,第一调度器适配器接收第一调度器发送的事件通知之前,第一调度适配器还获取第一注册信息,并向调度引擎发送第一注册信息,第一注册信息包括第一可执行事件、第一可执行调度操作以及第一设备的特征之间的对应关系,第一可执行事件为第一调度器待执行的事件,且第一可执行事件触发第一设备完成第一可执行调度操作,第一设备的特征包括第二调度器的标识;第二调度器适配器还获取第二注册信息,并向调度引擎发送第二注册信息,第二注册信息包括第二可执行事件、第二可执行调度操作以及第二设备的特征之间的对应关系,第二可执行事件为第二调度器待执行的事件,且第二可执行事件触发第二设备完成第二可执行调度操作,第二设备的特征包括第一调度器的标识;调度引擎还存储第一注册信息和第二注册信息,以生成策略库。进一步地,在本发明实施例的一种实现方式中,第一设备的特征还包括第二调度器适配器的标识,第二设备的特征还包括第一调度器适配器的标识。进一步地,在本发明实施例的一种实现方式中,第一调度器适配器为节点调度器适配器,第一调度器为节点调度器,第二调度器适配器为进程调度器适配器,第二调度器为进程调度器;或者,第一调度器适配器为进程调度器适配器,第一调度器为进程调度器,第二调度器适配器为节点调度器适配器,第二调度器为节点调度器。在本发明实施例中,上述调度装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本发明实施例类似,属于本发明权利要求及其等同技术的范围之内。本发明实施例第二方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。本发明实施例的这些方面或其他方面在以下的描述中会更加简明易懂。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例的一些实施例。图1为现有技术中节点资源与进程资源的结构示意图;图2为节点资源的调度影响进程资源的调度的流程示意图;图3为进程资源的调度影响节点资源的调度的流程示意图;图4为本发明实施例提供的调度系统的结构示意图;图5为本发明实施例提供的调度方法的流程示意图一;图6为本发明实施例提供的调度方法的流程示意图二;图7为本发明实施例中扩展MongoDB的结构示意图;图8为本发明实施例在扩展MongoDB中执行调度方法的流程示意图一;图9为本发明实施例在扩展MongoDB中执行调度方法的流程示意图二;图10为本发明实施例提供的调度装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述。以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明实施例。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明实施例的描述。其中,本发明实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于限定特定顺序。为了方便理解本发明实施例,首先在此介绍本发明实施例中会引入的相关要素。节点资源是指如物理服务器资源、虚拟机、容器或类似的逻辑计算资源。节点级调度是指通过虚拟化软件的调度器对节点资源的调度,包括创建、查询、启动、停止、销毁等。其中,用以实现调度节点资源的调度器称为节点调度器。进程资源是指节点资源上部署的应用或者中间件,例如数据库进程、应用的组件进程或者任何以进程方式存在运行的其他资源。进程级调度是指通过虚拟化软件的调度器对进程资源的调度,包括创建、查询、启动、停止、销毁等。其中,用以实现调度进程资源的调度器称为进程调度器。调度是指在特定的资源环境下,根据一定的资源使用规则进行资源配给、放置(英文:placement)和配置的过程。事件是指节点调度器或进程调度器完成的某一调度,例如节点调度器新建一个节点资源、进程调度器终止某一进程资源。调度操作是指事件触发的相关调度,例如,若事件为新建节点资源,则该事件触发在新建节点资源上部署和启动某些进程资源,这里,在新建节点资源上部署和启动某些进程资源为调度操作。如图1所示,现有的云计算领域中,每个节点资源上部署有至少一个进程资源,节点调度器可以统一调度节点资源,进程调度器可统一调度进程资源。节点级调度和进程级调度存在双向联动,也就是说,某一资源的变化会导致另一资源的变化。例如,结合图1,如图2所示,节点调度器新增一个节点资源时,进程调度器需要在新增的节点资源上部署和启动某些进程资源,以运行业务。结合图1,如图3所示,在某个应用的进程故障,且进程调度器无法修复时,节点调度器需要重启该进程所归属的节点资源或重新为该进程分配节点资源。现有技术中,存在节点级调度到进程级调度的单向联动,但并不存在支持进程级调度到节点级调度的联动。例如,阿帕奇(英文:ApacheHTTPServer,简称:Apache)开源的著名DCOS框架Mesos仅支持从节点级调度到进程级调度的单向联动,并不支持从进程级调度到节点级调度的反向联动。目前,节点级调度和进程级调度之间的双向联动需要手动操作才能实现,这样导致无法实现云场景下资源调度的自动化需求。为了解决现有技术中无法实现云场景下资源调度的自动化需求的问题,本发明实施例提供一种调度方法,在现有的云场景中引入了包括第一调度器适配器、第二调度器适配器和调度引擎的调度装置,且第一调度器适配器与第二调度器适配器属于不同类型,该调度引擎包括存储有事件、调度操作以及完成调度操作的设备的特征之间的对应关系的策略库,这样,调度引擎能够根据策略库获取到与某一已发生事件对应的待执行调度操作和设备的特征,进而触发该设备完成待执行调度操作。由于第一调度器适配器与第二调度器适配器属于不同类型,因此,第一调度器适配器可以为节点调度器适配器和进程调度器适配器中的其中一个,第二调度器为节点调度器适配器和进程调度器适配器中的另外一个。这样,本发明实施例提供的调度方法能够实现进程级调度和节点级调度之间的双向联动,且无需手动操作,满足了云场景下资源调度的自动化需求。本发明实施例提供的调度方法应用于调度系统。图4是本发明实施例提供的调度系统的结构示意图。参见图4,该调度系统包括调度装置40、至少一个第一调度器41以及至少一个第二调度器42。其中,调度装置40包括第一调度器适配器401、调度引擎402和第二调度器适配器403,第一调度器适配器401与第二调度器适配器403属于不同类型,每个第一调度器41均与第一调度器适配器401连接,每个第二调度器42均与第二调度器适配器403连接。第一调度器适配器401用于和与该第一调度器适配器401相连接的第一调度器41通信,还用于和与该第一调度器适配器401相连接的调度引擎402通信。第二调度器适配器403用于和与该第二调度器适配器403相连接的第二调度器42通信,还用于和与该第二调度器适配器403相连接的调度引擎102通信。调度引擎402包括接收单元4020、存储单元4021、处理单元4022以及发送单元4023。接收单元4020用于接收第一调度器适配器401或第二调度器适配器403发送的事件、调度操作以及完成调度操作的设备的特征之间的对应关系,存储单元4021用于存储接收单元4020接收到的对应关系,处理单元4022用于获取与某一已发生事件对应的调度操作,发送单元4023用于发送处理单元获取到的调度操作。存储单元4021包括策略库4024,该策略库4024包括事件、调度操作以及完成调度操作的设备的特征之间的对应关系。其中,事件可以为第一调度器41待执行的事件,也可以为第二调度器42待执行的事件,本发明实施例对此不作具体限定。策略库4024可以以表格的形式在调度引擎402中存储。示例性的,若完成调度操作的设备的特征为调度器的标识,则包括事件、调度操作以及完成调度操作的调度器的标识之间的对应关系的策略库1024的格式如表1所示。表1事件调度操作调度器的标识新建节点在新建节点上创建进程AII进程B故障重新启动节点CXX………………表1中,若事件为新建节点,则需要设备II在新建节点上创建进程A;若进程B故障,则需要设备XX触发节点C重启。需要说明的是,表1只是以表格的形式示意事件、调度操作以及完成调度操作的调度器的标识之间的对应关系在调度引擎402中的存储形式,并不是对事件、调度操作以及完成调度操作的调度器的标识之间的对应关系在调度引擎402中的存储形式的限定,当然,上述对应关系在调度引擎402中的存储形式还可以以其他的形式存储,本发明实施例对此不做限定。可选的,完成调度操作的设备的标识还可以包括调度器适配器的标识。这样,调度引擎402根据该策略库1024可以更加方便、迅速的确定出与哪一调度器适配器通信。示例性的,结合表1,若完成调度操作的设备的特征还可以包括调度器适配器的标识,则策略库1024的格式如表2所示。表2其中,本发明实施例中的调度器的标识可以为调度器的地址,还可以为其他用于唯一表示调度器的信息,本发明实施例对此不作具体限定。同理,本发明实施例中的调度器适配器的标识可以为调度器适配器的地址,还可以为其他用于唯一表示调度器适配器的信息,本发明实施例对此不作具体限定。可选的,图4中的第一调度器41为节点调度器,第二调度器42为进程调度器,相应的,第一调度器适配器401为节点调度器适配器,第二调度器适配器403为进程调度器适配器;或者,第一调度器41为进程调度器,第二调度器42为节点调度器,相应的,第一调度器适配器401为进程调度器适配器,第二调度器适配器403为节点调度器适配器。图5为本发明实施例提供的一种调度方法的流程示意图,该调度方法可以应用在图4所示的调度系统中。参见图5,该调度方法包括:S500、第一调度器向调度装置中的第一调度器适配器发送包括该第一调度器完成的已发生事件以及与已发生事件对应的对象的标识的事件通知。S501、第一调度器适配器向调度装置中的调度引擎发送事件通知。S502、调度引擎从策略库中获取分别与已发生事件对应的待执行调度操作以及第二调度器的标识。策略库存储有已发生事件、待执行调度操作与第二调度器的标识之间的对应关系,待执行调度操作与第二调度器适配器对应。S503、调度引擎向调度装置中的第二调度器适配器发送待执行调度操作、对象的标识以及第二调度器的标识。S504、第二调度器适配器向第二调度器发送携带待执行调度操作和对象的标识的通知消息,以通知第二调度器根据对象的标识完成待执行调度操作。本发明实施例中的第一调度器在完成已发生事件后,向调度装置中的第一调度器适配器发送已发生事件以及与该已发生事件对应的对象的标识,便于调度装置中的第一调度器适配器与该调度装置中的调度引擎通信,触发与该已发生事件对应的待执行调度操作的完成,即执行S500。可选的,若已发生事件与某一节点对应,则与该已发生事件对应的对象的标识为该节点的标识;若已发生事件与某一进程对应,则与该已发生事件对应的对象的标识为该进程的标识。示例性的,若第一调度器为节点调度器,该节点调度器在新建节点A后,向节点调度器适配器发送包括新建节点和新建节点的标识A的事件通知。第一调度器适配器在接收到事件通知后,会向调度引擎转发该事件通知,便于调度引擎从策略库中获取分别与事件通知中的已发生事件对应的待执行调度操作以及第二调度器的标识,即执行S501和S502。本发明实施例的调度引擎中存储有策略库,该策略库的格式可以参考上述表1或表2,此处不再对此进行详细赘述。结合上述描述可知,策略库中存储有事件、调度操作以及完成调度操作的设备的特征,本发明实施例中的已发生事件为策略库中至少一个事件中的其中一个。从上面描述可知,策略库中的调度操作为与其对应的事件触发的调度,由于进程级调度和节点级调度存在双向联动,因此,若某一事件与节点资源对应,则与该事件对应的调度操作与进程资源对应。相应的,若某一事件与进程资源对应,则与该事件对应的调度操作与节点资源对应。因此,与第一调度器完成的已发生事件对应的调度操作与第二调度器适配器对应。这样,即使策略库中完成调度操作的设备的特征不包括调度器适配器的标识,调度引擎也可确定出待执行调度操作与第二调度器适配器对应。调度引擎在获取到待执行调度操作以及第二调度器的标识后,向第二调度器适配器发送待执行调度操作、对象的标识以及第二调度器的标识,便于第二调度器适配器触发第二调度器根据对象的标识完成待执行调度操作,即执行S503和S504。由于本发明实施例的调度引擎中包括存储有已发生事件、待执行调度操作与第二调度器的标识之间的对应关系的策略库,且待执行调度操作与第二调度器适配器对应,因此,调度引擎在接收到携带已发生事件的事件通知后,能够根据该策略库获取到与该已发生事件对应的待执行调度操作,并通知第二调度器适配器触发第二调度器完成待执行调度操作,实现了资源调度的双向联动,且无需手动操作,满足了云场景下资源调度的自动化需求。进一步地,在第一调度器向第一调度器适配器发送事件通知之前,第一调度器适配器和第二调度器适配器还分别与调度引擎通信,便于调度引擎生成策略库,以实现资源调度的双向联动。具体的,结合图5,如图6所示,在S500之前,本发明实施例提供的调度方法还包括:S505、第一调度器适配器获取第一注册信息,并向调度引擎发送该第一注册信息。第一注册信息包括第一可执行事件、第一可执行调度操作以及第一设备的特征之间的对应关系,第一可执行事件为第一调度器待执行的事件,且第一可执行事件触发第一设备完成第一可执行调度操作,所述第一设备的特征包括第二调度器的标识。S506、第二调度器适配器获取第二注册信息,并向调度引擎发送第二注册信息。第二注册信息包括第二可执行事件、第二可执行调度操作以及第二设备的特征之间的对应关系,第二可执行事件为第二调度器待执行的事件,且第二可执行事件触发第二设备完成第二可执行调度操作,第二设备的特征包括第一调度器的标识。S507、调度引擎存储第一注册信息和第二注册信息,以生成策略库。其中,本发明实施例中可以先执行S505,后执行S506,也可以先执行S506,后执行S507,还可以同时执行S505和S506,本发明实施例对此不作具体限定。可以看出,本发明实施例中的第一调度器适配器动态注册与第一调度器可实现的资源的调度,第二调度器适配器也可动态注册与第二调度器可实现的资源的调度,因此,本发明实施例中的调度装置与第一调度器或者与第二调度器之间无需技术耦合,只需接口调用即可实现资源的动态调度。为了更加方便理解本发明实施例提供的调度方法,本发明实施例以在MongoDB(分布式文档存储数据库)中实现资源调度为例进行说明。本发明实施例在现有的MongoDB中添加包括节点调度器适配器、进程调度器适配器以及调度引擎的调度装置。图7是本发明实施例中扩展之后的MongoDB的结构示意图。图7中的Nova为私有云场景下虚拟机(英文:VirtualMachine,简称:VM)调度器,连接有至少一个VM,Nova对应本发明实施例中的节点调度器,每个VM对应本发明实施例中的节点资源;OpsManager是MongoDB的运维工具,可监控和运维MongoDB,并调度配置MongoDB的进程,对应本发明实施例中的进程调度器;Shard是MongoDB中的数据节点;MongoConfig是MongoDB的元数据服务,负责管理数据节点的数据分布视图,数据节点的分布信息;Master是MongoDB的主节点,负责读写数据节点的数据,但不管理数据节点的位置信息,需要通过MongoConfig读取数据节点的位置。Shard、MongoConfig以及Master对应本发明实施例中的进程资源。结合图7,如图8所示,若第一调度器为Nova,第二调度器为OpsManager,调度引擎的策略库中与新建VM对应的调度操作为部署Shard2进程,并同步Shard2进程的数据给MongoConfig,则适用于该场景中的调度方法流程为:S800、节点调度器适配器获取第一注册信息,并向调度引擎发送该第一注册信息。第一注册信息包括第一可执行事件、第一可执行调度操作以及第一设备的特征之间的对应关系,第一可执行事件为Nova待执行的事件,且第一可执行事件触发第一设备完成第一可执行调度操作,第一设备的特征包括OpsManager的标识。可选的,第一设备的特征还可以包括第二调度器适配器的标识,其中,第二调度器适配器的标识可以为包括第二调度器适配器中服务应用程序编程接口(英文:ApplicationProgrammingInterface,简称:API)的互联网协议地址(英文:InternetProtocolAddress,简称:IP)地址和端口的统一资源定位符(英文:UniformResourceLocator,简称:URL)。S801、进程调度器适配器获取第二注册信息,并向调度引擎发送第二注册信息。第二注册信息包括第二可执行事件、第二可执行调度操作以及第二设备的特征之间的对应关系,第二可执行事件为OpsManager待执行的事件,且第二可执行事件触发第二设备完成第二可执行调度操作,第二设备的特征包括Nova的标识。可选的,第二设备的特征还可以包括第一调度器适配器的标识,其中,第一调度器适配器的标识可以为包括第一调度器适配器中服务API的IP地址和端口的URL。S802、调度引擎存储第一注册信息和第二注册信息,以生成策略库。S803、Nova新建VM1。S804、Nova向给节点调度器适配器发送事件通知,用以通知节点调度器适配器Nova新建了VM1。其中,事件通知包括新建VM这一事件以及新建的VM的标识。S805、节点调度器适配器向调度引擎发送其接收到的事件通知。S806、调度引擎从策略库中获取与新建VM对应的调度操作,该调度操作为部署Shard2进程,并同步Shard2进程的数据给MongoConfig。S807、调度引擎通知进程调度器适配器触发OpsManager在VM1上部署Shard2进程,并同步Shard2进程的数据给MongoConfig,即触发进程级调度。S808、进程调度器适配器通知OpsManager在VM1上部署Shard2进程,并同步Shard2进程的数据给MongoConfig,即执行进程级调度。S809、OpsManager在VM1上部署Shard2进程,并同步Shard2进程的数据给MongoConfig。其中,OpsManager在VM1上部署Shard2进程的方法可以参考现有技术中在某一节点上部署进程的方法,本发明实施例对此不作具体限定。可以看出,采用本发明实施例提供的调度方法,Nova在新建VM后,成功触发OpsManager在新建的NM上部署Shard2进程,并同步Shard2进程的数据给MongoConfig,实现了从节点级调度到进程级调度的单向联动。结合图7,如图9所示,若第一调度器为OpsManager,第二调度器为Nova,调度引擎的策略库中与Shard2进程故障对应的调度操作为重启VM,则适用于该场景中的调度方法流程为:S900、节点调度器适配器获取第一注册信息,并向调度引擎发送该第一注册信息。S901、进程调度器适配器获取第二注册信息,并向调度引擎发送第二注册信息。S902、调度引擎存储第一注册信息和第二注册信息,以生成策略库。本发明实施例中的S900-S902与上述S800-S802相同,此处不再进行详细赘述。S903、OpsManager确定VM1中的Shard2进程出现故障。具体的,OpsManager在检测到VM1中的Shard2进程出现故障时,尝试重启该Shard2进程,若重启该Shard2进程的过程中,该Shard2进程依旧出现故障,则该OpsManager确定该Shard2进程出现故障。S904、OpsManager向进程调度器适配器发送事件通知,用以通知进程调度器适配器VM1中的Shard2进程出现故障。其中,事件通知包括VM1中的Shard进程出现故障这一事件、VM1的标识以及Shard2进程的标识。S905:进程级调度器适配器向调度引擎发送其接收到的事件通知。S906、调度引擎从策略库中获取与Shard进程出现故障对应的调度操作,该调度操作为重启VM。S907、调度引擎通知节点调度器适配器触发Nova重启VM1,即触发节点级调度。S908、节点调度器适配器通知Nova重启VM1,即执行节点级调度。S909、Nova重启VM1。可以看出,采用本发明实施例提供的调度方法,OpsManager在确定Shard2进程出现故障后,成功触发Nova重启VM1,实现了从进程级调度到节点级调度的单向联动。综上所述,采用本发明实施例提供的调度方法能够实现进程级调度与节点级调度的双向联动,且无需手动操作,满足了云场景下资源调度的自动化需求。本发明实施例提供一种调度装置,该调度装置用于执行以上调度方法中的第一调度器适配器、第二调度器适配器以及调度引擎所执行的步骤。如图10所示,该调度装置包括:第一调度器适配器100、第二调度器适配器101以及调度引擎102。第一调度器适配器100和第二调度器适配器101分别与调度引擎102连接。第一调度器适配器100用于支持调度装置执行图6中的S501和S505;第二调度器适配器用于支持调度装置执行图6中的S504和S506;调度引擎102用于支持调度装置执行图6中的S502、S503和S507。本发明实施例提供一种调度装置,该调度装置包括第一调度器适配器、第二调度器适配器以及调度引擎,且调度引擎中包括存储有已发生事件、待执行调度操作与第二调度器的标识之间的对应关系的策略库,由于策略库中待执行调度操作与第二调度器适配器对应,因此,调度引擎在接收到携带已发生事件的事件通知后,能够根据该策略库获取到与该已发生事件对应的待执行调度操作,并通知第二调度器适配器触发第二调度器完成待执行调度操作,实现了资源调度的双向联动,且无需手动操作,满足了云场景下资源调度的自动化需求。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案的全部或部分可以以软件产品的形式体现出来。该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的全部或部分步骤。存储介质例如为:通用串行总线闪存盘(英文:UniversalSerialBusflashdisk,U盘)、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求的范围之内,则本发明实施例也意图包含这些改动和变型在内。当前第1页1 2 3