首页> 中国专利> 加速器虚拟化的方法、装置及集中资源管理器

加速器虚拟化的方法、装置及集中资源管理器

摘要

本发明的实施例中公开了一种加速器虚拟化的方法、装置以及集中资源管理器,方法包括:集中资源管理器根据虚拟机资源配置命令中的待创建虚拟加速器信息,从物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器;集中资源管理器向虚拟机监控器发送第一虚拟机创建命令,使得虚拟机监控器创建包含有匹配物理加速器对应的第一虚拟加速器的第一虚拟机,或者,集中资源管理器向虚拟机监控器发送第二虚拟机创建命令,第二虚拟机创建命令包括描述信息获取标识,使得虚拟机监控器收到第二虚拟机创建命令后创建第二虚拟机,并使得第二虚拟机根据描述信息获取标识获取描述信息后生成第二虚拟加速器。本发明能实现加速器的虚拟化。

著录项

  • 公开/公告号CN105159753A

    专利类型发明专利

  • 公开/公告日2015-12-16

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201510621728.0

  • 发明设计人 唐朝飞;姚志明;肖昆;

    申请日2015-09-25

  • 分类号G06F9/455(20060101);G06F9/50(20060101);

  • 代理机构北京弘权知识产权代理事务所(普通合伙);

  • 代理人逯长明;许伟群

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 12:59:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-28

    授权

    授权

  • 2016-01-13

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20150925

    实质审查的生效

  • 2015-12-16

    公开

    公开

说明书

技术领域

本发明涉及互联网领域,特别涉及一种加速器虚拟化的方法、装置及集中资源管理 器。

背景技术

虚拟化技术可以实现互联网资源的动态分配、灵活调度和跨域共享,可以提高IT 资源利用率,因此成为互联网发展的新趋势。

加速器是互联网资源的一种,是将CPU完成的部分功能转移至加速器自身处理, 以降低CPU负载的功能单元,目前广泛使用的加速器包括图形加速器、加解密加速器、 视频编解码加速器、压缩加速器等。但目前单一的加速器已经越来越难以满足CPU的负 载转移的需求,为了提高加速器的性能,迫切需要将加速器和互联网资源虚拟化技术相 结合。VirtIO的方案中,虚拟机监控器为每个虚拟加速资源创建一对收发队列,该收发 队列基于共享内存实现。虚拟加速资源通过收发队列实现对物理加速资源的访问,虚拟 机监控器调度每个虚拟加速资源的收发队列,并且转换成对物理加速资源的访问。

现有技术中,将互联网资源虚拟化通常有两种方法,第一种是VirtIO方案,另一 种是SRIOV(Single-RootIOVirtuliaztion,单根IO虚拟化)方案。在VirtIO方案中,虚 拟机监控器(VirtualMachineMonitor,也称虚拟机管理器VirtualMachineManager, 或者管理程序hypervisor)为每个虚拟资源创建一对收发队列,虚拟资源通过收发队列 和虚拟机监控器的调度实现对物理资源的访问。SRIOV方案是基于PCIe总线的IO虚 拟化技术,物理资源通过PCIe总线与CPU互联。在SRIOV方案中,用软件将收发队 列集成到硬件中,允许在虚拟机中直接访问硬件,从而提高性能。

通过虚拟化技术,可以将物理资源虚拟成多个虚拟资源,多个虚拟资源组合起来构 成虚拟机,在虚拟机上,可以部署业务处理单元完成不同的业务功能。一个典型的虚拟 化系统如图1所示,包括集中资源管理器101,虚拟机监控器102,虚拟机103、104。 其中,集中资源管理器和虚拟机监控器可以是基于物理CUP的软件实现,在软件层面, 可以是操作系统的一部分功能模块,也可以是相对独立的一部分功能软件,具体形式并 不限定。集中资源管理器101用于完成对各种物理资源107的管理,具体的产品代表如 开源软件openstack,VMware公司的vCenter以及Huawei的FusionSphere等;虚拟机 监控器102用于实现虚拟资源的管理。如图1所示,虚拟机103上部署有业务处理单元 105,虚拟机104上部署有业务处理单元106。业务处理单元105和106上分别运行有工 作负载。每个业务处理单元上运行的业务负载可以有多个。虚拟机上的虚拟资源按照属 性区分可以分为虚拟计算资源、虚拟存储资源、虚拟网卡资源等,同样物理资源也可以 分为物理计算资源、物理存储资源、物理网卡资源。虚拟机通过虚拟资源访问对应的物 理资源,将工作负载转移至对应的物理资源。

但现有的虚拟化技术无法实现加速器的虚拟化,因此也无法创建含有虚拟加速器的 虚拟机,从而无法在虚拟机中使用加速器。

发明内容

本发明实施例中提供了一种加速虚拟化的方法、装置及集中资源管理器,能解决现有技 术中无法实现加速器虚拟化的问题。

为了解决上述技术问题,本发明实施例公开了如下技术方案:

一方面,提供了一种加速器虚拟化的方法,应用于主机,所述主机上运行有集中资源管 理器和虚拟机监控器,所述方法包括:

