CN117033000B - 数据调度方法、设备 - Google Patents
数据调度方法、设备 Download PDFInfo
- Publication number
- CN117033000B CN117033000B CN202311299682.6A CN202311299682A CN117033000B CN 117033000 B CN117033000 B CN 117033000B CN 202311299682 A CN202311299682 A CN 202311299682A CN 117033000 B CN117033000 B CN 117033000B
- Authority
- CN
- China
- Prior art keywords
- node
- cache
- data
- resources
- cached
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 4
- 238000012549 training Methods 0.000 description 9
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011045 prefiltration Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据调度方法、设备。方法包括:在容器平台k8s创建CRD资源,记为Cache资源,并配置Cache资源的自定义字段;监听Cache资源及集群中节点缓存状态,当待缓存数据存在于至少一个节点上时,生成Node Cache资源;当存在需要加载缓存的Node Cache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点;响应于数据调度请求,根据数据调度请求中的缓存名称确定目标节点,并为在容器平台k8s创建的数据调度请求对应的Pod绑定目标节点;基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,以实现数据调用。
Description
技术领域
本发明涉及数据调度技术领域,尤其涉及一种数据调度方法、设备。
背景技术
在当今的云原生时代,机器学习在各个领域得到广泛应用。机器学习模型的训练通常需要依赖大量的数据集文件,这些数据集文件可能存储在远程存储系统中,如分布式文件系统、对象存储等。
然而,相关技术中,上述数据集文件存储方法会由于需要频繁从远程存储系统中读取大量数据集文件,且数据集存储在远程位置,会导致存在访问效率低下、训练速度受限的问题,而且,由于调度器的不可知性,训练作业有时会被调度到不具备所需数据集缓存的节点上,导致资源利用不均衡。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种数据调度方法,以提高访问效率和资源利用率。
本发明的第二个目的在于提出一种数据调度设备。
为达到上述目的,本发明第一方面实施例提出了一种数据调度方法,包括:在容器平台k8s创建CRD(Custom Resource Definition,自定义资源定义)资源,记为Cache资源,并配置所述Cache资源的自定义字段;监听所述Cache资源及集群中节点缓存状态,当待缓存数据存在于至少一个节点上时,生成Node(节点) Cache资源;当存在需要加载缓存的Node Cache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点;响应于数据调度请求,根据所述数据调度请求中的缓存名称确定目标节点,并为在所述容器平台k8s创建的所述数据调度请求对应的Pod(kubernetes中的基本单位)绑定所述目标节点;基于绑定所述目标节点的Pod,为容器挂载相应的本地主机路径,以实现数据调用。
为达到上述目的,本发明第二方面实施例提出了一种数据调度设备,包括存储器、处理器和存储在所述存储器上的计算机程序,所述计算机程序被所述处理器执行时,实现上述的数据调度方法。
本发明实施例的数据调度方法、设备,首先在容器平台k8s创建得到Cache资源,并配置Cache资源的自定义字段,进而监听Cache资源对应的集群中节点状态,并根据目标缓存需求和集群中节点状态生成Node Cache资源,当存在需要加载缓存的Node Cache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点,响应于数据调度请求,根据数据调度请求中的缓存名称确定目标节点,并为在容器平台k8s创建的数据调度请求对应的Pod绑定目标节点,基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,以实现数据调用。通过该方法,可以实现将远端数据集缓存到本地节点,无需频繁从远程存储系统中读取文件,也无需通过网络传输来访问数据,而且,由于基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,可以实现可知调度,从而保障资源的利用。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明一个或多个实施例的数据调度方法的流程图;
图2是本发明一个示例的数据调度的示意图;
图3是本发明一个示例的数据调度系统的架构示意图;
图4是本发明一个示例的数据调度方法的流程图。
具体实施方式
下面参考附图描述本发明实施例的数据调度方法、设备,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。参考附图描述的实施例是示例性的,不能理解为对本发明的限制。
图1是本发明一个或多个实施例的数据调度方法的流程图。
如图1所示,数据调度方法,包括:
S11,在容器平台k8s创建CRD资源,记为Cache资源,并配置Cache资源的自定义字段。
S12,监听Cache资源及集群中节点缓存状态,当待缓存数据存在于至少一个节点上时,生成Node Cache资源。
其中,当集群中所有节点均无缓存数据时,则根据Cache中定义的节点亲和配置或第一次任务调度时绑定的节点生成Node Cache资源。
S13,当存在需要加载缓存的Node Cache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点。
S14,响应于数据调度请求,根据数据调度请求中的缓存名称确定目标节点,并为在容器平台k8s创建的数据调度请求对应的Pod绑定目标节点。
S15,基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,以实现数据调用。
由此,首先在容器平台k8s创建得到Cache资源,并配置Cache资源的自定义字段,进而监听Cache资源对应的集群中节点状态,并根据目标缓存需求和集群中节点状态生成Node Cache资源,当存在需要加载缓存的Node Cache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点,响应于数据调度请求,根据数据调度请求中的缓存名称确定目标节点,并为在容器平台k8s创建的数据调度请求对应的Pod绑定目标节点,基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,以实现数据调用。通过该方法,可以实现将远端数据集缓存到本地节点,无需频繁从远程存储系统中读取文件,也无需通过网络传输来访问数据,而且,由于基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,可以实现可知调度,从而保障资源的利用。
在本发明一个或多个实施例中,在容器平台k8s创建CRD资源,包括:在容器平台k8s创建CRD资源类型Cache,并部署Controller、Scheduler Plugin、Agent、CSI(ContainerStorage Interface,容器存储接口)驱动,其中,Agent、CSI驱动与集群中节点一一对应;基于资源类型Cache,在容器平台k8s创建Cache资源。
其中,Cache CRD资源由用户创建,用于定义数据集的缓存需求,包含以下信息:
(1)远端数据集地址:指定需要缓存的数据集的存放位置,可以是远程存储或云存储。
(2)数据集大小:指定数据集的存储大小。
(3)缓存的副本数:指定需要缓存的数据集在节点间的副本数量,将数据集缓存分布到不同的节点之上,以满足分布式作业等需求。
(4)节点亲和性配置:允许将缓存的数据集调度到具有相应标签或属性的节点上,以确保训练作业使用缓存的同时满足固定计算资源的需求。
Cache Controller是一个控制器组件,负责监视和管理Cache CRD的状态。
Cache Scheduler Plugin是基于Kubernetes Scheduler Framework(调度框架)开发的插件,扩展Kubernetes调度器的功能,使调度器具备感知Cache 的能力,能够在任务调度选择节点时,充分考虑Cache在集群的分布情况。插件的权重值应尽可能高,便于将数据缓存作为更高的调度优先级。具体插件的实现上,可以考虑扩展Kubernetes Scheduler开放出的Filter(过滤器)与Score(得分)扩展点,Filter用于对Cache的强亲和,Score用于对Cache软亲和。Kubernetes Scheduler Framework的扩展点可以参见图2所示的示例。
图2中采用了两种API(Application Programming Interface,应用程序编程接口),还包括PreEnqueue(一个插件)、PreFilter(检查预处理Pod的相关信息以安排调度周期)、Prescore(运行任务以生成一个可共享状态)、Normalize(合并分数并计算节点的最终排名)、Reserve(在绑定周期之前选择保留的节点)、Permit(批准或拒绝调度周期结果)、WaitOnPermit(与Permit扩展点配合使用实现延迟调度功能的扩展)、PreBind(执行任何先决条件工作)、Bind(将Pod分配给API中的节点)、PostBind(通知绑定周期的结果)、PostFilter(一种扩展点)。
Cache Agent(缓存代理)是以DaemonSet方式部署的组件,位于每个节点上。它通过与Kubernetes APIServer交互,负责监视Node Cache CRD信息,获取指定的远端数据集地址,并将其访问信息写入内部Cache Engine的配置中,并创建主机路径供Cache Engine将数据集缓存到节点的本地存储中。且会根据本地缓存的实际情况以更新Node Cache的状态。
Cache Engine作为Cache Agent的子容器,支持不同类型的缓存,如基于Mem(内存)或SSD(固态硬盘)或HDD(机械硬盘)的缓存,以满足不同的性能和存储要求。通过在节点上缓存数据集,Cache Engine减少了数据访问的延迟和网络传输的负担。
Cache CSI Driver(缓存CSI驱动器)是以DaemonSet方式部署的CSI容器存储插件,运行在每个节点上。他负责将Pod中声明的Cache以本地主机路径的方式挂载到容器内部,使得容器内部访问定义的Cache如同本地文件系统的方式一致。
在本发明一个或多个实施例中,基于容器平台k8s的watch机制,通过Controller监听Cache资源对应的集群中节点状态。
在本发明一个或多个实施例中,数据调度方法还包括:当Controller根据集群中节点状态确定到Cache资源发生变化时,根据Cache资源的期望状态与实际状态进行调谐,以使期望状态与实际状态一致。
其中,Controller基于所述容器平台k8s的watch机制判断Cache资源是否发生变化。上述期望状态即在Cache中的描述的自定义字段,包含缓存副本数,节点亲和等。
具体地,当监听到节点状态或Cache资源发生改变时,比如说,在开发人员修改了Cache的期望状态属性的信息时,会监听Cache发生改变。此时,需要根据期望状态与实际状态进行调谐,进行相应的逻辑处理,比如说,根据新的期望状态属性,生成Node Cache资源,以实现对远端数据集进行本地缓存,此时,需要为新的Cache资源选择节点,并生成NodeCache自定义资源。
其中,Cache Controller可以通过与Kubernetes APIServer交互,实时获取CacheCRD的信息,并根据数据缓存需求与集群中节点状态选择合适的节点,生成Node Cache子资源。并进行不断调谐,使得用户期望的缓存需求与实际状态一致。
NodeCache CRD是Kubernetes中的一个自定义资源,一般作为系统内部使用,用于描述缓存具体落在节点上的信息。NodeCache CRD包含远端数据集地址,且其OwnerReferences(资源从属对象)为Cache。
NodeCache Controller是一个控制器组件,负责监视和管理NodeCache CRD的状态。它通过与Kubernetes APIServer交互,实时获取NodeCache CRD的信息,根据数据缓存需求与实际状态触发调谐任务,使其满足预期。
在本发明一个或多个实施例中,访问信息包括远端数据集地址,自定义字段还包括远端数据集大小、缓存副本数、节点亲和性配置信息,其中,缓存副本数表示需要缓存的数据集在节点间的副本数量,节点亲和性配置信息表示允许将缓存的数据集调度到具有相应标签或属性的节点上。
在本发明一个或多个实施例中,根据数据调度请求中的缓存名称确定目标节点,包括:通过Scheduler Plugin获取Node Cache资源对应节点的缓存情况,并根据数据调度请求中的缓存名称和缓存情况确定目标节点。
在本发明一个或多个实施例中,数据调度方法还包括:当根据缓存名称和缓存情况确定不存在目标节点时,先通过其余计算资源将任务绑定到一个节点后,再将Cache绑定到这一节点。
具体地,Cache Scheduler Plugin通过与Kubernetes APIServer交互,获取Pod与Node Cache信息,当调度器需要为新的训练作业选择合适的节点时,Scheduler Plugin会考虑节点上的缓存情况,为训练作业的Pod绑定存在数据缓存的节点,提供缓存亲和性调度的支持。当数据缓存在系统中暂不存在时,先通过其余计算资源将任务绑定到一个节点后,再将Cache绑定到这一节点,实现延迟绑定。
上述其余计算资源包括CPU(Central Processing Unit,中央处理器)、内存、GPU(Graphics Processing Unit,图形处理器)等,上述将任务绑定到一个节点可以为通过容器平台的调度功能实现,上述将Cache绑定到节点,可以为先绑定Pod到节点,再将Pod的任务使用的Cache,绑定到该节点,以做到延迟绑定。
在本发明一个或多个实施例中,根据数据调度请求中的缓存名称和缓存情况确定目标节点,包括:根据缓存名称确定候选节点,并根据候选节点的缓存情况得到调度得分;将最大调度得分对应的候选节点作为目标节点。
其中,目标节点的选择为通过计算得到多个得分,将计算得到的多个得分进行汇总,根据汇总结果进行选择。
上述计算得分的方法可以采用容器平台本身包含的计算方法,也可采用如下所示的得分计算公式:
,
其中,n表示用于缓存的本地不同类型的存储资源类型的数量,如当用于缓存的资源类型有内存、SSD(Solid State Disk,固态硬盘)两种时,n=2,Allocatable表示n对应类型的节点可分配资源大小,Request表示n对应类型的数据集的存储大小。
在本发明一个或多个实施例中,当存在需要加载缓存的Node Cache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点,包括:通过各节点的Agent监听相应Node Cache资源的节点状态;在监听到存在需要加载缓存的Node Cache资源对应的节点时,将相应访问信息写入内部Engine的配置中,以使Engine创建本地主机路径,并将远端数据集缓存到本地相应节点。
下面结合图3和图4进行具体说明。
S201,在所述容器平台k8s中创建一个CRD资源类型Cache,并部署Controller、Scheduler Plugin、Agent、CSI驱动。
S202,在所述容器平台k8s中创建Cache资源,编写其中自定义字段信息,包括远端数据集的存储地址访问信息、副本数等属性。
S203,基于所述容器平台k8s中的watch机制,所述Controller监听到Cache资源发生变化时,根据自定义资源对象中的期望状态与实际状态进行调谐,完成相应的处理逻辑,为Cache选择节点并生成NodeCache自定义资源。
S204,在NodeCache相应节点上的所述Agent监听到Cache需要加载,将Cache的访问信息写入所述Engine需要加载的缓存列表配置中。
S205,所述Engine会根据配置创建一个相应的存储介质类型下的主机路径,并使用相应的存储介质类型,挂载底层的远程存储,实现对远端数据集的缓存。
其中,上述使用存储介质类型挂载底层的远程存储,可以为配置创建一个相应的存储介质类型下的主机路径,并根据远端存储的类型(如网络文件系统、对象存储等)使用相对应的方式挂载底层的远程存储,实现对远端数据集的缓存。
S206,在所述容器平台k8s中创建一个使用cache csi的Pod或创建Job等其他类型由k8s控制器产生Pod,k8s调度器开启调度流程,所述co-cache 插件会根据CSI中声明的cacheName(缓存名称)选择缓存分布的节点,并最终绑定为Pod绑定该节点。
S207,在所述容器平台k8s中,kubelet监听到上述绑定到本节点的Pod,调用Pod声明的CSI驱动,根据Cache Name为容器挂载上述Cache的主机路径。
综上,本发明实施例的数据调度方法,首先在容器平台k8s创建得到Cache资源,并配置Cache资源的自定义字段,进而监听Cache资源对应的集群中节点状态,并根据目标缓存需求和集群中节点状态生成Node Cache资源,当存在需要加载缓存的Node Cache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点,响应于数据调度请求,根据数据调度请求中的缓存名称确定目标节点,并为在容器平台k8s创建的数据调度请求对应的Pod绑定目标节点,基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,以实现数据调用。通过该方法,可以实现将远端数据集缓存到本地节点,无需频繁从远程存储系统中读取文件,也无需通过网络传输来访问数据,而且,由于基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,可以实现可知调度,从而保障资源的利用。由此,通过利用对远端数据集进行本地缓存,及对训练作业使用数据缓存的亲和调度方法,解决数据集访问效率低带来的训练速度受限及计算资源利用率不足问题的同时,还避免了缓存资源的浪费。以及,通过自定义控制器和插件,实现将训练任务调度到合适节点。而且,通过自定义资源Cache、NodeCache,让数据缓存的真实状态在控制平面可见。
进一步地,本发明提出一种数据调度设备。
在本发明实施例中,数据调度设备,包括存储器、处理器和存储在存储器上的计算机程序,计算机程序被处理器执行时,实现上述的数据调度方法。
本发明实施例的数据调度设备,通过实现上述实施例的数据调度方法,首先在容器平台k8s创建得到Cache资源,并配置Cache资源的自定义字段,进而监听Cache资源对应的集群中节点状态,并根据目标缓存需求和集群中节点状态生成Node Cache资源,当存在需要加载缓存的Node Cache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点,响应于数据调度请求,根据数据调度请求中的缓存名称确定目标节点,并为在容器平台k8s创建的数据调度请求对应的Pod绑定目标节点,基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,以实现数据调用。通过该方法,可以实现将远端数据集缓存到本地节点,无需频繁从远程存储系统中读取文件,也无需通过网络传输来访问数据,而且,由于基于绑定目标节点的Pod,为容器挂载相应的本地主机路径,可以实现可知调度,从而保障资源的利用。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
在本说明书的描述中,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,除非另有说明,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种数据调度方法,其特征在于,包括:
在容器平台k8s创建CRD资源,记为Cache资源,并配置所述Cache资源的自定义字段;
监听所述Cache资源及集群中节点缓存状态,当待缓存数据存在于至少一个节点上时,生成Node Cache资源;
当Node Cache的缓存状态为未加载时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点;
响应于数据调度请求,根据所述数据调度请求中的缓存名称确定目标节点,并为在所述容器平台k8s创建的所述数据调度请求对应的Pod绑定所述目标节点;
基于绑定所述目标节点的Pod,为容器挂载相应的本地主机路径,以实现数据调用;
所述在容器平台k8s创建CRD资源,包括:
在所述容器平台k8s创建CRD资源类型Cache,并部署Controller、Scheduler Plugin、Agent、CSI驱动,其中,所述Agent、所述CSI驱动与集群中节点一一对应;
基于所述资源类型Cache,在所述容器平台k8s创建所述Cache资源;
所述根据所述数据调度请求中的缓存名称确定目标节点,包括:
通过所述Scheduler Plugin获取Node Cache资源对应节点的缓存情况,并根据所述数据调度请求中的缓存名称和所述缓存情况确定所述目标节点;
其中,所述监听所述Cache资源及集群中节点缓存状态,当待缓存数据存在于至少一个节点上时,生成Node Cache资源,包括:
监听Cache资源对应的集群中节点状态,并根据目标缓存需求和集群中节点状态生成Node Cache资源。
2.根据权利要求1所述的数据调度方法,其特征在于,基于所述容器平台k8s的watch机制,通过所述Controller对所述Cache资源对应的集群中节点状态进行监听。
3.根据权利要求2所述的数据调度方法,其特征在于,所述方法还包括:
当所述Controller根据所述集群中节点状态确定到所述Cache资源发生变化时,根据所述Cache资源的期望状态与实际状态进行调谐,以使所述期望状态与所述实际状态一致。
4.根据权利要求1所述的数据调度方法,其特征在于,所述访问信息包括远端数据集地址,所述自定义字段还包括远端数据集大小、缓存副本数、节点亲和性配置信息,其中,所述缓存副本数表示需要缓存的数据集在节点间的副本数量,所述节点亲和性配置信息表示允许将缓存的数据集调度到具有相应标签或属性的节点上。
5.根据权利要求1所述的数据调度方法,其特征在于,所述方法还包括:
当根据所述缓存名称和所述缓存情况确定不存在所述目标节点时,先通过其余计算资源将任务绑定到一个节点后,再将Cache绑定到这一节点。
6.根据权利要求5所述的数据调度方法,其特征在于,所述根据所述数据调度请求中的缓存名称和所述缓存情况确定所述目标节点,包括:
根据所述缓存名称确定候选节点,并根据所述候选节点的缓存情况得到调度得分;
将最大调度得分对应的候选节点作为所述目标节点。
7.根据权利要求1所述的数据调度方法,其特征在于,当存在需要加载缓存的NodeCache资源对应的节点时,根据相应自定义字段中的访问信息创建本地主机路径,并将远端数据集缓存到本地相应节点,包括:
通过各节点的Agent监听相应Node Cache资源的节点状态;
在监听到存在需要加载缓存的Node Cache资源对应的节点时,将相应访问信息写入内部Engine的配置中,以使所述Engine创建本地主机路径,并将远端数据集缓存到本地相应节点。
8.一种数据调度设备,包括存储器、处理器和存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器执行时,实现根据权利要求1-7中任一项所述的数据调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311299682.6A CN117033000B (zh) | 2023-10-09 | 2023-10-09 | 数据调度方法、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311299682.6A CN117033000B (zh) | 2023-10-09 | 2023-10-09 | 数据调度方法、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117033000A CN117033000A (zh) | 2023-11-10 |
CN117033000B true CN117033000B (zh) | 2024-01-05 |
Family
ID=88637596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311299682.6A Active CN117033000B (zh) | 2023-10-09 | 2023-10-09 | 数据调度方法、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117033000B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031874A (zh) * | 2021-03-26 | 2021-06-25 | 网易(杭州)网络有限公司 | 基于Kubernetes集群的缓存处理方法、装置、设备及存储介质 |
CN113835874A (zh) * | 2021-08-17 | 2021-12-24 | 苏州浪潮智能科技有限公司 | 深度学习业务调度方法、系统、终端及存储介质 |
CN113961346A (zh) * | 2021-10-26 | 2022-01-21 | 云知声智能科技股份有限公司 | 数据缓存的管理与调度方法、装置、电子设备和存储介质 |
CN115061947A (zh) * | 2022-06-08 | 2022-09-16 | 北京百度网讯科技有限公司 | 资源管理方法、装置、设备和存储介质 |
CN115145695A (zh) * | 2022-08-30 | 2022-10-04 | 浙江大华技术股份有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN115640110A (zh) * | 2022-11-07 | 2023-01-24 | 北京百度网讯科技有限公司 | 分布式云计算系统调度方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961335A (zh) * | 2020-07-01 | 2022-01-21 | 中兴通讯股份有限公司 | 资源调度方法、资源调度系统及设备 |
-
2023
- 2023-10-09 CN CN202311299682.6A patent/CN117033000B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031874A (zh) * | 2021-03-26 | 2021-06-25 | 网易(杭州)网络有限公司 | 基于Kubernetes集群的缓存处理方法、装置、设备及存储介质 |
CN113835874A (zh) * | 2021-08-17 | 2021-12-24 | 苏州浪潮智能科技有限公司 | 深度学习业务调度方法、系统、终端及存储介质 |
CN113961346A (zh) * | 2021-10-26 | 2022-01-21 | 云知声智能科技股份有限公司 | 数据缓存的管理与调度方法、装置、电子设备和存储介质 |
CN115061947A (zh) * | 2022-06-08 | 2022-09-16 | 北京百度网讯科技有限公司 | 资源管理方法、装置、设备和存储介质 |
CN115145695A (zh) * | 2022-08-30 | 2022-10-04 | 浙江大华技术股份有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN115640110A (zh) * | 2022-11-07 | 2023-01-24 | 北京百度网讯科技有限公司 | 分布式云计算系统调度方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117033000A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190220266A1 (en) | Upgrading Bundled Applications In A Distributed Computing System | |
JP6138774B2 (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
JP6370218B2 (ja) | メモリ管理方法、コンピュータシステム、コンピュータプログラム及び記憶媒体 | |
JP5980916B2 (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
JP5516744B2 (ja) | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 | |
US7805582B2 (en) | Method of managing memory in multiprocessor system on chip | |
US9110806B2 (en) | Opportunistic page caching for virtualized servers | |
US9021243B2 (en) | Method for increasing free memory amount of main memory and computer therefore | |
JP2007026094A (ja) | 実行装置およびアプリケーションプログラム | |
CN104281468A (zh) | 分布式虚拟机图像管理的方法和系统 | |
CN108351840B (zh) | 车辆控制装置 | |
US10176098B2 (en) | Method and apparatus for data cache in converged system | |
CN112051970A (zh) | 混合驱动器的脏数据管理 | |
US20140082275A1 (en) | Server, host and method for reading base image through storage area network | |
US20130042068A1 (en) | Shadow registers for least recently used data in cache | |
CN110019083B (zh) | 分布式文件系统的存储方法、装置、电子设备及存储介质 | |
JP2012530297A (ja) | ソフトウェアコンポーネント状態に対するアクセスコントロール | |
US9021208B2 (en) | Information processing device, memory management method, and computer-readable recording medium | |
CN107832097B (zh) | 数据加载方法及装置 | |
CN117033000B (zh) | 数据调度方法、设备 | |
CN113127179A (zh) | 资源调度方法、装置、电子设备及计算机可读介质 | |
KR102123701B1 (ko) | 네트워크 부트 시스템 | |
US20090320036A1 (en) | File System Object Node Management | |
CN115840635A (zh) | 计算资源管理方法、电子设备和程序产品 | |
CN115373610B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |