一种加速硬件管理方法、装置、设备及存储介质与流程
未命名
09-24
阅读:108
评论:0
1.本发明涉及云计算管理技术,尤其涉及一种加速硬件管理方法、装置、设备及存储介质。
背景技术:
2.随着人工智能(artificial intelligence,ai)、视频直播、基因测序等技术的不断发展,仅依赖常规硬件完成高密度、高输入/输出(input/output,io)、高带宽、低延时业务具有效率低且成本高的缺点。而加速硬件设备(以下简称加速硬件)可以有效释放传统常规硬件的压力,改善常规硬件的使用效果。现有加速硬件管理方案中,加速硬件一般仅能作为物理化加速方式(physical function,pf方式)使用,或需要由管理员手动执行物理化加速方式与虚拟化加速方式(virtual function,vf方式)之间的转换。然而,在手动进行pf方式与vf方式转换的场景下,必须重启nova服务,在此期间nova业务会暂时中断,不能提供虚拟机管理服务,会影响虚拟机业务的连续性。
技术实现要素:
3.为解决上述技术问题,本技术实施例期望提供一种加速硬件管理方法、装置、设备及存储介质。
4.本技术的技术方案是这样实现的:
5.第一方面,提供了一种加速硬件管理方法,应用于开源云计算管理openstack平台,所述方法包括:
6.查询加速硬件数据库,确定目标加速硬件的硬件类型;其中,所述加速硬件数据库包括:宿主机搭载的至少一个加速硬件的设备信息,所述设备信息至少包括所述加速硬件的硬件类型;
7.根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式;其中,所述目标加速方式为物理化加速pf方式或者虚拟化加速vf方式;
8.根据所述目标加速硬件的当前加速方式和所述目标加速方式,确定加速管理代理模块执行的目标转换程序;
9.基于所述目标加速硬件的所述目标加速方式配置所述加速管理代理模块;
10.控制所述加速管理代理模块重启并运行所述目标转换程序,执行所述目标加速硬件从所述当前加速方式转换到所述目标加速方式。
11.上述方案中,所述根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式,包括:确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为公有云场景时,确定所述目标加速硬件的目标加速方式为所述vf方式;确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为私有云场景时,确定所述目标加速硬件的目标加速方式为所述pf方式。
12.上述方案中,所述根据所述目标加速硬件的当前加速方式和所述目标加速方式,
确定加速管理代理模块执行的目标转换程序,包括:所述目标加速方式为所述vf方式,所述当前加速方式为所述pf方式,确定所述加速管理代理模块执行的目标转换程序为分离程序;所述目标加速方式为所述pf方式,所述当前加速方式为所述vf方式,确定所述加速管理代理模块执行的目标转换程序为还原程序。
13.上述方案中,所述方法还包括:确定所述目标加速硬件的硬件类型为不可分离类型,确定所述目标加速硬件不执行加速方式转换。
14.上述方案中,所述方法还包括:控制所述加速管理代理模块以轮询的方式采集宿主机下各个虚拟机搭载的加速硬件的设备信息,并控制所述加速管理代理模块在每次轮询完成后将采集的加速硬件的设备信息上报至加速管理控制模块;控制所述加速管理控制模块对所述采集的加速硬件的设备信息进行关键检索对比;基于关键检索对比的结果,确定采集的第一加速硬件的设备信息不完整时,删除所述加速硬件数据库中所述第一加速硬件对应的设备信息;基于关键检索对比的结果,确定采集的第二加速硬件的设备信息完整时,将所述第二加速硬件的设备信息存储到所述加速硬件数据库。
15.上述方案中,所述加速硬件数据库还包括:宿主机搭载的至少一个加速硬件的资源预声明信息,所述方法还包括:接收到加速硬件挂载请求时,基于所述加速硬件挂载请求中的挂载需求查询所述加速硬件数据库,确定满足所述挂载需求的第三加速硬件;确定接收到计算服务的资源预声明请求时,在所述加速硬件数据库中新增所述第三加速硬件对应的资源预声明信息;将所述资源预声明信息发送给所述计算服务,以使得所述计算服务基于所述资源预声明信息挂载所述第三加速硬件。
16.上述方案中,所述加速硬件数据库还包括:宿主机搭载的至少一个加速硬件的任务状态信息;所述方法还包括:接收到针对第四加速硬件的任务请求时,查询所述加速硬件数据库确定所述第四加速硬件的任务状态信息;确定所述第四加速硬件的任务状态信息为空闲状态时,将所述任务请求转发至所述第四加速硬件对应的加速管理代理模块,并将所述第四加速硬件的任务状态信息更新为非空闲状态。
17.第二方面,提供了一种加速硬件管理装置,所述装置包括:
18.处理模块,用于查询加速硬件数据库,确定目标加速硬件的硬件类型;其中,所述加速硬件数据库包括:宿主机搭载的至少一个加速硬件的设备信息,所述设备信息至少包括所述加速硬件的硬件类型;用于根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式;其中,所述目标加速方式为物理化加速pf方式或者虚拟化加速vf方式;根据所述目标加速硬件的当前加速方式和所述目标加速方式,确定加速管理代理模块执行的目标转换程序;
19.控制模块,用于基于所述目标加速硬件的所述目标加速方式配置所述加速管理代理模块;控制所述加速管理代理模块重启并运行所述目标转换程序,执行所述目标加速硬件从所述当前加速方式转换到所述目标加速方式。
20.第三方面,提供了一种电子设备,所述电子设备包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行前述方法的步骤。
21.第四方面,提供了一种计算机存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
22.本技术公开一种加速硬件管理方法、装置、设备及存储介质,根据加速硬件的硬件类型和用户使用场景确定的目标加速方式会更符合用户使用场景的要求;根据目标加速方式配置加速管理代理模块中的目标转换程序并执行该转换程序,可以实现加速硬件在pf和vf方式之间的动态切换,且不会影响虚拟机管理服务的连续性。
附图说明
23.图1为本技术实施例中加速硬件管理方法的第一流程示意图;
24.图2为本技术实施例中加速硬件管理方法的第二流程示意图;
25.图3为本技术实施例中openstack平台的结构示意图;
26.图4为本技术实施例中加速硬件管理装置的组成结构示意图;
27.图5为本技术实施例中电子设备的组成结构示意图。
具体实施方式
28.为了能够更加详尽地了解本技术实施例的特点与技术内容,下面结合附图对本技术实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本技术实施例。
29.本技术实施例提出一种应用于开源云计算管理openstack平台的加速硬件管理方法,适用于多类型加速硬件的纳管。其中,openstack平台至少包括加速硬件数据库、加速管理代理模块。加速硬件数据库用于存储加速硬件的相关信息。
30.图1为本技术实施例中加速硬件管理方法的第一流程示意图,如图1所示,该加速硬件管理方法具体可以包括:
31.步骤101:查询加速硬件数据库,确定目标加速硬件的硬件类型;其中,所述加速硬件数据库包括:宿主机搭载的至少一个加速硬件的设备信息,所述设备信息至少包括所述加速硬件的硬件类型。
32.这里,开源云计算管理openstack平台用于对宿主机搭载的至少一个加速硬件进行管理。加速硬件数据库为openstack平台中的用于存储加速硬件的设备信息等信息的数据库。示例性的,实际应用中,加速硬件可以为图形处理器(graphics processing unit,gpu)、现场可编程门阵列(field programmable gate array,fpga)、加速硬件神经网络处理器(neural processing unit,npu)、加速协助技术急速器(quick assist technology,qat)、非易失性内存(nvme over fabrics,nvmf)等。
33.这里,加速硬件的硬件类型包括:可分离类型、不可分离类型。加速硬件的硬件类型为可分离类型时,表征该加速硬件既可以作为pf设备使用,也可以作为vf设备使用。其中,加速硬件作为pf设备使用时,其对应的加速方式为物理化加速方式(pf方式);加速硬件作为vf设备使用时,对应的加速方式为虚拟化加速方式(vf方式)。加速硬件的硬件类型为不可分离类型时,表征该加速硬件只可以作为pf设备使用。
34.步骤102:根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式;其中,所述目标加速方式为物理化加速pf方式或者虚拟化加速vf方式。
35.这里,用户使用场景为用户使用目标加速硬件进行硬件加速时的使用场景。示例性的,用户使用场景包括:公有云场景、私有云场景。用户使用场景为私有云场景时,用户能
独立拥有并自行管理硬件设备,加速硬件可作为pf设备直接提供给用户使用;在公有云场景下,若整个硬件直接透传给用户,用户获得全部管理权限,一旦用户强行更改硬件驱动类型或版本,将直接威胁硬件设备安全,因此在公有云场景下,必须将加速硬件由pf设备分离出部分用户权限到vf设备供用户使用,而管理员权限仍保留在pf设备上,从而在openstack层面,实现加速硬件的安全使用。即不同的用户使用场景,对加速方式的需求不同。本技术通过根据目标加速硬件的硬件类型和用户使用场景,确定的目标加速方式可以满足用户使用场景的需求。
36.示例性的,在一些实施例中,所述根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式,包括:确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为公有云场景时,确定所述目标加速硬件的目标加速方式为所述vf方式;确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为私有云场景时,确定所述目标加速硬件的目标加速方式为所述pf方式。
37.本技术通过根据用于使用场景为公有云场景还是私有云场景确定目标加速方式,进而进行加速硬件设备的加速方式切换,可以提高复杂加速硬件设备本身的安全性和利用率。
38.示例性的,实际应用中,宿主机下的一台虚拟机可以挂载1个或多个pf设备或vf设备,基于本技术加速硬件管理方法的openstack平台可以支持单pf多vf形式纳管,即可以实现多种类型的加速硬件纳管。
39.步骤103:根据所述目标加速硬件的当前加速方式和所述目标加速方式,确定加速管理代理模块执行的目标转换程序。
40.这里,加速管理代理模块可以通过执行目标转换程序,实现加速硬件的加速方式的转换,使得加速硬件由pf分离为vf或者由vf还原为pf。这里,目标转换程序为分离程序或还原程序。加速管理代理模块执行分离程序时,加速硬件由pf分离为vf;加速管理代理模块执行还原程序时,加速硬件由vf还原为pf。
41.示例性的,在一些实施例中,所述根据所述目标加速硬件的当前加速方式和所述目标加速方式,确定加速管理代理模块执行的目标转换程序,包括:所述目标加速方式为所述vf方式,所述当前加速方式为所述pf方式,确定所述加速管理代理模块执行的目标转换程序为分离程序;所述目标加速方式为所述pf方式,所述当前加速方式为所述vf方式,确定所述加速管理代理模块执行的目标转换程序为还原程序。
42.步骤104:基于所述目标加速硬件的所述目标加速方式配置所述加速管理代理模块。
43.示例性的,在加速管理代理模块的配置文件中设置目标加速硬件的加速方式为目标加速方式,并设置加速管理代理模块执行的转换程序为目标转换程序。
44.步骤105:控制所述加速管理代理模块重启并运行所述目标转换程序,执行所述目标加速硬件从所述当前加速方式转换到所述目标加速方式。
45.示例性的,当加速管理代理模块(本技术也称加速硬件agent)中配置目标加速硬件的目标加速方式为vf方式(即配置目标加速硬件作为vf设备使用)时,重启加速硬件agent服务,加速硬件agent自动加载分离程序,完成pf分离为vf,期间nova业务不受影响,可以提供连续的虚拟机管理服务。
46.示例性的,实际应用中,一台虚拟机可选挂载1个或多个vf设备,该场景下宿主机服务器关机重启后,加速硬件agent服务随宿主机自启动,启动期间自动加载分离程序,保留vf分离态,从而虚拟机能找到对应vf设备,虚拟机启动成功。在vf设备需要被还原为vf设备场景下,仅需更改加速硬件agent的配置,设置目标加速硬件作为pf设备使用,重启加速硬件agent服务,加速硬件agent自动加载还原程序,完成vf还原为pf,期间nova业务不受影响,提供连续的虚拟机管理服务。
47.示例性的,在一些实施例中,所述方法还包括:确定所述目标加速硬件的硬件类型为不可分离类型,确定所述目标加速硬件不执行加速方式转换。
48.这里,目标加速硬件的硬件类型为不可分离类型,表征目标加速硬件只可以作为pf设备使用,其对应的加速方式仅为物理化加速方式(pf方式),不需进行加速方式转换。
49.示例性的,在一些实施例中,openstack平台还包括:加速管理控制模块(本技术也称加速管理conductor)。示例性的,在一些实施例中,所述方法还包括:控制所述加速管理代理模块以轮询的方式采集宿主机下各个虚拟机搭载的加速硬件的设备信息,并控制所述加速管理代理模块在每次轮询完成后将采集的加速硬件的设备信息上报至加速管理控制模块;控制所述加速管理控制模块对所述采集的加速硬件的设备信息进行关键检索对比;基于关键检索对比的结果,确定采集的第一加速硬件的设备信息不完整时,删除所述加速硬件数据库中所述第一加速硬件对应的设备信息;基于关键检索对比的结果,确定采集的第二加速硬件的设备信息完整时,将所述第二加速硬件的设备信息存储到所述加速硬件数据库。
50.示例性的,实际应用中,宿主机下可以搭载一个或多个虚拟机。示例性的,宿主机下各个虚拟机搭载的加速硬件的设备信息包括:加速硬件的类型、型号、状态、设备id、加速硬件挂载的虚拟机id等信息。
51.现有技术中,通常在nova的配置文件中设置硬件型号,并由nova执行加速硬件设备的查询任务(非轮询),加速硬件的信息存储到nova数据库中,不能保证加速硬件的信息准确度;并且一旦进行加速硬件设备种类扩展,必须重启nova管理服务和nova计算服务。nova管理服务重启,会造成集群计算管理服务中断,集群业务短暂中断;nova计算服务重启,造成该计算节点计算服务中断,破坏nova计算服务的业务连续性。
52.本方案中可以在加速管理agent的配置文件中配置硬件型号,并由加速管理agent执行加速硬件的动态轮询任务,采集各宿主机搭载的加速硬件的设备信息,每次轮询完成后,加速管理agent向加速管理conductor上报加速硬件信息,conductor进行关键检索对比后将加速硬件信息存储到加速硬件管理数据库,从而保证硬件信息准确度,并且不再需要访问nova数据库,降低nova数据库的访问压力;这样,新增加速硬件设备种类时,仅需启动/重启加速管理agent服务,即可自动轮询上报硬件信息,实现加速硬件类型扩展。无需重启nova管理服务和nova计算服务,nova业务连续性不受影响。并且,加速硬件损坏后,加速管理agent的轮询任务依然保持,损坏的加速硬件的设备信息不再完整获取,从而上报后经关键检索对比后确认加速硬件损坏,从加速硬件数据库中移除该损坏加速硬件的设备信息,保证硬件信息的准确度,且无需重启任何openstack服务。
53.示例性的,在一些实施例中,所述加速硬件数据库还包括:宿主机搭载的至少一个加速硬件的资源预声明信息,所述方法还包括:接收到加速硬件挂载请求时,基于所述加速
硬件挂载请求中的挂载需求查询所述加速硬件数据库,确定满足所述挂载需求的第三加速硬件;将所述第三加速硬件的设备信息发送至计算服务;接收所述计算服务的资源预声明请求,在所述加速硬件数据库中新增所述第三加速硬件对应的资源预声明信息;将所述资源预声明信息发送给计算服务,以使得所述计算服务基于所述资源预声明信息挂载所述第三加速硬件。
54.这里,加速硬件的资源预声明信息用于说明加速硬件的资源使用情况,可以使得该加速硬件无法被其他虚拟机调用。通过在加速硬件数据库中添加加速硬件的资源预声明信息,可以避免大规模并发条用加速硬件时,产生的并发期间资源冲突。
55.示例性的,在一些实施例中,所述加速硬件数据库还包括:宿主机搭载的至少一个加速硬件的任务状态信息;所述方法还包括:接收到针对第四加速硬件的任务请求时,查询所述加速硬件数据库确定所述第四加速硬件的任务状态信息;确定所述第四加速硬件的任务信息状态为空闲状态时,将所述任务请求转发至所述第四加速硬件对应的加速管理代理模块,并将所述第四加速硬件的任务状态信息更新为非空闲状态。
56.这里,加速硬件的任务状态信息用于说明加速硬件的任务执行情况。第四加速硬件的任务状态信息为空闲状态时,说明该第四加速硬件此时未执行任何任务,可以执行新的任务请求;第四加速硬件的任务状态信息为非空闲状态时,说明该第四加速硬件此时正在执行任务,不可以执行新的任务请求。
57.示例性的,在一些实施例中,所述方法还包括:确定所述第四加速硬件的任务状态信息为非空闲状态时,拒绝本次任务请求。
58.示例性的,实际应用中,加速硬件的任务状态信息包括:加载fpga镜像、校验fpga镜像、分离pf到vf、还原vf到pf等的任务状态信息。
59.通过在加速硬件数据库中添加加速硬件的任务状态信息,可以保证该加速硬件仅能执行唯一的任务,直到任务结束或者强制还原error状态,任务状态不受其他任务或同类任务竞争或打断,保持各任务之间相互独立,实现复杂硬件任务动态执行。
60.这里,步骤101至步骤105的执行主体可以为实现本技术实施例加速硬件管理方法的电子设备的处理器。
61.本技术实施例的技术方案,根据加速硬件的硬件类型和用户使用场景确定的目标加速方式会更符合用户使用场景的要求;根据目标加速方式配置加速管理代理模块中的目标转换程序并执行该转换程序,可以实现加速硬件在pf和vf方式之间的动态切换,且不会影响虚拟机管理服务的连续性。
62.为了能更加体现本技术的目的,在本技术上实施例的基础上,进行进一步的举例说明。图2为本技术实施例中加速硬件管理方法的第二流程示意图。如图2所示,该加速硬件管理方法包括:
63.步骤201:查询加速硬件数据库,确定目标加速硬件的硬件类型;其中,所述加速硬件数据库包括:宿主机搭载的至少一个加速硬件的设备信息,所述设备信息至少包括所述加速硬件的硬件类型。
64.步骤202:判断所述目标加速硬件的硬件类型是否为可分离类型;若是,执行步骤203或者205;若否,执行步骤209;
65.步骤203:确定用户使用场景为公有云场景时,确定所述目标加速硬件的目标加速
vf动态转化、加速硬件自动纳管,加速硬件管理组件与openstack平台其他组件松耦合交互、对硬件执行任务管理和展示等功能。
78.下面对实现pf-vf动态转化功能进行进一步说明。
79.具体的,应用于开源云计算管理openstack平台的加速硬件管理方法,包括:查询加速硬件数据库,确定目标加速硬件的硬件类型;其中,所述加速硬件数据库包括:宿主机搭载的至少一个加速硬件的设备信息,所述设备信息至少包括所述加速硬件的硬件类型;确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为公有云场景时,确定所述目标加速硬件的目标加速方式为所述vf方式;确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为私有云场景时,确定所述目标加速硬件的目标加速方式为所述pf方式;确定所述目标加速硬件的硬件类型为不可分离类型,确定所述目标加速硬件不执行加速方式转换;所述目标加速方式为所述vf方式,所述当前加速方式为所述pf方式,确定所述加速管理代理模块执行的目标转换程序为分离程序;所述目标加速方式为所述pf方式,所述当前加速方式为所述vf方式,确定所述加速管理代理模块执行的目标转换程序为还原程序;基于所述目标加速硬件的所述目标加速方式配置所述加速管理代理模块;控制所述加速管理代理模块重启并运行所述目标转换程序,执行所述目标加速硬件从所述当前加速方式转换到所述目标加速方式。
80.本技术的技术方案中,可以根据用户使用场景和硬件类型,对支持分离成vf的加速硬件选择是否分离。加速硬件能根据读取的配置,自动实现pf还原为vf或vf还原为pf。当加速管理agent中配置目标加速硬件为vf使用时:重启加速硬件agent服务,agent自动加载分离程序,完成pf分离为vf,期间nova业务不受影响,提供连续的虚拟机管理服务;一台虚拟机可选挂载1个或多个vf,该场景下宿主机服务器关机重启后,加速硬件agent服务随宿主机自启动,启动期间自动加载分离程序,保留vf分离态,从而虚拟机能找到对应vf设备,虚拟机启动成功。另外,在vf需要被还原为pf场景下,仅需更改agent配置,设置加速硬件为pf使用,重启加速硬件agent服务,agent自动加载还原程序,完成vf还原为pf,期间nova业务不受影响,提供连续的虚拟机管理服务。
81.下面对实现实现加速硬件自动纳管功能进行进一步说明。
82.具体的,应用于openstack平台的加速硬件管理方法,还包括:控制所述加速管理代理模块以轮询的方式采集宿主机下各个虚拟机搭载的加速硬件的设备信息,并控制所述加速管理代理模块在每次轮询完成后将采集的加速硬件的设备信息上报至加速管理控制模块;控制所述加速管理控制模块对所述采集的加速硬件的设备信息进行关键检索对比;基于关键检索对比的结果,确定采集的第一加速硬件的设备信息不完整时,删除所述加速硬件数据库中所述第一加速硬件对应的设备信息;基于关键检索对比的结果,确定采集的第二加速硬件的设备信息完整时,将所述第二加速硬件的设备信息存储到所述加速硬件数据库。
83.本技术的技术方案中,可以在加速管理agent的配置文件中配置硬件型号,并由加速管理agent执行加速硬件的动态轮询任务,采集各宿主机搭载的加速硬件的设备信息,每次轮询完成后,加速管理agent向加速管理conductor上报加速硬件信息,conductor进行关键检索对比后将加速硬件信息存储到加速硬件管理数据库,从而保证硬件信息准确度,并且不再需要访问nova数据库,降低nova数据库的访问压力;这样,新增加速硬件设备种类
时,仅需启动/重启加速管理agent服务,即可自动轮询上报硬件信息,实现加速硬件类型扩展。无需重启nova管理服务和nova计算服务,nova业务连续性不受影响。并且,加速硬件损坏后,加速管理agent的轮询任务依然保持,损坏的加速硬件的设备信息不再完整获取,从而上报后经关键检索对比后确认加速硬件损坏,从加速硬件数据库中移除该损坏加速硬件的设备信息,保证硬件信息的准确度,且无需重启任何openstack服务。
84.下面对实现加速硬件管理组件与openstack平台其他组件松耦合交互进行进一步说明。
85.本技术的技术方案中,加速硬件的管理以加速硬件管理组件本身为核心,自主提供查询,预声明信息,状态更新信息等接口。当加速管理api接收到用户的加速硬件信息查询请求时,进行用户鉴权后,加速管理api查询加速硬件数据库,将查询到的满足查询需求的加速硬件的设备信息返回给用户虚拟机。其中,加速硬件的设备信息可以包括加速硬件数量、型号、状态、设备号等信息。
86.具体的,应用于openstack平台的加速硬件管理方法,还包括:接收到加速硬件挂载请求时,基于所述加速硬件挂载请求中的挂载需求查询所述加速硬件数据库,确定满足所述挂载需求的第三加速硬件;确定接收到计算服务的资源预声明请求时,在所述加速硬件数据库中新增所述第三加速硬件对应的资源预声明信息;将所述资源预声明信息发送给所述计算服务,以使得所述计算服务基于所述资源预声明信息挂载所述第三加速硬件。
87.示例性的,在一些实施例中,应用于openstack平台的加速硬件管理方法,还包括:接收到加速硬件挂载请求时,基于所述加速硬件挂载请求中的挂载需求查询所述加速硬件数据库,确定满足所述挂载需求的至少一个第五加速硬件;将所述第五加速硬件的设备信息发送给计算服务;确定接收到计算服务的资源预声明请求时,从所述至少一个第五加速硬件确定出一个第六加速硬件;在所述加速硬件数据库中新增所述第六加速硬件对应的资源预声明信息;将所述资源预声明信息发送给所述计算服务,以使得所述计算服务基于所述资源预声明信息挂载所述第六加速硬件。
88.示例性的,下面步骤301-306用于说明加速硬件管理组件与openstack平台其他组件的交互流程。
89.步骤301:用户创建带有加速硬件的虚拟机时,调度过程中调用加速管理api,进行实时查询,从而获得满足条件的加速设备信息,继续执行步骤303;
90.步骤302:用户发出加速硬件挂载请求时,计算服务实时查询所在计算节点的加速硬件的设备信息,继续执行步骤303;
91.步骤303:根据调度结果选择计算节点,计算服务(nova计算服务)在资源声明阶段,立即向加速管理api发起资源预声明请求,加速管理api收到请求后立即查询并核实请求计算节点的即时加速硬件可用资源信息,并选择符合要求的第一个设备,在加速硬件数据库中新增加速硬件的资源预声明信息,从而再次发起该节点的加速硬件的信息查询请求时,由于已存在资源预声明信息,从而不再列入可用资源计算范围,阻止其他虚拟机重复占用此加速硬件。并且api在预声明完成后,返回消息通知nova计算服务,请求资源已预声明成功,请继续执行步骤305,否则终止本次创建流程,并标记虚拟机创建失败;
92.步骤304:nova计算服务调用libvirt进行硬件挂载,若挂载成功,nova计算服务立即向加速管理api发起加速硬件状态更新请求,加速管理api收到请求后立即更新硬件挂载
的虚拟机id,在虚拟机上的设备号等信息到加速硬件数据库。否则,如果libvirt挂载失败,nova计算服务立即向加速管理api发起加速硬件的资源预声明删除请求,加速管理api收到请求后立即到加速硬件数据库中,删除对应加速硬件数据库中资源预声明信息,并标记虚拟机创建失败。
93.步骤305:用户删除带有加速硬件的虚拟机,nova调用libvirt进行硬件卸载,若卸载成功,nova计算服务立即向加速管理api发起加速硬件信息删除请求,加速管理api收到请求后立即立即删除加速硬件数据库中的挂载记录和资源声明记录,重新列入可用资源计算范围。否则如果libvrit进行硬件卸载失败,则直接标记卸载失败,加速硬件数据库中的挂载记录和资源声明记录不变,加速硬件不列入可用资源计算范围。
94.步骤306:用户卸载指定加速硬件设备,过程同步骤305计算硬件管理组件与openstack平台其他组件松耦合交互,使得步骤302这样的挂载和步骤306这样的卸载请求能被独立执行,而不是仅能执行步骤301、步骤305这样仅能随虚拟机生命周期管理加速硬件设备。
95.通过在加速硬件数据库中添加加速硬件的资源预声明信息,可以避免大规模并发条用加速硬件时,产生的并发期间资源冲突。
96.下面对实现对硬件执行任务管理和展示的功能进行进一步说明。
97.具体的,应用于openstack平台的加速硬件管理方法,还包括:新增加速硬件任务管理模块,支持设置唯一的硬件任务状态,记录加载fpga镜像、校验fpga镜像、分离pf到vf、还原vf到pf等任务状态,使fpga等复杂硬件能执行复杂任务,并保持各任务之间相互独立,实现复杂硬件任务动态执行。
98.下面以加载fpga镜像的任务过程为例进行说明:用户从操作平台发起一次加载fpga镜像的任务请求,经过参数校验和权限鉴权后,加载fpga镜像的任务请求到达加速硬件管理api组件后,立即查询该fpga设备的任务状态是否为null(相当于本技术空闲状态)、查询要求加载的镜像是否合法(类型,状态等),如果均符合要求则更新任务状态为prepare-program,否则拒绝本次api请求并返回告知用户不能接受请求。如果继续执行任务,将请求转发到对应的加速管理agent,并更新任务状态为programming,并且下载fpga镜像到本节点,并且将镜像加载到fpga设备中,如果最终加载成功,记录任务状态为success,否则置为error返回到api,如果success则消息告知用户加载成功并还原任务状态为null,否则消息告知用户加载失败,并选择是否强制还原为null,进行再次加载。这样保证该fpga设备仅能执行唯一的fpga加载任务,直到任务结束或者强制还原error状态,任务状态不受其他任务或同类任务竞争或打断。
99.具体的,应用于openstack平台还新增加速硬件任务展示模块,支持用户通过用户操作平台自主发起任务查询任务,返回客户当前任务状态或上次任务执行结果。
100.本技术实施例的技术方案,设计了一种通用的基于openstack平台实现的多类型加速硬件管理方法,可自动纳管多类型硬件,可扩展性强;可实现pf-vf的动态转换,提高复杂加速硬件设备本身的安全性和利用率;可实现加速硬件管理组件与nova组件的松耦合的交互设计,保证加速硬件信息的准确度,保证nova业务连续性,降低nova运行压力;通过添加加速硬件的资源预声明的信息,可以降低资源冲突率,提高加速硬件绑定成功率;通过添加加速硬件任务展示模块,可以实现复杂硬件任务动态执行和状态管理。
101.图4为本技术实施例中加速硬件管理装置的组成结构示意图,展示了一种加速硬件管理方法的实现装置,应用于开源云计算管理openstack平台,该装置40具体包括:
102.处理模块401,用于查询加速硬件数据库,确定目标加速硬件的硬件类型;其中,所述加速硬件数据库包括:宿主机搭载的至少一个加速硬件的设备信息,所述设备信息至少包括所述加速硬件的硬件类型;用于根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式;其中,所述目标加速方式为物理化加速pf方式或者虚拟化加速vf方式;根据所述目标加速硬件的当前加速方式和所述目标加速方式,确定加速管理代理模块执行的目标转换程序;
103.控制模块402,用于基于所述目标加速硬件的所述目标加速方式配置所述加速管理代理模块;控制所述加速管理代理模块重启并运行所述目标转换程序,执行所述目标加速硬件从所述当前加速方式转换到所述目标加速方式。
104.在一些实施例中,所述处理模块402,用于确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为公有云场景时,确定所述目标加速硬件的目标加速方式为所述vf方式;确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为私有云场景时,确定所述目标加速硬件的目标加速方式为所述pf方式。
105.在一些实施例中,所述处理模块402,用于:所述目标加速方式为所述vf方式,所述当前加速方式为所述pf方式,确定所述加速管理代理模块执行的目标转换程序为分离程序;所述目标加速方式为所述pf方式,所述当前加速方式为所述vf方式,确定所述加速管理代理模块执行的目标转换程序为还原程序。
106.在一些实施例中,所述处理模块402,用于确定所述目标加速硬件的硬件类型为不可分离类型,确定所述目标加速硬件不执行加速方式转换。
107.在一些实施例中,所述处理模块402,用于控制所述加速管理代理模块以轮询的方式采集宿主机下各个虚拟机搭载的加速硬件的设备信息,并控制所述加速管理代理模块在每次轮询完成后将采集的加速硬件的设备信息上报至加速管理控制模块;控制所述加速管理控制模块对所述采集的加速硬件的设备信息进行关键检索对比;基于关键检索对比的结果,确定采集的第一加速硬件的设备信息不完整时,删除所述加速硬件数据库中所述第一加速硬件对应的设备信息;基于关键检索对比的结果,确定采集的第二加速硬件的设备信息完整时,将所述第二加速硬件的设备信息存储到所述加速硬件数据库。
108.在一些实施例中,所述加速硬件数据库还包括:宿主机搭载的至少一个加速硬件的资源预声明信息,所述处理模块402,用于接收到加速硬件挂载请求时,基于所述加速硬件挂载请求中的挂载需求查询所述加速硬件数据库,确定满足所述挂载需求的第三加速硬件;确定接收到计算服务的资源预声明请求时,在所述加速硬件数据库中新增所述第三加速硬件对应的资源预声明信息;将所述资源预声明信息发送给所述计算服务,以使得所述计算服务基于所述资源预声明信息挂载所述第三加速硬件。
109.在一些实施例中,述加速硬件数据库还包括:宿主机搭载的至少一个加速硬件的任务状态信息;所述处理模块402,用于接收到针对第四加速硬件的任务请求时,查询所述加速硬件数据库确定所述第四加速硬件的任务状态信息;确定所述第四加速硬件的任务状态信息为空闲状态时,将所述任务请求转发至所述第四加速硬件对应的加速管理代理模块,并将所述第四加速硬件的任务状态信息更新为非空闲状态。
110.基于上述加速硬件管理装置中各单元的硬件实现,本技术实施例还提供了一种电子设备。图5为本技术实施例中电子设备的组成结构示意图。如图5所示,该设备50包括:处理器501和配置为存储能够在处理器上运行的计算机程序的存储器502;
111.其中,处理器501配置为运行计算机程序时,执行前述实施例中的方法的步骤。
112.当然,实际应用时,如图5所示,该电子设备中的各个组件通过总线系统503耦合在一起。可理解,总线系统503用于实现这些组件之间的连接通信。总线系统503除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统503。
113.在实际应用中,上述处理器可以为特定用途集成电路(asic,application specific integrated circuit)、数字信号处理装置(dspd,digital signal processing device)、可编程逻辑装置(pld,programmable logic device)、现场可编程门阵列(field-programmable gate array,fpga)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本技术实施例不作具体限定。
114.上述存储器可以是易失性存储器(volatile memory),例如随机存取存储器(ram,random-access memory);或者非易失性存储器(non-volatile memory),例如只读存储器(rom,read-only memory),快闪存储器(flash memory),硬盘(hdd,hard disk drive)或固态硬盘(ssd,solid-state drive);或者上述种类的存储器的组合,并向处理器提供指令和数据。
115.在示例性实施例中,本技术实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,计算机程序可由电子设备的处理器执行,以完成前述方法的步骤。
116.应当理解,在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。本技术中表述“具有”、“可以具有”、“包括”和“包含”、或者“可以包括”和“可以包含”在本文中可以用于指示存在对应的特征(例如,诸如数值、功能、操作或组件等元素),但不排除附加特征的存在。
117.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开,不必用于描述特定的顺序或先后次序。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。在本技术所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
118.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单
元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
119.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
120.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
技术特征:
1.一种加速硬件管理方法,应用于开源云计算管理openstack平台,其特征在于,所述方法包括:查询加速硬件数据库,确定目标加速硬件的硬件类型;其中,所述加速硬件数据库包括:宿主机搭载的至少一个加速硬件的设备信息,所述设备信息至少包括所述加速硬件的硬件类型;根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式;其中,所述目标加速方式为物理化加速pf方式或者虚拟化加速vf方式;根据所述目标加速硬件的当前加速方式和所述目标加速方式,确定加速管理代理模块执行的目标转换程序;基于所述目标加速硬件的所述目标加速方式配置所述加速管理代理模块;控制所述加速管理代理模块重启并运行所述目标转换程序,执行所述目标加速硬件从所述当前加速方式转换到所述目标加速方式。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式,包括:确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为公有云场景时,确定所述目标加速硬件的目标加速方式为所述vf方式;确定所述目标加速硬件的硬件类型为可分离类型,且所述用户使用场景为私有云场景时,确定所述目标加速硬件的目标加速方式为所述pf方式。3.根据权利要求1所述的方法,其特征在于,所述根据所述目标加速硬件的当前加速方式和所述目标加速方式,确定加速管理代理模块执行的目标转换程序,包括:所述目标加速方式为所述vf方式,所述当前加速方式为所述pf方式,确定所述加速管理代理模块执行的目标转换程序为分离程序;所述目标加速方式为所述pf方式,所述当前加速方式为所述vf方式,确定所述加速管理代理模块执行的目标转换程序为还原程序。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定所述目标加速硬件的硬件类型为不可分离类型,确定所述目标加速硬件不执行加速方式转换。5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:控制所述加速管理代理模块以轮询的方式采集宿主机下各个虚拟机搭载的加速硬件的设备信息,并控制所述加速管理代理模块在每次轮询完成后将采集的加速硬件的设备信息上报至加速管理控制模块;控制所述加速管理控制模块对所述采集的加速硬件的设备信息进行关键检索对比;基于关键检索对比的结果,确定采集的第一加速硬件的设备信息不完整时,删除所述加速硬件数据库中所述第一加速硬件对应的设备信息;基于关键检索对比的结果,确定采集的第二加速硬件的设备信息完整时,将所述第二加速硬件的设备信息存储到所述加速硬件数据库。6.根据权利要求1-4任一项所述的方法,其特征在于,所述加速硬件数据库还包括:宿主机搭载的至少一个加速硬件的资源预声明信息,所述方法还包括:接收到加速硬件挂载请求时,基于所述加速硬件挂载请求中的挂载需求查询所述加速
硬件数据库,确定满足所述挂载需求的第三加速硬件;确定接收到计算服务的资源预声明请求时,在所述加速硬件数据库中新增所述第三加速硬件对应的资源预声明信息;将所述资源预声明信息发送给所述计算服务,以使得所述计算服务基于所述资源预声明信息挂载所述第三加速硬件。7.根据权利要求1-4任一项所述的方法,其特征在于,所述加速硬件数据库还包括:宿主机搭载的至少一个加速硬件的任务状态信息;所述方法还包括:接收到针对第四加速硬件的任务请求时,查询所述加速硬件数据库确定所述第四加速硬件的任务状态信息;确定所述第四加速硬件的任务状态信息为空闲状态时,将所述任务请求转发至所述第四加速硬件对应的加速管理代理模块,并将所述第四加速硬件的任务状态信息更新为非空闲状态。8.一种加速硬件管理装置,应用于开源云计算管理openstack平台,其特征在于,所述装置包括:处理模块,用于查询加速硬件数据库,确定目标加速硬件的硬件类型;其中,所述加速硬件数据库包括:宿主机搭载的至少一个加速硬件的设备信息,所述设备信息至少包括所述加速硬件的硬件类型;用于根据所述目标加速硬件的硬件类型和用户使用场景,确定所述目标加速硬件的目标加速方式;其中,所述目标加速方式为物理化加速pf方式或者虚拟化加速vf方式;根据所述目标加速硬件的当前加速方式和所述目标加速方式,确定加速管理代理模块执行的目标转换程序;控制模块,用于基于所述目标加速硬件的所述目标加速方式配置所述加速管理代理模块;控制所述加速管理代理模块重启并运行所述目标转换程序,执行所述目标加速硬件从所述当前加速方式转换到所述目标加速方式。9.一种电子设备,其特征在于,所述电子设备包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
技术总结
本申请公开了一种加速硬件管理方法、装置、设备及存储介质,该方法包括:查询加速硬件数据库,确定目标加速硬件的硬件类型;根据硬件类型和用户使用场景,确定目标加速硬件的目标加速方式;根据目标加速硬件的当前加速方式和目标加速方式,确定加速管理代理模块执行的目标转换程序;配置加速管理代理模块;控制加速管理代理模块重启并运行目标转换程序,执行目标加速硬件加速方式切换。如此,根据加速硬件的硬件类型和用户使用场景确定的目标加速方式更符合用户使用场景的要求;根据目标加速方式配置加速管理代理模块中的目标转换程序并执行该转换程序,可以实现加速硬件在PF和VF方式之间的动态切换,且不会影响虚拟机管理服务的连续性。务的连续性。务的连续性。
技术研发人员:王悦 郭雷
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.09.02
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/