所述集中资源管理器接收虚拟机资源配置命令,所述虚拟机资源配置命令中包含待创建 虚拟加速器信息;

所述集中资源管理器根据所述虚拟机资源配置命令中的待创建虚拟加速器信息,从物理 加速器资源池中选择相匹配的物理加速器作为匹配物理加速器;

所述集中资源管理器生成用于描述匹配物理加速器的描述信息;

所述集中资源管理器向虚拟机监控器发送第一虚拟机创建命令,所述第一虚拟机创建命 令包括所述描述信息,使得所述虚拟机监控器收到所述第一虚拟机创建命令后,创建包含有 所述匹配物理加速器对应的第一虚拟加速器的第一虚拟机,其中,所述第一虚拟加速器通过 所述描述信息生成,或者,所述集中资源管理器向所述虚拟机监控器发送第二虚拟机创建命 令,所述第二虚拟机创建命令包括描述信息获取标识,使得所述虚拟机监控器收到所述第二 虚拟机创建命令后创建第二虚拟机,并使得所述第二虚拟机根据所述描述信息获取标识获取 所述描述信息后生成第二虚拟加速器。

结合第一方面,在第一方面的第一种可能实现方式中,所述在集中资源管理器接收虚拟 机资源配置命令之前,所述方法还包括:

所述集中资源管理器获取物理加速器的信息,所述物理加速器至少包括本地物理加速器 或远端物理加速器;

所述集中资源管理器根据所述物理加速器的信息,生成物理加速器信息文件以生成物理 加速器资源池;

所述集中资源管理器根据所述虚拟机资源配置命令中的待创建虚拟加速器信息,从物理 加速器资源池中选择相匹配的物理加速器作为匹配物理加速器,包括:

所述集中资源管理器根据所述待创建虚拟加速器信息,从所述物理加速器信息文件中选 择相匹配的物理加速器的信息,将相匹配的物理加速器的信息对应的物理加速器作为匹配物 理加速器。

结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,所述集中 资源管理器从所述物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器,包 括:

所述集中资源管理器根据所述物理位置从所述物理加速器资源池中选择相匹配的匹配 物理加速器;和/或

所述集中资源管理器根据物理加速器负荷从所述物理加速器资源池中选择相匹配的匹 配物理加速器。

结合第一方面至第一方面的第二种可能实现方式中的任一种实现方式,在第一方面的第 三种可能实现方式中,所述匹配物理加速器不在所述主机上,所述虚拟机监控器创建所述第 一虚拟机或第二虚拟机之后,所述方法还包括:

所述虚拟机监控器发送通讯地址和匹配物理加速器标识至所述匹配物理加速器所在节 点上的远端加速器管理单元,以使所述虚拟机监控器通过所述通讯地址与所述远端加速器管 理单元进行通讯,且使所述远端加速器管理单元通过所述匹配物理加速器标识与对应的匹配 物理加速器通讯。

结合第一方面至第一方面的第三种可能实现方式中的任一种实现方式,在第一方面的第 四种可能实现方式中,所述在集中资源管理器创建第一虚拟机或第二虚拟机之后,所述方法 还包括:

所述虚拟加速器将所述虚拟机上的业务单元发送的加速请求转移至所述匹配物理加速 器进行处理,并将所述匹配物理加速器处理后的结果返回至所述业务单元,其中,所述虚拟 加速器为第一虚拟加速器或第二虚拟加速器。

结合第一方面第四种可能实现方式,在第一方面的第五种可能实现方式中,所述匹配物 理加速器不在主机上,则所述第一虚拟加速器将所述虚拟机上的业务单元发送的加速请求转 移至所述匹配物理加速器进行处理,并将所述匹配物理加速器处理后的结果返回至所述业务 单元,包括:

所述虚拟加速器向所述远端加速器管理单元发送基于握手协议的握手请求,并接收所述 加速器管理单元反馈的握手成功响应;

所述虚拟加速器发送所述加速请求至所述远端加速器管理单元,以使所述远端加速器管 理单元将所述加速请求发送至对应的匹配物理加速器进行处理;

所述虚拟加速器接收所述远端加速器管理单元发送的加速请求响应,所述加速请求响应 是所述匹配物理加速器处理所述加速请求后向所述远端加速器管理单元返回的处理结果;

所述虚拟加速器将所述加速请求响应发送至所述业务单元;

其中,所述虚拟加速器为第一虚拟加速器或第二虚拟加速器。

第二方面,提供了一种加速器虚拟化的装置,应用于主机,所述装置包括集中资源管理 器和虚拟机监控器,所述集中资源管理器包括:

接收单元,用于接收虚拟机资源配置命令,所述虚拟机资源配置命令中包含待创建虚拟 加速器信息;

匹配物理加速器选择单元,用于根据所述接受单元接收的虚拟机资源配置命令中的待创 建虚拟加速器信息,从物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器;

生成单元,用于生成用于描述匹配物理加速器的描述信息;

