掌桥专利:专业的专利平台
掌桥专利
首页

资源调用方法、装置、计算机设备和存储介质

文献发布时间:2024-04-18 19:58:30


资源调用方法、装置、计算机设备和存储介质

技术领域

本申请涉及容器技术领域,特别是涉及一种资源调用方法、装置、计算机设备和存储介质。

背景技术

在开发场景中,容器技术不需要虚拟出整个操作系统,只需要虚拟出一个小规模的环境即可,而且相比于虚拟机其启动速度更快,除了运行其中应用之外,基本不消耗额外的系统资源。而K8S,即Kubernetes,是用于自动部署、扩缩和管理容器化应用程序的开源系统,它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。

目前,以K8S为代表的云原生框架在分配计算资源给容器时,主要以CPU(CentralProcessing Unit,中央处理器)、内存或存储为主要考虑对象,若容器要使用其他计算资源,如异构计算资源,则需要依靠device plugin分配或驱动分配等方式。device plugin分配简单的将异构计算资源与特定容器绑定,降低了调用异构计算资源的灵活性,并且造成绑定的异构计算资源利用率降低,驱动分配则将异构计算资源的调度交给了底层硬件,不能确保全局异构计算资源的整体利用率。

因此,当前的分配方式,无法兼顾重要业务容器对异构计算资源的使用,以及异构计算资源的利用率。

发明内容

基于此,有必要针对上述技术问题,提供一种能够确保重要业务容器对异构计算资源的优先使用,以及异构计算资源的整体利用率的资源调用方法、装置、计算机设备和存储介质。

第一方面,本申请提供了一种资源调用方法,该方法包括:

响应于目标容器发送的初始资源调用指令,从优先分配类型和动态分配类型中确定目标容器的类型;

根据目标容器的类型,确定目标容器对应的可用计算资源;

根据可用计算资源的当前调用状态,为目标容器分配目标计算资源;

向驱动发送携带目标计算资源的资源标识的目标资源调用指令,以使驱动为目标容器调用目标计算资源。

在其中一个实施例中,从优先分配类型和动态分配类型中确定目标容器的类型,包括:

从初始资源调用指令中获取目标容器的容器标识;

根据目标容器的容器标识,从资源分配记录表中获取目标容器的资源绑定信息;

根据资源绑定信息,从优先分配类型和动态分配类型中确定目标容器的类型。

在其中一个实施例中,根据资源绑定信息,从优先分配类型和动态分配类型中确定目标容器的类型,包括:

若资源绑定信息为容器标识与资源标识之间的绑定信息,则确定目标容器的类型为优先分配类型;

若资源绑定信息为容器标识与资源数量之间的绑定信息,则确定目标容器的类型为动态分配类型。

在其中一个实施例中,根据目标容器的类型,确定目标容器对应的可用计算资源,包括:

若目标容器的类型为优先分配类型,则将目标容器所绑定的计算资源,作为目标容器对应的可用计算资源。

在其中一个实施例中,根据可用计算资源的当前调用状态,为目标容器分配目标计算资源,包括:

根据可用计算资源的资源标识,查询资源调用记录表,以获取可用计算资源的当前调用状态;

若当前调用状态为被调用,则中断可用计算资源的当前计算任务;

在可用计算资源已中断当前计算任务的情况下,将可用计算资源作为目标容器的目标计算资源。

在其中一个实施例中,根据目标容器的类型,确定目标容器对应的可用计算资源,包括:

若目标容器的类型为动态分配类型,则将计算节点中各计算资源,均作为目标容器对应的可用计算资源。

在其中一个实施例中,根据可用计算资源的当前调用状态,为目标容器分配目标计算资源,包括:

查询资源调用记录表,以获取各可用计算资源的当前调用状态;

从当前调用状态为未被调用的可用计算资源中,确定目标容器的目标计算资源。

在其中一个实施例中,根据可用计算资源的当前调用状态,为目标容器分配目标计算资源之后,该方法还包括:

