图形处理资源调配方法、装置、设备及存储介质与流程

文档序号:26503627发布日期:2021-09-04 06:35阅读:98来源:国知局
图形处理资源调配方法、装置、设备及存储介质与流程

1.本公开涉及计算机技术领域,具体而言,涉及一种图形处理资源调配方法、装置、设备及可读存储介质。


背景技术:

2.云计算是一种基于互联网的相关服务的增加、使用和交付模式,这种模式提供可用的、便捷的、按需的网络访问。云计算通常涉及通过互联网来提供动态易扩展且虚拟化的资源,采用虚拟化技术,把云计算数据中心的计算节点虚拟化成为若干个虚拟机,远端用户通过网络使用云计算系统中的虚拟机。
3.openstack是一个应用广泛、具有影响力的开源云计算管理平台,维护和管理各种云计算硬件资源,如内存、中央处理器(central processing unit,cpu)等。openstack从queen版本开始支持对图形处理器(graphic processing unit,gpu)资源的管理,从而可以创建出带gpu的虚拟机。openstack对gpu进行资源调配时,采用为一个虚拟机配置一个固定的gpu资源的方式。然而,云计算系统根据需要可能会创建很多个虚拟机,而使用的gpu是一个相对昂贵的处理部件,为每个虚拟机配置固定的gpu资源,gpu资源的利用率较低,造成gpu资源的极大浪费。
4.如上所述,如何提高虚拟机gpu资源的利用率成为亟待解决的问题。
5.在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本公开的目的在于提供一种图形处理资源调配方法、装置、设备及可读存储介质,至少在一定程度上提高为虚拟机调配的gpu资源的利用率。
7.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
8.根据本公开的一方面,提供一种图形处理资源调配方法,包括:获取图形处理虚拟资源的信息,所述图形处理虚拟资源包括图形处理虚拟共享资源,所述图形处理虚拟资源的信息包括所述图形处理虚拟共享资源的数量和超配参数;根据所述图形处理虚拟共享资源的数量和所述超配参数创建目标共享虚拟机;获取所述图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息;根据所述可用的图形处理共享虚拟资源的信息为所述目标共享虚拟机分配图形处理虚拟共享资源。
9.根据本公开的一实施例,所述根据所述图形处理虚拟共享资源的数量和超配参数创建目标共享虚拟机包括:获取已创建的共享虚拟机的数量;判断所述已创建的共享虚拟机的数量是否小于所述图形处理虚拟共享资源的数量与所述超配参数的乘积;在所述已创建的共享虚拟机的数量小于所述图形处理虚拟共享资源的数量与所述超配参数的乘积时,创建所述目标共享虚拟机。
10.根据本公开的一实施例,所述获取所述图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息包括:获取所述可用的图形处理共享虚拟资源对应的图形处理器的温度;所述根据所述可用的图形处理共享虚拟资源的信息为所述目标共享虚拟机分配图形处理虚拟共享资源包括:将所述可用的图形处理共享虚拟资源中对应的图形处理器的温度最低的图形处理共享虚拟资源分配给所述目标共享虚拟机。
11.根据本公开的一实施例,所述获取所述可用的图形处理共享虚拟资源对应的图形处理器的温度包括:通过监控组件获取图形处理器的温度,并将所述图形处理器的温度存储在服务监控数据库中;通过所述服务监控数据库的接口从所述服务监控数据库中获取所述可用的图形处理共享虚拟资源对应的图形处理器的温度。
12.根据本公开的一实施例,所述获取所述图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息包括:获取已创建的共享虚拟机的状态;在所述已创建的共享虚拟机的状态为关机时,对关机的已创建的共享虚拟机的图形处理共享虚拟资源进行回收,获得回收的图形处理共享虚拟资源的信息;获取未分配的图形处理共享虚拟资源的信息;将所述回收的图形处理共享虚拟资源的信息和所述未分配的图形处理共享虚拟资源的信息作为所述可用的图形处理共享虚拟资源的信息。
13.根据本公开的一实施例,所述方法还包括:响应于处于关机状态的所述目标共享虚拟机的开机请求,获取处于开机状态的共享虚拟机的数量;判断所述处于开机状态的共享虚拟机的数量是否小于所述图形处理虚拟共享资源的数量;在所述处于开机状态的共享虚拟机的数量小于所述图形处理虚拟共享资源的数量时,进行所述目标共享虚拟机的开机操作。
14.根据本公开的一实施例,所述图形处理虚拟资源还包括图形处理虚拟独享资源,所述图形处理虚拟资源的信息还包括所述图形处理虚拟独享资源的数量;所述方法还包括:响应于创建目标虚拟机请求,获取所述目标虚拟机的类型;在所述目标虚拟机的类型为独享型时,获取已创建的独享虚拟机的数量;判断所述已创建的独享虚拟机的数量是否小于所述图形处理虚拟独享资源的数量;在所述已创建的独享虚拟机的数量小于所述图形处理虚拟独享资源的数量时,创建目标独享虚拟机;获取所述图形处理虚拟独享资源中未分配的图形处理独享虚拟资源的信息;根据所述未分配的图形处理独享虚拟资源的信息为所述目标独享虚拟机分配图形处理虚拟独享资源。
15.根据本公开的再一方面,提供一种图形处理资源调配装置,包括:资源信息获取模块,用于获取图形处理虚拟资源的信息,所述图形处理虚拟资源包括图形处理虚拟共享资源,所述图形处理虚拟资源的信息包括所述图形处理虚拟共享资源的数量和超配参数;共享虚拟机创建模块,用于根据所述图形处理虚拟共享资源的数量和所述超配参数创建目标共享虚拟机;可用资源获取模块,用于获取所述图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息;共享资源分配模块,用于根据所述可用的图形处理共享虚拟资源的信息为所述目标共享虚拟机分配图形处理虚拟共享资源。
16.根据本公开的一实施例,所述共享虚拟机创建模块包括:已创建共享数量获取模块,用于获取已创建的共享虚拟机的数量;共享数量限制模块,用于判断所述已创建的共享虚拟机的数量是否小于所述图形处理虚拟共享资源的数量与所述超配参数的乘积;所述共享虚拟机创建模块,还用于在所述已创建的共享虚拟机的数量小于所述图形处理虚拟共享
资源的数量与所述超配参数的乘积时,创建所述目标共享虚拟机。
17.根据本公开的一实施例,所述可用资源获取模块,还用于获取所述可用的图形处理共享虚拟资源对应的图形处理器的温度;所述共享资源分配模块,还用于将所述可用的图形处理共享虚拟资源中对应的图形处理器的温度最低的图形处理共享虚拟资源分配给所述目标共享虚拟机。
18.根据本公开的一实施例,所述可用资源获取模块,包括:图形处理器温度采集模块,用于通过监控组件获取图形处理器的温度,并将所述图形处理器的温度存储在服务监控数据库中;图形处理器温度获取模块,用于通过所述服务监控数据库的接口从所述服务监控数据库中获取所述可用的图形处理共享虚拟资源对应的图形处理器的温度。
19.根据本公开的一实施例,所述可用资源获取模块,包括:状态获取模块,用于获取已创建的共享虚拟机的状态;资源回收模块,用于在所述已创建的共享虚拟机的状态为关机时,对关机的已创建的共享虚拟机的图形处理共享虚拟资源进行回收,获得回收的图形处理共享虚拟资源的信息;未分配共享资源获取模块,用于获取未分配的图形处理共享虚拟资源的信息;所述可用资源获取模块,还用于将所述回收的图形处理共享虚拟资源的信息和所述未分配的图形处理共享虚拟资源的信息作为所述可用的图形处理共享虚拟资源的信息。
20.根据本公开的一实施例,所述装置还包括:开机虚拟机数量获取模块,用于响应于处于关机状态的所述目标共享虚拟机的开机请求,获取处于开机状态的共享虚拟机的数量;开机虚拟机数量限制模块,用于判断所述处于开机状态的共享虚拟机的数量是否小于所述图形处理虚拟共享资源的数量;虚拟机开机模块,用于在所述处于开机状态的共享虚拟机的数量小于所述图形处理虚拟共享资源的数量时,进行所述目标共享虚拟机的开机操作。
21.根据本公开的一实施例,所述图形处理虚拟资源还包括图形处理虚拟独享资源,所述图形处理虚拟资源的信息还包括所述图形处理虚拟独享资源的数量;所述装置还包括:虚拟机类型获取模块,用于响应于创建目标虚拟机请求,获取所述目标虚拟机的类型;已创建独享数量获取模块,用于在所述目标虚拟机的类型为独享型时,获取已创建的独享虚拟机的数量;独享数量限制模块,用于判断所述已创建的独享虚拟机的数量是否小于所述图形处理虚拟独享资源的数量;独享虚拟机创建模块,用于在所述已创建的独享虚拟机的数量小于所述图形处理虚拟独享资源的数量时,创建目标独享虚拟机;未分配独享资源获取模块,用于获取所述图形处理虚拟独享资源中未分配的图形处理独享虚拟资源的信息;独享资源分配模块,用于根据所述未分配的图形处理独享虚拟资源的信息为所述目标独享虚拟机分配图形处理虚拟独享资源。
22.根据本公开的再一方面,提供一种设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任一种方法。
23.根据本公开的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任一种方法。
24.本公开的实施例提供的图形处理资源调配方法,根据图形处理虚拟共享资源的数量和超配参数创建目标共享虚拟机,然后根据图形处理虚拟共享资源中可用的图形处理共
享虚拟资源的信息为目标共享虚拟机分配图形处理虚拟共享资源,从而可实现创建超过图形处理虚拟共享资源的数量的虚拟机,提高了图形处理资源的利用率。
25.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
26.通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
27.图1示出本公开实施例中一种系统结构的示意图。
28.图2示出本公开实施例中一种图形处理资源调配方法的流程图。
29.图3是根据一示例性实施例示出的一种图形处理独享资源调配方法的流程图。
30.图4根据图2和图3示出了一种虚拟机创建流程的示意图。
31.图5示出了图2中所示的步骤s206在一实施例中的处理过程示意图。
32.图6示出了图2中所示的步骤s206和步骤s208在一实施例中的处理过程示意图。
33.图7是根据一示例性实施例示出的一种虚拟机开机时的gpu资源调配方法。
34.图8根据图6和图7示出了一种虚拟机开机流程的示意图。
35.图9是根据一示例性实施例示出的一种gpu资源调配系统架构图。
36.图10示出本公开实施例中一种图形处理资源调配装置的框图。
37.图11示出本公开实施例中另一种图形处理资源调配装置的框图。
38.图12示出本公开实施例中一种电子设备的结构示意图。
具体实施方式
39.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
40.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
41.此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。符号“/”一般表示前后关联对象是一种“或”的关系。
42.在本公开中,除非另有明确的规定和限定,“连接”等术语应做广义理解,例如,可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连。对于本领域
的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
43.如上所述,openstack不支持gpu资源的超配,比如一台计算节点有4块gpu显卡,若将其虚拟化为4个gpu资源,则最多只能创建出4台带gpu显卡的虚拟机,并未这4台虚拟机固定地各分配一个gpu资源,这样即使这4台虚拟机有些处于关机状态,也会一直占用着gpu资源,导致gpu资源的利用率低,造成gpu资源的浪费。
44.因此,本公开提供了一种图形处理资源调配方法,根据图形处理虚拟共享资源的数量和超配参数创建目标共享虚拟机,然后根据图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息为目标共享虚拟机分配图形处理虚拟共享资源,从而可实现创建超过图形处理虚拟共享资源的数量的虚拟机,提高了图形处理资源的利用率。
45.图1示出了可以应用本公开的图形处理资源调配方法或图形处理资源调配装置的示例性系统架构10。
46.如图1所示,系统架构10可以包括终端设备102、网络104、服务器106和数据库108。终端设备102可以是具有显示屏并且支持输入、输出的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、虚拟现实设备、智能家居等等。网络104用以在终端设备102和服务器106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器106可以是提供各种服务的服务器或服务器集群等,例如云计算系统中的计算节点,管理平台服务等等。数据库108可以为置于服务器上的大型数据库软件,也可以为安装在计算机上的小型数据库软件,用于存储数据。
47.用户可以使用终端设备102通过网络104与服务器106和数据库108交互,以接收或发送数据等。例如用户可使用终端设备102输入超配参数,通过网络104传输到管理平台服务器106上。又例如用户可使用终端设备102通过网络104向管理平台服务器106发送创建虚拟机的请求。再例如用户可在终端设备102通过网络104从数据库108中获取可用gpu虚拟资源数量等信息。
48.在服务器106也可通过网络104从数据库108接收数据或向数据库108发送数据等。例如服务器106可为云计算管理平台服务器,用于通过网络104从数据库108获取未分配的gpu虚拟资源数量等信息,然后进行gpu虚拟资源分配。又例如服务器106可为计算节点服务器,用于将该计算节点的gpu信息通过网络104发送至数据库108。
49.应该理解,图1中的终端设备、网络、服务器和数据库的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、服务器和数据库。
50.图2是根据一示例性实施例示出的一种图形处理资源调配方法的流程图。如图2所示的方法例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。
51.参考图2,本公开实施例提供的方法20可以包括以下步骤。
52.在步骤s202中,获取图形处理虚拟资源的信息,图形处理虚拟资源包括图形处理虚拟共享资源,图形处理虚拟资源的信息包括图形处理虚拟共享资源的数量和超配参数。
53.在一些实施例中,图2所示的方法可以通过业务管理台来实施,采用openstack项目对云计算平台进行管理,nova是openstack的一个核心组件,负责维护和管理各种云计算硬件资源,如内存、cpu、gpu等等。对云计算平台中的gpu服务器进行管理,首先需要安装gpu虚拟化驱动程序,明确gpu虚拟化切片类型,并在nova的配置文件中进行配置。openstack的
nova