发送单元,用于向虚拟机监控器发送第一虚拟机创建命令,所述第一虚拟机创建命令包 括所述描述信息,使得所述虚拟机监控器收到所述第一虚拟机创建命令后,创建包含有所述 匹配物理加速器对应的第一虚拟加速器的第一虚拟机,其中,所述第一虚拟加速器通过所述 描述信息生成,或者,所述发送单元用于向所述虚拟机监控器发送第二虚拟机创建命令,所 述第二虚拟机创建命令包括描述信息获取标识,使得所述虚拟机监控器收到所述第二虚拟机 创建命令后创建第二虚拟机,并使得所述第二虚拟机根据所述描述信息获取标识获取所述描 述信息后生成第二虚拟加速器。

结合第二方面,在第二方面的第一种可能实现方式中,所述集中资源管理器还包括:

物理加速器信息获取单元,用于获取物理加速器的信息,所述物理加速器至少包括本地 物理加速器或远端物理加速器;

物理加速器资源池生成单元,用于根据所述物理加速器的信息,生成物理加速器信息文 件以生成物理加速器资源池;

所述匹配物理加速器选择单元还用于根据所述待创建虚拟加速器信息,从所述物理加速 器信息文件中选择相匹配的物理加速器的信息,将相匹配的物理加速器的信息对应的物理加 速器作为匹配物理加速器。

结合第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述匹配 物理加速器选择单元还用于根据所述物理位置从所述物理加速器资源池中选择相匹配的匹 配物理加速器;和/或

所述匹配物理加速器选择单元还用于根据物理加速器负荷从所述物理加速器资源池中 选择相匹配的匹配物理加速器。

结合第二方面至第二方面的第二种可能实现方式中的任一种实现方式,在第二方面的第 三种可能实现方式中,所述匹配物理加速器不在所述主机上,所述虚拟机监控器创建所述第 一虚拟机或第二虚拟机之后,所述虚拟机监控器还用于发送通讯地址和匹配物理加速器标识 至所述匹配物理加速器所在节点上的远端加速器管理单元,以使所述虚拟机监控器通过所述 通讯地址与所述远端加速器管理单元进行通讯,且使所述远端加速器管理单元通过所述匹配 物理加速器标识与对应的匹配物理加速器通讯。

结合第二方面至第二方面的第三种可能实现方式中的任一种实现方式,在第二方面的第 四种可能实现方式中,在集中资源管理器创建第一虚拟机或第二虚拟机之后,所述虚拟加速 器用于将所述虚拟机上的业务单元发送的加速请求转移至所述匹配物理加速器进行处理,并 将所述匹配物理加速器处理后的结果返回至所述业务单元,其中,所述虚拟加速器为第一虚 拟加速器或第二虚拟加速器。

结合第二方面的第四种可能实现方式,在第二方面的第五种可能实现方式中,所述匹配 物理加速器不在主机上,则所述第一虚拟加速器还用于向所述远端加速器管理单元发送基于 握手协议的握手请求,并接收所述远端加速器管理单元反馈的握手成功响应;

所述第一虚拟加速器还用于发送所述加速请求至所述远端加速器管理单元,以使所述远 端加速器管理单元将所述加速请求发送至对应的匹配物理加速器进行处理;

所述虚拟加速器还用于接收所述远端加速器管理单元发送的加速请求响应,所述加速请 求响应是所述匹配物理加速器处理所述加速请求后向所述远端加速器管理单元返回的处理 结果;

所述虚拟加速器还用于将所述加速请求响应发送至所述业务单元;其中,所述虚拟加速 器为第一虚拟加速器或第二虚拟加速器。

第三方面,提供了一种用于完成加速器虚拟化的主机,所述主机包括处理器,存储器, 处理器用于读取存储在存储器中的代码用于运行虚拟机监控器及集中资源管理器,其中,虚 拟机监控器以及集中资源管理器用于执行第一方面及第一方面各种实现方式中所揭示的方 法。:

本发明的实施例中公开了一种加速器虚拟化的方法,通过集中资源管理器、虚拟机监控 器的交互,本发明实施例可以实现对物理加速器的虚拟化,从而为后续更方便地使用这些物 理加速器打下基础;同时,由于本发明实施例中实现加速器虚拟化基于集中资源管理器和虚 拟机监控器来实现,对软件改动少,易于实现。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的 附图。

图1所示为现有技术中的虚拟化系统的示意图;

图2所示为本发明实施例一所示的一种加速器虚拟化的方法的流程图;

图3所示为本发明实施例三所示的负载转移的方法的流程图;

图4所示为本发明实施例四所示的应用场景的示意图;

图5所示为本发明实施例五所示的加速器虚拟化的装置的结构示意图;

图6所示为本发明实施例六所示的一种主机的结构示意图;

图7所示为本发明实施例一所示的系统架构示意图。

具体实施方式

实施例一

本发明如下实施例提供了一种加速器虚拟化的方法、装置和集中资源管理器,能实 现加速器的虚拟化,提高资源的共享度。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整 的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基 于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有 其他实施例,都属于本发明保护的范围。

图7所示为本发明实施例的系统架构示意图,如图7所示,主机700所在的节点上 包括软件层701和硬件层702,软件层701包括集中资源管理器7011和虚拟机监控器 7012,硬件层可以包括处理器7021以及存储器7022等。