将资源调用记录表中目标计算资源的当前调用状态更新为被调用。

在其中一个实施例中,响应于目标容器发送的初始资源调用指令之前,该方法还包括:

响应于控制节点发送的目标容器创建指令,根据目标容器的类型,在资源分配记录表中添加目标容器的资源绑定信息。

第二方面,本申请还提供了一种资源调用装置,该装置包括:

类型确定模块,用于响应于目标容器发送的初始资源调用指令,从优先分配类型和动态分配类型中确定目标容器的类型;

资源确定模块,用于根据目标容器的类型,确定目标容器对应的可用计算资源;

资源分配模块,用于根据可用计算资源的当前调用状态,为目标容器分配目标计算资源;

资源调用模块,用于向驱动发送携带目标计算资源的资源标识的目标资源调用指令,以使驱动为目标容器调用目标计算资源。

第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行该计算机程序时实现上述第一方面的方法的步骤。

第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面的方法的步骤。

第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面的方法的步骤。

上述资源调用方法、装置、计算机设备和存储介质,响应于目标容器发送的初始资源调用指令,从优先分配类型和动态分配类型中确定目标容器的类型,进而根据目标容器的类型,确定目标容器对应的可用计算资源,进一步的,根据可用计算资源的当前调用状态,为目标容器分配目标计算资源,从而向驱动发送携带目标计算资源的资源标识的目标资源调用指令,以使驱动为目标容器调用目标计算资源。本申请中不同类型的目标容器对应于不同范围的可用计算资源,通过从优先分配类型和动态分配类型中确定出目标容器的类型,为目标容器确定对应的可用计算资源,进而基于可用计算资源的当前调用状态,从可用计算资源中确定出更适合目标容器的目标计算资源,为目标容器分配和调用该目标计算资源,针对不同类型的目标容器,均可确保其对计算资源的使用,同时有效提升了全局计算资源的利用率。

附图说明

图1为一个实施例中资源调用方法的应用场景图;

图2为一个实施例中资源调用方法的流程示意图;

图3为一个实施例中确定目标容器的类型的流程示意图;

图4为一个实施例中确定可用计算资源的流程示意图;

图5为另一个实施例中确定可用计算资源的流程示意图;

图6为一个实施例中创建和销毁目标容器的流程示意图;

图7为另一个实施例中资源调用方法的流程示意图;

图8为一个实施例中资源调用装置的结构框图;

图9为另一个实施例中资源调用装置的结构框图;

图10为又一个实施例中资源调用装置的结构框图;

图11为再一个实施例中资源调用装置的结构框图;

图12为再一个实施例中资源调用装置的结构框图;

图13为一个实施例中实施资源调用方法的计算机设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的资源调用方法,可以应用于如图1所示的应用环境中。其中,K8S集群中包括一个控制节点101和若干个计算节点,即计算节点102至计算节点10n,这些节点均可以通过服务器来实现。K8S集群的调度管理模块,即Kubernetes Scheduler,位于控制节点101,负责集群中的容器管理和资源分配,其上记录有集群所有计算节点的资源分配情况,如各计算节点上计算资源的总量、绑定的计算资源数量和动态分配的计算资源数量等。各计算节点上设置有改进的插件Improved device plugin,该插件负责管理各计算节点上容器的计算资源的分配,其上的资源分配记录表上记录有各个容器的计算资源分配信息,资源调度记录表上记录有各个容器的计算资源调用信息。具体的,计算资源为处理特定类型任务的异构计算资源XPU(X Processing Unit,X处理器),如NPU(Neural networkProcessing Unit,神经网络处理器)、GPU(Graphics Processing Unit,图形处理器)或TPU(Tensor Processing Unit,张量处理器)等,一个计算节点会配备多个异构计算资源。