compute服务启动时进行初始化,在初始化程序中收集当前计算节点包含的显卡信息,包括gpu的型号及数量、每块gpu的虚拟化切片类型等信息,并将这些信息记录到openstack的nova数据库compute_nodes表中,逻辑抽象为虚拟gpu(virtual gpu,vgpu)资源池。上层业务管理台可以通过调用nova原生接口/v2/os

hypervisor s/detail,从vgpu资源池中获取到每台计算节点的gpu虚拟资源信息。
54.在一些实施例中,图形处理虚拟资源可以包括图形处理虚拟共享资源(共享型gpu资源或共享型vgpu)和图形处理虚拟独享资源(独享型gpu资源或独享型vgpu),gpu虚拟独享资源不设置超配参数,gpu虚拟共享资源根据业务情况设置超配参数如超配比。超配参数是指表示可以创建的带有gpu的虚拟机的数量超过gpu虚拟资源的数量的参数,例如超配比为可以创建的带有gpu的虚拟机的数量与gpu虚拟资源的数量的比,云计算系统中vgpu资源池上线之前,可根据业务需求初步确定共享型gpu资源的超配比,并将该参数保存在业务管理台的配置中心。超配比可以通过后期分析运营数据根据实际情况进行调整。
55.业务管理台通过接口获取到所有计算节点的gpu虚拟资源信息后,可以根据实际业务场景进行规划,为每个gpu虚拟资源设置独享型或共享型标签,并记录在数据库中。在接收到创建目标虚拟机请求后,响应于创建目标虚拟机请求,可先获取待创建的目标虚拟机的类型,然后可按照独享型或共享型的逻辑进行创建及gpu虚拟资源分配,图2所示的方法为带有共享型gpu的虚拟机的创建流程,带有独享型gpu的虚拟机的创建流程可参照图3和图4。
56.在步骤s204中,根据图形处理虚拟共享资源的数量和超配参数创建目标共享虚拟机。
57.在一些实施例中,可获取已创建的共享虚拟机的数量,判断已创建的共享虚拟机的数量是否小于图形处理虚拟共享资源的数量与超配参数(超配比)的乘积,在已创建的共享虚拟机的数量小于图形处理虚拟共享资源的数量与超配参数的乘积时,创建目标共享虚拟机。例如,vgpu资源池中所有计算节点包含的vgpu的总数量为n(n为正整数),设置其中m1个vgpu为独享型,m2个vgpu为共享型,且共享型vgpu的超配比为r,那么该资源池最多可以创建出m1个带有独享型gpu的虚拟机和m2*r个带有共享型gpu的虚拟机,其中n=m1+m2,m1、m2为正整数,r为大于1的数,m2*r可为整数也可不为整数,若m2*r不为整数,则最多可创建出[m2*r](对m2*r取整)个带有共享型gpu的虚拟机。
[0058]
在一些实施例中,在已创建的共享虚拟机的数量不小于图形处理虚拟共享资源的数量与超配参数的乘积时,说明已创建的共享虚拟机的数量已达到最大可创建数,可提示资源不足。
[0059]
在步骤s206中,获取图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息。
[0060]
在一些实施例中,例如,可对已分配给带有共享型gpu的虚拟机但实际未使用的共享型gpu资源进行回收,然后将回收的共享型gpu资源与未分配的共享型gpu资源组成可用的共享型gpu资源,以实现共享型gpu资源的超配使用,具体实施方式可参照图5。
[0061]
在步骤s208中,根据可用的图形处理共享虚拟资源的信息为目标共享虚拟机分配图形处理虚拟共享资源。
[0062]
在一些实施例中,例如,可获取可用的图形处理共享虚拟资源对应的图形处理器
的温度,然后从中选取温度最低的图形处理器对应的图形处理共享虚拟资源分配给目标共享虚拟机,具体实施方式可参照图4及图6。
[0063]
在一些实施例中,例如,也可选取温度较低的图形处理器对应的图形处理共享虚拟资源分配给目标共享虚拟机,例如可设定一个温度阈值,从温度低于该阈值的图形处理器中随机选取一个,将其对应的图形处理共享虚拟资源分配给目标共享虚拟机。
[0064]
根据本公开实施例提供的图形处理资源调配方法,根据图形处理虚拟共享资源的数量和超配参数创建目标共享虚拟机,然后根据图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息为目标共享虚拟机分配图形处理虚拟共享资源,从而可实现创建超过图形处理虚拟共享资源的数量的虚拟机,提高了图形处理资源的利用率,最大化利用有限的gpu资源,降低集群部署的成本预算。
[0065]
图3是根据一示例性实施例示出的一种图形处理独享资源调配方法的流程图。如图3所示的方法例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。
[0066]
参考图3,本公开实施例提供的方法30可以包括以下步骤。
[0067]
在步骤s302中,获取图形处理虚拟独享资源的数量。获取gpu虚拟独享资源的信息的方法与获取gpu虚拟共享资源的信息的方法类似,仅在资源的标签上进行区分,具体实施方式可参照步骤s202。
[0068]
在步骤s304中,响应于创建目标虚拟机请求,获取目标虚拟机的类型。在目标虚拟机的类型为独享型时,则可采用图2的方法创建虚拟机并分配gpu虚拟资源。
[0069]
在步骤s306中,在目标虚拟机的类型为独享型时,获取已创建的独享虚拟机的数量。
[0070]
在步骤s308中,判断已创建的独享虚拟机的数量是否小于图形处理虚拟独享资源的数量。
[0071]
在步骤s310中,在已创建的独享虚拟机的数量小于图形处理虚拟独享资源的数量时,创建目标独享虚拟机。若已创建的独享虚拟机的数量已达到图形处理虚拟独享资源的数量,则提示资源不足,不再进行创建。
[0072]
在步骤s312中,获取图形处理虚拟独享资源中未分配的图形处理独享虚拟资源的信息。图形处理独享虚拟资源的信息例如可以是图形处理独享虚拟资源对应的物理gpu的温度,获得方法可参照图2中的步骤s206。
[0073]
在步骤s314中,根据未分配的图形处理独享虚拟资源的信息为目标独享虚拟机分配图形处理虚拟独享资源。与图2中的步骤s208中图形处理共享虚拟资源的分配类似,可从中选择温度最低的gpu的虚拟资源分配给创建的目标独享虚拟机,具体实施方式可参照图6。
[0074]
根据本公开实施例提供的图形处理独享资源调配方法,通过在创建独享型虚拟机时,根据剩余未分配的图形处理虚拟独享资源来进行调度,从所有可用独享型gpu虚拟资源中,选择温度最低的gpu对应的资源分配给虚拟机使用,避免了当有些显卡的实际工作时长较长但温度已经很高,而有些显卡实际工作的时长并不长而温度还比较低的情况下,openstack随机调度时可能调度到温度高的显卡分配给虚拟机使用,造成的显卡的负载不均衡,从而提高了显卡的使用寿命。
[0075]
图4根据图2和图3示出了一种虚拟机创建流程的示意图。如图4所示,流程开始
(s402),业务管理台接收创建gpu虚拟机的请求(s404)时,首先判断要创建独享型gpu虚拟机还是共享型gpu虚拟机(s406)。若是创建独享型gpu虚拟机,则判断已创建的独享型gpu虚拟机数量是否已达到最大可创建数m1(s4082),若达到,则提示资源不足,结束流程(s416);否则,业务管理台获取所剩可用独享型gpu资源(s410),进行调度选择,例如通过调用prometheus接口实时获取独享型gpu资源对应的显卡温度(s412),从所有可用独享型gpu池中,选择一块温度最低的gpu显卡对应的独享型gpu资源分配给虚拟机使用(s414),然后结束流程(s416)。若是创建共享型gpu虚拟机,则判断已创建的共享型gpu虚拟机数量是否已达到最大可创建数m2*r(s4086),若达到,则提示资源不足,结束流程(s416);否则,回收已分配但实际未使用的共享型gpu资源(s4086),结合未分配共享型gpu资源获取所有可用的共享型gpu资源(s410),然后通过调用prometheus接口实时获取共享型gpu资源对应的显卡温度(s412),从所有可用共享型gpu池中,选择一块温度最低的gpu显卡对应的共享型gpu资源分配给虚拟机使用(s414),然后结束流程(s416),实现了共享型gpu资源的超配使用。
[0076]
图5示出了图2中所示的步骤s206在一实施例中的处理过程示意图。如图5所示,可通过以下步骤获得可用的图形处理共享虚拟资源。
[0077]
在步骤s502中,获取已创建的共享虚拟机的状态。
[0078]
在一些实施例中,业务管理台可对每台带有gpu的虚拟机,通过调用nova虚拟机详情查询接口v2.1/servers/{id},获取到该标识(identification,id)的虚拟机当前所处状态为开机或关机。
[0079]
在步骤s504中,在已创建的共享虚拟机的状态为关机时,对关机的已创建的共享虚拟机的图形处理共享虚拟资源进行回收,获得回收的图形处理共享虚拟资源的信息。
[0080]
在步骤s506中,获取未分配的图形处理共享虚拟资源的信息。
[0081]
在步骤s508中,将回收的图形处理共享虚拟资源的信息和未分配的图形处理共享虚拟资源的信息作为可用的图形处理共享虚拟资源的信息。若已创建的共享虚拟机处于关机状态,则该虚拟机的gpu资源处于闲置状态,业务管理台可以进行回收,再结合尚未分配的共享型gpu资源,组成所有可用共享型gpu资源。
[0082]
根据本公开实施例提供的可用的图形处理共享虚拟资源方法,对闲置的共享型gpu资源进行回收再分配,实现共享型gpu资源的超配。
[0083]
图6示出了图2中所示的步骤s206和步骤s208在一实施例中的处理过程示意图。如图6所示,在创建了目标共享虚拟机之后,本公开实施例提供的为目标共享虚拟机分配图形处理共享虚拟资源分配方法可以包括以下步骤。
[0084]
在步骤s602中,通过监控组件获取图形处理器的温度,并将图形处理器的温度存储在服务监控数据库中。
[0085]
在一些实施例中,可在gpu服务器上安装部署开源监控组件dcgm(data center gpu manager,数据中心gpu管理器)

