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

一种GPU虚拟化管理系统和方法与流程

2023-01-16 11:57:57 来源:中国专利 TAG:

一种gpu虚拟化管理系统和方法
技术领域
1.本发明涉及计算机技术领域,更具体地,涉及一种gpu虚拟化管理系统和方法。


背景技术:

2.图形处理器(graphics processing unit,gpu),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。gpu使显卡减少了对cpu的依赖,并进行部分原本cpu的工作,尤其是在3d图形处理时gpu所采用的核心技术有硬件t&l(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件t&l技术可以说是gpu的标志。
3.随着计算机硬件的高速发展,计算机的数据处理能力也得到了极大的提升。在一些需要大量的图形渲染和虚拟桌面需求的行业,由于同时采购多个大型图形工作站无疑会大大的增加企业的成本,同时多个用户也并非同时段使用图形工作站,并且使其gpu的算力达到满负荷运行,而虚拟化技术无疑成为解决改善这种情况的关键,因此,如何通过虚拟化技术为用户合理分配gpu算力是亟待解决的问题。


技术实现要素:

4.本发明针对现有技术中存在的技术问题,提供一种gpu虚拟化管理系统和方法,用以解决如何通过虚拟化技术为用户合理分配gpu算力的问题。
5.根据本发明的第一方面,提供了一种gpu虚拟化管理系统,包括:用户交互模块、应用服务模块和kvm底层模块;所述用户交互模块,用于接收用户交互指令,并将所述交互指令发送至所述应用服务模块;所述应用服务模块,用于根据所述交互指令生成资源分配指令,并将所述资源分配指令发送至所述kvm底层模块;所述kvm底层模块,用于根据所述资源分配指令,获取其对应的虚拟gpu,并将所述虚拟gpu挂载至预设虚拟机中。
6.在上述技术方案的基础上,本发明还可以作出如下改进。
7.优选的,所述应用服务模块包括:动态配置单元、消息队列单元和数据存储单元;所述动态配置单元,用于动态管理所述应用服务模块中的所有应用配置和服务配置;所述消息队列单元,用于将所述用户交互模块、所述应用服务模块和所述kvm底层模块发出的指令和/或消息转发至对应模块;所述数据存储单元,用于存储系统初始化已经系统运行过程中产生的数据。
8.优选的,所述数据存储单元包括:缓存数据库和关系型数据库;所述缓存数据库,用于存储所述预设虚拟机的配置信息;
所述关系型数据库,用于存储所述用户的详细信息以及其与所述预设虚拟机的对应关系。
9.优选的,所述系统还包括:虚拟环境管理模块;所述虚拟环境管理模块,用于为系统中虚拟环境的操作指令以及参数配置提供支持,所述操作指令至少包括虚拟机创建、虚拟机状态更新、网络参数配置和存储空间配置。
10.优选的,所述应用服务模块,还包括:资源管理模块;所述资源管理模块,用于根据所述用户发送的关机指令,卸载所述预设虚拟机中挂载的虚拟gpu,释放虚拟gpu资源。
11.优选的,所述系统还包括:自动巡检模块;所述自动巡检模块,用于基于预设巡检周期检测系统中处于关机状态的虚拟机的虚拟gpu状态,所述虚拟gpu状态至少包括挂载中、未挂载。
12.优选的,所述系统还包括:资源供给模块;所述资源供给模块,用于将所述预设虚拟机通过所述用户交互模块为所述用户提供服务。
13.根据本发明的第二方面,提供一种gpu虚拟化管理方法,包括:基于用户发送的登录指令,获取所述用户对应的gpu资源信息;根据所述gpu资源信息生成资源分配指令;基于所述资源分配指令获取其对应的虚拟gpu资源;将所述虚拟gpu资源挂载至预设虚拟机中,基于所述预设虚拟机为所述用户提供gpu算力。
14.优选的,所述将所述虚拟gpu资源挂载至预设虚拟机中,基于所述预设虚拟机为所述用户提供gpu算力的步骤之后,还包括:基于用户发送的关机指令,获取所述关机指令对应的虚拟机;将所述虚拟机中的虚拟gpu进行卸载,在卸载完成后关闭所述虚拟机。
15.优选的,所述在卸载完成后关闭所述虚拟机的步骤之后,还包括:基于预设巡检周期检测当前虚拟环境中处于关机状态的虚拟机的虚拟gpu状态,所述虚拟gpu状态至少包括挂载中、未挂载;在所述虚拟gpu状态为挂载中时,对所述虚拟机的虚拟gpu进行卸载。
16.根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机管理类程序时实现上述第二方面中任一gpu虚拟化管理方法的步骤。
17.根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现上述第二方面中任一gpu虚拟化管理方法的步骤。
18.本发明提供的一种gpu虚拟化管理系统和方法,系统包括:用户交互模块、应用服务模块和kvm底层模块;所述用户交互模块,用于接收用户交互指令,并将所述交互指令发送至所述应用服务模块;所述应用服务模块,用于根据所述交互指令生成资源分配指令,并将所述资源分配指令发送至所述kvm底层模块;所述kvm底层模块,用于根据所述资源分配指令,获取其对应的虚拟gpu,并将所述虚拟gpu挂载至预设虚拟机中。本发明通过根据用户
的交互指令生成资源分配指令,并通过资源分配指令为用户分配虚拟gpu资源,从而实现了物理gpu资源虚拟化使用,多个用户分段时间共享同一物理gpu资源的目的,进而可以在存在多个用户需要使用gpu资源时为每个用户合理分配虚拟gpu资源,有效降低了gpu资源的空闲率,大大节省了gpu算力的使用成本。
附图说明
19.图1为本发明提供的一种gpu虚拟化管理系统结构示意图;图2为本发明提供的gpu虚拟化管理系统操作时序图;图3为本发明提供的自动设备巡检流程的示意图;图4为本发明提供的一种gpu虚拟化管理方法流程图;图5为本发明提供的一种可能的电子设备的硬件结构示意图;图6为本发明提供的一种可能的计算机可读存储介质的硬件结构示意图。
具体实施方式
20.下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
21.图1为本发明提供的一种gpu虚拟化管理系统结构示意图,如图1所示,系统包括:用户交互模块、应用服务模块和kvm底层模块。
22.其中,所述用户交互模块,用于接收用户交互指令,并将所述交互指令发送至所述应用服务模块;所述应用服务模块,用于根据所述交互指令生成资源分配指令,并将所述资源分配指令发送至所述kvm底层模块;所述kvm底层模块,用于根据所述资源分配指令,获取其对应的虚拟gpu,并将所述虚拟gpu挂载至预设虚拟机中。
23.需要说明的是,在使用本系统之前还可以在一台实体设备中部署搭建kvm底层系统,从而通过上述kvm底层系统提供虚拟化服务。
24.同时,上述kvm-engine管理平台还可用于管理配置网络接口,将上述实体设备加入至公司路由设备中,可以使得上述实体设备可以在公司内网中使用,从个人完成虚拟机的操作以及虚拟机网络的配置。
25.可以理解的是,上述用户交互指令可以是用户发出的登录指令,也可以是用户发出了使用虚拟机的操作指令,本实施例对此不作限制,上述在发出上述交互指令之前并未开启需要使用的虚拟机。
26.应理解的是,上述资源分配指令中可以包含有虚拟gpu的相关参数,例如:显存大小、承载显示器最大数量、最大分辨率、支持的最大用户数和/或用户场景;还可以包含有对应的虚拟机id,用于在虚拟gpu分配成功后通过虚拟机id挂载至对应的虚拟机中。
27.在具体实现中,系统通过用户交互模块接收到用户发送的交互指令后,解析交互指令中的用户信息,根据用户信息获取用户的权限,当用户的权限中包含有可以使用的虚拟机时,将虚拟机列表发送给用户,以使用户选择对应的虚拟机设备,若没有可使用的虚拟机时,则设定用户选定的是通用虚拟机设备,应用服务模块在接收到上述虚拟机设备时,根据上述虚拟机设备的参数生成资源分配指令,并调用kvm底层模块的api,对系统所在实体设备中的实体gpu进行虚拟化,并将虚拟化后的gpu进行分片,得到上述虚拟机设备的参数
对应的虚拟gpu,当用户选择了虚拟机设备时,将上述虚拟gpu挂载至对应的虚拟机设备上,当用户选择的是通用虚拟机设备时,调用kvm底层模块创建一个新的虚拟机设备,并将上述虚拟gpu挂载至上述新的虚拟机设备,从而为用户提供gpu算力。
28.作为实施例,所述应用服务模块包括:动态配置单元、消息队列单元和数据存储单元。
29.其中,所述动态配置单元,用于动态管理所述应用服务模块中的所有应用配置和服务配置;所述消息队列单元,用于将所述用户交互模块、所述应用服务模块和所述kvm底层模块发出的指令和/或消息转发至对应模块;所述数据存储单元,用于存储系统初始化已经系统运行过程中产生的数据。
30.需要说明的是,在上述kvm部署完成后,还需要创建一台虚拟及用户部署安装应用服务模块的基础环境,上述基础环境包括:redis、mysql、nacos、rabbitmq以及调用java的jar服务包。
31.可以理解的是,上述动态配置单元为nacos,上述nacos可以用于发现、配置和管理微服务。nacos 提供了一组简单易用的特性集,可以用于快速实现动态服务发现、服务配置、服务元数据及流量管理。上述动态配置单元中的服务包括但不限于:用户登录、权限认证、虚拟机操作。
32.应理解的是,上述消息队列单元为rabbitmq,rabbitmq是实现了高级消息对垒协议的开源消息代理软件(也称之为面向消息的中间件),上述消息队列单元主要用于系统中各模块之间的通讯。
33.作为实施例,所述数据存储单元包括:缓存数据库和关系型数据库;其中,所述缓存数据库,用于存储所述预设虚拟机的配置信息;所述关系型数据库,用于存储所述用户的详细信息以及其与所述预设虚拟机的对应关系。
34.可以理解的是,上述缓存数据库为上述redis,用于存储通用虚拟机的参数模板,以及对应的虚拟gpu参数信息。
35.应理解的是,上述关系型数据库为上是mysql,用于存储系统中的业务数据,包括但不限于用于与虚拟机的对应关系,以及用户信息和用户权限等。
36.作为实施例,所述gpu虚拟化管理系统还包括:虚拟环境管理模块;其中,所述虚拟环境管理模块,用于为系统中虚拟环境的操作指令以及参数配置提供支持,所述操作指令至少包括虚拟机创建、虚拟机状态更新、网络参数配置和存储空间配置。
37.可以理解的是,kvm底层系统之上还可以包括kvm-engine管理平台,kvm-engine是基于web的管理平台,可以通过web protal对整个kvm环境进行管理;kvm-engine搭建在一体机环境中,用于根据指令创建虚拟机,给虚拟机分配vgpu资源并启动所述虚拟机,从而运行业务程序;也可还用于提供gpu直通、gpu完全虚拟化和sr-iov支持,从而使虚拟机获得gpu的运算能力,能进行图形渲染、科学计算等工作;也可用于对外提供控制接口,控制接口包括创建、开启、删除虚拟机,更新虚拟机配置、配置并开启gpu虚拟化和调整虚拟gpu配置等功能。
38.作为实施例,所述应用服务模块还包括:资源管理模块;所述资源管理模块,用于根据所述用户发送的关机指令,卸载所述预设虚拟机中挂载的虚拟gpu,释放虚拟gpu资源。
39.在具体实现中,为了避免虚拟gpu资源长期被占用而产生资源浪费,在用户不在需
要使用虚拟机时,也即是用户发送关机指令时,资源管理模块还可以调用kvm底层系统api卸载上述用户选择关闭的虚拟机中的虚拟gpu,从而释放gpu资源,实现gpu虚拟化动态管理的目的,大大提高了gpu资源的利用率。
40.作为实施例,所述gpu虚拟化管理系统还包括:所述资源供给模块,用于将所述预设虚拟机通过所述用户交互模块为所述用户提供服务。
41.可以理解的是,基于背景技术中的缺陷,本发明提供的一种gpu虚拟化管理系统和方法,系统包括:用户交互模块、应用服务模块和kvm底层模块;所述用户交互模块,用于接收用户交互指令,并将所述交互指令发送至所述应用服务模块;所述应用服务模块,用于根据所述交互指令生成资源分配指令,并将所述资源分配指令发送至所述kvm底层模块;所述kvm底层模块,用于根据所述资源分配指令,获取其对应的虚拟gpu,并将所述虚拟gpu挂载至预设虚拟机中。本发明通过根据用户的交互指令生成资源分配指令,并通过资源分配指令为用户分配虚拟gpu资源,从而实现了物理gpu资源虚拟化使用,多个用户分段时间共享同一物理gpu资源的目的,进而可以在存在多个用户需要使用gpu资源时为每个用户合理分配虚拟gpu资源,有效降低了gpu资源的空闲率,大大节省了gpu算力的使用成本。
42.在一种可能的应用场景中,本发明实施例还包括一种可能的实施流程,参见图2,图2为本发明提供的gpu虚拟化管理系统操作时序图;在图2中,用户首先通过展示层输出用户信息进行登录,展示层将登录指令发送至服务层,服务层会对登录信息进验证,在验证失败时返回登录失败的消息至展示层,以使用户重置密码或重新进行登录;若验证成功,则根据查询系统中mysql数据库中的用户权限,将用户权限中对应的虚拟机设备列表返回至展示层,以使用户选择设备,并将设备id发送至服务层,服务层根据上述设备id查询虚拟机的信息,从而获取用户选定的虚拟机配置参数,并根据上述配置参数生成资源分配指令,从而根据上述资源分配指令调用kvm底层api对虚拟化的gpu进行切片,得到对应的虚拟gpu资源,并将上述虚拟gpu资源挂载至上述虚拟机中并启动,虚拟机将自身的端口号返回至服务层,服务层基于上述虚拟机端口号为用户提供虚拟服务。当用户发送关机指令时,虚拟机通知kvm底层卸载自身的显卡,当卸载成功后,调用自身的关机命令进行关机。
43.服务层中,还包括有定期巡检服务,根据管理员设定的巡检周期,检测系统中虚拟机的虚拟gpu状态。
44.作为实施例,所述gpu虚拟化管理系统还包括:自动巡检模块;其中,所述自动巡检模块,用于基于预设巡检周期检测系统中处于关机状态的虚拟机的虚拟gpu状态,所述虚拟gpu状态至少包括挂载中、未挂载。
45.在具体实现中,为了进一步降低gpu资源因占比而未被使用产生的资源浪费,本实施例还包括了自动巡检模块,参见图3,图3为本发明提供的自动设备巡检流程的示意图,通过管理员设定的巡检周期(通常可以为一天,也可以根据实体机的性能设定,当实体机的gpu算力远远大于平均使用量时可适当延长)唤醒检测线程,查询已使用显卡的虚拟机,检查其是否处于关机状态,若处于关机状态则对关机状态的虚拟机中的虚拟gpu状态进行检测,当检测到虚拟gpu为未挂载时设定虚拟机为正常状态,当检测到虚拟gpu为挂载中状态时,则调用kvm底层系统将对应的虚拟gpu进行卸载。
46.请参阅图4,图4为本发明实施例提供的一种gpu虚拟化管理方法流程图,如图4所示,一种gpu虚拟化管理方法,方法包括:
步骤s100:基于用户发送的登录指令,获取所述用户对应的gpu资源信息;需要说明的是,本实施例方法的执行主体可以是具有数据处理、网络通信及程序运行功能的计算机终端设备,例如:电脑、平板电脑等;也可以是具有相同相似功能的服务器设备,还可以是具有相似功能的云服务器,本实施例对此不做限制。为了便于理解,本实施例及下述各实施例将以服务器设备为例进行说明。
47.步骤s200:根据所述gpu资源信息生成资源分配指令;步骤s300:基于所述资源分配指令获取其对应的虚拟gpu资源;步骤s400:将所述虚拟gpu资源挂载至预设虚拟机中,基于所述预设虚拟机为所述用户提供gpu算力。
48.在一种可能的实现方式中,所述将所述虚拟gpu资源挂载至预设虚拟机中,基于所述预设虚拟机为所述用户提供gpu算力的步骤之后,还包括:步骤s500:基于用户发送的关机指令,获取所述关机指令对应的虚拟机;步骤s600:将所述虚拟机中的虚拟gpu进行卸载,在卸载完成后关闭所述虚拟机。
49.在一种可能的实现方式中,所述在卸载完成后关闭所述虚拟机的步骤之后,还包括:步骤s700:基于预设巡检周期检测当前虚拟环境中处于关机状态的虚拟机的虚拟gpu状态,所述虚拟gpu状态至少包括挂载中、未挂载;步骤s800:在所述虚拟gpu状态为挂载中时,对所述虚拟机的虚拟gpu进行卸载。
50.可以理解的是,本发明提供的一种gpu虚拟化管理方法与前述各实施例提供的gpu虚拟化管理系统相对应,gpu虚拟化管理方法的相关技术特征可参考gpu虚拟化管理系统的相关技术特征,在此不再赘述。
51.请参阅图5,图5为本发明实施例提供的电子设备的实施例示意图。如图5所示,本发明实施例提供了一种电子设备,包括存储器1310、处理器1320及存储在存储器1310上并可在处理器1320上运行的计算机程序1311,处理器1320执行计算机程序1311时实现以下步骤:基于用户发送的登录指令,获取上述用户对应的gpu资源信息;根据上述gpu资源信息生成资源分配指令;基于上述资源分配指令对物理gpu进行虚拟化,得到上述gpu资源信息对应的虚拟gpu资源;将上述虚拟gpu资源挂载至预设虚拟机中,基于上述预设虚拟机为上述用户提供gpu算力。
52.请参阅图6,图6为本发明提供的一种计算机可读存储介质的实施例示意图。如图6所示,本实施例提供了一种计算机可读存储介质1400,其上存储有计算机程序1411,该计算机程序1411被处理器执行时实现如下步骤:基于用户发送的登录指令,获取上述用户对应的gpu资源信息;根据上述gpu资源信息生成资源分配指令;基于上述资源分配指令对物理gpu进行虚拟化,得到上述gpu资源信息对应的虚拟gpu资源;将上述虚拟gpu资源挂载至预设虚拟机中,基于上述预设虚拟机为上述用户提供gpu算力。
53.本发明提供的一种gpu虚拟化管理系统和方法,系统包括:用户交互模块、应用服务模块和kvm底层模块;所述用户交互模块,用于接收用户交互指令,并将所述交互指令发送至所述应用服务模块;所述应用服务模块,用于根据所述交互指令生成资源分配指令,并
将所述资源分配指令发送至所述kvm底层模块;所述kvm底层模块,用于根据所述资源分配指令,获取其对应的虚拟gpu,并将所述虚拟gpu挂载至预设虚拟机中。本发明通过根据用户的交互指令生成资源分配指令,并通过资源分配指令为用户分配虚拟gpu资源,从而实现了物理gpu资源虚拟化使用,多个用户分段时间共享同一物理gpu资源的目的,进而可以在存在多个用户需要使用gpu资源时为每个用户合理分配虚拟gpu资源,有效降低了gpu资源的空闲率,大大节省了gpu算力的使用成本。
54.需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
55.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
56.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
57.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
58.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
59.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
60.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
再多了解一些

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

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

相关文献