计算节点上的插件可以通过对所属计算节点的异构计算资源的SDK(SoftwareDevelopment Kit,软件开发工具包)或驱动进行扫描,发现异构计算资源的相关基础信息,如数量信息和标识信息,进而将异构计算资源的相关基础信息记录在本地,同时上报给控制节点101的调度管理模块,以使调度管理模块汇总集群中所有计算节点中异构计算资源的相关基础信息。

在K8S集群中创建带有异构计算资源的容器时,控制节点101的调度管理模块可根据全局的资源分配情况,将创建的新容器调度至其中一个计算节点,以使该计算节点的插件选择本节点可用的异构计算资源分配给新容器;在K8S集群中销毁带有异构计算资源的容器时,控制节点101的调度管理模块可发起针对容器的销毁指令,以使计算节点上的插件回收异构计算资源。

以计算节点102为例,当计算节点102上的容器调用异构计算资源时,容器会将调用信息发送至计算节点102的插件,以使插件根据容器与异构计算资源的对应关系,以及异构计算资源的运行情况,为容器分配异构计算资源,并通过SDK或驱动调用分配的异构计算资源。

目前,K8S集群中各计算节点上的容器若要使用异构计算资源,则需要开启特权模式,这种模式下容器可以调用主机所有资源,不利于资源隔离。因此,各种device plugin分配方式应运而生,现有的device plugin分配方式简单的将异构计算资源绑定给特定容器使用,不仅影响了所绑定的异构计算资源的使用率,而且不利用其他容器对异构计算资源进行调用,降低了资源调用的灵活性。此外,驱动分配的方式将异构计算资源的调度交给了底层硬件,使得K8S集群不能从全局层面更好的对异构计算资源进行调用。可见,上述资源调用的方式均不能确保异构计算资源的整体利用率。

为解决上述技术问题,在一个实施例中,如图2所示,提供了一种资源调用方法,包括以下步骤:

S201,响应于目标容器发送的初始资源调用指令,从优先分配类型和动态分配类型中确定目标容器的类型。

目标容器为控制节点在计算节点上创建的容器,目标容器基于计算节点上的异构计算资源执行其任务。因此,在目标容器需要执行其任务的情况下,计算节点响应于目标容器主动发起的初始资源调用指令,基于初始资源调用指令确定该目标容器的类型。

其中,容器的类型包括优先分配类型和动态分配类型,任务优先级较高的容器为优先分配类型的容器,如语音对话等具有较强实时性任务对应的容器,而任务优先级一般的容器为动态分配类型的容器,如文本翻译等任务对应的容器。当优先分配类型的容器和动态分配类型的容器资源调用冲突时,动态分配类型的容器需要将计算资源让渡给优先分配类型的容器。可以理解的是,容器的类型是由控制节点确定的,例如控制节点在计算节点上创建容器时指示所创建的容器的类型。

可选的,初始资源调用指令可以由目标容器发送给计算节点上的插件,也可以由计算节点上的插件主动捕获。

S202,根据目标容器的类型,确定目标容器对应的可用计算资源。

计算资源为处理特定类型任务的异构计算资源XPU,如NPU、GPU或TPU等,一个计算节点会配备多个异构计算资源。

若目标容器的类型为优先分配类型,则将目标容器所绑定的计算资源,作为目标容器对应的可用计算资源。

针对优先分配类型的目标容器而言,其对应的可用计算资源为计算节点上与该容器预先绑定的计算资源。例如,控制节点在计算节点上创建容器标识为1的容器时,指示该容器的类型为优先分配类型,进而计算节点将该容器与资源标识为0的计算资源进行绑定,在响应于容器标识为1的容器发送的初始资源调用指令的情况下,基于该容器的优先分配类型,确定该容器对应的可用计算资源为预先绑定的计算资源,即资源标识为0的计算资源。