exporter,用于在集群环境中管理和监视gpu的状态,采集每块显卡gpu运行的温度(dcgm_gpu_temp),gpu的功率(dcgm_power_usage)等信息,并将这些数据保存到prometheus(一种云计算中开源的服务监控系统和时间序列数据库)中。
[0086]
在步骤s604中,通过服务监控数据库的接口从服务监控数据库中获取可用的图形处理共享虚拟资源对应的图形处理器的温度。
[0087]
在一些实施例中,可配置并创建端点(endpoint)以及对应的服务(service),通过
prometheus向外暴露接口/gpu/metrics/{id}提供业务管理台访问,使业务管理台能通过接口获取到每块显卡的实时温度、功率等信息。
[0088]
在步骤s606中,将可用的图形处理共享虚拟资源中对应的图形处理器的温度最低的图形处理共享虚拟资源分配给目标共享虚拟机。
[0089]
根据本公开实施例提供的图形处理共享虚拟资源分配方法,通过调用prometheus接口实时获取gpu运行的温度,在所有可用gpu资源中选择温度最低的gpu显卡分配给目标共享虚拟机。引入显卡温度作为gpu资源调度的参考指标,保证当前分配给虚拟机的那块gpu显卡是比较空闲、使用时长较短的,从而可以让那些使用时长较长、比较繁忙的显卡得到缓冲,待温度降低后再分配给虚拟机,可避免某块显卡一直处于高负荷工作状态,实现显卡在使用上的负载均衡,可以有效延长显卡的使用寿命。
[0090]
图7是根据一示例性实施例示出的一种虚拟机开机时的gpu资源调配方法。如图7所示的方法例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。
[0091]
参考图7,本公开实施例提供的方法70可以包括以下步骤。
[0092]
在步骤s702中,响应于处于关机状态的目标共享虚拟机的开机请求,获取处于开机状态的共享虚拟机的数量。
[0093]
在步骤s704中,判断处于开机状态的共享虚拟机的数量是否小于图形处理虚拟共享资源的数量。
[0094]
在步骤s706中,在处于开机状态的共享虚拟机的数量小于图形处理虚拟共享资源的数量时,进行目标共享虚拟机的开机操作。
[0095]
在一些实施例中,虚拟机开机时可以重新调度分配gpu资源,调度逻辑和创建带有gpu的虚拟时的一致,具体实施方式可参照图2和图3。
[0096]
在步骤s708中,在处于开机状态的共享虚拟机的数量不小于图形处理虚拟共享资源的数量时,对目标共享虚拟机的开机请求进行拦截,按照请求的先后时间顺序进行排队,直到有其他共享虚拟机释放图形处理虚拟共享资源后,进行目标共享虚拟机的开机操作。
[0097]
在一些实施例中,业务管理台对关机的带有gpu的目标共享虚拟机执行开机动作时,可首先判断是独享型gpu虚拟机还是共享型gpu虚拟机,若为独享型gpu虚拟机,则由于一对一分配了独享型gpu资源,可直接开机。若为共享型gpu虚拟机,则进入图7的步骤s702。
[0098]
根据本公开实施例提供的虚拟机开机时的图形处理共享虚拟资源分配方法,通过在所有可用gpu资源中选择温度最低的gpu显卡分配给目标共享虚拟机,可避免某块显卡一直处于高负荷工作状态,实现显卡在使用上的负载均衡。
[0099]
图8根据图6和图7示出了一种虚拟机开机流程的示意图。如图4所示,流程开始(s802),业务管理台接收对关机的gpu虚拟机开机的请求后(s804),判断请求开机的虚拟机带有独享型gpu还是共享型gpu(s806)。若是独享型gpu虚拟机,则可直接准备开机(s810);若是共享型gpu虚拟机,则需查询目前共享型gpu虚拟机开机运行的数量是否达到共享gpu资源的数量m2(s8082),若未达到则可以准备开机(s810),否则,开机需要排队等待(s8084),直到有其他共享型gpu虚拟机关机释放资源后方可准备开机。独享型gpu虚拟机和共享型gpu虚拟机开机时都会重新调度分配gpu资源,调度逻辑和创建gpu虚拟化时的一致,首先获取到所有可用gpu资源(s812),然后通过调用prometheus接口实时获取gpu资源对应的显卡温度(s814),从所有可用gpu池中,选择一块温度最低的gpu显卡对应的独享型gpu资
源分配给虚拟机(s816),然后对虚拟机执行开机(s818),结束流程(s820)。
[0100]
图9是根据一示例性实施例示出的一种gpu资源调配系统架构图。如图9所示,业务管理平台902用于创建gpu虚拟机并为其分配gpu资源,各计算节点906通过超级监督者(hypervisor)管理显卡,并将gpu温度、功率等信息上报到vgpu资源池904,vgpu资源池904中包括各gpu虚拟资源vgpu1、vgpu2、
……
、vgpun(n为正整数)的类型(独享型或共享型)、状态(空闲或占用、开机或关机等)。业务管理平台902创建的gpu虚拟机的数量可以超过vgpu资源的数量,例如图9中业务管理平台902创建了2n个gpu虚拟机,而vgpu资源的数量为n,则超配比为2,且同时运行的gpu虚拟机的数量不超过n。
[0101]
图10是根据一示例性实施例示出的一种图形处理资源调配装置的框图。如图10所示的装置例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。
[0102]
参考图10,本公开实施例提供的装置100可以包括资源信息获取模块1002、共享虚拟机创建模块1004、可用资源获取模块1006和共享资源分配模块1008。
[0103]
资源信息获取模块1002可用于获取图形处理虚拟资源的信息,图形处理虚拟资源包括图形处理虚拟共享资源,图形处理虚拟资源的信息包括图形处理虚拟共享资源的数量和超配参数。
[0104]
共享虚拟机创建模块1004可用于根据图形处理虚拟共享资源的数量和超配参数创建目标共享虚拟机。
[0105]
可用资源获取模块1006可用于获取图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息。
[0106]
共享资源分配模块1008可用于根据可用的图形处理共享虚拟资源的信息为目标共享虚拟机分配图形处理虚拟共享资源。
[0107]
图11是根据一示例性实施例示出的另一种图形处理资源调配装置的框图。如图11所示的装置例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。
[0108]
参考图11,本公开实施例提供的装置110可以包括资源信息获取模块1102、共享虚拟机创建模块1104、可用资源获取模块1106、共享资源分配模块1108、开机虚拟机数量获取模块11010、开机虚拟机数量限制模块11012、虚拟机开机模块11014,虚拟机类型获取模块11016、已创建独享数量获取模块11018、独享数量限制模块110110、独享虚拟机创建模块110112、未分配独享资源获取模块110114和独享资源分配模块110116,其中,共享虚拟机创建模块1104可以包括已创建共享数量获取模块11042、共享数量限制模块11044,可用资源获取模块1106可以包括图形处理器温度采集模块11062、图形处理器温度获取模块11064、状态获取模块11066、资源回收模块11068和未分配共享资源获取模块110610。
[0109]
资源信息获取模块1102可用于获取图形处理虚拟资源的信息,图形处理虚拟资源包括图形处理虚拟共享资源和图形处理虚拟独享资源,图形处理虚拟资源的信息包括图形处理虚拟共享资源的数量和超配参数以及图形处理虚拟独享资源的数量。
[0110]
共享虚拟机创建模块1104可用于根据图形处理虚拟共享资源的数量和超配参数创建目标共享虚拟机。
[0111]
共享虚拟机创建模块1104还可用于在已创建的共享虚拟机的数量小于图形处理虚拟共享资源的数量与超配参数的乘积时,创建目标共享虚拟机。
[0112]
已创建共享数量获取模块11042可用于获取已创建的共享虚拟机的数量。
[0113]
共享数量限制模块11044可用于判断已创建的共享虚拟机的数量是否小于图形处理虚拟共享资源的数量与超配参数的乘积。
[0114]
可用资源获取模块1106可用于获取图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息。
[0115]
可用资源获取模块1106还可用于获取可用的图形处理共享虚拟资源对应的图形处理器的温度。
[0116]
图形处理器温度采集模块11062可用于通过监控组件获取图形处理器的温度,并将图形处理器的温度存储在服务监控数据库中。
[0117]
图形处理器温度获取模块11064可用于通过服务监控数据库的接口从服务监控数据库中获取可用的图形处理共享虚拟资源对应的图形处理器的温度。
[0118]
状态获取模块11066可用于获取已创建的共享虚拟机的状态。
[0119]
资源回收模块11068可用于在已创建的共享虚拟机的状态为关机时,对关机的已创建的共享虚拟机的图形处理共享虚拟资源进行回收,获得回收的图形处理共享虚拟资源的信息。
[0120]
未分配共享资源获取模块110610可用于获取未分配的图形处理共享虚拟资源的信息。
[0121]
可用资源获取模块1106还可用于将回收的图形处理共享虚拟资源的信息和未分配的图形处理共享虚拟资源的信息作为可用的图形处理共享虚拟资源的信息。
[0122]
共享资源分配模块1108可用于根据可用的图形处理共享虚拟资源的信息为目标共享虚拟机分配图形处理虚拟共享资源。
[0123]
共享资源分配模块1108还可用于将可用的图形处理共享虚拟资源中对应的图形处理器的温度最低的图形处理共享虚拟资源分配给目标共享虚拟机。
[0124]
开机虚拟机数量获取模块11010可用于响应于处于关机状态的目标共享虚拟机的开机请求,获取处于开机状态的共享虚拟机的数量。
[0125]
开机虚拟机数量限制模块11012可用于判断处于开机状态的共享虚拟机的数量是否小于图形处理虚拟共享资源的数量。
[0126]
虚拟机开机模块11014可用于在处于开机状态的共享虚拟机的数量小于图形处理虚拟共享资源的数量时,进行目标共享虚拟机的开机操作。
[0127]
虚拟机类型获取模块11016可用于响应于创建目标虚拟机请求,获取目标虚拟机的类型。
[0128]
已创建独享数量获取模块11018可用于在目标虚拟机的类型为独享型时,获取已创建的独享虚拟机的数量。
[0129]
独享数量限制模块110110可用于判断已创建的独享虚拟机的数量是否小于图形处理虚拟独享资源的数量。
[0130]
独享虚拟机创建模块110112可用于在已创建的独享虚拟机的数量小于图形处理虚拟独享资源的数量时,创建目标独享虚拟机。
[0131]
未分配独享资源获取模块110114可用于获取图形处理虚拟独享资源中未分配的图形处理独享虚拟资源的信息。
[0132]
独享资源分配模块110116可用于根据未分配的图形处理独享虚拟资源的信息为
目标独享虚拟机分配图形处理虚拟独享资源。
[0133]
本公开实施例提供的装置中的各个模块的具体实现可以参照上述方法中的内容,此处不再赘述。
[0134]
图12示出本公开实施例中一种电子设备的结构示意图。需要说明的是,图12示出的设备仅以计算机系统为示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0135]
如图12所示,设备1200包括中央处理单元(cpu)1201,其可以根据存储在只读存储器(rom)1202中的程序或者从存储部分1208加载到随机访问存储器(ram)1203中的程序而执行各种适当的动作和处理。在ram 1203中,还存储有设备1200操作所需的各种程序和数据。cpu1201、rom 1202以及ram 1203通过总线1204彼此相连。输入/输出(i/o)接口1205也连接至总线1204。
[0136]
以下部件连接至i/o接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至i/o接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
[0137]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(cpu)1201执行时,执行本公开的系统中限定的上述功能。
[0138]
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0139]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代
表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0140]
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括资源信息获取模块、数据预处理模块、共享虚拟机创建模块、可用资源获取模块和共享资源分配模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,资源信息获取模块还可以被描述为“从资源池获取gpu虚拟资源的模块”。
[0141]
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
[0142]
获取图形处理虚拟资源的信息,图形处理虚拟资源包括图形处理虚拟共享资源,图形处理虚拟资源的信息包括图形处理虚拟共享资源的数量和超配参数;根据图形处理虚拟共享资源的数量和超配参数创建目标共享虚拟机;获取图形处理虚拟共享资源中可用的图形处理共享虚拟资源的信息;根据可用的图形处理共享虚拟资源的信息为目标共享虚拟机分配图形处理虚拟共享资源。
[0143]
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1