CN108347341A - 一种用于调整虚拟机加速能力的加速能力调整方法及装置 - Google Patents
一种用于调整虚拟机加速能力的加速能力调整方法及装置 Download PDFInfo
- Publication number
- CN108347341A CN108347341A CN201710060046.6A CN201710060046A CN108347341A CN 108347341 A CN108347341 A CN 108347341A CN 201710060046 A CN201710060046 A CN 201710060046A CN 108347341 A CN108347341 A CN 108347341A
- Authority
- CN
- China
- Prior art keywords
- acceleration
- virtual machine
- virtual
- capacity
- acceleration capacity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
本申请涉及网络技术领域,尤其涉及一种用于调整虚拟机的加速能力的加速能力调整方法及装置,以解决在对虚拟机分配或释放PCI加速设备时导致业务中断的问题,该方法为:确定待调整虚拟机以及待调整虚拟机的加速能力需求,根据待调整虚拟机,以及加速能力需求,重新配置已分配给待调整虚拟机的至少一个虚拟加速设备的加速能力。因此,采用本申请实施例提供的方法不改变虚拟加速设备数量,不需要重启虚拟机使新分配的加速能力或释放的加速能力生效,不会造成业务中断。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种用于调整虚拟机加速能力的加速能力调整方法及装置。
背景技术
网络功能虚拟化(Network Function Virtualization,NFV)的目的是希望通过虚拟化技术,在通用的高性能服务器、交换机和存储中实现部分网络功能。
在NFV演进场景下,基于专用硬件的网络设备可以利用虚拟化技术部署在通用服务器之上,从传统的“嵌入式软件+专用硬件”的组合形态,演变成“软件+通用硬件”的组合形态。具体的,参阅图1所示,为了实现硬件通用化,需要将基于专用硬件的网络设备中的网络功能(Network Function,NF)程序剥离出来,形成虚拟网络功能(VirtualizationNetwork Function,VNF)程序,即将NF嵌入式软件与专有硬件的组合转变为VNF软件、虚拟管理程序(Hypervisor)中间件和通用硬件的组合,因此,无需使用传统的专用硬件,采用通用硬件即可。
但是,在采用通用硬件后,NF高吞吐量低时延要求将无法保持,原因在于,传统的基于专用硬件的网络设备使用专用加速硬件处理网络业务,而采用通用硬件后,通用硬件中的CPU处理能力不足,导致处理时间延长。在实际应用中,通用硬件中的应用程序为了缩短执行时间,提高运行效率,通常可以将应用程序中的部分业务(或者功能)卸载到硬件加速设备上执行,由于硬件加速设备本身的运行速度快,因此可以缩短应用程序的执行时间。
常见的加速业务有加解密、压缩、解压缩、音视频编解码等。常见的加速设备包括可编程的外围部件互连标准(peripheral component interconnect,PCI)设备,比如,现场可编程门阵列(field programmable gate array,FPGA),是业界普遍采用的加速硬件。
为了提高加速性能,FPGA设备使用单根I/O虚拟化(Single Root I/OVirtualization,SRIOV)技术,可直接分配给虚拟机,供运行在虚拟机内部的应用程序使用。具体的,现有技术中,基于感知加速能力的SRIOV直通PCI加速硬件管理方案,是业界标准方案。通过该方案实现虚拟机加速能力的扩容或减容,是基于PCI加速设备粒度的分配或释放,采用这种方案在对虚拟机分配或释放PCI加速设备时,需要重启虚拟机才能使PCI加速设备完成分配或释放,导致业务中断。
发明内容
本申请实施例是提供一种用于调整虚拟机加速能力的加速能力调整方法及装置,以解决在对虚拟机分配或释放PCI加速设备时,需要重启虚拟机才能使PCI加速设备完成分配或释放,导致业务中断的问题。
本申请实施例的目的是通过以下技术方案实现的:
第一方面、一种用于调整虚拟机的加速能力的加速能力调整方法,所述方法用于调整虚拟机的加速能力,所述方法包括:确定待调整虚拟机以及所述待调整虚拟机的加速能力需求;
根据所述待调整虚拟机,以及所述加速能力需求,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力。
因此,采用本申请实施例提供的方法调整虚拟机对应的加速能力时不改变虚拟加速设备数量,不需要重启虚拟机使新分配的加速能力或释放的加速能力生效,不会造成业务中断。
在一种可能的实现方式中,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力具体包括:确定待调整的虚拟加速设备,所述待调整的虚拟加速设备为已分配给所述待调整虚拟机的至少一个虚拟加速设备;根据所述加速能力需求,重新配置所述待调整的虚拟加速设备,以使得重新配置后的所述待调整虚拟机的加速能力适应所述加速能力需求。若加速能力需求大于虚拟机的加速能力,则分配加速能力,否则释放加速能力。
在一种具体的实现方式中,假设加速能力需求包括加速类型、算法类型、加速能力数值。此时,根据待调整虚拟机的加速能力需求,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力时,可以采用但不限于以下方法:
针对至少一个虚拟加速设备中每个虚拟加速设备,执行以下操作:
在当前虚拟加速设备的配置信息中存在目标配置信息时,重新配置目标配置信息中的加速能力数值,或者,在当前虚拟加速设备的配置信息中不存在目标配置信息时,为当前虚拟加速设备新增一个目标配置信息,新增的目标配置信息中包括加速能力需求中的加速类型、算法类型和加速能力数值;
以使得至少一个虚拟加速设备分别对应的目标配置信息中的加速能力数值之和等于加速能力需求中的加速能力数值;其中,第一目标配置信息的加速类型与加速能力需求中的加速类型相同、且算法类型与加速能力需求中的算法类型相同。
因此,采用本申请实施例提供的方法能够实现对已分配给虚拟机的加速设备进行重新配置,以实现加速能力需求。本申请实施例提供的方法能够方便灵活地实现改变虚拟机对应的加速能力,配置方法简单,不用改变虚拟加速设备的数量。
在一种可能的实现方式中,根据检测的虚拟机负载信息,确定待调整虚拟机以及待调整虚拟机的加速能力需求。在一种具体的实现方式中,当虚拟机的某种计算能力的负载超过预设的阈值时,将该虚拟机确定为待调整虚拟机;根据该计算能力的负载,确定待调整虚拟机的加速能力需求为高于当前虚拟机的加速能力。在一种具体的实现方式中,负载超过/低于阈值时确定为待调整虚拟机;负载超过/低于阈值一段时间确定为待调整虚拟机;加速能力需求为使负载降低/增加到一个阈值的加速能力;或者加速能力需求为大于/小于当前虚拟机的加速能力。在一种具体的实现方式中,根据虚拟机的已分配任务确定待调整虚拟机以及待调整虚拟机的加速能力需求,其中,当虚拟机的加速能力不能满足已分配任务的加速需求时,确定虚拟机为待调整虚拟机,待调整虚拟机的加速能力需求为能满足已分配任务的加速需求的加速能力。
因此,本申请实施例中提供了多种方法确定待调整虚拟机和待调整虚拟机的加速能力需求。
第二方面,一种用于调整虚拟机的加速能力的加速能力调整方法,包括:加速代理接收加速能力调整请求,加速能力调整请求携带虚拟机标识和加速能力调整指示;加速代理确定虚拟机标识对应的虚拟机,以及根据加速能力调整指示配置已分配给虚拟机的虚拟加速设备。
因此,采用本申请实施例提供的方法基于加速能力粒度实现加速能力伸缩,不改变PCI加速设备数量,不需要重启虚拟机使新分配的加速能力或释放的加速能力生效,不会造成业务中断。此外,现有技术中基于虚拟加速设备粒度的加速能力伸缩,变更粒度只能是分配/释放加速设备,而APP对加速能力变更诉求可能是一个PCI加速设备的一部分,由此导致加速能力部分冗余,相当于产生无效的资源碎片,采用本申请实施例提供的方法不会出现上述问题,提高带宽资源的利用率。进一步地,相较于现有技术中基于虚拟加速设备粒度的加速能力伸缩,APP在使用多个加速设备需要增加加速设备调度开销,采用本申请实施例提供的方法基于加速能力粒度的伸缩,APP只需要使用一个加速设备即可,不需要对加速设备进行调度,降低了复杂度和信令开销。
在一种可能的实现方式中,加速能力调整指示携带分配加速能力指示和第一加速类型、第一算法类型和第一加速能力数值;所述分配加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备分配加速能力;
此时,根据加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备,可采用以下方法:加速代理将已分配给虚拟机的任一虚拟加速设备作为目标虚拟加速设备;进一步地,若加速代理根据加速能力调整指示对目标虚拟加速设备进行配置,加速代理确定目标虚拟加速设备的配置信息中存在第一目标配置信息时,加速代理将第一目标配置信息中的加速能力数值重新配置为原加速能力数值与第一加速能力数值的和;或者,若加速代理确定目标虚拟加速设备的配置信息中不存在第一目标配置信息,为目标虚拟加速设新增一个配置信息,新增的配置信息中包括第一加速类型、第一算法类型和第一加速能力数值;其中,第一目标配置信息的加速类型与第一加速类型相同、且算法类型与第一算法类型相同。
因此,加速代理可以通过驱动直接重新配置目标虚拟加速设备,所需信令开销较少,不会产生资源碎片。
在一种可能的实现方式中,加速能力调整指示携带释放加速能力指示和第二加速类型、第二算法类型和第二加速能力数值;释放加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备释放加速能力;此时,根据加速能力调整指示配置已分配给虚拟机的虚拟加速设备,可以采用以下方法:加速代理将已分配给虚拟机的虚拟加速设备中具有第二目标配置信息的任一虚拟加速设备为目标虚拟加速设备,其中,第二目标配置信息的加速类型与第二加速类型相同、且算法类型与第二算法类型相同、且加速能力数值大于第二加速能力数值,进一步地,加速代理根据加速能力调整指示对目标虚拟加速设备进行配置,将针对目标虚拟加速设备的第二目标配置信息中的加速能力数值重新配置为原加速能力数值与第二加速能力数值的差。
因此,加速代理可以通过驱动直接重新配置目标虚拟加速设备,所需信令开销较少,不会产生资源碎片。
在一种可能的实现方式中,在加速代理根据加速能力调整指示配置已分配给虚拟机的虚拟加速设备之后,加速代理反馈配置结果指示,配置结果指示用于通知是否完成加速能力调整请求。因此,加速代理能够及时反馈加速能力调整请求的完成情况,以便用户获知最新的加速能力配置情况。
在一种可能的实现方式中,本申请实施例提供的方法还包括:加速代理统计所辖范围内至少一个虚拟加速设备的加速能力使用信息,其中,第i个加速设备的加速能力使用信息包括第i个加速设备中每个加速类型与算法类型的组合对应的加速能力使用量,并将至少一个虚拟加速设备的加速能力使用信息上报至加速控制器,以便加速控制器获知各个虚拟加速设备的加速能力使用信息,确定需要调整加速能力的设备。
第二方面,本申请实施例提供一种物理主机,所述物理主机包括:包括至少一个物理加速设备的硬件层,运行在所述硬件层之上的宿主机Host、以及运行于所述Host之上的至少一个虚拟机以及至少一个虚拟加速设备,所述虚拟加速设备基于所述物理加速设备为所述虚拟机提供加速能力,其中,所述Host用于实现第一方面或第一方面的任意可能的实现方式中的方法。
第三方面,本申请实施例提供一种物理主机,所述物理主机包括:包括至少一个物理加速设备的硬件层,运行在所述硬件层之上的宿主机Host、以及运行于所述Host之上的至少一个虚拟机以及至少一个虚拟加速设备,所述虚拟加速设备基于所述物理加速设备为所述虚拟机提供加速能力,其中,所述Host用于实现第二方面或第二方面的任意可能的实现方式中的方法。
第四方面,本申请提供了一种用于调整虚拟机的加速能力的加速能力调整装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
第五方面,本申请提供了一种用于调整虚拟机的加速能力的加速能力调整装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
第六方面、一种用于调整虚拟机的加速能力的加速能力调整方法,包括:加速控制器接收加速能力调整请求,加速能力调整请求携带虚拟机标识和加速能力调整指示;加速控制器根据虚拟机标识确定目标加速代理,目标加速代理是指与虚拟机标识对应的虚拟机位于同一宿主机的加速代理;加速控制器向目标加速代理发送加速能力调整请求。因此,采用本申请实施例提供的方法调整虚拟机对应的加速能力时不改变虚拟加速设备数量,不需要重启虚拟机使新分配的加速能力或释放的加速能力生效,不会造成业务中断。
在一种可能的实现方式中,加速能力调整指示携带释放加速能力指示和第一加速能力参数;加速控制器向目标加速代理发送加速能力调整请求,包括:加速控制器根据第一加速能力参数确定第一加速能力数值;加速控制器确定宿主机中加速设备硬件的加速能力占用量大于等于第一加速能力数值时,向目标加速代理发送加速能力调整请求。因此,通过上述判断过程,能够有效避免不合理的加速能力调整请求发送至目标加速代理。
在一种可能的实现方式中,加速能力调整指示携带分配加速能力指示和第二加速能力参数;加速控制器向目标加速代理发送加速能力调整请求,包括:加速控制器根据第二加速能力参数确定第二加速能力数值;加速控制器确定宿主机中加速设备硬件的加速能力剩余量大于等于第二加速能力数值时,向目标加速代理发送加速能力调整请求。因此,通过上述判断过程,能够有效避免不合理的加速能力调整请求发送至目标加速代理。
在一种可能的实现方式中,还包括:加速控制器接收目标加速代理上报的至少一个虚拟加速设备的加速能力使用信息,其中,第i个虚拟加速设备的加速能力使用信息包括第i个虚拟加速设备中每个加速类型与算法类型的组合对应的加速能力使用量;方法,还包括:加速控制器确定虚拟加速设备硬件的加速能力剩余量小于第二加速能力数值时,根据至少一个虚拟加速设备的加速能力使用信息和自身保存的至少一个虚拟加速设备的配置信息确定需要释放加速能力的虚拟加速设备和相应的加速能力调整指示;加速控制器向目标加速代理发送针对需要释放加速能力的虚拟加速设备的加速能力调整指示,以使目标加速代理对需要释放加速能力的虚拟加速设备进行配置后,加速设备硬件的加速能力剩余量大于等于第二加速能力数值;加速控制器向目标加速代理发送加速能力调整请求。因此,加速控制器可根据至少一个虚拟加速设备的加速能力使用信息和自身保存的至少一个虚拟加速设备的配置信息确定需要释放加速能力的虚拟加速设备和相应的加速能力调整指示。采用上述方法能够使宿主机中的加速设备硬件得到有效利用,更好地满足宿主机中各个虚拟机对虚拟加速设备不同加速能力的需求。
在一种可能的实现方式中,在加速控制器向目标加速代理发送加速能力调整请求之后,还包括:加速控制器接收目标加速代理反馈的配置结果指示,配置结果指示用于通知加速控制器是否完成加速能力调整请求。加速控制器接收到加速代理反馈的配置结果指示后,可进一步将配置结果指示反馈给Management。因此,加速代理能够及时想加速控制器反馈加速能力调整请求的完成情况,以便用户获知最新的加速能力配置情况。
本申请实施例的有益效果:采用本申请实施例提供的方法确定待调整虚拟机以及待调整虚拟机的加速能力需求,然后根据待调整虚拟机和加速能力需求重新配置已分配给待调整虚拟机的至少一个虚拟加速设备的加速能力,因此本申请实施例提供的方法是基于加速能力粒度实现加速能力伸缩,不改变虚拟加速设备数量,不需要重启虚拟机使新分配的加速能力或释放的加速能力生效,不会造成业务中断。此外,现有技术中基于虚拟加速设备粒度的加速能力伸缩,变更粒度只能是分配/释放加速设备,而APP对加速能力变更诉求可能是一个虚拟加速设备的一部分,由此导致加速能力部分冗余,相当于产生无效的资源碎片,采用本申请实施例提供的方法不会出现上述问题,能够有效提高带宽资源的利用率。进一步地,相较于现有技术中基于虚拟加速设备粒度的加速能力伸缩,APP在使用多个加速设备需要增加加速设备调度开销,采用本申请实施例提供的方法基于加速能力粒度的伸缩,APP只需要使用一个加速设备即可,不需要对加速设备进行调度,降低了实现复杂度和信令开销。
附图说明
图1为本申请背景技术中硬件通用化的结构示意图;
图2为本申请实施例中基于感知加速能力的SRIOV直通PCI加速硬件管理方案对应的基本网络结构;
图3为本申请实施例中为VM1分配加速能力的具体流程图;
图4为本申请实施例中多次分配PCI加速设备的示意图;
图5为本申请实施例中多次释放PCI加速设备的示意图;
图6为本申请实施例中加速能力调整方法的概述流程图;
图7为本申请实施例中加速能力调整方法的具体流程图;
图8为本申请实施例中加速能力调整过程中各设备之间的交互示意图;
图9为本申请实施例中加速能力分配过程的时序图;
图10为本申请实施例中加速能力释放过程的时序图;
图11为本申请实施例中多次调整加速能力的示意图;
图12为本申请实施例中加速能力调整装置的结构示意图之一;
图13为本申请实施例中加速能力调整装置的结构示意图之二。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
参阅图2所示为基于感知加速能力的SRIOV直通PCI加速硬件管理方案对应的基本网络结构,在该网络结构中包括以下单元:
虚拟机(VM),运行在各个VM中的应用程序(APP),在NFV场景下APP对应为VNF,分配给VM的虚拟加速设备(vAcc),宿主机(Host),以及加速设备硬件(Accelerator),其中,虚拟加速设备(Virtual Function,VF)1至VF8是Accelerator通过SRIOV技术虚拟出来的,VF与vAcc存在对应关系。
图2中标识在vAcc下方的IPSec_3DES_2Gbps,用来描述vAcc的加速能力,其中,IPSec表示加速类型,3DES表示算法类型,2Gbps表示加速能力数值。
此外,如图2所示,该网络结构中还包括:
管理模块(Management)具体可以是OpenStack Nova。
加速控制器(Accelerator Controller)部署于OpenStack控制服务器(Server-Controller),用于管理所有host上的加速设备,并负责根据Management发送的加速能力调整请求确定该请求对应的加速代理(Accelerator Agent),以及向VM分配的VF以及该VF的配置信息或VM需要释放的VF,并向该加速代理发送相应的指示。
Accelerator Agent部署于Host,负责根据Accelerator Controller的指示为所属Host上的VM分配指示的VF并为该指示的VF配置相应的配置信息,或释放指示的VF。
具体的,参阅图3、图4、图5所示,说明为VM1分配加速能力的具体流程和为VM1释放加速能力的具体流程。
参阅图3所示,假设已分配给VM1的加速设备为vAcc1,vAcc1对应Accelerator中的VF1,该加速设备的配置信息为IPSec_3DES_2Gbps。
①Management向Accelerator Controller发送加速设备分配请求,用于请求Accelerator Controller给VM1分配PCI加速设备(即VF),并指定加速设备的加速能力为“IPSec_3DES_1Gbps”。
②Accelerator Controller在收到加速设备申请请求后,从VM1所在Host中选取未被占用的VF2,并给VM1所在Host的Accelerator Agent发送加速设备分配请求。
③Accelerator Agent根据接收到的加速设备分配请求执行加速设备分配,并将VF2的加速能力配置为“IPSec_3DES_1Gbps”,并向Accelerator Controller返回VF2的PCI地址。
Accelerator Controller向Management返回所分配VF2的PCI地址。
图3中返回的步骤未画出。
④Management将VF2的PCI地址配置到VM1的配置文件中。
⑤在VM1重启后,VM1内部的APP才能够使用VF2对应的vAcc2。
参阅图4所示,采用如图3所示的方法可以实现多次分配PCI加速设备,图4中已分配给VM的加速设备为vAcc1,vAcc1的配置信息为IPSec_3DES_2Gbps,通过上述步骤分配给VM的加速设备为vAcc2,vAcc2的配置信息为IPSec_3DES_3Gbps,然后可再次分配给VM的加速设备为vAcc3,vAcc3的配置信息为IPSec_DH_1Gbps。但是,每次分配新的加速设备,只有在VM重启后才能使用。
与图3所示的过程相反,假设已分配给VM1的加速设备为vAcc1,vAcc2,vAcc1的配置信息为IPSec_3DES_2Gbps,vAcc2的配置信息为IPSec_3DES_1Gbps。
Management向Accelerator Controller发送加速设备释放请求,用于指示给VM1释放PCI加速设备vAcc2。
Accelerator Controller在收到加速设备释放请求后,给VM1所在Host的Accelerator Agent发送加速设备释放请求。
Accelerator Agent根据接收到的加速设备释放请求执行加速设备释放,并将vAcc2对应的VF2的加速能力配置为空,返回vAcc2对应的VF2释放成功。
Accelerator Controller向Management返回vAcc2对应的VF2释放成功。
Management将vAcc2对应的VF2的PCI地址从VM1的配置文件中移除,VM1重启后完成将VM1释放vAcc2。
同理,参阅图5所示,采用上述方法可以实现多次释放PCI加速设备,图5中已分配给VM的加速设备为vAcc1,vAcc2,vAcc3,vAcc1的配置信息为IPSec_3DES_2Gbps,vAcc2的配置信息为IPSec_3DES_3Gbps,vAcc3的配置信息为IPSec_DH_1Gbps,通过上述步骤可以依次释放vAcc3,然后再次释放vAcc2。
由上可知,采用现有技术的方法对虚拟机进行加速能力伸缩时,需要重启虚拟机造成业务中断。因此,本申请实施例提供一种加速能力调整方法,参阅图6所示,该方法包括:
步骤600:确定待调整虚拟机以及待调整虚拟机的加速能力需求。
具体的,Host可实时统计各个VM的加速能力使用情况,进而确定待调整虚拟机,或者接收加速控制器发送的加速能力调整请求确定待调整虚拟机。
在一种具体的实现方式中,当虚拟机的某种计算能力的负载超过预设的阈值时,将该虚拟机确定为待调整虚拟机,根据该计算能力的负载,确定待调整虚拟机的加速能力需求为高于当前虚拟机的加速能力。
在一种具体的实现方式中,负载超过/低于阈值时确定为待调整虚拟机;负载超过/低于阈值一段时间确定为待调整虚拟机,其中,加速能力需求为使负载降低/增加到一个阈值的加速能力,或者加速能力需求为大于/小于当前虚拟机的加速能力。
在一种具体的实现方式中,根据虚拟机的已分配任务确定待调整虚拟机以及待调整虚拟机的加速能力需求,其中,当虚拟机的加速能力不能满足已分配任务的加速需求时,确定虚拟机为待调整虚拟机,待调整虚拟机的加速能力需求为能满足已分配任务的加速需求的加速能力。
例如,已分配给VM1的加速设备为vAcc1,vAcc1的配置信息为IPSec_3DES_2Gbps,Host根据VM1的加速能力使用情况确定需要调整VM1对应的加速能力,VM1的加速能力需求为IPSec_3DES_5Gbps。
步骤610:根据待调整虚拟机,以及加速能力需求,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力。
具体的,可将已分配给所述待调整虚拟机的所有虚拟加速设备、或者任一个设备、或者其他预设筛选规则确定至少一个虚拟加速设备。
在一种可能的实现方式中,例如,假设加速能力需求包括第一加速类型、第一算法类型、第一加速能力数值。此时,根据待调整虚拟机的加速能力需求,重新配置至少一个虚拟加速设备的加速能力时,可以采用但不限于以下方法:
针对至少一个虚拟加速设备中每个虚拟加速设备,执行以下操作:
在当前虚拟加速设备的配置信息中包括第一目标配置信息时,重新配置第一目标配置信息中的加速能力数值,或者,在当前虚拟加速设备的配置信息中不包括第一目标配置信息时,为当前虚拟加速设备新增一个第一目标配置信息,新增的第一目标配置信息中包括第一加速类型、第一算法类型和加速能力数值;
以使得至少一个虚拟加速设备分别对应的第一目标配置信息中的加速能力数值之和等于第一加速能力数值;
其中,第一目标配置信息的加速类型与第一加速类型相同、且算法类型与第一算法类型相同。
例如,VM1的加速能力需求为IPSec_3DES_5Gbps,已分配给VM1的加速设备为vAcc1,vAcc2,vAcc1的配置信息为IPSec_3DES_2Gbps,vAcc2的配置信息为IPSec_3DES_1Gbps,因此,可将vAcc1的配置信息重新配置为IPSec_3DES_3Gbps,vAcc2的配置信息重新配置为IPSec_3DES_2Gbps,以使得重新配置后两者加速能力值之和为5Gbps,满足VM1的加速能力需求。
参阅图7所示,本发明实施例提供一种加速能力调整方法,该方法包括:
步骤700:加速控制器接收加速能力调整请求。
加速能力调整请求携带虚拟机标识和加速能力调整指示。
具体的,该加速能力调整请求是由Management发送给加速控制器。
步骤710:加速控制器根据虚拟机标识确定目标加速代理。
目标加速代理是指与虚拟机标识对应的虚拟机位于同一宿主机的加速代理。
具体的,加速控制器根据虚拟机标识确定对应的虚拟机,进而确定该虚拟机所在的宿主机,然后将该宿主机内的加速代理作为目标加速代理。
步骤720:加速控制器向目标加速代理发送加速能力调整请求。
在执行步骤720时,可能包括以下几种实施过程:
第一种实施过程:
加速能力调整指示携带释放加速能力指示和第一加速类型、第一算法类型、第一加速能力数值。
此时,加速控制器首先根据第一加速能力数值,然后判断宿主机中加速设备硬件的加速能力占用量是否大于等于第一加速能力数值,若是,向目标加速代理发送加速能力调整请求。否则,不向目标加速代理发送加速能力调整请求。
通过上述判断过程,能够有效避免不合理的加速能力调整请求发送至目标加速代理。
第二种实施过程:
加速能力调整指示携带分配加速能力指示和第二加速类型、第二算法类型、第二加速能力数值。
此时,加速控制器根据第二加速能力数值,然后判断宿主机中加速设备硬件的加速能力剩余量是否大于等于第二加速能力数值时,若是,向目标加速代理发送加速能力调整请求。否则,不向目标加速代理发送加速能力调整请求。
通过上述判断过程,能够有效避免不合理的加速能力调整请求发送至目标加速代理。
此外,在本申请实施例中,加速控制器接收目标加速代理上报的至少一个虚拟加速设备的加速能力使用信息,其中,第i个虚拟加速设备的加速能力使用信息包括第i个虚拟加速设备中每个加速类型与算法类型的组合对应的加速能力使用量。因此,加速控制器能够获知每个虚拟加速设备的加速能力使用量,此时加速控制器可根据已知的虚拟加速设备配置信息,确定出需要释放加速能力的虚拟加速设备和相应的加速能力调整指示。
例如,Host已分配给VM1的虚拟加速设备为vAcc1,vAcc1的配置信息为IPSec_3DES_3Gbps,IPSec_DH_2Gbp,通过加速代理上报给加速控制器的vAcc1的加速能力使用信息可知加速类型为IPSec3和算法类型为DES的组合对应的加速能力使用量为1Gbps,加速类型为IPSec3和算法类型为DH的组合对应的加速能力使用量为2Gbps,因此,加速控制器确定vAcc1为需要释放加速能力的虚拟加速设备,加速能力调整请求携带VM1的标识和加速能力调整指示,该加速能力调整指示可以为释放加速能力指示和IPSec_3DES_2Gbps,或者,该加速能力调整指示可以为释放加速能力指示和IPSec_3DES_1Gbps。加速控制器向Host内的加速代理发送加速能力调整请求,使加速代理根据加速能力调整请求对vAcc1进行配置,释放其一部分加速能力。因此,加速控制器可根据至少一个虚拟加速设备的加速能力使用信息和自身保存的至少一个虚拟加速设备的配置信息确定需要释放加速能力的虚拟加速设备和相应的加速能力调整指示。
特别地,当加速控制器确定虚拟加速设备硬件的加速能力剩余量小于第二加速能力数值时,加速控制器可执行上述操作过程,以使目标加速代理对需要释放加速能力的虚拟加速设备进行配置后,加速设备硬件的加速能力剩余量大于等于第二加速能力数值。
加速控制器可继续向目标加速代理发送加速能力调整请求,将释放的加速能力分配给其他虚拟加速设备。
因此,采用上述方法能够使宿主机中的加速设备硬件得到有效利用,更好地满足宿主机中各个虚拟机对虚拟加速设备不同加速能力的需求。
步骤730:加速代理接收加速控制器发送的加速能力调整请求。
步骤740:加速代理确定虚拟机标识对应的虚拟机,以及根据加速能力调整指示配置已分配给虚拟机的虚拟加速设备。
可选地,在加速代理执行完步骤740后,加速代理向加速控制器反馈配置结果指示,配置结果指示用于通知加速控制器是否完成加速能力调整请求,例如,配置成功或配置失败。可选地,加速控制器接收到加速代理反馈的配置结果指示后,可进一步将配置结果指示反馈给Management。
具体的,在步骤730中,加速代理确定虚拟机标识对应的虚拟机,以及分配给虚拟机的虚拟加速设备。进一步地,由于加速代理接收到的加速能力调整请求包括两种类型,因此,具体包括以下两种情况:
第一种情况:加速能力调整指示为分配加速能力指示。分配加速能力指示用于指加速代理为已分配给所述虚拟机的虚拟加速设备分配加速能力
具体的,加速能力调整指示还携带第一加速类型、第一算法类型、第一加速能力数值。
此时,加速代理执行步骤740时,加速代理将分配给虚拟机的任一虚拟加速设备作为目标虚拟加速设备,进一步地,包括两种具体情况:
第一,加速代理确定目标虚拟加速设备的配置信息中存在第一目标配置信息时,将第一目标配置信息中的加速能力数值重新配置为原加速能力数值与第一加速能力数值的和。
第二,加速代理确定目标虚拟加速设备的配置信息中不存在第一目标配置信息时,为目标虚拟加速设新增一个配置信息,新增的配置信息中包括第一加速类型、第一算法类型和第一加速能力数值。
其中,第一目标配置信息的加速类型与第一加速类型相同、且算法类型与第一算法类型相同。
例如,Host已分配给VM1的虚拟加速设备为vAcc1,vAcc2,vAcc1的配置信息为IPSec_3DES_3Gbps,vAcc2的配置信息为IPSec_DH_2Gbp。假设加速能力调整指示携带分配加速能力指示和IPSec_3DES_2Gbps。
若加速代理将vAcc1作为目标虚拟加速设备,则vAcc1的配置信息为第一目标配置信息,因为,vAcc1的配置信息中的加速类型与第一加速类型相同、且算法类型与第一算法类型相同。此时,将vAcc1的配置信息重新配置为IPSec_3DES_5Gbps。
若加速代理将vAcc2作为目标虚拟加速设备,vAcc2的配置信息不包括第一目标配置信息,此时,为vAcc2新增一个配置信息IPSec_3DES_2Gbps,最终vAcc2的配置信息为IPSec_DH_2Gbp,IPSec_3DES_2Gbps。
第二种情况:加速能力调整指示为释放加速能力指示。释放加速能力指示用于指示加速代理为已分配给所述虚拟机的虚拟加速设备释放加速能力
具体的,加速能力调整指示还携带释放加速能力指示和第二加速类型、第二算法类型和第二加速能力数值。
此时,加速代理执行步骤740时,加速代理将已分配给虚拟机的虚拟加速设备中的具有第二目标配置信息的任一虚拟加速设备为目标虚拟加速设备,其中,第二目标配置信息的加速类型与第二加速类型相同、且算法类型与第二算法类型相同、且加速能力数值大于第二加速能力数值。
加速代理将针对目标虚拟加速设的第二目标配置信息中的加速能力数值重新配置为原加速能力数值与第二加速能力数值的差。
例如,Host已分配给VM1的虚拟加速设备为vAcc1,vAcc2,vAcc1的配置信息为IPSec_3DES_3Gbps,vAcc2的配置信息为IPSec_DH_2Gbp。假设加速能力调整指示携带释放加速能力指示和IPSec_3DES_1Gbps。
此时,加速代理判断vAcc1的配置信息存在第二目标配置信息,因为,vAcc1的配置信息中的加速类型与第一加速类型相同、且算法类型与第一算法类型相同,且3Gbps大于1Gbps,则将vAcc1作为目标虚拟加速设备,此时,将vAcc1的配置信息重新配置为IPSec_3DES_2Gbps。
特别地,假设加速能力调整指示携带释放加速能力指示和IPSec_3DES_4Gbps,此时没有满足条件的目标虚拟加速设备,因此,加速代理向加速控制器配置结果指示,指示配置失败,无法完成加速能力调整请求。
此外,加速代理可以调用加速设备驱动,统计所辖范围内至少一个虚拟加速设备的加速能力使用信息,其中,第i个加速设备的加速能力使用信息包括第i个加速设备中每个加速类型与算法类型的组合对应的加速能力使用量。
加速代理将至少一个虚拟加速设备的加速能力使用信息上报至加速控制器,以使加速控制器确定需要释放加速能力的加速设备。
下面结合附图对本申请实施提供的方法进行详细说明。
如图8所示,①Management向Accelerator Controller发送加速能力调整请求,加速能力调整请求携带VM1的标识和加速能力调整指示,其中,加速能力调整指示携带分配加速能力指示和IPSec_3DES_1Gbps,用于请求Accelerator Controller给VM1分配加速能力“IPSec_3DES_1Gbps”。
②Accelerator Controller在收到加速能力调整请求后,根据VM1确定Accelerator Agent,并向其发送加速能力调整请求。
③Accelerator Agent根据接收到的加速能力调整请求确定虚拟机标识对应的虚拟机,并确定目标虚拟加速设备为vAcc1,vAcc1的配置信息为IPSec_3DES_2Gbps,根据加速能力调整指示将vAcc1的配置信息重新配置为“IPSec_3DES_3Gbps”,并向AcceleratorController返回配置结果指示。
图8中返回的步骤未画出。
④在VM1不用重启,VM1内部的APP可直接使用vAcc1。
下面结合附图分别对加速能力分配和加速能力释放的过程进行详细说明。
参阅图9所示,假设为指定虚拟机分配的加速设备只包括一个,该加速设备的配置信息为IPSec_3DES_2Gbps,为该加速设备分配加速能力的具体流程为:
S901:Management向Accelerator Controller请求给指定虚拟机分配加速能力IPSec_3DES_1Gbps。
S902:Accelerator Controller确定虚拟机所在主机加速能力充足,即确定是否还能够分配加速能力IPSec_3DES_1Gbps。
S903:Accelerator Controller给虚拟机所在主机的加速代理发送加速能力分配请求。
该加速能力分配请求中携带IPSec_3DES_1Gbps。
S904:Accelerator Agent将所分配的加速设备的加速能力配置为IPSec_3DES_3Gbps。
S905:Accelerator Agent向Accelerator Controller返回加速能力分配成功。
S906:Accelerator Controller向Management返回加速能力分配成功。
参阅图10所示,假设为指定虚拟机分配的加速设备只包括一个,该加速设备的配置信息为IPSec_3DES_2Gbps,为该加速设备分配加速能力的具体流程为:
S1001:Management向Accelerator Controller请求给指定虚拟机释放加速能力IPSec_3DES_1Gbps。
S1002:Accelerator Controller确定虚拟机所在主机加速能力充足,即确定是否还能够释放加速能力IPSec_3DES_1Gbps。
S1003:Accelerator Controller给虚拟机所在主机的加速代理发送加速能力释放请求。
该加速能力释放请求中携带IPSec_3DES_1Gbps。
S1004:Accelerator Agent将所分配的加速设备的加速能力配置为IPSec_3DES_1Gbps。
S1005:Accelerator Agent向Accelerator Controller返回加速能力释放成功。
S1006:Accelerator Controller向Management返回加速能力释放成功。
又例如,如图11所示,Host已分配给VM的虚拟加速设备为vAcc1,vAcc1的配置信息为IPSec_3DES_2Gbps,加速代理接收加速控制器发送的加速能力调整请求,该加速能力调整请求携带VM的标识和加速能力调整指示,其中,加速能力调整指示为分配加速能力指示和IPSec_3DES_3Gbps,确定vAcc1为目标虚拟加速设备,将vAcc1的配置信息配置为IPSec_3DES_5Gbps。进一步地,加速代理接收加速控制器发送的加速能力调整请求,该加速能力调整请求携带VM的标识和加速能力调整指示,其中,加速能力调整指示为分配加速能力指示和IPSec_DH_1Gbps,确定vAcc1为目标虚拟加速设备,将vAcc1的配置信息配置为IPSec_3DES_5Gbps,IPSec_DH_1Gbps。进一步地,加速代理接收加速控制器发送的加速能力调整请求,该加速能力调整请求携带VM的标识和加速能力调整指示,其中,加速能力调整指示为释放加速能力指示和IPSec_3DES_3Gbps,确定vAcc1为目标虚拟加速设备,将vAcc1的配置信息配置为IPSec_3DES_2Gbps,IPSec_DH_1Gbps。
因此,采用本申请实施例提供的方法基于加速能力粒度实现加速能力伸缩,不改变PCI加速设备数量,不需要重启虚拟机使新分配的加速能力或释放的加速能力生效,不中断业务。此外,现有技术中基于PCI加速设备粒度的加速能力伸缩,变更粒度只能是分配/释放加速设备,而APP对加速能力变更诉求可能是一个PCI加速设备的一部分,导致加速能力部分冗余,相当于产生无效的资源碎片,采用本申请实施例提供的方法不会出现上述问题,提高带宽资源的利用率。进一步地,相较于现有技术中基于PCI加速设备粒度的加速能力伸缩,APP在使用多个加速设备需要增加加速设备调度开销,采用本申请实施例提供的方法基于加速能力粒度的伸缩,APP只需要使用一个加速设备,不需要对加速设备进行调度,降低了复杂度和信令开销。
基于与图6所示实施例同样的构思,本申请实施例提供一种用于调整虚拟机加速能力的加速能力调整装置,重复之处不再赘述。
参阅图12所示,该装置1200包括:
分析单元1210,用于确定待调整虚拟机以及所述待调整虚拟机的加速能力需求;
配置单元1220,用于根据所述待调整虚拟机,以及所述加速能力需求,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力。
在一种可能的实现方式中,配置单元1220,具体用于:
确定待调整的虚拟加速设备,所述待调整的虚拟加速设备为已分配给所述待调整虚拟机的至少一个虚拟加速设备;根据所述加速能力需求,重新配置所述待调整的虚拟加速设备,以使得重新配置后的所述待调整虚拟机的加速能力适应所述加速能力需求。
在一种可能的实现方式中,分析单元1210,具体用于:
根据虚拟机的负载状态确定待调整虚拟机以及所述待调整虚拟机的加速能力需求。
在一种可能的实现方式中,分析单元1210,具体用于:
根据虚拟机的已分配任务确定待调整虚拟机以及所述待调整虚拟机的加速能力需求,其中,当虚拟机的加速能力不能满足已分配任务的加速需求时,确定所述虚拟机为待调整虚拟机,所述待调整虚拟机的加速能力需求为能满足已分配任务的加速需求的加速能力。
基于与图7所示实施例同样的构思,本申请实施例提供一种用于调整虚拟机加速能力的加速能力调整装置,重复之处不再赘述。
参阅图13所示,该装置1300包括:
接收单元1310,用于接收加速能力调整请求,所述加速能力调整请求携带虚拟机标识和加速能力调整指示;
处理单元1320,用于确定所述虚拟机标识对应的虚拟机,以及根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备。
在一种可能的实现方式中,所述加速能力调整指示携带分配加速能力指示,第一加速类型,第一算法类型和第一加速能力数值;所述分配加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备分配加速能力;
处理单元1320,用于根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备时,将已分配给所述虚拟机的任一虚拟加速设备作为目标虚拟加速设备;
若所述目标虚拟加速设备的配置信息中存在第一目标配置信息,将所述第一目标配置信息中的加速能力数值重新配置为原加速能力数值与所述第一加速能力数值的和;
若所述加速代理确定所述目标虚拟加速设备的配置信息中不存在所述第一目标配置信息,为所述目标虚拟加速设备新增一个配置信息,新增的配置信息中包括所述第一加速类型、所述第一算法类型和所述第一加速能力数值;
其中,所述第一目标配置信息的加速类型与所述第一加速类型相同且算法类型与所述第一算法类型相同。
在一种可能的实现方式中,所述加速能力调整指示携带释放加速能力指示、第二加速类型、第二算法类型和第二加速能力数值;所述释放加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备释放加速能力;
处理单元1320,用于根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备时,将已分配给所述虚拟机的虚拟加速设备中具有第二目标配置信息的任一虚拟加速设备作为目标虚拟加速设备,其中,所述第二目标配置信息的加速类型与所述第二加速类型相同、且算法类型与所述第二算法类型相同、且加速能力数值大于所述第二加速能力数值;
将针对所述目标虚拟加速设备的第二目标配置信息中的加速能力数值重新配置为原加速能力数值与所述第二加速能力数值的差。
在一种可能的实现方式中,所述装置还包括:
发送单元1330,用于在根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备之后,反馈配置结果指示,所述配置结果指示用于通知是否完成所述加速能力调整请求。
基于与图6所示实施例同样的构思,本发明实施例提供一种物理主机,重复之处不再赘述。如图2所示,所述物理主机包括:包括至少一个物理加速设备的硬件层,运行在所述硬件层之上的宿主机Host、以及运行于所述Host之上的至少一个虚拟机以及至少一个虚拟加速设备,所述虚拟加速设备基于所述物理加速设备为所述虚拟机提供加速能力,其中,
所述Host用于,确定待调整虚拟机以及所述待调整虚拟机的加速能力需求;根据所述待调整虚拟机,以及所述加速能力需求,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力。
在一种可能的实现方式中,所述Host用于:
重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力时,确定待调整的虚拟加速设备,所述待调整的虚拟加速设备为已分配给所述待调整虚拟机的至少一个虚拟加速设备;
根据所述加速能力需求,重新配置所述待调整的虚拟加速设备,以使得重新配置后的所述待调整虚拟机的加速能力适应所述加速能力需求。
在一种可能的实现方式中,所述Host用于:
确定待调整虚拟机以及所述待调整虚拟机的加速能力需求时,根据虚拟机的负载状态确定待调整虚拟机以及所述待调整虚拟机的加速能力需求。
在一种可能的实现方式中,所述Host用于:
确定待调整虚拟机以及所述待调整虚拟机的加速能力需求时,根据虚拟机的已分配任务确定待调整虚拟机以及所述待调整虚拟机的加速能力需求,其中,当虚拟机的加速能力不能满足已分配任务的加速需求时,确定所述虚拟机为待调整虚拟机,所述待调整虚拟机的加速能力需求为能满足已分配任务的加速需求的加速能力。
基于与图6所示实施例同样的构思,本发明实施例提供一种物理主机,重复之处不再赘述。如图2所示,本发明实施例提供一种物理主机,所述物理主机包括:包括至少一个物理加速设备的硬件层,运行在所述硬件层之上的宿主机Host、以及运行于所述Host之上的至少一个虚拟机以及至少一个虚拟加速设备,所述虚拟加速设备基于所述物理加速设备为所述虚拟机提供加速能力,其中,
所述Host用于:接收加速能力调整请求,所述加速能力调整请求携带虚拟机标识和加速能力调整指示;确定所述虚拟机标识对应的虚拟机,以及根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备。
在一种可能的实现方式中,所述加速能力调整指示携带分配加速能力指示,第一加速类型,第一算法类型和第一加速能力数值;所述分配加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备分配加速能力;
所述Host用于:根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备时,将已分配给所述虚拟机的任一虚拟加速设备作为目标虚拟加速设备;
若所述目标虚拟加速设备的配置信息中存在第一目标配置信息,将所述第一目标配置信息中的加速能力数值重新配置为原加速能力数值与所述第一加速能力数值的和;
若确定所述目标虚拟加速设备的配置信息中不存在所述第一目标配置信息,为所述目标虚拟加速设备新增一个配置信息,新增的配置信息中包括所述第一加速类型、所述第一算法类型和所述第一加速能力数值;
其中,所述第一目标配置信息的加速类型与所述第一加速类型相同且算法类型与所述第一算法类型相同。
在一种可能的实现方式中,所述加速能力调整指示携带释放加速能力指示、第二加速类型、第二算法类型和第二加速能力数值;所述释放加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备释放加速能力;
所述Host用于:
根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备时,将已分配给所述虚拟机的虚拟加速设备中具有第二目标配置信息的任一虚拟加速设备作为目标虚拟加速设备,其中,所述第二目标配置信息的加速类型与所述第二加速类型相同、且算法类型与所述第二算法类型相同、且加速能力数值大于所述第二加速能力数值;
将针对所述目标虚拟加速设备的第二目标配置信息中的加速能力数值重新配置为原加速能力数值与所述第二加速能力数值的差。
在一种可能的实现方式中,所述Host用于:
在根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备之后,反馈配置结果指示,所述配置结果指示用于通知是否完成所述加速能力调整请求。
综上所述,采用本申请实施例提供的方法确定待调整虚拟机以及待调整虚拟机的加速能力需求,然后根据待调整虚拟机和加速能力需求重新配置已分配给待调整虚拟机的至少一个虚拟加速设备的加速能力,因此本申请实施例提供的方法是基于加速能力粒度实现加速能力伸缩,不改变PCI加速设备数量,不需要重启虚拟机使新分配的加速能力或释放的加速能力生效,不会造成业务中断。此外,现有技术中基于PCI加速设备粒度的加速能力伸缩,变更粒度只能是分配/释放加速设备,而APP对加速能力变更诉求可能是一个PCI加速设备的一部分,由此导致加速能力部分冗余,相当于产生无效的资源碎片,采用本申请实施例提供的方法不会出现上述问题,能够有效提高带宽资源的利用率。进一步地,相较于现有技术中基于PCI加速设备粒度的加速能力伸缩,APP在使用多个加速设备需要增加加速设备调度开销,采用本申请实施例提供的方法基于加速能力粒度的伸缩,APP只需要使用一个加速设备即可,不需要对加速设备进行调度,降低了实现复杂度和信令开销。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括本申请实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种用于调整虚拟机的加速能力的加速能力调整方法,其特征在于,所述方法用于调整虚拟机的加速能力,所述方法包括:
确定待调整虚拟机以及所述待调整虚拟机的加速能力需求;
根据所述待调整虚拟机,以及所述加速能力需求,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力。
2.如权利要求1所述方法,其特征在于,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力具体包括:
确定待调整的虚拟加速设备,所述待调整的虚拟加速设备为已分配给所述待调整虚拟机的至少一个虚拟加速设备;
根据所述加速能力需求,重新配置所述待调整的虚拟加速设备,以使得重新配置后的所述待调整虚拟机的加速能力适应所述加速能力需求。
3.根据权利要求1或2所述方法,其特征在于,所述确定待调整虚拟机以及所述待调整虚拟机的加速能力需求具体包括:
根据虚拟机的负载状态确定待调整虚拟机以及所述待调整虚拟机的加速能力需求。
4.根据权利要求1或2所述方法,其特征在于,所述确定待调整虚拟机以及待调整虚拟机的加速能力需求具体包括:
根据虚拟机的已分配任务确定待调整虚拟机以及所述待调整虚拟机的加速能力需求,其中,当虚拟机的加速能力不能满足已分配任务的加速需求时,确定所述虚拟机为待调整虚拟机,所述待调整虚拟机的加速能力需求为能满足已分配任务的加速需求的加速能力。
5.一种用于调整虚拟机的加速能力的加速能力调整方法,其特征在于,包括:
加速代理接收加速能力调整请求,所述加速能力调整请求携带虚拟机标识和加速能力调整指示;
所述加速代理确定所述虚拟机标识对应的虚拟机,以及根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备。
6.如权利要求5所述的方法,其特征在于,所述加速能力调整指示携带分配加速能力指示,第一加速类型,第一算法类型和第一加速能力数值;所述分配加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备分配加速能力;
根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备,包括:
所述加速代理将已分配给所述虚拟机的任一虚拟加速设备作为目标虚拟加速设备;
若所述目标虚拟加速设备的配置信息中存在第一目标配置信息,所述加速代理将所述第一目标配置信息中的加速能力数值重新配置为原加速能力数值与所述第一加速能力数值的和;
若所述加速代理确定所述目标虚拟加速设备的配置信息中不存在所述第一目标配置信息,为所述目标虚拟加速设备新增一个配置信息,新增的配置信息中包括所述第一加速类型、所述第一算法类型和所述第一加速能力数值;
其中,所述第一目标配置信息的加速类型与所述第一加速类型相同且算法类型与所述第一算法类型相同。
7.如权利要求5所述的方法,其特征在于,所述加速能力调整指示携带释放加速能力指示、第二加速类型、第二算法类型和第二加速能力数值;所述释放加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备释放加速能力;
根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备,包括:
所述加速代理将已分配给所述虚拟机的虚拟加速设备中具有第二目标配置信息的任一虚拟加速设备作为目标虚拟加速设备,其中,所述第二目标配置信息的加速类型与所述第二加速类型相同、且算法类型与所述第二算法类型相同、且加速能力数值大于所述第二加速能力数值;
所述加速代理将针对所述目标虚拟加速设备的第二目标配置信息中的加速能力数值重新配置为原加速能力数值与所述第二加速能力数值的差。
8.如权利要求5-7任一项所述的方法,其特征在于,在所述加速代理根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备之后,还包括:
所述加速代理反馈配置结果指示,所述配置结果指示用于通知是否完成所述加速能力调整请求。
9.一种物理主机,其特征在于,所述物理主机包括:包括至少一个物理加速设备的硬件层,运行在所述硬件层之上的宿主机Host、以及运行于所述Host之上的至少一个虚拟机以及至少一个虚拟加速设备,所述虚拟加速设备基于所述物理加速设备为所述虚拟机提供加速能力,其中,
所述Host用于,确定待调整虚拟机以及所述待调整虚拟机的加速能力需求;根据所述待调整虚拟机,以及所述加速能力需求,重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力。
10.如权利要求9所述的物理主机,其特征在于,所述Host用于:
重新配置已分配给所述待调整虚拟机的至少一个虚拟加速设备的加速能力时,确定待调整的虚拟加速设备,所述待调整的虚拟加速设备为已分配给所述待调整虚拟机的至少一个虚拟加速设备;
根据所述加速能力需求,重新配置所述待调整的虚拟加速设备,以使得重新配置后的所述待调整虚拟机的加速能力适应所述加速能力需求。
11.如权利要求9或10所述的物理主机,其特征在于,所述Host用于:
确定待调整虚拟机以及所述待调整虚拟机的加速能力需求时,根据虚拟机的负载状态确定待调整虚拟机以及所述待调整虚拟机的加速能力需求。
12.如权利要求9或10所述的物理主机,其特征在于,所述Host用于:
确定待调整虚拟机以及所述待调整虚拟机的加速能力需求时,根据虚拟机的已分配任务确定待调整虚拟机以及所述待调整虚拟机的加速能力需求,其中,当虚拟机的加速能力不能满足已分配任务的加速需求时,确定所述虚拟机为待调整虚拟机,所述待调整虚拟机的加速能力需求为能满足已分配任务的加速需求的加速能力。
13.一种物理主机,其特征在于,所述物理主机包括:包括至少一个物理加速设备的硬件层,运行在所述硬件层之上的宿主机Host、以及运行于所述Host之上的至少一个虚拟机以及至少一个虚拟加速设备,所述虚拟加速设备基于所述物理加速设备为所述虚拟机提供加速能力,其中,
所述Host用于:接收加速能力调整请求,所述加速能力调整请求携带虚拟机标识和加速能力调整指示;确定所述虚拟机标识对应的虚拟机,以及根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备。
14.如权利要求13所述的物理主机,其特征在于,所述加速能力调整指示携带分配加速能力指示,第一加速类型,第一算法类型和第一加速能力数值;所述分配加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备分配加速能力;
所述Host用于:根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备时,将已分配给所述虚拟机的任一虚拟加速设备作为目标虚拟加速设备;
若所述目标虚拟加速设备的配置信息中存在第一目标配置信息,将所述第一目标配置信息中的加速能力数值重新配置为原加速能力数值与所述第一加速能力数值的和;
若确定所述目标虚拟加速设备的配置信息中不存在所述第一目标配置信息,为所述目标虚拟加速设备新增一个配置信息,新增的配置信息中包括所述第一加速类型、所述第一算法类型和所述第一加速能力数值;
其中,所述第一目标配置信息的加速类型与所述第一加速类型相同且算法类型与所述第一算法类型相同。
15.如权利要求13所述的物理主机,其特征在于,所述加速能力调整指示携带释放加速能力指示、第二加速类型、第二算法类型和第二加速能力数值;所述释放加速能力指示用于指示所述加速代理为已分配给所述虚拟机的虚拟加速设备释放加速能力;
所述Host用于:
根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备时,将已分配给所述虚拟机的虚拟加速设备中具有第二目标配置信息的任一虚拟加速设备作为目标虚拟加速设备,其中,所述第二目标配置信息的加速类型与所述第二加速类型相同、且算法类型与所述第二算法类型相同、且加速能力数值大于所述第二加速能力数值;
将针对所述目标虚拟加速设备的第二目标配置信息中的加速能力数值重新配置为原加速能力数值与所述第二加速能力数值的差。
16.如权利要求13-15任一项所述的物理主机,其特征在于,所述Host用于:
在根据所述加速能力调整指示配置已分配给所述虚拟机的虚拟加速设备之后,反馈配置结果指示,所述配置结果指示用于通知是否完成所述加速能力调整请求。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710060046.6A CN108347341A (zh) | 2017-01-24 | 2017-01-24 | 一种用于调整虚拟机加速能力的加速能力调整方法及装置 |
PCT/CN2017/106098 WO2018137363A1 (zh) | 2017-01-24 | 2017-10-13 | 一种用于调整虚拟机加速能力的加速能力调整方法及装置 |
EP17893792.6A EP3562093A4 (en) | 2017-01-24 | 2017-10-13 | METHOD AND APPARATUS FOR ADJUSTING THE ACCELERATION CAPACITY OF A VIRTUAL MACHINE |
US16/521,240 US11379255B2 (en) | 2017-01-24 | 2019-07-24 | Acceleration capacity adjustment method and apparatus for adjusting acceleration capacity of virtual machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710060046.6A CN108347341A (zh) | 2017-01-24 | 2017-01-24 | 一种用于调整虚拟机加速能力的加速能力调整方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108347341A true CN108347341A (zh) | 2018-07-31 |
Family
ID=62962891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710060046.6A Pending CN108347341A (zh) | 2017-01-24 | 2017-01-24 | 一种用于调整虚拟机加速能力的加速能力调整方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11379255B2 (zh) |
EP (1) | EP3562093A4 (zh) |
CN (1) | CN108347341A (zh) |
WO (1) | WO2018137363A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742028A (zh) * | 2020-05-28 | 2021-12-03 | 伊姆西Ip控股有限责任公司 | 资源使用方法、电子设备和计算机程序产品 |
CN116401066A (zh) * | 2023-05-25 | 2023-07-07 | 北京志凌海纳科技有限公司 | 用于提高资源利用率的多虚拟服务的动态调度方法和系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422367B (zh) * | 2022-03-28 | 2022-09-06 | 阿里云计算有限公司 | 报文处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014100558A1 (en) * | 2012-12-20 | 2014-06-26 | Vmware, Inc. | Dynamic allocation of physical graphics processing units to virtual machines |
US20140176583A1 (en) * | 2012-12-20 | 2014-06-26 | Vmware, Inc. | Dynamic allocation of physical graphics processing units to virtual machines |
CN103988483A (zh) * | 2011-10-14 | 2014-08-13 | 思杰系统有限公司 | 用于网络加速器的动态适应的系统和方法 |
WO2016048430A1 (en) * | 2014-09-25 | 2016-03-31 | Intel IP Corporation | Network functions virtualization |
US9389894B1 (en) * | 2014-10-15 | 2016-07-12 | Google Inc. | Flexible processor association for virtual machines |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314377B (zh) * | 2010-06-30 | 2014-08-06 | 国际商业机器公司 | 加速器及其实现支持虚拟机迁移的方法 |
US9923826B2 (en) * | 2011-10-14 | 2018-03-20 | Citrix Systems, Inc. | Systems and methods for dynamic adaptation of network accelerators |
US9298490B2 (en) * | 2012-12-20 | 2016-03-29 | Vmware, Inc. | Managing a data structure for allocating graphics processing unit resources to virtual machines |
US10037222B2 (en) | 2013-09-24 | 2018-07-31 | University Of Ottawa | Virtualization of hardware accelerator allowing simultaneous reading and writing |
CN103701881B (zh) | 2013-12-18 | 2017-03-22 | 中国科学院计算技术研究所 | 一种支持i/o功能动态分配的虚拟热插拔系统及其工作方法 |
CN105159753B (zh) | 2015-09-25 | 2018-09-28 | 华为技术有限公司 | 加速器虚拟化的方法、装置及集中资源管理器 |
CN105700930B (zh) * | 2016-02-22 | 2019-10-01 | 青岛海信移动通信技术股份有限公司 | 嵌入式操作系统的应用加速方法和装置 |
US9934062B2 (en) * | 2016-03-30 | 2018-04-03 | Intel Corporation | Technologies for dynamically allocating hardware acceleration units to process data packets |
-
2017
- 2017-01-24 CN CN201710060046.6A patent/CN108347341A/zh active Pending
- 2017-10-13 WO PCT/CN2017/106098 patent/WO2018137363A1/zh unknown
- 2017-10-13 EP EP17893792.6A patent/EP3562093A4/en active Pending
-
2019
- 2019-07-24 US US16/521,240 patent/US11379255B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103988483A (zh) * | 2011-10-14 | 2014-08-13 | 思杰系统有限公司 | 用于网络加速器的动态适应的系统和方法 |
WO2014100558A1 (en) * | 2012-12-20 | 2014-06-26 | Vmware, Inc. | Dynamic allocation of physical graphics processing units to virtual machines |
US20140176583A1 (en) * | 2012-12-20 | 2014-06-26 | Vmware, Inc. | Dynamic allocation of physical graphics processing units to virtual machines |
WO2016048430A1 (en) * | 2014-09-25 | 2016-03-31 | Intel IP Corporation | Network functions virtualization |
US9389894B1 (en) * | 2014-10-15 | 2016-07-12 | Google Inc. | Flexible processor association for virtual machines |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742028A (zh) * | 2020-05-28 | 2021-12-03 | 伊姆西Ip控股有限责任公司 | 资源使用方法、电子设备和计算机程序产品 |
CN116401066A (zh) * | 2023-05-25 | 2023-07-07 | 北京志凌海纳科技有限公司 | 用于提高资源利用率的多虚拟服务的动态调度方法和系统 |
CN116401066B (zh) * | 2023-05-25 | 2023-08-29 | 北京志凌海纳科技有限公司 | 用于提高资源利用率的多虚拟服务的动态调度方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US11379255B2 (en) | 2022-07-05 |
WO2018137363A1 (zh) | 2018-08-02 |
EP3562093A4 (en) | 2020-01-22 |
US20190347123A1 (en) | 2019-11-14 |
EP3562093A1 (en) | 2019-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11080076B2 (en) | Acceleration management node, acceleration node, client, and method | |
US9639402B2 (en) | Systems and methods for automatic hardware provisioning based on application characteristics | |
CN107222531B (zh) | 一种容器云资源调度方法 | |
CN108207114B (zh) | 用于重新配置虚拟机的技术 | |
CN106133693B (zh) | 虚拟机的迁移方法、装置及设备 | |
US10993127B2 (en) | Network slice instance management method, apparatus, and system | |
CN103957237A (zh) | 一种弹性云的体系结构 | |
JP6783850B2 (ja) | データトラフィックを制限するための方法及びシステム | |
US20180365075A1 (en) | Resource Management Method and Apparatus | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
US20220164208A1 (en) | Coordinated container scheduling for improved resource allocation in virtual computing environment | |
CN103761146A (zh) | 一种MapReduce动态设定slots数量的方法 | |
US20180246772A1 (en) | Method and apparatus for allocating a virtual resource in network functions virtualization network | |
KR20110083084A (ko) | 가상화를 이용한 서버 운영 장치 및 방법 | |
CN108347341A (zh) | 一种用于调整虚拟机加速能力的加速能力调整方法及装置 | |
US20190272461A1 (en) | System and method to dynamically and automatically sharing resources of coprocessor ai accelerators | |
US20230015908A1 (en) | Virtual machine operation management in computing devices | |
EP3430510B1 (en) | Operating system support for game mode | |
TWI742774B (zh) | 運算系統及其主機資源分配方法 | |
CN114564305A (zh) | 一种分布式推理的控制方法、装置、设备及可读存储介质 | |
CN113822485A (zh) | 一种配电网调度任务优化方法及系统 | |
CN114546631A (zh) | 任务调度方法、控制方法、核心、电子设备、可读介质 | |
CN113742028A (zh) | 资源使用方法、电子设备和计算机程序产品 | |
EP4109255A1 (en) | Scheduling in a container orchestration system utilizing hardware topology hints | |
CN109002347B (zh) | 一种虚拟机内存分配方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180731 |