可以理解的是,预先绑定的计算资源并非指只能被特定的容器所调用的计算资源,而是指在特定的容器需要调用计算资源时,可以优先为特定的容器调用的计算资源。每一优先分配类型的容器,均存在预先绑定的计算资源,且每一计算资源,至多只能与一个优先分配类型的容器进行绑定,这样可以保证优先分配类型的容器执行其任务时无需等待计算资源空闲再去调用,且多个优先分配类型的容器同时执行任务时,也不会因资源调用冲突导致任务时延或任务错误。

若目标容器的类型为动态分配类型,则将计算节点中各计算资源,均作为目标容器对应的可用计算资源。

针对动态分配类型的目标容器而言,其对应的可用计算资源为计算节点上的所有计算资源,动态分配类型的容器不存在预先绑定的计算资源。

需要说明的是,优先分配类型的容器对应的可用计算资源为与该容器预先绑定的计算资源,动态分配类型的容器对应的可用计算资源为全局计算资源,并不表示优先分配类型的容器的可用计算资源范围小于动态分配类型的容器的可用计算资源范围。优先分配类型的容器所执行的任务优先级更高,在预先绑定的计算资源被其他容器所占用的情况下,计算节点可排除其他容器的占用状态,使优先分配类型的容器可随时调用计算资源;动态分配类型的容器所执行的任务优先级较低,需要计算节点在全局计算资源中为其寻找空闲的计算资源,在全局计算资源均被其他容器所占用的情况下,动态分配类型的容器需等待出现空闲的计算资源才能进行调用。

S203,根据可用计算资源的当前调用状态,为目标容器分配目标计算资源。

针对优先分配类型的目标容器而言,若对应的可用计算资源的当前调用状态为未被调用,则直接将对应的可用计算资源作为目标计算资源分配给目标容器,若对应的可用计算资源的当前调用状态为被调用,则中止当前调用该可用计算资源的其他容器的任务,并将其他容器的任务迁移到其他计算资源上执行,从而将目标容器对应的可用计算资源作为目标计算资源,为目标容器分配目标计算资源。

针对动态分配类型的目标容器而言,根据可用计算资源的当前调用状态,从可用计算资源中确定当前未被调用的计算资源,进而从当前未被调用的计算资源中确定目标计算资源,为目标容器分配目标计算资源。

可选的,在计算节点的资源分配记录表中,添加为目标容器分配目标计算资源的计算资源分配信息,例如添加目标容器的容器标识与目标计算资源的资源标识之间的映射关系。

S204,向驱动发送携带目标计算资源的资源标识的目标资源调用指令,以使驱动为目标容器调用目标计算资源。

计算节点上的插件向底层驱动发送目标资源调用指令,其中,目标资源调用指令携带目标计算资源的资源标识,目标资源调用指令用于指示驱动调用指定的计算资源。

可选的,计算节点上的插件向底层SDK发送目标资源调用指令,其中,目标资源调用指令携带目标计算资源的资源标识,目标资源调用指令用于指示SDK调用指定的计算资源。

可选的,将资源调用记录表中目标计算资源的当前调用状态更新为被调用。在计算节点的调用分配记录表中,添加为目标容器调用目标计算资源的计算资源调用信息,例如添加目标容器的容器标识与目标计算资源的资源标识之间的映射关系。

需要说明的是,本实施例中可通过调用控制器来实现底层的操作,如在计算节点上的插件的指示下,根据资源分配记录表和资源调用记录表为目标容器分配目标计算资源,并记录计算节点上所有计算资源的调用情况,在调用结束后再次更新资源调用记录表。

上述方案,响应于目标容器发送的初始资源调用指令,从优先分配类型和动态分配类型中确定目标容器的类型,进而根据目标容器的类型,确定目标容器对应的可用计算资源,进一步的,根据可用计算资源的当前调用状态,为目标容器分配目标计算资源,从而向驱动发送携带目标计算资源的资源标识的目标资源调用指令,以使驱动为目标容器调用目标计算资源。本实施例通过从优先分配类型和动态分配类型中确定出目标容器的类型,为目标容器确定对应的可用计算资源,进而基于可用计算资源的当前调用状态,从可用计算资源中确定出更适合目标容器的目标计算资源,为目标容器分配和调用该目标计算资源,针对优先分配类型的目标容器,可确保其对绑定的计算资源的优先分配和调用,使得优先分配类型的目标容器可以随时执行重要任务,且不影响绑定的计算资源在剩余时间被其他容器所调用,提升了绑定的计算资源的利用率,针对动态分配类型的目标容器,从全局层面为其分配和调用空闲的计算资源,提升了全局的计算资源的利用率。