此外,本发明实施例的系统中,还包括物理加速器资源池703,物理加速器资源池 703中包括多个物理加速器,例如图7中所示的物理加速器1、物理加速器2……物理加 速器N。

基于图7所示的系统架构,本发明实施例能实现加速器的虚拟化。图2所示为本发 明实施例的加速器虚拟化的方法的流程图,如图2所示,所述方法应用于主机,主机上 运行有集中资源管理器和虚拟机监控器,所述方法包括:

步骤201,集中资源管理器接收虚拟机资源配置命令,虚拟机资源配置命令中包含 待创建虚拟加速器信息。

虚拟机资源配置命令可以来自操作维护软件,例如可以是一个相对独立的软件,例 如MANO;或者也可以是一个大的软件里面的一个软件模块,当操作维护软件得知应用 软件对虚拟加速器有需求时,会发送虚拟机资源配置命令至集中资源管理器。上述技术 均为现有技术,在此不再赘述。

虚拟机资源配置命令用于配置虚拟机资源,本发明中的资源包括待创建虚拟机所需 的虚拟CPU信息、虚拟存储资源信息、虚拟网络资源信息,上述信息以及如何配置方法 均为现有技术,例如,基于开源软件openstack实现时,这个配置命令可以通过一个xml 文件的方式来实现,通过这个xml文件来配置虚拟机资源。如果使用其他的软件平台, 也可以使用其他软件平台中定义的相应的命令来实现,这里不再赘述。

本实施例中,除上述信息外,虚拟机资源配置命令还包括待创建虚拟加速器信息, 具体的,可以通过对上述资源配置命令进行扩展得到,例如,基于openstack时,可以 对xml文件进行扩展来包含待创建虚拟加速器信息。

待创建虚拟加速器信息用于指示请求方对需要创建的虚拟加速器的要求,例如,该 信息可以包括:待创建的虚拟加速器的类型(例如,加密、解密、压缩等)、加速能力(例 如,能达到处理多少流量的水平、时延控制到多少等能力),通讯协议以及通信地址等信 息,其中,通讯协议以及通信地址是可选项,如果物理加速器位于远端节点,则需要通 讯协议和通讯地址,如果物理加速器位于本地节点,该信息可以省略。

本发明实施例中的“节点”通常是按照物理位置来划分的,可以根据系统结构、距离、 需求等进行设置,一个机房可以是一个节点,一个机柜也可以是一个节点,一个槽位、 一个单板都可以是一个节点。每个节点可以包括主机,或者还可以包括物理加速器。其 中,主机主要用于完成一些通用的业务处理,而物理加速器则是对一些特定的业务进行 加速。在通信时,至少会涉及到两个节点,为了说明方便,可以将这两个节点中的其中 一个称为“本地节点”,另一个称为“远端节点”,例如,可以将其中一个机柜C1称为 本地节点,将另一个机柜C2称为远端节点;也可以将其中一个机房H1称为本地节点, 将另一个机房H2称为远端节点。需要说明的是,上述节点、主机以及加速器等概念及 其具体实现(例如,基于一个通用的处理器来实现主机,以及基于专用的硬件器件来实 现物理加速器)为本领域技术人员所公知的概念,本实施例不再赘述。由于主机一般都 基于CPU来实现,为了说明方便,下文中提到的CPU所完成的功能可以认为是主机所 完成的功能。

步骤202,集中资源管理器根据虚拟机资源配置命令中的待创建虚拟加速器信息, 从物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器。

例如,如果待创建虚拟加速信息中要求的虚拟加速器的类型是加密,加速能力要求 达到1Gbps,则从物理加速器资源池中选择加速器类型为加密,且加速能力要求能够达 到1Gbps(即大于等于1Gbps)的物理加速器作为匹配物理加速器。

本实施例中,物理加速器资源池是指由多个物理加速器组成的资源池,这些物理加 速器的实现形式不限,例如,可以是基于PCIe总线的加速器,这些加速器通过PCIe接 口与CPU相连;或者,也可以是CPU内部集成的加速器;或者,也可以是基于网络的 加速器。这些物理加速器的具体实现形式及方法(例如,使用FPGA、ASIC等芯片来实 现)是本领域技术人员所公知的,这里不再赘述。

步骤203,集中资源管理器生成用于描述匹配物理加速器的描述信息。

描述信息用于描述匹配物理加速器,用于后续生成虚拟加速器时使用,其中,虚拟 加速器这个概念与现有的很多虚拟设备(如虚拟网卡、虚拟端口)的概念类似,即指与 物理加速器对应的一个通过软件虚拟的加速器(即一个软件模块),这个用软件模拟出的 “加速器”可以通过一些接口向其他应用程序传递一些参数,使得其他应用程序收到这些 参数后以为真实地存在一个“加速器”,并与这个“加速器”进行通信。可选地,为了更直 观方便地对虚拟加速器进行使用,还可以在用户界面呈现出“虚拟加速器”,用户可以通 过图形界面对“虚拟加速器”进行操作。当应用程序需要对某个业务进行加速时,则可以 将加速请求发送给“虚拟加速器”,后续再由虚拟加速器将加速请求转发给匹配的物理加 速器来处理。

