本公开涉及通信,尤其涉及异构资源调度方法、装置、电子设备及存储介质。
背景技术:
1、异构计算拉远主要是指基于网络通信的api(application programminginterface,应用程序接口)转发技术访问远端的fpga(field-programmable gate array,现场可编程门阵列)或gpu(graphics processing unit,图形处理器)等异构资源池。
2、在调度异构资源池中异构资源时,所采用的技术方案通常为通过引入中心化的调度器来统一调度异构资源,但是,中心化的调度器很容易成为系统瓶颈。为了解决该问题,相关技术中,将fpga或gpu等异构资源池迁移至kubernetes(简称k8s)管理,其中,k8s是用于自动部署、扩展和管理容器化应用程序的开源系统。
3、在将异构资源池迁移至k8s管理时,由于k8s容器化和网络虚拟化的特征,会带来较高的业务改造成本。
技术实现思路
1、本公开提供了一种异构资源调度方法、装置、电子设备及存储介质。
2、根据本公开的一方面,提供了一种异构资源调度方法,应用于基于kubernetes的异构资源调度系统,所述异构资源调度系统包括设备管理模块,注册模块、注册中心、设备分配模块和客户端模块,所述方法包括:
3、在业务需要调度异构资源的情况下,所述客户端模块向设备分配模块发送异构资源调度请求;
4、所述设备分配模块响应于所述异构资源调度请求,确定所述异构资源调度请求所需要调度服务的目标服务标识;
5、所述设备分配模块从所述注册中心获取与所述目标服务标识相对应的服务地址列表,并在所述服务地址列表中确定当前可用的目标服务地址;所述注册中心存储有各个服务标识与服务地址列表之间的对应关系,所述服务地址列表中的各个服务地址为注册模块的地址;
6、所述设备分配模块向所述目标服务地址对应的目标注册模块发送使用异构资源的申请请求,在向所述目标注册模块申请使用异构资源成功的情况下,接收所述目标注册模块发送的目标设备管理模块对应的目标物理地址,并向所述客户端模块返回所述目标物理地址;所述目标设备管理模块为与所述目标注册模块相对应的设备管理模块;
7、所述客户端模块基于所述目标物理地址向所述目标设备管理模块发送异构资源访问请求,所述目标设备管理模块解析所述异构资源访问请求,基于解析结果访问异构资源,并向所述客户端模块返回异构资源访问结果。
8、可选的,在所述设备分配模块从所述注册中心获取与所述目标服务标识相关联的服务地址列表之前,所述方法还包括:
9、启动注册模块,并通过所述注册模块启动对应的设备管理模块;
10、在所述设备管理模块启动过程中,所述注册模块获取所述注册模块对应的地址和所述设备管理模块对应的物理地址;
11、所述注册模块将所述注册模块对应的地址注册到所述注册中心,并将已注册的所述注册模块对应的地址与对应的服务标识相关联;
12、所述注册模块将所述设备管理模块对应的物理地址存储于内存中。
13、可选的,所述方法还包括:
14、所述注册模块监测所述设备管理模块的当前状态;所述当前状态包括正常状态和异常状态;
15、在存在状态异常的设备管理模块的情况下,所述注册模块将已注册的、状态异常的设备管理模块对应的服务地址删除。
16、可选的,所述在所述服务地址列表中确定当前可用的目标服务地址,包括:
17、从所述服务地址列表中选取第一服务地址;
18、获取所述第一服务地址对应的可接收异构资源调度请求的第一数量和已接收异构资源调度请求的第二数量;
19、在所述第二数量小于所述第一数量的情况下,将所述第一服务地址确定为目标服务地址。
20、可选的,所述方法还包括:
21、在所述第二数量等于所述第一数量的情况下,从所述服务地址列表中选取第二服务地址,作为更新后的第一服务地址;所述第二服务地址为所述服务地址列表中除所述第一服务地址之外的服务地址;
22、返回执行从获取所述第一服务地址对应的可接收异构资源调度请求的第一数量和已接收异构资源调度请求的第二数量的步骤,直至确定出目标服务地址。
23、可选的,所述方法还包括:
24、在所述第二数量等于所述第一数量的情况下,将所述第一服务地址从所述服务地址列表中删除。
25、根据本公开的二方面,提供了一种异构资源调度装置,应用于基于kubernetes的异构资源调度系统,所述异构资源调度系统包括设备管理模块,注册模块、注册中心、设备分配模块和客户端模块;
26、在业务需要调度异构资源的情况下,所述客户端模块用于向设备分配模块发送异构资源调度请求;
27、所述设备分配模块用于响应于所述异构资源调度请求,确定所述异构资源调度请求所需要调度服务的目标服务标识;
28、所述设备分配模块用于从所述注册中心获取与所述目标服务标识相对应的服务地址列表,并在所述服务地址列表中确定当前可用的目标服务地址;所述注册中心存储有各个服务标识与服务地址列表之间的对应关系,所述服务地址列表中的各个服务地址为注册模块的地址;
29、所述设备分配模块用于向所述目标服务地址对应的目标注册模块发送使用异构资源的申请请求,在向所述目标注册模块申请使用异构资源成功的情况下,接收所述目标注册模块发送的目标设备管理模块对应的目标物理地址,并向所述客户端模块返回所述目标物理地址;所述目标设备管理模块为与所述目标注册模块相对应的设备管理模块;
30、所述客户端模块用于基于所述目标物理地址向所述目标设备管理模块发送异构资源访问请求,所述目标设备管理模块还用于解析所述异构资源访问请求,基于解析结果访问异构资源,并向所述客户端模块返回异构资源访问结果。
31、可选的,在所述设备分配模块从所述注册中心获取与所述服务标识相关联的服务地址列表之前,还用于触发启动注册模块,并通过所述注册模块启动对应的设备管理模块;
32、在所述设备管理模块启动过程中,所述注册模块还用于获取所述注册模块对应的地址和所述设备管理模块对应的物理地址;
33、所述注册模块还用于将所述注册模块对应的地址注册到所述注册中心,并将已注册的所述注册模块对应的地址与对应的服务标识相关联;
34、所述注册模块还用于将所述设备管理模块对应的物理地址存储于内存中。
35、可选的,所述注册模块,还用于:
36、监测所述设备管理模块的当前状态;所述当前状态包括正常状态和异常状态;
37、在存在状态异常的设备管理模块的情况下,所述注册模块将已注册的、状态异常的设备管理模块对应的服务地址删除。
38、可选的,所述设备分配模块,还用于:
39、从所述服务地址列表中选取第一服务地址;
40、获取所述第一服务地址对应的可接收异构资源调度请求的第一数量和已接收异构资源调度请求的第二数量;
41、在所述第二数量小于所述第一数量的情况下,将所述第一服务地址确定为目标服务地址。
42、可选的,所述设备分配模块,还用于:
43、在所述第二数量等于所述第一数量的情况下,从所述服务地址列表中选取第二服务地址,作为更新后的第一服务地址;所述第二服务地址为所述服务地址列表中除所述第一服务地址之外的服务地址;
44、返回执行从获取所述第一服务地址对应的可接收异构资源调度请求的第一数量和已接收异构资源调度请求的第二数量的步骤,直至确定出目标服务地址。
45、可选的,所述设备分配模块,还用于:
46、在所述第二数量等于所述第一数量的情况下,将所述第一服务地址从所述服务地址列表中删除。
47、根据本公开的第三方面,提供了一种电子设备,包括:
48、至少一个处理器;
49、用于存储所述至少一个处理器可执行指令的存储器;
50、其中,所述至少一个处理器被配置为执行所述指令,以实现第一方面所述的方法。
51、根据本公开的第四方面,提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行第一方面所述的方法。
52、本公开实施例提供的技术方案,在业务需要调度异构资源的情况下,客户端模块向设备分配模块发送异构资源调度请求;设备分配模块确定异构资源调度请求所需要调度服务的目标服务标识;设备分配模块从注册中心获取与目标服务标识相对应的服务地址列表,并在服务地址列表中确定当前可用的目标服务地址;并且,设备分配模块向目标注册模块申请使用异构资源成功的情况下,目标注册模块向设备分配模块返回目标设备管理模块对应的目标物理地址,最终通过目标设备管理模块来处理异构资源访问请求,得到异构资源访问结果,并将异构资源访问结果反馈给本地客户端模块,从而成功实现调度并访问异构资源。且由于本公开实施例中,面向k8s服务化部署场景,远程的设备管理模块和本地的客户端模块都运行于k8s的容器中,实现了远程功能模块无需改造即可实现k8s部署,同时引入了分布式的特性,也提高了系统稳定性。