为了准确确定目标容器的类型,从而选择合理的资源分配方式,在上述实施例的基础上,在一个实施例中,可以查询计算节点上的资源分配记录表以确定目标容器的类型,如图3所示,上述S201可以包括:

S301,从初始资源调用指令中获取目标容器的容器标识。

初始资源调用指令为目标容器在需要调用计算资源以执行任务时主动发起的,初始资源调用指令中可携带目标容器的容器标识。计算节点上的插件响应于目标容器发送的初始资源调用指令,获取目标容器的容器标识。

可选的,插件通过确定捕获到的初始资源调用指令的目标容器发起方,获取该目标容器的容器标识。

S302,根据目标容器的容器标识,从资源分配记录表中获取目标容器的资源绑定信息。

以目标容器的容器标识为索引,查询本地的资源分配记录表,得到目标容器的资源绑定信息。其中,目标容器的资源绑定信息可以包括目标容器的容器标识与计算资源的相关基础信息之间的映射关系。

不同类型的容器对应于不同类型的资源绑定信息。例如,优先分配类型的容器,在资源分配记录表中的资源绑定信息包括该容器的容器标识与绑定的计算资源的资源标识之间的映射关系,目标容器的容器标识为1,其绑定的计算资源的资源标识为0,二者对应存储在资源分配记录表中。动态分配类型的容器,在资源分配记录表中的资源绑定信息包括该容器的容器标识与计算资源数量之间的映射关系,目标容器的容器标识为m,其指定的计算资源数量为3,二者对应存储在资源分配记录表中。

S303,根据资源绑定信息,从优先分配类型和动态分配类型中确定目标容器的类型。

具体的,根据资源绑定信息的类型,确定目标容器的类型。若查询到目标容器的资源绑定信息为计算资源的资源标识,则确定目标容器的类型为优先分配类型,且具有该资源标识的计算资源为目标容器的绑定的计算资源。若查询到目标容器的资源绑定信息为计算资源数量,则确定目标容器的类型为动态分配类型。

在一个可选的实施例中,若资源绑定信息为容器标识与资源标识之间的绑定信息,则确定目标容器的类型为优先分配类型;若资源绑定信息为容器标识与资源数量之间的绑定信息,则确定目标容器的类型为动态分配类型。

本实施例中,从初始资源调用指令中获取目标容器的容器标识,根据目标容器的容器标识,从资源分配记录表中获取目标容器的资源绑定信息,根据资源绑定信息,从优先分配类型和动态分配类型中确定目标容器的类型,通过资源分配记录表来判断目标容器的类型,更具客观性和可靠性,能够确保后续为目标容器分配和调用合理的目标计算资源。

为了为优先分配类型的目标容器分配合适的目标计算资源,在上述实施例的基础上,在一个实施例中,若目标容器的类型为优先分配类型,则将目标容器所绑定的计算资源,作为目标容器对应的可用计算资源,如图4所示,上述S202可以包括:

S401,根据可用计算资源的资源标识,查询资源调用记录表,以获取可用计算资源的当前调用状态。

以目标容器对应的可用计算资源的资源标识为索引,查询本地的资源调用记录表,得到可用计算资源的当前调用状态。

例如,优先分配类型的目标容器的容器标识为1,其对应的可用计算资源的资源标识为0,查询资源调用记录表中资源标识为0的计算资源的当前调用状态,从而确定目标容器的可用计算资源当前是否被其他容器所调用。