为了生成对应于匹配物理加速器的“虚拟加速器”这个软件模块,需要用到描述信 息,即通过描述信息知道生成一个什么样的“虚拟加速器”。描述信息包括但不仅限于以 下信息:前文提到的加速器类型,加速能力等信息;用于指示加速器位置的一些位置信 息,例如,加速器作为一个PCIe卡基于PCIe总线与CPU连接时,该信息可以是PCIe 卡的BDF号(总线号、设备号、功能号),或者,通过网络连接时,可以包括IP地址、 端口号等信息;还可以包括各种根据实际需求所需的属性信息;如何根据这些描述信息 生成“虚拟加速器”为本领域技术人员所公知的技术,这里不再赘述。

为了管理方便,可将这些描述信息写到一个文件中进行保存,当然,本发明的实施 例也不限定其他的方式进行保存。

步骤204,集中资源管理器向虚拟机监控器发送第一虚拟机创建命令,第一虚拟机 创建命令包括描述信息,使得虚拟机监控器收到第一虚拟机创建命令后,创建包含有匹 配物理加速器对应的第一虚拟加速器的第一虚拟机,其中,第一虚拟加速器通过描述信 息生成。

或者,步骤204可以是,集中资源管理器向虚拟机监控器发送第二虚拟机创建命令, 第二虚拟机创建命令包括描述信息获取标识,使得虚拟机监控器收到第二虚拟机创建命 令后创建第二虚拟机,并使得第二虚拟机根据描述信息获取标识获取描述信息后生成第 二虚拟加速器。步骤204的第二种实施方式在图2中用虚线框示出,相应的标号也用虚 线框示出。

本步骤中,虚拟机创建命令是指现有技术中用于创建虚拟机的命令,例如,基于 Linux系统时,可以使用下面所示的命令:

./x86_64-softmmu/qemu-system-x86_64-hda/home/image/VM_KVM_MSG0.img -cpuhost-m2048-smp4-netnic,model=virtio-nettap,script=/etc/qemu-ifup-nographic -vnc:22

本实施例中,第一虚拟机创建命令以及第二虚拟机创建命令都为基于虚拟机创建命 令的命令。为了使得虚拟机监控器可以根据描述信息创建包含有虚拟加速器的第一虚拟 机,本实施例中,第一虚拟机创建命令在原有的虚拟机创建命令的基础上进行一些小的 修改,增加能够指示创建虚拟加速器的字段,例如,修改后的命令可以如下所示:

./x86_64-softmmu/qemu-system-x86_64-hda/home/image/VM_KVM_MSG0.img -cpuhost-m2048-smp4-netnic,model=virtio-nettap,script=/etc/qemu-ifup-nographic -vnc:22-deviceivshmem,shm="sa_vf1",size=1m

上述命令中,有下划线标识的部分为新增的参数,表示通过读取"sa_vf1"这个文件 (该文件保存了要生成的虚拟加速器的描述信息)来生成虚拟加速器,当然,这种实现 方法只是一种示例,本领域技术人员也可以通过不使用文件而直接传递描述信息的方式 来让虚拟机监控器获取描述信息,并根据该描述信息生成包含有该描述信息对应的虚拟 加速器的第一虚拟机。

第二虚拟机创建命令对现有的虚拟机创建命令的修改是增加一个描述信息获取标 识,该标识并不指示虚拟机监控器在生成虚拟机时就生成虚拟加速器,而是指示虚拟机 监控器在生成第二虚拟机后,让第二虚拟机根据获取描述信息并生成虚拟加速器。第二 虚拟机通过该标识知道还需要生成虚拟加速器,然后可以去一个默认的位置(或者也可 以通过与集中资源管理器交互后获取该位置)获取描述信息。例如,从某个磁盘路径下 获取保存了描述信息的文件。

本发明的实施例中,在步骤201之前,在集中资源管理器接收虚拟机资源配置命令 之前,方法还可以包括:

集中资源管理器获取物理加速器的信息,物理加速器至少包括本地物理加速器或远 端物理加速器;

集中资源管理器根据物理加速器的信息,生成物理加速器信息文件以生成物理加速 器资源池;

集中资源管理器根据虚拟机资源配置命令中的待创建虚拟加速器信息,从物理加速 器资源池中选择相匹配的物理加速器作为匹配物理加速器,包括:

集中资源管理器根据待创建虚拟加速器信息,从物理加速器信息文件中选择相匹配 的物理加速器的信息,将相匹配的物理加速器的信息对应的物理加速器作为匹配物理加 速器。

物理加速器的信息包括但不限于以下信息:物理资源名称、物理资源所在节点地址、 功能、属性、能力、空闲状态。各节点会收集本节点的物理加速器信息上报至集中资源 管理器。在物理加速器变化时,各节点也可以主动上报集中资源管理器,集中资源管理 器更新物理加速器资源池。

本实施例通过集中资源管理器来获取物理加速器信息,能够对物理加速器进行统一 的管理、调度。

