资源调度方法、相关装置和介质与流程

文档序号:30091385发布日期:2022-05-18 09:07阅读:94来源:国知局
资源调度方法、相关装置和介质与流程

1.本公开涉及芯片领域,具体而言,涉及一种资源调度方法、相关装置和介质。


背景技术:

2.云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。云计算系统经常采用容器来实现各种应用之间互相隔离,在容器中实现运行环境和运行应用程序。部署容器的物理机(physical machine,pm)可以划分为一个或多个非一致性内存访问架构(non uniform memory access architecture,numa)区域,每个非一致性内存访问架构区域包括物理机的部分或全部资源,该资源可以包括处理核、内存、或网络带宽等。在容器组请求持久化存储卷(persistent volume)时,csi(是一个存储驱动程序,支持创建和删除存储卷以及挂载和卸载存储卷)可以监听容器组对存储卷的需求,创建容器组对应的持久化存储卷,将持久化存储卷挂载到容器组以供该容器组使用,这样,csi往往可能将与容器组对应的处理器(即供容器组使用的处理器)不同属于一个非一致性内存访问架构区域的持久化存储卷挂载到容器组,容器组对应的处理器需要访问位于其他非一致性内存访问架构区域的持久化存储卷。而非一致性内存访问架构区域中每个处理器访问不同位置的内存的时延不同,因此,这增加了处理器访问持久化存储卷的时延,降低了处理器的数据访问效率。


技术实现要素:

3.有鉴于此,本公开的一个目的是降低处理器访问容器组的持久化存储器的时延,从而提高处理器的数据访问效率。
4.第一方面,本公开实施例提供一种资源调度方法,包括:
5.获取针对容器组的资源调度请求,所述资源调度请求包括所述容器组所请求的持久化存储器的目标存储空间大小;
6.获取部署所述容器组的工作节点上的至少一个持久化存储器的设备信息,所述持久化存储器包括多个持久化存储设备;
7.基于预设分配条件和所述目标存储空间大小,确定在所述工作节点中为所述容器组分配目标持久化存储器的分配信息,所述目标持久化存储器与所述容器组所使用的处理器位于相同的非一致性内存访问架构区域;
8.将所述分配信息存储至所述容器组的配置信息中,使得所述工作节点从所述配置信息中获取所述分配信息,基于所述分配信息将所述目标持久化存储器调度至所述容器组。
9.可选地,所述设备信息包括所述持久化存储设备的设备名称、设备标识和其所属于的非一致性内存访问架构区域标识,所述获取部署所述容器组的工作节点上的至少一个持久化存储器的设备信息之前,所述资源调度方法还包括:
10.将所述至少一个持久化存储器分别划分为多个持久化存储设备,每个所述持久化
存储设备具有一定的存储空间大小;
11.所述获取部署所述容器组的工作节点上的至少一个持久化存储器的设备信息之后,所述资源调度方法还包括:
12.将所述至少一个持久化存储器的设备信息注册到控制节点。
13.可选地,所述预设分配条件包括:
14.所述目标持久化存储器的空闲存储空间大小不小于所述目标存储空间大小;
15.所述目标持久化存储器与所述容器组所使用的处理器具有相同的非一致性内存访问架构区域标识。
16.可选地,所述多个持久化存储设备的存储空间大小相等,所述基于预设分配条件和所述目标存储空间大小,确定在所述工作节点中为所述容器组分配目标持久化存储器的分配信息包括:
17.根据所述目标存储空间大小和所述持久化存储设备的存储空间大小,确定请求的持久化存储设备的目标个数;
18.获取所述目标个数的与所述容器组所使用的处理器具有相同的非一致性内存访问架构区域标识的第一持久化存储设备;
19.基于持久化存储设备的设备标识和持久化存储器之间的一一对应关系,在所述目标个数的所述第一持久化存储设备位于同一个持久化存储器时,将该持久化存储器作为所述目标持久化存储器。
20.可选地,在将所述分配信息存储至所述容器组的配置信息中之后,所述资源调度方法还包括:
21.在所述容器组被销毁的情况下,清空所述容器组的配置信息。
22.第二方面,本公开实施例提供一种资源调度装置,包括:
23.调度请求获取单元,用于获取针对容器组的资源调度请求,所述资源调度请求包括所述容器组所请求的持久化存储器的目标存储空间大小;
24.设备信息获取单元,用于获取部署所述容器组的工作节点上的至少一个持久化存储器的设备信息,所述持久化存储器包括多个持久化存储设备;
25.分配信息确定单元,用于基于预设分配条件和所述目标存储空间大小,确定在所述工作节点中为所述容器组分配目标持久化存储器的分配信息,所述目标持久化存储器与所述容器组所使用的处理器位于相同的非一致性内存访问架构区域;
26.分配信息存储单元,用于将所述分配信息存储至所述容器组的配置信息中,使得所述工作节点从所述配置信息中获取所述分配信息,基于所述分配信息将所述目标持久化存储器调度至所述容器组。
27.第三方面,本公开实施例提供一种持久化存储器设备插件,包括:
28.监听单元,用于获取针对容器组的资源调度请求,所述资源调度请求包括所述容器组所请求的持久化存储器的目标存储空间大小;
29.设备探测单元,用于获取部署所述容器组的工作节点上的至少一个持久化存储器的设备信息,所述持久化存储器包括多个持久化存储设备;
30.设备指定单元,用于基于预设分配条件和所述目标存储空间大小,确定在所述工作节点中为所述容器组分配目标持久化存储器的分配信息,所述目标持久化存储器与所述
容器组所使用的处理器位于相同的非一致性内存访问架构区域;
31.所述设备指定单元还用于将所述分配信息存储至所述容器组的配置信息中,使得所述工作节点从所述配置信息中获取所述分配信息,基于所述分配信息将所述目标持久化存储器调度至所述容器组。
32.第四方面,本公开实施例提供一种计算装置,包括:
33.处理器;
34.持久化存储器;
35.上述的持久化存储器设备插件,所述持久化存储器设备插件用于将目标持久化存储器调度至容器组,所述目标持久化存储器与所述容器组所使用的处理器位于相同的非一致性内存访问架构区域。
36.第五方面,本公开实施例提供一种片上系统,包括:
37.处理器;
38.持久化存储器;
39.上述的持久化存储器设备插件,所述持久化存储器设备插件用于将目标持久化存储器调度至容器组,所述目标持久化存储器与所述容器组所使用的处理器位于相同的非一致性内存访问架构区域。
40.第六方面,本公开实施例提供一种计算设备,包括:
41.存储器,用于存储计算机可执行代码;
42.处理器,用于执行所述计算机可执行代码,使得所述处理器执行上述任一个所述的资源调度方法。
43.第七方面,本公开实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行代码,所述计算机可执行代码被处理器执行时实现上述任一项所述的资源调度方法。
44.本公开实施例中,部署容器组的工作节点上的每个持久化存储器包括多个持久化存储设备,这相当于将每个持久化存储器在逻辑上虚拟为多个持久化存储设备,这样,基于预设分配条件和容器组所请求的持久化存储器的目标存储空间大小,可以确定在工作节点中为容器组分配目标持久化存储器的分配信息,将分配信息存储至容器组的配置信息中,使得工作节点可以从配置信息中获取分配信息,基于分配信息将目标持久化存储器调度至容器组,这样,巧妙地运用了容器编排管理工具能够管理设备(device)资源的机制,使得容器组申请持久化存储卷变为申请持久化存储设备,将与供容器组使用的处理器同属于一个非一致性内存访问架构区域的目标持久化存储器分配给容器组使用。这样,供容器组使用的处理器可以访问同属于一个非一致性内存访问架构区域的持久化存储器,这降低了处理器访问持久化存储器的时延,提高了处理器的数据访问效率。
附图说明
45.通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
46.图1是本公开一个实施例所应用的数据中心的结构图;
47.图2是本公开一个实施例所应用的数据中心的结构图;
48.图3是根据本公开一个实施例的计算装置的内部结构图;
49.图4是根据本公开一个实施例的资源调度方法的流程示意图;
50.图5是根据本公开一个实施例的工作节点和控制节点的交互图;
51.图6示出了本公开一个实施例的资源调度装置的结构示意图。
具体实施方式
52.以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
53.在本文中使用以下术语。
54.计算装置:具有计算或处理能力的设备,它可以体现为终端的形式,如物联网设备、移动终端、桌上电脑、膝上电脑等,也可以体现为服务器或服务器组成集群。在本公开应用的数据中心的环境下,计算装置是数据中心中的服务器。
55.处理器:是一台计算装置的运算核心和控制核心,其功能主要是执行计算机指令以及处理计算机软件中的数据。
56.存储器:位于计算机装置内,用于存储信息的物理结构。按照用途的不同,存储器可以分为主存储器(也可称为内部存储器,或简称为内存/主存)和辅助存储器(也可称为外部存储器,或简称为辅存/外存)。主存用于存储由数据信号表示的指令信息和/或数据信息,例如用于存放处理器提供的数据,也可用于实现处理器与外存之间的信息交换。外存提供的信息需要被调入主存中才能被处理器访问,因此本文提到的存储器一般是指主存,本文提到的存储设备一般是指外存。
57.持久化存储器(persistent memory,pmem):是一种新型非易失性存储器(non-volatile memory,nvm),是一种同时结合了传统的存储设备(如机械硬盘、固态硬盘等)和存储器(如动态随机存取存储器)的复合型存储器。持久化存储器可以像动态随机存取存储器一样嵌入主机板的插槽中,相较于动态随机存取存储器,持久化存储器具备断电后数据保持的特性。持久化存储器拥有超大容量,能够提供比快闪存储器更快的读写速度,在成本上比动态随机存取存储器更便宜。目前,持久化存储器支持的使用模式包括:1、内存模式,在这种模式下,持久化存储器作为易失存储介质,普通内存作为持久化存储器的缓存,由内存控制器上的固件操作持久化存储器,对用户和操作系统都透明。2、存储模式,在这种模式下,持久化存储器作为非易失性存储介质,持久化存储器作为块设备使用,相当于速度更高的ssd,访问时存在page cache(页面缓存),对用户透明,对操作系统有需求(需驱动支持)。3、ad(app direct,应用程序直连)模式,在这种模式下,持久化存储器作为易失介质,当做块设备使用,但访问时不经过page cache(页缓存)。
58.容器(container):作为一种轻量级的虚拟化技术,是一组受到资源限制、彼此相互隔离的进程。容器技术为不同的应用程序创造了独立的运行环境,实现资源隔离、配置与安全保障,能够满足应用按需分配的资源需求以及保证应用的隔离性和可用性。将承载于容器中的应用程序称为容器实例,或者也可称为容器化应用。为了满足大型应用的需求,实践中往往需要将很多容器部署在计算机集群中进行统一管理并对外提供服务,因此需要容
器编排管理工具。容器编排工具使用容器服务,并编排他们以决定容器之间如何进行交互,将生命周期管理能力扩展到在大量计算机集群上部署的复杂的、多容器工作负载,为开发人员和基础设施团队提供了一个抽象层来处理大规模的容器化部署。容器编排工具例如是k8s(全称是kubernetes,运行和协同容器化应用进程的系统)系统,是用于自动部署、扩展和管理容器化应用程序的开源系统。docker是一个开源的应用容器引擎,是一个启动和停止容器的工具,让开发者可以打包他们的应用程序以及依赖包到一个可移植的容器中,然后发布到任何流行的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
59.容器组(pod):是容器编排工具(例如,k8s)的基本操作单元,是最小的可创建、调试和管理的部署单元。同一容器组中的所有容器共享同一个ip地址、ipc、主机名称及其它资源。容器组会将网络和存储从底层容器中抽象出来,这样,能更加轻松地在集群中移动容器。每个容器组中可以封装有一个或多个用于承载应用程序的容器。容器组的容器会被作为一个整体调度到一个工作节点上运行。
60.存储卷(volume):是容器中需要持久化存储的数据放置的地方的一种逻辑抽象,可以通过插件扩展为不同的存储介质,例如云盘、nas等,可以在同一容器组的多个容器之间共享。
61.本公开的应用环境
62.本公开实施例提出了一种资源调度方案。整个资源调度方案相对较为通用,可以用于部署有持久化存储器且使用容器编排工具进行容器编排管理的各种硬件设备,例如,用于数据中心、用于ai(人工智能)加速单元,用于gpu(图形处理单元),用于能执行深度学习模型的iot(物联网)设备,嵌入式设备等。资源调度方案与执行该方案的计算装置最终部署在的硬件无关。但为了示例性描述,下文中将主要以数据中心为应用场景进行描述。本领域技术人员应当理解,本公开实施例还可以适用于其它的应用场景。
63.数据中心
64.数据中心是全球协作的特定设备网络,用来在互联网网络基础设施上传递、加速、展示、计算、存储数据信息。在今后的发展中,数据中心也将会成为企业竞争的资产。随着数据中心应用的广泛化,人工智能等越来越多地应用到数据中心。而神经网络作为人工智能的重要技术,已经大量应用到数据中心大数据分析运算中。
65.在传统的大型数据中心,网络结构通常如图1所示,即互连网络模型(hierarchical inter-networking model)。这个模型包含了以下部分:
66.服务器140:各服务器140是数据中心的处理和存储实体,数据中心中大量数据的处理和存储都是由这些服务器140完成的。在一些实施例中,在数据中心中,可以利用虚拟化技术,在服务器140构建一个或多个虚拟机,多个虚拟机共享同一个物理主机的物理资源,如处理器、内存、磁盘和网络设备等,从而可实现以虚拟机为粒度将一台物理主机的物理资源共享给多个租户使用,使多个租户能在安全隔离的前提下方便灵活地使用物理资源,极大提升物理资源的利用率。
67.在一些实施例中,数据中心可应用于内容分发网络(content delivery network,cdn)、电商、游戏、音视频、物联网、物流、工业大脑、城市大脑等各种应用场景中,面向各种场景中的终端用户提供计算服务。具体地,针对各应用场景,可以在数据中心的服务器中部
programming interface server,api server)211和调度器(scheduler)212。应用程序接口服务器211是容器编排工具(例如,k8s)的前端接口,各种客户端工具以及容器编排工具(例如,k8s)的其他组件可以通过应用程序接口服务器211管理数据中心的集群的各种资源。调度器212可以决定将容器组放在哪个工作节点上去运行以及决定为容器组分配的资源。
75.在一些实施例中,如图2所示,客户端可以向控制节点210发送容器组的资源调度请求(例如,处理器调度请求、或持久化存储器调度请求)。在一些实施例中,应用程序接口服务器211可以接收处理器调度请求,调度器212可以基于应用程序接口服务器211接收的处理器调度请求将容器组调度到工作节点220上运行,并目标工作节点220上的处理器供容器组使用。需要说明的是,调度器212也可以以处理核为单位来分配工作节点220上的处理核供容器组使用。在一些实施例中,应用程序接口服务器211可以接收持久化存储器调度请求,调度器212可以基于应用程序接口服务器211接收的持久化存储器调度请求,根据目标持久化存储器的分配信息,将与供容器组使用的处理器同属于一个非一致性内存访问架构区域的目标持久化存储器分配给容器组使用。这样,供容器组使用的处理器可以访问同属于一个非一致性内存访问架构区域的持久化存储器,这降低了处理器访问持久化存储器的时延,提高了处理器的数据访问效率。由于向容器组调度目标持久化存储器的具体过程将在下文中详述,故这里不再赘述。
76.计算装置
77.由于服务器140才是数据中心真实的处理设备,图3示出了本公开一个实施例的服务器140(计算装置141或片上系统142或工作节点220)的内部结构图。在一些实施例中,利用虚拟化技术,可以在计算装置141可以构建一个或多个虚拟机,而在这种情况下,虚拟机可以是数据中心的工作节点220。计算装置141可以包括多个处理器32。作为一种示例,如图3所示,计算装置141可以包括处理器0、处理器1、处理器2和处理器3,但应当理解,处理器32的数量不应以此为限。
78.如图3所示,计算装置141还可以包括存储器33。计算装置141中的存储器33可以是主存储器(简称为主存或内存),用于存储由数据信号表示的指令信息和/或数据信息,例如存放处理器32提供的数据(例如为运算结果),也可以用于实现处理器32与外部存储设备37(或称为辅助存储器或外部存储器)之间的数据交换。需要说明的是,存储器33例如是动态随机存取存储器(dram)。
79.在一些情形下,处理器32可能需要访问存储器33,以获取存储器33中的数据或对存储器33中的数据进行修改。由于存储器33的访问速度较慢,为了缓解处理器32与存储器33之间的速度差距,计算装置141还包括与总线31耦合的高速缓冲存储器38,高速缓冲存储器38用于对存储器33中的一些可能会被反复调用的程序数据或者报文数据等数据进行缓存。高速缓冲存储器38例如由静态随机存储器(static random access memory,简称为sram)等类型的存储装置实现。高速缓冲存储器38可以为多级结构,例如具有一级缓存(l1 cache)、二级缓存(l2 cache)和三级缓存(l3 cache)的三级缓存结构,也可以是三级以上的缓存结构或其他类型缓存结构。在一些实施例中,高速缓冲存储器38的一部分(例如一级缓存,或一级缓存和二级缓存)可以集成在处理器32内部或与处理器32集成于同一片上系统中。
80.存储器33和高速缓冲存储器38之间的信息交互通常按块来组织。在一些实施例中,高速缓冲存储器38和存储器33可以按照相同的空间尺寸被划分成数据块,数据块可以作为高速缓冲存储器38和存储器33之间的数据交换的最小单位(包括预设长度的一个或多个数据)。为了表述简洁清晰,下面将高速缓冲存储器38中的各个数据块简称为缓存块(可以称为cacheline或高速缓存线),且不同的缓存块具有不同的缓存块地址;将存储器33中的各个数据块简称为内存块,且不同的内存块具有不同的内存块地址。缓存块地址例如包括用于定位数据块的物理地址标签。
81.由于受到空间和资源的限制,高速缓冲存储器38无法对存储器33中的全部内容都进行缓存,即高速缓冲存储器38的存储容量通常小于存储器33,高速缓冲存储器38提供的各个缓存块地址无法对应存储器33提供的全部内存块地址。处理器32在需要访问内存时,首先经总线31访问高速缓冲存储器38,以判断所要访问的内容是否已被存储于高速缓冲存储器38中,如果是,则高速缓冲存储器38命中,此时处理器32直接从高速缓冲存储器38中调用所要访问的内容;如果处理器32需要访问的内容不在高速缓冲存储器38中,则处理器32需要经总线31访问存储器33,以在存储器33中查找相应的信息。因为高速缓冲存储器38的存取速率非常快,因此当高速缓冲存储器38命中时,处理器32的效率可以显著提高,进而也使整个计算装置141的性能和效率得以提升。
82.如图上所示,处理器32、高速缓冲存储器38和存储器33封装在片上系统(soc)301中。设计人员可以对soc架构进行配置从而使得计算装置141中的各个元件之间的通信是安全的。
83.在一些实施例中,如图3所示,计算装置141还可以包括持久化存储器35。在一些实施例中,持久化存储器35可以工作在ad(app direct,应用程序直连)模式,在这种模式下,可以通过互连的方式将多个以持久化存储器作为内存的计算装置141连接形成内存资源池(也即是内存数据库,例如tair)。持久化存储器35例如是aep(apache pass)、optane(傲腾,即一种超高速内存)等。在一些实施例中,根据非一致性内存访问架构(即多处理器的计算机架构),计算装置141可以划分为一个或多个非一致性内存访问架构区域36,在非一致性内存访问架构区域36中每个处理器32配备有存储器33和持久化存储器35。除了访问自身配备的存储器33和持久化存储器35,每个处理器32还可以访问其他处理器的存储器33和持久化存储器35。在一些实施例中,在计算装置141启动时,会按照计算装置内的存储器33和持久化存储器35离处理器32的距离,将离处理器32最近的存储器33和持久化存储器35设置为本地内存(即在非一致性内存访问架构区域36中为处理器32配备的存储器33和持久化存储器35),将离处理器32较远的存储器33和持久化存储器35设置远程内存。由于本地内存距离处理器32比较近,访问速度快,所以可以将本地内存设置为优先访问的内存,以此可以提高处理器的数据访问效率。作为一种示例,图3中示出了非一致性内存访问架构区域0、非一致性内存访问架构区域1、非一致性内存访问架构区域2和非一致性内存访问架构区域3。以非一致性内存访问架构区域2为例,处理器2配备有存储器2和持久化存储器2,除了访问自身配备的存储器2和持久化存储器2,处理器2还可以访问存储器0、存储器1和存储器3以及持久化存储器0、持久化存储器1和持久化存储器3。处理器2优先访问存储器2和持久化存储器2。
84.在本例中,计算装置141还可以包括各种软件。在一些实施例中,如图3所示,在底
层硬件(即片上系统301)之上设置有操作系统306、容器支持307和容器组303。操作系统306例如为unix操作系统、linux操作系统等可用于服务器上的操作系统。容器支持307是支持其上运行的容器所需的各种底层实现。例如,对于docker而言,容器支持307需实现cgroup(controlgroups的缩写,控制组群)和namespace(命名空间)的两种技术,cgroup实现资源限额,namespace实现资源隔离。docker让开发者可以打包他们的应用及依赖的运行环境到一个可移植的容器中,然后发布到计算装置141上。如图3所示,基于容器支持307,可以运行多个容器组303,在容器组303的每个容器内实现运行环境和运行应用程序,通过容器技术实现各个应用程序之间的隔离和互不影响。应用程序可以包括且不限于用于控制或响应外部设备(例如,生物识别传感器、打印机、麦克风、扬声器、流阀、或其他i/o部件、传感器、致动器、或设备)的程序、用于各种i/o任务的程序、安全性程序、证实程序、各种计算模块、通信程序、通信支持协议、或其他程序、或其组合。作为一个示例,应用程序可以是控制或响应内存数据库(即持久化存储器35)的应用程序。
85.在一些实施例中,如图3所示,在底层硬件(即片上系统301)之上还设置有持久化存储器设备插件(device plugin)302和容器编排工具(例如,k8s)在计算装置141上的服务代理(kubelet)304。在实现上,持久化存储器设备插件302和服务代理(kubelet)304可以是软件的程序模块,也可以是硬件的,例如基于fpga或cpld等实现。在一些实施例中,持久化存储器设备插件302用于将与容器组所使用的处理器位于相同的非一致性内存访问架构区域的目标持久化存储器调度至容器组,这样,可以降低处理器访问容器组的持久化存储器的时延,从而提高处理器的数据访问效率。由于向容器组调度目标持久化存储器的具体过程将在下文中详述,故这里不再赘述。在一些实施例中,服务代理304可以接收并执行控制节点210发来的指令,管理容器组及容器组中的容器。服务代理304可以在控制节点210的应用程序接口服务器211上注册所在计算装置141的信息,定期向控制节点210汇报该计算装置141的资源使用情况,并监控计算装置141和容器的资源。在一些实施例中,如图3所示,在底层硬件(即片上系统301)之上还可以设置垃圾回收(gc)模块305。在实现上,垃圾回收(gc)模块305可以是软件的程序模块,也可以是硬件的,例如基于fpga或cpld等实现。在一些实施例中,垃圾回收(gc)模块305可以为每个容器建立垃圾回收进程,且在容器组被销毁的情况下,清空容器组的配置信息。
86.此外,计算装置141还可以包括存储设备37、显示设备(未示出)、音频设备(未示出)、输入/输出设备(未示出)等硬件设备。存储设备37例如是通过相应接口与总线31耦合的固态硬盘(solid state drives,ssd)、硬盘驱动器(hard disk drive,hdd)、光盘以及通用串行总线闪存(universal serial bus flash disk,u)盘等用于信息存取的设备。输入/输出设备例如可以为文字、音频和视频的输入/输出设备。显示设备例如经相应的显卡与总线31耦合,用于根据总线31提供的显示信号进行显示。计算装置141通常还包括通信设备(未示出),因此可以通过各种方式与网络或其他设备通信。通信设备例如可以包括一种或多种通信模块,作为示例,通信设备可以包括适用于特定的无线通信协议的无线通信模块。例如,通信设备可以包括wlan模块,用于实现符合电气和电子工程师协会(ieee)制定的802.11标准的wi-fitm通信;通信设备也可以包括wwan模块,用于实现符合蜂窝或其他无线广域协议的无线广域通信;通信设备还可以包括蓝牙模块等采用其它协议的通信模块,或其它自定义类型的通信模块;通信设备也可以是用于串行传输数据的端口。
87.当然,不同的计算机系统根据主板、操作系统和指令集架构的不同,其结构也可能有所变化。
88.根据本公开实施例的资源调度方法
89.根据本公开的一个实施例,提供了一种资源调度方法。该方法可以由持久化存储器设备插件302执行。在计算装置141为单台计算机的情况下,持久化存储器设备插件302是单台计算机的一部分,该资源调度方法由单台计算机的一部分执行。在计算装置141为多台计算机构成的集合的情况下,持久化存储器设备插件302是单台计算机,该资源调度方法由单台计算机执行。在计算装置141为云的形式的情况下,持久化存储器设备插件302是云端的一系列计算机或计算机上的部分,该资源调度方法由云端的一系列计算机或计算机上的部分执行。
90.如图4所示,根据本公开一个实施例的资源调度方法包括:步骤s410、获取针对容器组的资源调度请求,所述资源调度请求包括所述容器组所请求的持久化存储器的目标存储空间大小;步骤s420、获取部署所述容器组的工作节点上的至少一个持久化存储器的设备信息,所述持久化存储器包括多个持久化存储设备;步骤s430、基于预设分配条件和所述目标存储空间大小,确定在所述工作节点中为所述容器组分配目标持久化存储器的分配信息,所述目标持久化存储器与所述容器组所使用的处理器位于相同的非一致性内存访问架构区域;步骤s440、将所述分配信息存储至所述容器组的配置信息中,使得所述工作节点从所述配置信息中获取所述分配信息,基于所述分配信息将所述目标持久化存储器调度至所述容器组。
91.下面分别对以上步骤进行详细描述。
92.在步骤s410中,获取针对容器组的资源调度请求,所述资源调度请求包括所述容器组所请求的持久化存储器的目标存储空间大小。
93.在一些实施例中,工作节点(也可称为计算装置)上运行多个容器组,在容器组的每个容器内实现运行环境和运行应用程序,通过容器技术实现各个应用程序之间的隔离和互不影响。作为一个示例,容器中运行的应用程序可以是控制或响应内存数据库(即持久化存储器)的应用程序。在一些实施例中,通过运行这些部署在工作节点上的容器实例,可以面向终端用户提供持久化存储器中数据的查看、删除、修改、增加等的相应计算。因此,客户端可以向控制节点发送针对容器组的资源调度请求,例如是持久化存储器调度请求。控制节点的应用程序接口服务器可以将资源调度请求发送给工作节点的服务代理,而服务代理可以将该资源调度请求发送给工作节点的持久化存储器设备插件,使得持久化存储器设备插件可以获取容器组所请求的持久化存储器的目标存储空间大小。
94.在步骤s420中,获取部署所述容器组的工作节点上的至少一个持久化存储器的设备信息,所述持久化存储器包括多个持久化存储设备。
95.在一些实施例中,当工作节点上的持久化存储器设备插件启动时,可以判断工作节点上是否设置有持久化存储器,如果否,则可以向控制节点上报该工作节点不支持持久化存储器(例如,可以通过服务代理向控制节点的应用程序接口服务器上报该工作节点不支持持久化存储器的消息),如果是,则可以读取工作节点上的持久化存储器的个数,以及每个持久化存储器的存储空间大小和所属于的非一致性内存访问架构区域。接着,持久化存储器设备插件可以将工作节点上的至少一个持久化存储器在逻辑上划分为多个持久化
存储设备,且可以为每个持久化存储设备分配设备标识(id),每个持久化存储设备具有一定的存储空间大小。在一些实施例中,该至少一个持久化存储器在逻辑上划分为存储空间大小相等的多个持久化存储设备。其中持久化存储器的设备信息可以包括持久化存储设备的设备名称(即可以是持久化存储设备所对应的持久化存储器的器件标识)、设备标识和其所属于的非一致性内存访问架构区域标识。在一些实施例中,持久化存储器设备插件还可以存储持久化存储设备的设备标识和持久化存储器之间的一一对应关系。持久化存储设备所属于的非一致性内存访问架构区域标识即是该存储持久化存储设备所对应的持久化存储器所属于的非一致性内存访问架构区域标识。例如,以持久化存储器0和持久化存储器1为例,持久化存储器0位于非一致性内存访问架构区域0,持久化存储器1位于非一致性内存访问架构区域1,持久化存储器0和持久化存储器1的存储空间大小均为100g,可以将持久化存储器0和持久化存储器1在逻辑上划分为200个持久化存储设备,每个持久化存储设备的存储空间大小为1g,200个持久化存储设备具有唯一的设备标识(id),其中100个持久化存储设备隶属于持久化存储器0,另外的100个持久化存储设备隶属于持久化存储器1。持久化存储器0和持久化存储器2的设备信息可以表示为:
[0096][0097]
在一些实施例中,在获取到部署容器组的工作节点上的至少一个持久化存储器的设备信息之后,工作节点上的持久化存储器设备插件还可以将该至少一个持久化存储器的设备信息注册到控制节点(例如,通过服务代理将该至少一个持久化存储器的设备信息注册到控制节点的应用程序接口服务器)。
[0098]
在步骤s430中,基于预设分配条件和所述目标存储空间大小,确定在所述工作节点中为所述容器组分配目标持久化存储器的分配信息,所述目标持久化存储器与所述容器组所使用的处理器位于相同的非一致性内存访问架构区域。
[0099]
在一些实施例中,预设分配条件可以包括目标持久化存储器的空闲存储空间大小不小于目标存储空间大小;目标持久化存储器与容器组所使用的处理器具有相同的非一致性内存访问架构区域标识。基于预设分配条件和目标存储空间大小,持久化存储器设备插件可以确定目标持久化存储器和目标持久化存储器的分配信息。分配信息可以包括将目标
持久化存储器分配至容器组的相关信息,例如,目标持久化存储器的存储目录和容器组的存储目录。在一些实施例中,持久化存储器设备插件可以根据目标存储空间大小和持久化存储设备的存储空间大小,确定请求的持久化存储设备的目标个数。例如,目标存储空间大小为20g,每个持久化存储设备的存储空间大小为1g,则请求的持久化存储设备的目标个数为20。接着,持久化存储器设备插件可以获取目标个数的与容器组所使用的处理器具有相同的非一致性内存访问架构区域标识的第一持久化存储设备。在一些实施例中,容器编排工具(例如,k8s)在计算装置141上具有拓扑管理(topology management)功能,在开启拓扑管理功能的情况下,持久化存储器设备插件可以获取目标个数的与容器组所使用的处理器具有相同的非一致性内存访问架构区域标识的且位于同一个持久化存储器的第一持久化存储设备。例如,容器组使用处理器2,处理器2的非一致性内存访问架构区域标识为numa2,则目标个数的第一持久化存储设备的非一致性内存访问架构区域标识也为numa2且位于持久化存储器2。接着,在一些实施例中,持久化存储器设备插件可以基于持久化存储设备的设备标识和持久化存储器之间的一一对应关系,判断目标个数的第一持久化存储设备是否位于同一个持久化存储器,在目标个数的第一持久化存储设备位于同一个持久化存储器时,将该持久化存储器作为目标持久化存储器,而在目标个数的第一持久化存储设备并未位于同一个持久化存储器时,可以开启容器编排工具(例如,k8s)在计算装置141上的拓扑管理功能,以便再次获取目标持久化存储器的分配信息。
[0100]
在步骤s440中,将所述分配信息存储至所述容器组的配置信息中,使得所述工作节点从所述配置信息中获取所述分配信息,基于所述分配信息将所述目标持久化存储器调度至所述容器组。
[0101]
在一些实施例中,在部署容器组的工作节点上可以设置有文件系统,目标持久化存储器的分配信息和容器组的配置信息可以存储在文件系统中。可以将目标持久化存储器的分配信息的存储文件挂载在容器组的配置信息的存储文件中。这样,根据目标持久化存储器的分配信息的存储文件的存储路径,工作节点可以从容器组的配置信息中获取目标持久化存储器的分配信息。在一些实施例中,控制节点的调度器可以根据目标持久化存储器的分配信息,将目标持久化存储器调度至容器组,即可以将目标持久化存储器的存储目录挂载在容器组的存储目录下。基于此,持久化存储器设备插件将与容器组所使用的处理器位于相同的非一致性内存访问架构区域的目标持久化存储器调度至容器组,这样,处理器可以访问属于同一个非一致性内存访问架构区域的目标持久化存储器,降低处理器访问容器组的持久化存储器的时延,从而提高处理器的数据访问效率。
[0102]
图5是根据本公开一个实施例的工作节点和控制节点的交互图。在一些实施例中,如图5所示,工作节点220和控制节点210的交互过程具体包括以下步骤:
[0103]
在步骤s501中,利用工作节点220中持久化存储器设备插件302获取部署容器组的工作节点上的至少一个持久化存储器的设备信息,持久化存储器包括多个持久化存储设备。
[0104]
在步骤s502中,利用工作节点220中持久化存储器设备插件302将部署容器组的工作节点上的至少一个持久化存储器的设备信息注册到服务代理304,接着,利用服务代理304将部署容器组的工作节点上的至少一个持久化存储器的设备信息注册到控制节点210的应用程序接口服务器211。
[0105]
在步骤s503中,利用工作节点220中持久化存储器设备插件302监听针对容器组的资源调度请求。
[0106]
在步骤s504中,客户端向控制节点210的应用程序接口服务器211发送针对容器组的资源调度请求,资源调度请求包括所请求的持久化存储器的目标存储空间大小。接着,可以通过应用程序接口服务器211将针对容器组的资源调度请求发送给服务代理304,接着由服务代理304将针对容器组的资源调度请求发送给持久化存储器设备插件302。
[0107]
在步骤s505中,利用持久化存储器设备插件302基于预设分配条件和目标存储空间大小,确定在工作节点中为容器组分配的目标持久化存储器的分配信息,目标持久化存储器与容器组所使用的处理器位于相同的非一致性内存访问架构区域。
[0108]
在步骤s506中,利用持久化存储器设备插件302将分配信息存储至容器组的配置信息中,使得工作节点从配置信息中获取所述分配信息。
[0109]
在步骤s507中,控制节点210的调度器212基于分配信息将目标持久化存储器调度至容器组。
[0110]
由于将与容器组的处理器属于同一个非一致性内存访问架构区域的目标持久化存储器调度至容器组的步骤已经在上述装置实施例和方法实施例中详述,故这里就不再赘述。
[0111]
图6是根据本公开一个实施例的资源调度装置的结构图。如图6所示,资源调度装置包括:调度请求获取单元610、设备信息获取单元620、分配信息确定单元630和分配信息存储单元640。
[0112]
调度请求获取单610,用于获取针对容器组的资源调度请求,所述资源调度请求包括所述容器组所请求的持久化存储器的目标存储空间大小;设备信息获取单元620,用于获取部署所述容器组的工作节点上的至少一个持久化存储器的设备信息,所述持久化存储器包括多个持久化存储设备;分配信息确定单元630,用于基于预设分配条件和所述目标存储空间大小,确定在所述工作节点中为所述容器组分配目标持久化存储器的分配信息,所述目标持久化存储器与所述容器组所使用的处理器位于相同的非一致性内存访问架构区域;分配信息存储单元640,用于将所述分配信息存储至所述容器组的配置信息中,使得所述工作节点从所述配置信息中获取所述分配信息,基于所述分配信息将所述目标持久化存储器调度至所述容器组。
[0113]
由于将与容器组的处理器属于同一个非一致性内存访问架构区域的目标持久化存储器调度至容器组的步骤已经在上述装置实施例和方法实施例中详述,故这里就不再赘述。
[0114]
本公开实施例的商业价值
[0115]
本公开实施例提供的计算装置中,将与供容器组使用的处理器同属于一个非一致性内存访问架构区域的目标持久化存储器分配给容器组使用,这样,供容器组使用的处理器可以访问同属于一个非一致性内存访问架构区域的持久化存储器,这降低了处理器访问持久化存储器的时延,提高了处理器的数据访问效率。在此场景下,通过提高处理器的数据访问效率,从而降低计算装置的数据计算成本,进而降低整个数据中心的运行成本。本公开实施例使整个数据中心的运行成本降低,因而具备了良好的商业价值和经济价值。
[0116]
本领域的技术人员能够理解,本公开可以实现为系统、方法和计算机程序产品。因
此,本公开可以具体实现为以下形式,即完全的硬件、完全的软件(包括固件、驻留软件、微代码),还可以实现为软件和硬件结合的形式。此外,在一些实施例中,本公开还可以实现为一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0117]
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如但不限于为电、磁、光、电磁、红外线或半导体的系统、装置或器件,或其他任意以上的组合。计算机可读存储介质的更具体的例子包括:具体一个或多个导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或者闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器、磁存储器或者上述任意合适的组合。在本文中,计算机可读的存储介质可以是任意包含或存储程序的有形介质,该程序可以被处理单元、装置或者器件使用,或者与其结合使用。
[0118]
计算机可读信号介质可以包括在基带中或者作为截波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或者其他任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质之外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令系统、装置或器件使用或者与其结合使用的程序。
[0119]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,以及上述任意合适的组合。
[0120]
可以以一种或者多种程序设计语言或者组合来编写用于执行本公开实施例的计算机程序代码。所述程序设计语言包括面向对象的程序设计语言,例如java、c++,还可以包括常规的过程式程序设计语言,例如c。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0121]
以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1