S402,在当前调用状态为被调用的情况下,中断可用计算资源的当前计算任务。

若当前调用状态为被调用,则中断可用计算资源的当前计算任务。可以理解的是,优先分配类型的目标容器,其执行的计算任务优先级更高,在目标容器的可用计算资源,即目标容器预先绑定的计算资源被其他容器占用的情况下,插件可以中断可用计算资源的当前计算任务,将其他容器的计算任务迁移至其他计算资源执行。

具体的,运行其他容器的当前计算任务的计算资源接收到中断指示的情况下,需保存当前计算任务的上下文信息,并在其他容器分配到新的计算资源时,将当前计算任务中断时的上下文信息发送至新的计算资源。

S403,在可用计算资源已中断当前计算任务的情况下,将可用计算资源作为目标容器的目标计算资源。

具体的,将可用计算资源作为目标容器的目标计算资源,并为目标容器分配目标计算资源,进一步的,更新资源调用记录表,例如,将资源调用记录表中目标计算资源的当前调用容器的容器标识更新为目标容器的容器标识。

若当前调用状态为未被调用,则直接将可用计算资源作为目标容器的目标计算资源,进一步的,更新资源调用记录表,例如,在资源调用记录表中添加目标计算资源的当前调用容器的容器标识,即目标容器的容器标识。

本实施例中,根据可用计算资源的资源标识,查询资源调用记录表,以获取可用计算资源的当前调用状态,若当前调用状态为被调用,则中断可用计算资源的当前计算任务,在可用计算资源已中断当前计算任务的情况下,将可用计算资源作为目标容器的目标计算资源,确保优先分配类型的目标容器对计算资源的优先级,保障重要任务对计算资源的使用,并且优先分配类型的目标容器所绑定的计算资源,在未被目标容器所调用的情况下,也可以被计算节点中的其他容器所调用,提升了绑定的计算资源的利用率和分配计算资源的灵活性。

为了为动态分配类型的目标容器分配合适的目标计算资源,在上述实施例的基础上,在一个实施例中,若目标容器的类型为动态分配类型,则将计算节点中各计算资源,均作为目标容器对应的可用计算资源,如图5所示,上述S202还可以包括:

S501,查询资源调用记录表,以获取各可用计算资源的当前调用状态。

当目标容器的类型为动态分配类型时,目标容器对应的可用计算资源为全局计算资源,直接查询本地的资源调用记录表以获取可用计算资源的当前调用状态,具体的,直接查询本地的资源调用记录表中,当前调用状态为未被调用的计算资源。

可选的,本地的资源调用记录表中只存储有当前调用状态为被调用的计算资源的资源调用情况,查询资源调用记录表中的资源标识,不存在于查询结果中的资源标识所对应的计算资源,即为当前调用状态为未被调用的计算资源。

S502,从当前调用状态为未被调用的可用计算资源中,确定目标容器的目标计算资源。

若存在当前调用状态为未被调用的计算资源,则从未被调用的计算资源中,确定目标容器的目标计算资源,并为目标容器分配目标计算资源。可以理解的是,如果仅存在一个当前调用状态为未被调用的计算资源,那么直接将其作为目标容器的目标计算资源,如果存在多个当前调用状态为未被调用的计算资源,那么从中确定适合目标容器的目标计算资源。

若不存在当前调用状态为未被调用的计算资源,则等待计算节点中出现未被调用的计算资源时,为目标容器分配目标计算资源。

进一步的,更新资源调用记录表,例如,在资源调用记录表中添加目标计算资源的当前调用容器的容器标识,即目标容器的容器标识。

本实施例中,查询资源调用记录表,以获取各可用计算资源的当前调用状态,从当前调用状态为未被调用的可用计算资源中,确定目标容器的目标计算资源,从整个计算节点空闲的计算资源中确定目标容器的目标计算资源,提升了全局的计算资源的利用率和分配计算资源的灵活性。