本发明实施例中,物理加速器资源池实际上相当于一个数据库,其内部数据可以是 一个或多个物理加速器信息文件。物理加速器资源池的存储方式可以采用任一数据库的 存储方式,一个实施例的物理加速器资源池的管理结构可以如表1所示:

表1

表1所示的物理加速器资源池以列表的形式来示意,表1中仅示例性的列出了一行。 列表的每一行可以对应于一个物理加速器信息文件,每个物理加速器信息文件对应于一 个物理加速器;或者,整个列表对应于与一个物理加速器信息文件,列表中的每一行对 应于一个物理加速器。

本发明实施例采用物理加速器资源池来管理系统中的物理加速器,便于对物理加速 器进行统一管理,也可以提高匹配物理资源的选择效率。

在选择匹配物理加速器时,还可以通过以下方法来实现:

集中资源管理器根据物理位置从物理加速器资源池中选择相匹配的匹配物理加速 器;和/或

集中资源管理器根据物理加速器负荷从物理加速器资源池中选择相匹配的匹配物 理加速器。

物理加速器根据物理位置可以分为本地物理加速器和远端物理加速器。本地物理加 速器位于本地节点,即本地物理加速器位于主机所在的节点;远端物理加速器位于位于 非主机的节点,即远端物理加速器位于远端节点。

通常情况下,集中资源管理器与本地物理加速器的通讯时延较短,负荷较低的物理 加速器的响应速度较快,因此可以优先选择本地物理加速器,或优先选择负荷较低的物 理加速器,还可以综合物理位置以及负荷来选择。

本发明实施例的加速器虚拟化的方法,本发明实施例的方法可以实现加速器的虚拟 化,同时,由于本发明实施例中实现加速器虚拟化基于集中资源管理器和虚拟机监控器 来实现,对软件改动少,易于实现。

实施例二

基于实施例一,本实施例公开了一种加速器虚拟化方法。在实施例一中,并不限定 匹配物理加速器的位置,例如,匹配物理加速器可以位于本地节点,或可以位于远端节 点。当匹配物理加速器位于本地节点时,可以采用实施例一种公开的加速器虚拟化的方 法。本实施例中,重点针对匹配物理加速器在远端节点上的情况进行描述,具体的,在 这种情况下,虚拟机监控器创建第一虚拟机或第二虚拟机之后,方法还包括:

虚拟机监控器发送通讯地址和匹配物理加速器标识至匹配物理加速器所在节点上 的远端加速器管理单元,以使虚拟机监控器通过通讯地址与远端加速器管理单元进行通 讯,且使远端加速器管理单元通过匹配物理加速器标识与对应的匹配物理加速器通讯。 其中,远端加速器管理单元可以指位于远端节点的,在集中资源管理器的控制下,可以 对远端节点上的物理加速器进行管理的功能单元,可以是单独的软件模块,或可以是远 端节点操作系统中的一个软件子模块。物理加速器管理单元例如物理加速引擎。

在很多应用场景中,对于操作系统来说,本地的加速器资源非常有限,因此,加速 器虚拟化对非本地的远端加速器资源有较高的需求。本发明实施例中,如果匹配物理加 速器不在主机上,也可以与匹配物理加速器进行通讯,即本发明实施例在物理加速器位 于远端时仍能实现加速器的虚拟化,提高了资源的共享度。

实施例三

基于上述各实施例,本发明实施例公开了一种加速器虚拟化方法,用于对基于上述 方法如何进行业务处理进行描述。具体的,本实施例提供的方法在集中资源管理器创建 第一虚拟机或第二虚拟机之后,还包括:

虚拟加速器将虚拟机上的业务单元发送的加速请求转移至匹配物理加速器进行处 理,并将匹配物理加速器处理后的结果返回至业务单元。

本实施例中的虚拟加速器为第一虚拟加速器,或可以是第二虚拟加速器,需要与上 述实施例步骤204中创建的虚拟加速器保持一致,即,若创建的是第一虚拟加速器,则 由第一虚拟加速器将业务单元发送的加速请求转移至物理匹配加速器进行处理,若创建 的是第二虚拟加速器,则由第二虚拟加速器将业务单元发送的加速请求转移至匹配物理 加速器进行处理。

将虚拟机上的业务单元发送的加速请求转移至匹配物理加速器进行处理,相当于将 虚拟机上的加速负载转移至匹配物理加速器进行处理,可以提高物理资源的共享度,同 时减轻虚拟机以及主机上的负载压力。

通过前面实施例所述,匹配物理加速器可以位于本地节点,也可以位于远端节点。 当匹配物理加速器位于本地节点时,虚拟加速器从业务单元接收加速请求,并发送加速 请求至本地加速器管理单元;本地加速器管理单元将加速请求发送至对应的匹配物理加 速器进行处理;位于本地节点的匹配物理加速器处理完加速请求后,将处理结果通过本 地加速器管理单元反馈至虚拟加速器;虚拟加速器将处理结果发送给业务单元。

当匹配物理加速器位于远端节点时,由于涉及本地节点与远端节点的交互,情况相 对复杂一些,下面详细说明匹配物理加速器不在主机时,如何实现负载转移。

