一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种虚拟化的算力提供方法及系统与流程

2022-10-13 10:22:07 来源:中国专利 TAG:


1.本技术涉及到互联网技术应用领域,具体而言,涉及一种虚拟化的算力提供方法及系统。


背景技术:

2.人工智能作为一个新兴的领域,近年来得到快速的发展,在学术界和工业界都涌现出非常多的新兴算法和应用。人工智能的三大要素是算法、算力和数据。其中算力是实现算法的最终载体。图1是现有技术中ai应用程序到硬件的层级关系的示意图,如图1所示为ai应用程序(算法)到硬件(算力)的层级关系,由于底层硬件的不同,其上的每一层都有不同的实现,目前并没有形成一个统一的协议来规范从上到下的软件栈,因而用户使用、执行算法时,需要适配各种不同的软硬件才能使能并取得满足数据处理需求的使用效果。
3.针对目前相关技术中由于软硬件不同,且缺乏统一协议对软件栈的规范,导致适用性差的问题,目前尚未得到有效的解决。


技术实现要素:

4.本技术实施例提供了一种虚拟化的算力提供方法及系统,以至少解决现有技术中由于软硬件不同,且缺乏统一协议对软件栈的规范,导致适用性差的问题。
5.根据本技术的一个方面,提供了一种虚拟化的算力提供方法,包括:获取集群管控请求,其中,集群管控请求包括虚拟算力设备的部署请求;根据部署请求,从计算节点的内核空间获取虚拟算力设备,并在计算节点的用户空间生成与虚拟算力设备对应的服务程序;将虚拟算力设备挂载至用户容器;通过虚拟算力设备和服务程序,在资源集合中为用户容器提供的目标应用调度物理资源,其中,物理资源与虚拟算力设备形成有映射关系;通过虚拟算力设备和服务程序,获取目标应用的运行结果,以及将运行结果发送给用户容器。
6.可选的,该方法还包括:根据部署请求在内核空间创建虚拟算力设备。
7.可选的,虚拟算力设备提供有统一的数据接口;其中,通过虚拟算力设备和服务程序,在资源集合中为用户容器提供的目标应用调度物理资源包括:通过虚拟算力设备提供的数据接口,获取用户容器提供的目标应用,其中,目标应用包括用户数据和用户数据的计算指令;通过共享内存将目标应用从虚拟算力设备发送给服务程序;通过服务程序将目标应用发送给虚拟算力设备对应的物理资源。
8.进一步地,可选的,物理资源为资源集合异构物理资源或同构物理资源,资源集合与服务程序通过连接池连接,其中,连接池中的协议包括:本地传输协议和网络传输协议。
9.可选的,本地传输协议包括:pcie;网络传输协议包括以下至少之一:rdma、tcp。
10.可选的,虚拟算力设备提供有统一的管控接口;该方法还包括:通过虚拟算力设备的管控接口获取用户容器提供的管控请求,其中,管控请求包括以下至少之一:算力查询请求、算力配置请求、传输通道属性配置请求、算力迁移请求、虚拟算力设备的状态查询请求、虚拟算力设备的状态配置请求;通过服务程序处理管控请求。
11.进一步地,可选的,在管控请求为算力配置请求的情况下,通过服务程序处理算力配置请求包括:通过服务程序将算力配置请求发送给物理资源管理节点,以供物理资源管理节点为虚拟算力设备和物理资源建立映射关系。
12.可选的,集群管控请求还包括以下至少之一:虚拟算力设备的运行状态查询请求、虚拟算力设备的删除请求;集群管控请求通过设备插件从集群管控中心获取。
13.可选的,集群管控请求由设备管控中心管理,该方法还包括:检测和存储服务程序和/或设备管控中心的状态,并在服务程序和/或设备管控中心的状态异常的情况下,根据存储的服务程序和/或设备管控中心的状态进行系统恢复。
14.可选的,虚拟算力设备以块设备、字符设备或网络设备的形式模拟。
15.根据本技术的另一个方面,提供了一种虚拟化的算力提供系统,包括:设备管控中心,用于获取集群管控请求,其中,集群管控请求包括虚拟算力设备的部署请求;设备管控中心,还用于根据部署请求,从计算节点的内核空间获取虚拟算力设备,并在计算节点的用户空间生成与虚拟算力设备对应的服务程序;设备管控中心,还用于将虚拟算力设备挂载至用户容器;虚拟算力设备和服务程序,用于在资源集合中为用户容器提供的目标应用调度物理资源,其中,物理资源与虚拟算力设备形成有映射关系;虚拟算力设备和服务程序,还用于获取目标应用的运行结果,以及将运行结果发送给用户容器。
16.可选的,物理资源为资源集合提供的异构物理资源或同构物理资源,资源集合与服务程序通过连接池连接,其中,连接池中的协议包括:本地传输协议和网络传输协议;本地传输协议包括:pcie;网络传输协议包括以下至少之一:rdma、tcp。
17.可选的,该系统还包括:检测中心,检测中心用于检测服务程序和/或设备管控中心的状态。
18.进一步地,可选的,该系统还包括:设备管理文件系统,用于存储服务程序和/或设备管控中心的状态,以在服务程序和/或设备管控中心的状态异常的情况下,根据存储的服务程序和/或设备管控中心的状态进行系统恢复。
19.在本技术实施例中,通过获取集群管控请求,其中,集群管控请求包括虚拟算力设备的部署请求;根据部署请求,从计算节点的内核空间获取虚拟算力设备,并在计算节点的用户空间生成与虚拟算力设备对应的服务程序;将虚拟算力设备挂载至用户容器;通过虚拟算力设备和服务程序,在资源集合中为用户容器提供的目标应用调度物理资源,其中,物理资源与虚拟算力设备形成有映射关系;通过虚拟算力设备和服务程序,获取目标应用的运行结果,以及将运行结果发送给用户容器。通过本技术解决现有技术中由于软硬件不同,且缺乏统一协议对软件栈的规范,导致适用性差的问题,达到适配多场景的技术效果。
附图说明
20.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
21.图1是根据本技术实施例一的一种虚拟化的算力提供系统的示意图;
22.图2是根据本技术实施例一的一种虚拟化的算力提供系统中底层资源与虚拟算力设备交互的示意图;
23.图3是根据本技术实施例一的一种虚拟化的算力提供系统中虚拟算力设备的系统
框架的示意图;
24.图4是根据本技术实施例二的一种虚拟化的算力提供方法的流程示意图;
25.图5是根据本技术实施例二的一种虚拟化的算力提供方法中创建虚拟设备与启动服务线程/进程的示意图;
26.图6是根据本技术实施例二的一种虚拟化的算力提供方法中基于虚拟设备的算力配置和调用流程的示意图;
27.图7是根据本技术实施例二的一种虚拟化的算力提供方法中设备管控与分配流程的示意图。
具体实施方式
28.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
29.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
30.本技术实施例涉及的技术名词:
31.vxpu:virtual xpu虚拟xpu设备,x代表不同形态的计算芯片,如g代表gpu,n代表npu,t代表tpu等,这里用x做统称;
32.算力:计算芯片的运算能力表示单位,一般以ops表示,ai领域常用flops表征一个芯片的计算能力;
33.cn:computingnode计算节点,一般位于大型服务器系统的前端;
34.hn:heterogeneous node异构资源节点,一般位于大型服务器系统的后端;
35.mn:managementnode管理节点;
36.k8s:kubernetes,又称k8s(以下使用),是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化;
37.容器:容器是轻量级应用代码包,它还包含依赖项,例如编程语言运行时的特定版本和运行软件服务所需的库;从容器的实现方式上来讲分为普通容器和安全容器,和普通容器相比,安全容器最主要的区别是每个容器(准确地说是pod)都运行在一个单独的微型虚拟机中,拥有独立的操作系统内核,以及虚拟化层的安全隔离。因为云容器实例采用的是共享多组集群,因此容器的安全隔离比用户独立拥有私有kubernetes集群有更严格的要求。通过安全容器,不同租户之间的容器之间,内核、计算资源、存储和网络都是隔离开的。保护了用户的资源和数据不被其他用户抢占和窃取。本技术关注的是普通容器;
38.pod:k8s调度最小单元,由一个或者多个容器组成;
39.io:input/ouput输入输出;
40.entry:容器的入口,可以是脚本,app等可执行体;
41.块设备:linux系统三种基本设备形态之一;
42.rdma:remote dma,全称远程直接内存访问,就是为了解决网络传输中服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入,允许高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中
component interconnect express,高速串行计算机扩展总线标准)拓扑的方式进行连接。即,本技术实施例中的通过预设通信服务与计算终端进行连接,其中,预设通信服务包括:互联网通信协议和/或设备接口通信协议,在本技术实施例中,互联网通信协议可以为tcp和rdma,设备接口通信协议可以为pcie。
55.可选的,本技术实施例提供的虚拟化的算力提供系统还包括:检测中心,检测中心用于检测服务程序和/或设备管控中心的状态。
56.进一步地,可选的,本技术实施例提供的虚拟化的算力提供系统还包括:设备管理文件系统,用于存储服务程序和/或设备管控中心的状态,以在服务程序和/或设备管控中心的状态异常的情况下,根据存储的服务程序和/或设备管控中心的状态进行系统恢复。
57.具体的,图3是根据本技术实施例一的一种虚拟化的算力提供系统中虚拟算力设备的系统框架的示意图,服务端16在实现虚拟算力设备的过程中内部架构如图3所示,通过k8s管控节点服务接收管控端12依据用户请求转换的资源形式,通过device plugin设备插件转发至虚拟设备管控与服务容器,其中,在本技术实施例中容器运行环境为虚拟设备管控与服务容器,在管控功能中,容器入口,用于负责启动设备管控中心和外部检测;外部检测,用于负责检测整个设备管控中心,当异常出现时上报到集群检测中心,并根据异常等级进行相应处理,比如重新拉起设备管控中心等;设备管控中心,用于对接device plugin设备插件,处理plugin的请求,比如创建新的虚拟设备,查询设备的运行状态,删除设备等;此外还负责拉起内部检测的功能;内部检测,用于检测所有设备的后端服务程序(进程或者线程),当异常出现时上报给外部检测,并根据异常等级进行相应处理,比如重新拉起设备后端服务;设备管理文件,用于负责存储设备及服务的运行状态,当异常出现时,比如core dump,程序可以根据设备管理文件对系统进行恢复。
58.需要说明的是,本技术实施例中的虚拟设备管控与服务容器以spdk(storage performance development kit,存储性能开发套件)的形式实现。
59.如图3所示,在设备io面,服务端16还包括:设备后端服务,在实现虚拟设备功能的过程中,虚拟设备由两部分组成,一部分在内核驱动,负责接收用户的请求和数据,是生产者;另一部分即设备后端服务,在用户态,负责处理用户的请求,转发数据等,是消费者;
60.内核驱动,用于创建虚拟设备,以块设备(即,本技术实施例中的算力设备,在本技术实施例中以块设备为例进行说明,此外还可以以字符设备的形式模拟虚拟算力设备,或使用标准形态的设备(比如virtio设备)模拟虚拟算力设备)的形态,通过一块内存共享区,实现数据和命令的交互与处理等。
61.具体的,设备后端服务包含:管控处理程序,用于处理来自设备的算力查询、配置等请求;数据服务程序,用于负责在数据处理任务和通信服务之间进行数据的传输。
62.内核驱动包括:数据及其队列管理:通过内存映射的形式与设备后端服务之间进行内容交互;管控命令:主要是接收数据处理任务侧的算力配置查询等请求,并将请求通过netlink发送给后端服务程序。
63.此外,图3中还包括用户容器,其中,用户容器包括:算力配置/查询功能、推理/训练功能以及虚拟算例设备;用户容器通过与内核驱动交互,将内核驱动创建的虚拟设备挂载至对应的用户容器,通过设备挂载的形式,可以屏蔽硬件传输网络,用户容器只需要关注算力的配置以及数据的传输即可,不需要关注网络配置;用户容器访问不需要特权模式。
64.实施例2
65.根据本技术的一个方面,提供了一种虚拟化的算力提供方法,图4是根据本技术实施例二的一种虚拟化的算力提供方法的流程示意图,如图4所示,本技术实施例提供的虚拟化的算力提供方法包括:
66.步骤s402,获取集群管控请求,其中,集群管控请求包括虚拟算力设备的部署请求;
67.本技术上述步骤s402中,应用于实施例1中的虚拟化的算力提供系统,在服务端侧,通过k8s接收集群管控请求,该集群管控请求可以为至少包含ai应用程序(算法)的应用实例请求,在k8s接收该集群管控请求后,解析得到对应的虚拟资源和后端实体资源,服务端基于k8s解析集群管控请求执行创建虚拟设备的服务线程/进程/程序,即,步骤s404。
68.步骤s404,根据部署请求,从计算节点的内核空间获取虚拟算力设备,并在计算节点的用户空间生成与虚拟算力设备对应的服务程序;
69.可选的,本技术实施例提供的虚拟化的算力提供方法还包括:根据部署请求在内核空间创建虚拟算力设备。
70.具体的,如实施例1中图1所示的系统中,k8s管控节点服务接收管控端依据部署请求转换的资源形式,通过device plugin设备插件转发至虚拟设备管控与服务容器,并通过虚拟设备管控与服务容器解析部署请求创建虚拟设备,在内存驱动中以算力设备的形态,通过内存共享区,实现数据和命令的交互和处理,创建虚拟算力设备。
71.图5是根据本技术实施例二的一种虚拟化的算力提供方法中创建虚拟设备与启动服务线程/进程的示意图,如图5所示,根据部署请求在内核空间创建虚拟算力设备和用户容器可以为:
72.s1,启动设备管控中心程序/spdkapp;
73.s2,是否为创建虚拟设备的用户请求?
74.s3,发送请求到计算节点的内核空间驱动,创建vring虚拟设备;
75.s4,注册用户账号admin管控poller到spdkreactor;
76.s5,注册io处理poller到spdkreactor;
77.s6,更新设备列表。
78.步骤s406,将虚拟算力设备挂载至用户容器;
79.具体的,如实施例1中的图3所示,在cn端,内存驱动中在创建虚拟设备后,对应的用户容器中映射生成虚拟算例设备,从而通过虚拟设备与虚拟算力设备的交互实现将虚拟算力设备挂载至用户容器。
80.步骤s408,通过虚拟算力设备和服务程序,在资源集合中为用户容器提供的目标应用调度物理资源,其中,物理资源与虚拟算力设备形成有映射关系;
81.具体的,基于步骤s406中的用户容器,通过虚拟算力设备和服务程序为目标应用调度对应的物理资源。
82.步骤s410,通过虚拟算力设备和服务程序,获取目标应用的运行结果,以及将运行结果发送给用户容器。
83.具体的,通过虚拟算力设备和服务程序与用户容器的交互,在目标应用完成后,将运行结果返回用户容器。
84.图6是根据本技术实施例二的一种使用虚拟算力设备的方法中设备管控与分配流程的示意图,结合步骤s402-步骤s410,本技术实施例提供的虚拟化的算力提供方法可以为:
85.s1,k8s请求资源;
86.s2,device plugin发送请求给虚拟设备管控进程;
87.s3,虚拟设备管控进程创建虚拟设备;
88.s4,虚拟设备管控进程创建虚拟设备的服务线程/进程;
89.s5,虚拟设备管控进程返回device plugin/k8s;
90.s6,k8s挂载虚拟设备到用户容器;
91.s7,k8s挂载虚拟设备至用户容器;
92.s8,用户容器使用虚拟设备。
93.可选的,虚拟算力设备提供有统一的数据接口;其中,通过虚拟算力设备和服务程序,在资源集合中为用户容器提供的目标应用调度物理资源包括:通过虚拟算力设备提供的数据接口,获取用户容器提供的目标应用,其中,目标应用包括用户数据和用户数据的计算指令;通过共享内存将目标应用从虚拟算力设备发送给服务程序;通过服务程序将目标应用发送给虚拟算力设备对应的物理资源。
94.其中,本技术实施例提供的虚拟化的算力提供方法可以应用于云应用场景中,算力需求实例可以为实现各类场景和各类需求的实例,例如,用户通过用户终端发送的数据查询请求,在云端中,依据该数据查询请求执行数据查询,并将数据查询结果返回至用户终端,整个数据查询的过程可以为算力需求实例。
95.具体的,上述通过虚拟算力设备和服务程序,将用户容器提供的算力需求实例发送给与虚拟算力设备对应的物理资源包括:如实施例1中的图3所示,在资源集合中为用户容器提供的目标应用调度物理资源包括:通过虚拟算力设备提供的数据接口,获取用户容器提供的目标应用,其中,目标应用包括用户数据和用户数据的计算指令;通过共享内存将目标应用从虚拟算力设备发送给服务程序;通过服务程序将目标应用发送给虚拟算力设备对应的物理资源。
96.进一步地,可选的,物理资源为资源集合异构物理资源或同构物理资源,资源集合与服务程序通过连接池连接,其中,连接池中的协议包括:本地传输协议和网络传输协议。
97.可选的,本地传输协议包括:pcie;网络传输协议包括以下至少之一:rdma、tcp。
98.具体的,当虚拟资源和后端实体资源申请完成后,两者之间建立映射关系,并通过rdma/tcp/pcie等通信方式或协议在虚拟和实体设备之间进行管控与数据的交互。如实施例1中的图2所示,在本技术实施例中池化的目的是为了提高资源利用率,通过把底层资源通过网络或其他传输手段统一做管理,由一个或者几个管控中心来调度和分配资源。目前的网络协议包括tcp(transmission control protocol,传输控制协议)和rdma(remote direct memoryaccess,远程直接数据存取)。而本地计算设备大多通过pcie(peripheral component interconnect express,高速串行计算机扩展总线标准)拓扑的方式进行连接。即,本技术实施例中的通过预设通信服务与计算终端进行连接,其中,预设通信服务包括:互联网通信协议和/或设备接口通信协议,在本技术实施例中,互联网通信协议可以为tcp和rdma,设备接口通信协议可以为pcie。
99.可选的,虚拟算力设备提供有统一的管控接口;本技术实施例提供的虚拟化的算力提供方法还包括:通过虚拟算力设备的管控接口获取用户容器提供的管控请求,其中,管控请求包括以下至少之一:算力查询请求、算力配置请求、传输通道属性配置请求、算力迁移请求、虚拟算力设备的状态查询请求、虚拟算力设备的状态配置请求;通过服务程序处理管控请求。
100.进一步地,可选的,在管控请求为算力配置请求的情况下,通过服务程序处理算力配置请求包括:通过服务程序将算力配置请求发送给物理资源管理节点,以供物理资源管理节点为虚拟算力设备和物理资源建立映射关系。
101.具体的,图7是根据本技术实施例二的一种虚拟化的算力提供方法中基于虚拟设备的算力配置和调用流程的示意图,如图7所示,本技术实施例基于虚拟设备的算力配置和调用流程可以为:
102.s1,用户启动程序;
103.s2,用户准备计算资源、数据等;
104.s3,用户调用算力操作接口;
105.s4,算力操作接口调用,虚拟设备的管控接口进行算力属性配置;
106.s5,算力操作接口调用,虚拟设备的管控接口进行传输通道属性配置;
107.s6,算力操作接口调用,虚拟设备的数据通路接口进行数据传输;
108.s7,算力操作接口调用,虚拟设备的数据通路接口获取运行结果。
109.可选的,集群管控请求还包括以下至少之一:虚拟算力设备的运行状态查询请求、虚拟算力设备的删除请求;集群管控请求通过设备插件从集群管控中心获取。
110.可选的,集群管控请求由设备管控中心管理,本技术实施例提供的虚拟化的算力提供方法还包括:检测和存储服务程序和/或设备管控中心的状态,并在服务程序和/或设备管控中心的状态异常的情况下,根据存储的服务程序和/或设备管控中心的状态进行系统恢复。
111.可选的,虚拟算力设备以块设备、字符设备或网络设备的形式模拟。
112.本技术实施例中的虚拟算力设备,在本技术实施例中以块设备为例进行说明,此外还可以以字符设备的形式模拟虚拟算力设备,或使用标准形态的设备(比如virtio设备)模拟虚拟算力设备,通过一块内存共享区,实现数据和命令的交互与处理等。
113.此外,在本技术实施例提供的虚拟化的算力提供方法中虚拟算力设备接口定义如下:
114.虚拟算力操作接口
115.算力操作(伪代码):
116.1.获取算力设备数量
117.vxpu_get_xpu_count(fd,&count);
118.2.获取算力属性
119.vxpu_get_feature(fd,vxpu_attr,id);
120.3.设置算力属性
121.vxpu_set_feature(fd,vxpu_attr,id);
122.管控操作:
123.1.初始化vxpu设备
124.vxpu_init(vxpu_name)
125.2.释放vxpu设备
126.vxpu_deinit(vxpu_name)
127.3.为vxpu申请内存
128.buf=vxpu_malloc(size)
129.4.释放vxpu申请的内存
130.vxpu_free(buf)
131.读写操作(同步):
132.1.打开vxpu设备
133.fd=vxpu_open(“/dev/vxpu”,flags,mode)
134.2.从vxpu设备读取数据
135.vxpu_read(fd,buf,count,offset,direct)
136.3.写数据到vxpu设备
137.vxpu_write(fd,buf,count,offset,direct)
138.4.vxpu管控操作
139.vxpu_admin(fd,opcode,flag,buf,size,direction,opaque)
140.5.关闭vxpu设备
141.vxpu_close(fd)
142.读写操作(异步):
143.1.配置异步context
144.vxpu_io_setup(unsignednr_events,aio_context_t*ctx_idp);
145.2.提交请求
146.vxpu_io_submit(aio_context_t ctx_id,long nr,struct iocb**iocbpp);
147.3.获取结果
148.vxpu_io_getevents(aio_context_t ctx_id,long min_nr,long nr,
149.struct io_event*events,struct timespec*timeout);
150.4.销毁context
151.vxpu_io_destroy(aio_context_t ctx_id);
152.5.取消请求
153.vxpu_io_cancel(aio_context_t ctx_id,struct iocb*iocb,
154.struct io_event*result);
155.本技术实施例提供的虚拟化的算力提供方法中实现的虚拟算力设备可以适用于天然适配云原生场景,虚拟设备服务以容器的形式运行,并通过设备插件与k8s等集群管控中心进行交互;该虚拟设备可以在任意时刻进行创建和查询,随取随用;并且理论上单节点可以支持上千个实例,以共享内存读写各32mb为例(虚拟设备大小),对于512gb内存的系统,理论上可以提供512gb/2/64mb=4096个实例,通过设备挂载的形式,可以屏蔽硬件传输网络,用户容器只需要关注算力的配置以及数据的传输即可,不需要关注网络配置;用户容器访问不需要特权模式;后端服务既可以对接本地物理计算资源,也可以对接网络传输服
务进行池化,适配多场景。
156.在本技术实施例中,通过获取集群管控请求,其中,集群管控请求包括虚拟算力设备的部署请求;根据部署请求,从计算节点的内核空间获取虚拟算力设备,并在计算节点的用户空间生成与虚拟算力设备对应的服务程序;将虚拟算力设备挂载至用户容器;通过虚拟算力设备和服务程序,在资源集合中为用户容器提供的目标应用调度物理资源,其中,物理资源与虚拟算力设备形成有映射关系;通过虚拟算力设备和服务程序,获取目标应用的运行结果,以及将运行结果发送给用户容器。通过本技术解决现有技术中由于软硬件不同,且缺乏统一协议对软件栈的规范,导致适用性差的问题,达到适配多场景的技术效果。
157.实施例3
158.根据本技术的另一个方面,还提供了一种电子设备,包括存储器和处理器;其中,存储器用于存储一条或多条计算机指令,其中,一条或多条计算机指令被处理器执行以实现上述实施例2中的方法步骤。
159.其中,本技术的实施例可以提供一种电子设备,该电子设备可以是电子设备群中的任意一个电子设备设备。可选地,在本实施例中,上述电子设备也可以替换为移动终端等终端设备。
160.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
161.可选地,该电子设备可以包括:一个或多个处理器以及存储器。
162.其中,存储器可用于存储软件程序以及模块,如本技术实施例中的负载均衡的方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述负载均衡的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
163.处理器可以通过传输模块调用存储器存储的信息及应用程序,以执行下述步骤:获取集群管控请求,其中,集群管控请求包括虚拟算力设备的部署请求;根据部署请求,从计算节点的内核空间获取虚拟算力设备,并在计算节点的用户空间生成与虚拟算力设备对应的服务程序;将虚拟算力设备挂载至用户容器;通过虚拟算力设备和服务程序,在资源集合中为用户容器提供的目标应用调度物理资源,其中,物理资源与虚拟算力设备形成有映射关系;通过虚拟算力设备和服务程序,获取目标应用的运行结果,以及将运行结果发送给用户容器。
164.可选地,上述处理器还可以执行如下步骤的程序代码:根据部署请求在内核空间创建虚拟算力设备。
165.可选地,上述处理器还可以执行如下步骤的程序代码:虚拟算力设备提供有统一的数据接口;其中,在资源集合中为用户容器提供的目标应用调度物理资源包括:通过虚拟算力设备提供的数据接口,获取用户容器提供的目标应用,其中,目标应用包括用户数据和用户数据的计算指令;通过共享内存将目标应用从虚拟算力设备发送给服务程序;通过服务程序将目标应用发送给虚拟算力设备对应的物理资源。
166.进一步地,可选地,上述处理器还可以执行如下步骤的程序代码:物理资源为资源集合异构物理资源或同构物理资源,资源集合与服务程序通过连接池连接,其中,连接池中的协议包括:本地传输协议和网络传输协议。
167.可选地,上述处理器还可以执行如下步骤的程序代码:本地传输协议包括:pcie;网络传输协议包括以下至少之一:rdma、tcp。
168.可选地,上述处理器还可以执行如下步骤的程序代码:虚拟算力设备提供有统一的管控接口;通过虚拟算力设备的管控接口获取用户容器提供的管控请求,其中,管控请求包括以下至少之一:算力查询请求、算力配置请求、传输通道属性配置请求、算力迁移请求、虚拟算力设备的状态查询请求、虚拟算力设备的状态配置请求;通过服务程序处理管控请求。
169.进一步地,可选地,上述处理器还可以执行如下步骤的程序代码:在管控请求为算力配置请求的情况下,通过服务程序处理算力配置请求包括:通过服务程序将算力配置请求发送给物理资源管理节点,以供物理资源管理节点为虚拟算力设备和物理资源建立映射关系。
170.可选地,上述处理器还可以执行如下步骤的程序代码:集群管控请求还包括以下至少之一:虚拟算力设备的运行状态查询请求、虚拟算力设备的删除请求;集群管控请求通过设备插件从集群管控中心获取。
171.可选地,上述处理器还可以执行如下步骤的程序代码:集群管控请求由设备管控中心管理,该方法还包括:检测和存储服务程序和/或设备管控中心的状态,并在服务程序和/或设备管控中心的状态异常的情况下,根据存储的服务程序和/或设备管控中心的状态进行系统恢复。
172.可选地,上述处理器还可以执行如下步骤的程序代码:虚拟算力设备以块设备、字符设备或网络设备的形式模拟。
173.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
174.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
175.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
176.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
177.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
178.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
179.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献