为了保证资源分配记录表的有效性,在上述实施例的基础上,在一个实施例中,可以基于控制节点发送的针对目标容器的指令,确定目标容器的类型,并更新资源分配记录表,如图6所示,上述资源调用方法还可以包括:

S601,响应于控制节点发送的目标容器创建指令,根据目标容器的类型,在资源分配记录表中添加目标容器的资源绑定信息。

在目标容器发起初始资源调用指令之前,计算节点响应于控制节点发送的目标容器创建指令,其中,目标容器创建指令用于指示在计算节点上创建目标容器。具体的,控制节点根据K8S集群的整体资源使用情况,确定合适的目标计算节点,并向目标计算节点发送目标容器创建指令。

目标容器创建指令中携带目标容器的类型,计算节点根据目标容器的类型,更新资源分配记录表。例如,目标容器的类型为优先分配类型,为目标容器分配未被其他优先分配类型的容器所绑定的计算资源,将目标容器的容器标识和绑定的计算资源的资源标识作为目标容器的资源绑定信息,对应存储在资源分配记录表中。目标容器的类型为动态分配类型,为目标容器分配计算资源数量,将目标容器的容器标识和计算资源数量作为目标容器的资源绑定信息,对应存储在资源分配记录表中。

S602,响应于控制节点发送的目标容器销毁指令,在资源分配记录表中删除目标容器的资源绑定信息。

在控制节点发起目标容器创建指令之后,同样由控制节点向计算节点发送目标容器销毁指令,计算节点响应于控制节点发送的目标容器销毁指令,其中,目标容器销毁指令用于指示在计算节点上销毁目标容器。

计算节点同步更新资源分配记录表。例如,目标容器的类型为优先分配类型,目标容器的资源绑定信息为目标容器的容器标识和绑定的计算资源的资源标识之间的映射关系,以目标容器的容器标识为索引查询资源绑定信息并删除。目标容器的类型为动态分配类型,目标容器的资源绑定信息为目标容器的容器标识和计算资源数量之间的映射关系,以目标容器的容器标识为索引查询资源绑定信息并删除。

本实施例中,响应于控制节点发送的目标容器创建指令,根据目标容器的类型,在资源分配记录表中添加目标容器的资源绑定信息,响应于控制节点发送的目标容器销毁指令,在资源分配记录表中删除目标容器的资源绑定信息,在创建目标容器的流程中添加目标容器的资源绑定信息,以及在销毁目标容器的流程中删除目标容器的资源绑定信息,实现了及时更新资源分配记录表,保障了计算节点上资源分配记录表的有效性,为资源调用方法的顺利执行提供了前置条件。

在一个实施例中,提供了一种资源调用方法的可选实例,如图7所示,具体过程如下:

S701,响应于目标容器发送的初始资源调用指令,从初始资源调用指令中获取目标容器的容器标识。

S702,根据目标容器的容器标识,从资源分配记录表中获取目标容器的资源绑定信息。

S703,判断资源绑定信息是否为容器标识与资源标识之间的绑定信息。

若是,则执行S704;若否,则执行S709。

S704,确定目标容器的类型为优先分配类型,并将目标容器所绑定的计算资源,作为目标容器对应的可用计算资源。

S705,根据可用计算资源的资源标识,查询资源调用记录表,以获取可用计算资源的当前调用状态。

S706,判断可用计算资源当前是否被调用。

若是,则执行S707;若否,则直接执行S708。

S707,中断可用计算资源的当前计算任务。

S708,将可用计算资源作为目标容器的目标计算资源。

S709,确定目标容器的类型为动态分配类型,并将计算节点中各计算资源,均作为目标容器对应的可用计算资源。

S710,查询资源调用记录表,以获取各可用计算资源的当前调用状态。

S711,从当前调用状态为未被调用的可用计算资源中,确定目标容器的目标计算资源。

S712,向驱动发送携带目标计算资源的资源标识的目标资源调用指令,以使驱动为目标容器调用目标计算资源。