图3所示为本发明实施例的负载转移的方法的流程图,该实施例中,匹配物理加速 器不在本地节点,而是在远端节点上,虚拟加速器将虚拟机上的业务单元发送的加速请 求转移至匹配物理加速器进行处理,并将匹配物理加速器处理后的结果返回至业务单元 的方法具体如图3所示,包括:

步骤301,虚拟加速器向远端加速器管理单元发送基于握手协议的握手请求,并接 收远端加速器管理单元反馈的握手成功响应。

本实施例中,发送、接收基于握手协议的握手请求用于建立虚拟加速器和远端加速 器管理单元之间的连接,其具体实施方式与现有技术中相同,例如,可以是基于TCP握 手协议的握手请求以建立连接,此不在赘述。

步骤302,虚拟加速器发送加速请求至远端加速器管理单元,以使远端加速器管理 单元将加速请求发送至对应的匹配物理加速器进行处理。

实际应用中,在虚拟加速器和远端加速器管理单元之间连接建立之后,虚拟加速器 可以与远端加速器管理单元进行通讯,虚拟加速器发送的加速请求会被封装为加速请求 消息包,在后续处理时也会解封装。封装和解封装可以采用现有技术,此处不再赘述。

加速请求中可以包括基于基础通讯协议和第一加速请求通讯协议的请求。基础通讯 协议可以是现有技术中用于通讯的各种协议,例如以太网协议、TCP协议等。

第一加速请求通讯信息包括:加速请求ID、加速请求类型、加速请求缓存区地址和 长度、加速响应缓存区地址和长度以及加速请求数据等。

加速请求ID用来标识不同的加速请求;加速操作类型可以是图形加速请求,或者 可以加解密加速请求;加速请求缓存区地址和长度、加速响应缓存区地址和长度是在处 理加速请求中需要用到的存储区;加速请求数据可以是加速请求中涉及到的各种数据。 上述信息与现有技术中相同或相似,在此不在赘述。

步骤303,虚拟加速器接收远端加速器管理单元发送的加速请求响应,加速请求响 应是匹配物理加速器处理加速请求后向远端加速器管理单元返回的处理结果。

步骤304,虚拟加速器将加速请求响应发送至业务单元。

加速请求响应可以包括基于基础通讯协议和第二加速请求通讯协议的响应,基于第 二加速请求通讯协议的请求包括:加速请求ID、加速操作结果、加速请求缓存区地址和 长度、加速目的数据缓存区地址和长度、加速响应数据。

加速请求响应中包含的信息与第一加速请求通讯信息相同或相似,在此不在赘述。

虚拟加速器获得加速请求响应后,可以根据加速请求响应获得处理后的数据,并释 放上述处理过程中使用的缓存区。

本实施例中,虚拟加速器为第一虚拟加速器或第二虚拟加速器,需要与上述实施例 步骤204中创建的虚拟加速器保持一致,即,若创建的是第一虚拟加速器,则由第一虚 拟加速器将业务单元发送的加速请求转移至物理匹配加速器进行处理,若创建的是第二 虚拟加速器,则由第二虚拟加速器将业务单元发送的加速请求转移至匹配物理加速器进 行处理。

本发明实施例中,虚拟加速器将虚拟机上的业务单元发送的加速请求转移至匹配物 理加速器进行处理,相当于将虚拟机上的加速负载转移至匹配物理加速器进行处理,可 以提高物理资源的共享度,同时减轻虚拟机以及主机上的负载压力。

实施例四

基于上述各实施例,本实施例提供了一种应用场景。图4所示为本发明实施例的应 用场景的示意图,如图4所示,有加速器虚拟化需求的为主机410,主机410上运行有 集中资源管理器420和虚拟机监控器450。主机410上有物理加速引擎411以及本地物 理加速器412,物理加速引擎411可以根据集中资源管理器420的命令对本地物理加速 器412进行管理,将主机上业务单元的加速请求转移至本地物理加速器412进行处理。 需要说明的是,物理加速引擎411表示一个功能模块,这部分功能在实际中也可以由集 中资源管理器来完成(相当于为集中资源管理器增加相应的功能),本实施例中,为与集 中资源管理器相独立的一个功能模块。

集中资源管理器420根据需求,从物理加速器资源池中选择匹配物理加速器,本实 施例中选择出的匹配物理加速器包括本地物理加速器412和/或位于远端节点430上的远 端物理加速器432。

远端节点430上包括远端物理加速引擎434、远端物理加速器432。其中,远端物 理加速引擎434可以根据集中资源管理器420的命令管理远端物理加速器432,并将主 机410上业务单元的加速请求转移至远端物理加速器432进行处理。

本发明实施例中,远端物理加速引擎434与上述实施例中的远端加速器管理单元功 能相同。

集中资源管理器420在主机410上创建本地虚拟加速器413。本地虚拟加速器413 通过本地物理加速引擎411对本地物理加速器412进行访问。

集中资源管理器420在主机410上创建虚拟客户端414,通过本地通讯模块415与 位于远端节点430的远端通讯模块433进行通讯,并通过远端通讯模块433与远端物理 加速引擎434通讯。

本实施例中,虚拟客户端414相当于虚拟加速器。