S713,将资源调用记录表中目标计算资源的当前调用状态更新为被调用。

上述步骤的具体过程可以参见上述方法实施例的描述,其实现原理和技术效果类似,在此不再赘述。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的资源调用方法的资源调用装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个资源调用装置实施例中的具体限定可以参见上文中对于资源调用方法的限定,在此不再赘述。

在一个实施例中,如图8所示,提供了一种资源调用装置1,包括:类型确定模块10、资源确定模块20、资源分配模块30和资源调用模块40,其中:

类型确定模块10,用于响应于目标容器发送的初始资源调用指令,从优先分配类型和动态分配类型中确定目标容器的类型。

资源确定模块20,用于根据目标容器的类型,确定目标容器对应的可用计算资源。

资源分配模块30,用于根据可用计算资源的当前调用状态,为目标容器分配目标计算资源。

资源调用模块40,用于向驱动发送携带目标计算资源的资源标识的目标资源调用指令,以使驱动为目标容器调用目标计算资源。

在一个实施例中,在图8的基础上,如图9所示,上述类型确定模块10可以包括:

第一获取单元11,用于从初始资源调用指令中获取目标容器的容器标识。

第二获取单元12,用于根据目标容器的容器标识,从资源分配记录表中获取目标容器的资源绑定信息。

类型确定单元13,用于根据资源绑定信息,从优先分配类型和动态分配类型中确定目标容器的类型。

在一个实施例中,上述类型确定单元13具体用于在资源绑定信息为容器标识与资源标识之间的绑定信息的情况下,确定目标容器的类型为优先分配类型;在资源绑定信息为容器标识与资源数量之间的绑定信息的情况下,确定目标容器的类型为动态分配类型。

在一个实施例中,在图8的基础上,如图10所示,上述资源确定模块20可以包括:

第一资源确定单元21,用于在目标容器的类型为优先分配类型的情况下,将目标容器所绑定的计算资源,作为目标容器对应的可用计算资源。

第二资源确定单元22,用于在目标容器的类型为动态分配类型的情况下,将计算节点中各计算资源,均作为目标容器对应的可用计算资源。

在一个实施例中,上述第一资源确定单元21还可以包括:

第一状态查询子单元,用于根据可用计算资源的资源标识,查询资源调用记录表,以获取可用计算资源的当前调用状态。

任务中断子单元,用于在当前调用状态为被调用的情况下,中断可用计算资源的当前计算任务。

第一资源确定子单元,用于在可用计算资源已中断当前计算任务的情况下,将可用计算资源作为目标容器的目标计算资源。

在一个实施例中,上述第二资源确定单元22还可以包括:

第二状态确定子单元,用于查询资源调用记录表,以获取各可用计算资源的当前调用状态。

第二资源确定子单元,用于从当前调用状态为未被调用的可用计算资源中,确定目标容器的目标计算资源。

在一个实施例中,在图8的基础上,如图11所示,上述资源调用装置1还可以包括:

状态更新模块50,用于将资源调用记录表中目标计算资源的当前调用状态更新为被调用。

在一个实施例中,在图8的基础上,如图12所示,上述资源调用装置1还可以包括:

容器创建模块60,用于响应于控制节点发送的目标容器创建指令,根据目标容器的类型,在资源分配记录表中添加目标容器的资源绑定信息。

上述资源调用装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储资源分配记录表和资源调用记录表等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种资源调用方法。

本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述资源调用方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述资源调用方法的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述资源调用方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 接口调用方法、装置、计算机设备和存储介质
  • 调用方法、调用装置、服务器、终端及计算机可读存储介质
  • 接口调用方法、装置及计算机可读存储介质
  • 异步调用方法、计算机装置及存储介质
  • 资源分配方法、装置、计算机设备及计算机可读存储介质
  • 资源调用方法及装置、电子设备和计算机可读存储介质
  • 资源调用方法、装置、计算机设备和存储介质
技术分类

06120116500905