本地通讯模块415的通讯功能可以集成在虚拟客户端414上,远端通讯模块433的 通讯功能可以集成在远端物理加速引擎434上,在通讯功能集成之后,本地通讯模块415 以及远端通讯模块433可以省略。

本实施例中,创建的虚拟机440包括本地虚拟加速引擎441,本地虚拟加速器413, 虚拟客户端414,本地通讯模块415。

本发明实施例的应用场景中,可以将主机410上业务单元的加速请求转移至本地物 理加速器412,和/或远端物理加速器431进行处理,可以提高主机410的处理效率,降 低主机410的负载,提高物理加速器的共享度。

实施例五

基于上述各实施例,本发明实施例公开了一种加速器虚拟化的装置,装置应用于主 机,如图5所示,装置包括集中资源管理器510和虚拟机监控器520,集中资源管理器 510包括:

接收单元511,用于接收虚拟机资源配置命令,虚拟机资源配置命令中包含待创建 虚拟加速器信息;

匹配物理加速器选择单元512,用于根据接受单元511接收的虚拟机资源配置命令 中的待创建虚拟加速器信息,从物理加速器资源池中选择相匹配的物理加速器作为匹配 物理加速器;

生成单元513,用于生成用于描述匹配物理加速器的描述信息;

发送单元514,用于向虚拟机监控器发送第一虚拟机创建命令,第一虚拟机创建命 令包括描述信息,使得虚拟机监控器收到第一虚拟机创建命令后,创建包含有匹配物理 加速器对应的第一虚拟加速器的第一虚拟机,其中,第一虚拟加速器通过描述信息生成, 或者,发送单元用于向虚拟机监控器发送第二虚拟机创建命令,第二虚拟机创建命令包 括描述信息获取标识,使得虚拟机监控器收到第二虚拟机创建命令后创建第二虚拟机, 并使得第二虚拟机根据描述信息获取标识获取描述信息后生成第二虚拟加速器。

本发明实施例的加速器虚拟化的装置,能实现加速器的虚拟化,且易于实现。

本发明实施例中,集中资源管理器510还包括:

物理加速器信息获取单元,用于获取物理加速器的信息,物理加速器至少包括本地 物理加速器或远端物理加速器;

物理加速器资源池生成单元,用于根据物理加速器的信息,生成物理加速器信息文 件以生成物理加速器资源池;

匹配物理加速器选择单元512还用于根据待创建虚拟加速器信息,从物理加速器信 息文件中选择相匹配的物理加速器的信息,将相匹配的物理加速器的信息对应的物理加 速器作为匹配物理加速器。

可选的,匹配物理加速器选择单元512还用于根据物理位置从物理加速器资源池中 选择相匹配的匹配物理加速器;和/或

匹配物理加速器选择单元512还用于根据物理加速器负荷从物理加速器资源池中选 择相匹配的匹配物理加速器。

可选的,匹配物理加速器不在主机上,虚拟机监控器520创建第一虚拟机或第二虚 拟机之后,虚拟机监控器520还用于发送通讯地址和匹配物理加速器标识至匹配物理加 速器所在节点上的远端加速器管理单元,以使虚拟机监控器520通过通讯地址与远端加 速器管理单元进行通讯,且使远端加速器管理单元通过匹配物理加速器标识与对应的匹 配物理加速器通讯。

可选的,在集中资源管理器510创建第一虚拟机或第二虚拟机之后,虚拟加速器用 于将虚拟机上的业务单元发送的加速请求转移至匹配物理加速器进行处理,并将匹配物 理加速器处理后的结果返回至业务单元,其中,虚拟加速器为第一虚拟加速器或第二虚 拟加速器。

可选的,匹配物理加速器不在主机上,则虚拟加速器还用于向远端加速器管理单元 发送基于握手协议的握手请求并接收远端加速器管理单元反馈的握手成功响应;

虚拟加速器还用于发送加速请求至远端加速器管理单元,以使远端加速器管理单元 将加速请求发送至对应的匹配物理加速器进行处理;

虚拟加速器还用于接收远端加速器管理单元发送的加速请求响应,加速请求响应是 匹配物理加速器处理加速请求后向远端加速器管理单元返回的处理结果;

虚拟加速器还用于将加速请求响应发送至业务单元;

其中,虚拟加速器为第一虚拟加速器或第二虚拟加速器。

本发明实施例的加速器虚拟化的装置,能实现加速器的虚拟化,提高资源的共享度, 且易于实现。

实施例六

基于上述各实施例,本发明实施例公开了一种主机,如图6所示,为本发明实施例 主机的结构示意图,包括:

处理器601以及存储器602,其中,处理器用于读取存储在存储器中的代码用于运行 虚拟机监控器及集中资源管理器,其中,虚拟机监控器以及集中资源管理器用于前面各实施 例中所揭示的方法。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的 通用硬件的方式来实现,通用硬件包括通用集成电路、通用CPU、通用存储器、通用元 器件等,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元 器件等来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例 中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出 来,该计算机软件产品可以存储在存储介质中,如只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟、光盘等,包括若 干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行 本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分 互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统 实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法 实施例的部分说明即可。

以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的 精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号