[go: up one dir, main page]

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

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

Info

Publication number
CN105159753B
CN105159753B CN201510621728.0A CN201510621728A CN105159753B CN 105159753 B CN105159753 B CN 105159753B CN 201510621728 A CN201510621728 A CN 201510621728A CN 105159753 B CN105159753 B CN 105159753B
Authority
CN
China
Prior art keywords
accelerator
virtual machine
virtual
physical
physical accelerator
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.)
Active
Application number
CN201510621728.0A
Other languages
English (en)
Other versions
CN105159753A (zh
Inventor
唐朝飞
姚志明
肖昆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510621728.0A priority Critical patent/CN105159753B/zh
Publication of CN105159753A publication Critical patent/CN105159753A/zh
Priority to EP16847827.9A priority patent/EP3343364B1/en
Priority to PCT/CN2016/084022 priority patent/WO2017049945A1/zh
Priority to US15/933,323 priority patent/US10698717B2/en
Application granted granted Critical
Publication of CN105159753B publication Critical patent/CN105159753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

加速器虚拟化的方法、装置及集中资源管理器
技术领域
本发明涉及互联网领域,特别涉及一种加速器虚拟化的方法、装置及集中资源管理器。
背景技术
虚拟化技术可以实现互联网资源的动态分配、灵活调度和跨域共享,可以提高IT资源利用率,因此成为互联网发展的新趋势。
加速器是互联网资源的一种,是将CPU完成的部分功能转移至加速器自身处理,以降低CPU负载的功能单元,目前广泛使用的加速器包括图形加速器、加解密加速器、视频编解码加速器、压缩加速器等。但目前单一的加速器已经越来越难以满足CPU的负载转移的需求,为了提高加速器的性能,迫切需要将加速器和互联网资源虚拟化技术相结合。VirtIO的方案中,虚拟机监控器为每个虚拟加速资源创建一对收发队列,该收发队列基于共享内存实现。虚拟加速资源通过收发队列实现对物理加速资源的访问,虚拟机监控器调度每个虚拟加速资源的收发队列,并且转换成对物理加速资源的访问。
现有技术中,将互联网资源虚拟化通常有两种方法,第一种是VirtIO方案,另一种是SRIOV(Single-Root IO Virtuliaztion,单根IO虚拟化)方案。在VirtIO方案中,虚拟机监控器(Virtual Machine Monitor,也称虚拟机管理器Virtual Machine Manager,或者管理程序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包括集中资源管理器7012和虚拟机监控器7011,硬件层可以包括处理器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 -cpu host -m 2048 -smp 4 -net nic,model=virtio -net tap,script=/etc/qemu-ifup-nographic -vnc:22
本实施例中,第一虚拟机创建命令以及第二虚拟机创建命令都为基于虚拟机创建命令的命令。为了使得虚拟机监控器可以根据描述信息创建包含有虚拟加速器的第一虚拟机,本实施例中,第一虚拟机创建命令在原有的虚拟机创建命令的基础上进行一些小的修改,增加能够指示创建虚拟加速器的字段,例如,修改后的命令可以如下所示:
./x86_64-softmmu/qemu-system-x86_64 -hda/home/image/VM_KVM_MSG0.img -cpu host -m 2048 -smp 4 -net nic,model=virtio -net tap,script=/etc/qemu-ifup -nographic -vnc:22 -device ivshmem,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,和/或远端物理加速器432进行处理,可以提高主机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,Random Access Memory)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种加速器虚拟化的方法,其特征在于,应用于主机,所述主机上运行有集中资源管理器和虚拟机监控器,所述方法包括:
所述集中资源管理器接收虚拟机资源配置命令,所述虚拟机资源配置命令中包含待创建虚拟加速器信息;
所述集中资源管理器根据所述虚拟机资源配置命令中的待创建虚拟加速器信息,从物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器;
所述集中资源管理器生成用于描述匹配物理加速器的描述信息;
所述集中资源管理器向虚拟机监控器发送第一虚拟机创建命令,所述第一虚拟机创建命令包括所述描述信息,使得所述虚拟机监控器收到所述第一虚拟机创建命令后,创建包含有所述匹配物理加速器对应的第一虚拟加速器的第一虚拟机,其中,所述第一虚拟加速器通过所述描述信息生成,或者,所述集中资源管理器向所述虚拟机监控器发送第二虚拟机创建命令,所述第二虚拟机创建命令包括描述信息获取标识,使得所述虚拟机监控器收到所述第二虚拟机创建命令后创建第二虚拟机,并使得所述第二虚拟机根据所述描述信息获取标识获取所述描述信息后生成第二虚拟加速器。
2.如权利要求1所述的方法,其特征在于,在所述集中资源管理器接收虚拟机资源配置命令之前,所述方法还包括:
所述集中资源管理器获取物理加速器的信息,所述物理加速器至少包括本地物理加速器或远端物理加速器;
所述集中资源管理器根据所述物理加速器的信息,生成物理加速器信息文件以生成物理加速器资源池;
所述集中资源管理器根据所述虚拟机资源配置命令中的待创建虚拟加速器信息,从物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器,包括:
所述集中资源管理器根据所述待创建虚拟加速器信息,从所述物理加速器信息文件中选择相匹配的物理加速器的信息,将相匹配的物理加速器的信息对应的物理加速器作为匹配物理加速器。
3.如权利要求2所述的方法,其特征在于,所述集中资源管理器从所述物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器,包括:
所述集中资源管理器根据物理位置从所述物理加速器资源池中选择相匹配的匹配物理加速器;和/或
所述集中资源管理器根据物理加速器负荷从所述物理加速器资源池中选择相匹配的匹配物理加速器。
4.如权利要求1至3任一项所述的方法,其特征在于,所述匹配物理加速器不在所述主机上,所述虚拟机监控器创建所述第一虚拟机或第二虚拟机之后,所述方法还包括:
所述虚拟机监控器发送通讯地址和匹配物理加速器标识至所述匹配物理加速器所在节点上的远端加速器管理单元,以使所述虚拟机监控器通过所述通讯地址与所述远端加速器管理单元进行通讯,且使所述远端加速器管理单元通过所述匹配物理加速器标识与对应的匹配物理加速器通讯。
5.如权利要求1至3任一项所述的方法,其特征在于,在所述集中资源管理器创建第一虚拟机或第二虚拟机之后,所述方法还包括:
所述虚拟加速器将所述虚拟机上的业务单元发送的加速请求转移至所述匹配物理加速器进行处理,并将所述匹配物理加速器处理后的结果返回至所述业务单元,其中,所述虚拟加速器为所述第一虚拟加速器或所述第二虚拟加速器。
6.如权利要求5所述的方法,其特征在于,所述匹配物理加速器不在主机上,则所述虚拟加速器将所述虚拟机上的业务单元发送的加速请求转移至所述匹配物理加速器进行处理,并将所述匹配物理加速器处理后的结果返回至所述业务单元,包括:
所述虚拟加速器发送所述加速请求至远端加速器管理单元,以使所述远端加速器管理单元将所述加速请求发送至对应的匹配物理加速器进行处理;
所述虚拟加速器接收所述远端加速器管理单元发送的加速请求响应,所述加速请求响应包括所述匹配物理加速器处理所述加速请求后向所述远端加速器管理单元返回的处理结果;
所述虚拟加速器将所述加速请求响应发送至所述业务单元。
7.一种加速器虚拟化的装置,其特征在于,应用于主机,所述装置包括集中资源管理器和虚拟机监控器,所述集中资源管理器包括:
接收单元,用于接收虚拟机资源配置命令,所述虚拟机资源配置命令中包含待创建虚拟加速器信息;
匹配物理加速器选择单元,用于根据所述接收单元接收的虚拟机资源配置命令中的待创建虚拟加速器信息,从物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器;
生成单元,用于生成用于描述匹配物理加速器的描述信息;
发送单元,用于向虚拟机监控器发送第一虚拟机创建命令,所述第一虚拟机创建命令包括所述描述信息,使得所述虚拟机监控器收到所述第一虚拟机创建命令后,创建包含有所述匹配物理加速器对应的第一虚拟加速器的第一虚拟机,其中,所述第一虚拟加速器通过所述描述信息生成,或者,所述发送单元用于向所述虚拟机监控器发送第二虚拟机创建命令,所述第二虚拟机创建命令包括描述信息获取标识,使得所述虚拟机监控器收到所述第二虚拟机创建命令后创建第二虚拟机,并使得所述第二虚拟机根据所述描述信息获取标识获取所述描述信息后生成第二虚拟加速器。
8.如权利要求7所述的装置,其特征在于,所述集中资源管理器还包括:
物理加速器信息获取单元,用于获取物理加速器的信息,所述物理加速器至少包括本地物理加速器或远端物理加速器;
物理加速器资源池生成单元,用于根据所述物理加速器的信息,生成物理加速器信息文件以生成物理加速器资源池;
所述匹配物理加速器选择单元还用于根据所述待创建虚拟加速器信息,从所述物理加速器信息文件中选择相匹配的物理加速器的信息,将相匹配的物理加速器的信息对应的物理加速器作为匹配物理加速器。
9.如权利要求8所述的装置,其特征在于,所述匹配物理加速器选择单元还用于根据所述物理位置从所述物理加速器资源池中选择相匹配的匹配物理加速器;和/或
所述匹配物理加速器选择单元还用于根据物理加速器负荷从所述物理加速器资源池中选择相匹配的匹配物理加速器。
10.如权利要求7至9任一项所述的装置,其特征在于,所述匹配物理加速器不在所述主机上,所述虚拟机监控器创建所述第一虚拟机或第二虚拟机之后,所述虚拟机监控器还用于发送通讯地址和匹配物理加速器标识至所述匹配物理加速器所在节点上的远端加速器管理单元,以使所述虚拟机监控器通过所述通讯地址与所述远端加速器管理单元进行通讯,且使所述远端加速器管理单元通过所述匹配物理加速器标识与对应的匹配物理加速器通讯。
11.如权利要求7至9任一项所述的装置,其特征在于,在集中资源管理器创建第一虚拟机或第二虚拟机之后,所述虚拟加速器用于将所述虚拟机上的业务单元发送的加速请求转移至所述匹配物理加速器进行处理,并将所述匹配物理加速器处理后的结果返回至所述业务单元,其中,所述虚拟加速器为所述第一虚拟加速器或所述第二虚拟加速器。
12.如权利要求11所述的装置,其特征在于,所述匹配物理加速器不在主机上,则:
所述虚拟加速器还用于发送所述加速请求至远端加速器管理单元,以使所述远端加速器管理单元将所述加速请求发送至对应的匹配物理加速器进行处理;
所述虚拟加速器还用于接收所述远端加速器管理单元发送的加速请求响应,所述加速请求响应是所述匹配物理加速器处理所述加速请求后向所述远端加速器管理单元返回的处理结果;
所述虚拟加速器还用于将所述加速请求响应发送至所述业务单元。
13.一种集中资源管理器,其特征在于,应用于主机,所述主机上还运行有虚拟机监控器,所述集中资源管理器包括:
接收器,用于接收虚拟机资源配置命令,所述虚拟机资源配置命令中包含待创建虚拟加速器信息;
处理器,用于根据所述接收器接收的虚拟机资源配置命令中的待创建虚拟加速器信息,从物理加速器资源池中选择相匹配的物理加速器作为匹配物理加速器;
所述处理器还用于生成用于描述匹配物理加速器的描述信息;
发送器,用于向虚拟机监控器发送第一虚拟机创建命令,所述第一虚拟机创建命令包括所述描述信息,使得所述虚拟机监控器收到所述第一虚拟机创建命令后,创建包含有所述匹配物理加速器对应的第一虚拟加速器的第一虚拟机,其中,所述第一虚拟加速器通过所述描述信息生成,或者,所述发送器还用于向所述虚拟机监控器发送第二虚拟机创建命令,所述第二虚拟机创建命令包括描述信息获取标识,使得所述虚拟机监控器收到所述第二虚拟机创建命令后创建第二虚拟机,并使得所述第二虚拟机根据所述描述信息获取标识获取所述描述信息后生成第二虚拟加速器。
14.如权利要求13所述的集中资源管理器,其特征在于,所述处理器还用于在集中资源管理器接收虚拟机资源配置命令之前,获取物理加速器的信息,所述物理加速器至少包括本地物理加速器或远端物理加速器,根据所述物理加速器的信息,生成物理加速器信息文件以生成物理加速器资源池;
所述处理器还用于根据所述待创建虚拟加速器信息,从所述物理加速器信息文件中选择相匹配的物理加速器的信息,将相匹配的物理加速器的信息对应的物理加速器作为匹配物理加速器。
15.如权利要求14所述的集中资源管理器,其特征在于,所述处理器还用于根据物理位置从所述物理加速器资源池中选择相匹配的匹配物理加速器;和/或
所述处理器还用于根据物理加速器负荷从所述物理加速器资源池中选择相匹配的匹配物理加速器。
CN201510621728.0A 2015-09-25 2015-09-25 加速器虚拟化的方法、装置及集中资源管理器 Active CN105159753B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510621728.0A CN105159753B (zh) 2015-09-25 2015-09-25 加速器虚拟化的方法、装置及集中资源管理器
EP16847827.9A EP3343364B1 (en) 2015-09-25 2016-05-31 Accelerator virtualization method and apparatus, and centralized resource manager
PCT/CN2016/084022 WO2017049945A1 (zh) 2015-09-25 2016-05-31 加速器虚拟化的方法、装置及集中资源管理器
US15/933,323 US10698717B2 (en) 2015-09-25 2018-03-22 Accelerator virtualization method and apparatus, and centralized resource manager

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510621728.0A CN105159753B (zh) 2015-09-25 2015-09-25 加速器虚拟化的方法、装置及集中资源管理器

Publications (2)

Publication Number Publication Date
CN105159753A CN105159753A (zh) 2015-12-16
CN105159753B true CN105159753B (zh) 2018-09-28

Family

ID=54800617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510621728.0A Active CN105159753B (zh) 2015-09-25 2015-09-25 加速器虚拟化的方法、装置及集中资源管理器

Country Status (4)

Country Link
US (1) US10698717B2 (zh)
EP (1) EP3343364B1 (zh)
CN (1) CN105159753B (zh)
WO (1) WO2017049945A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105159753B (zh) * 2015-09-25 2018-09-28 华为技术有限公司 加速器虚拟化的方法、装置及集中资源管理器
CN106933646B (zh) * 2015-12-29 2020-04-14 杭州华为数字技术有限公司 一种创建虚拟机的方法及装置
CN107515775B (zh) 2016-06-15 2021-11-19 华为技术有限公司 一种数据传输方法及装置
CN105979007B (zh) 2016-07-04 2020-06-02 华为技术有限公司 加速资源处理方法、装置及网络功能虚拟化系统
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
CN107783913B (zh) 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
CN108062239B (zh) * 2016-11-09 2020-06-16 华为技术有限公司 一种加速器加载方法、系统和加速器加载装置
CN108073423B (zh) * 2016-11-09 2020-01-17 华为技术有限公司 一种加速器加载方法、系统和加速器加载装置
CN108347341A (zh) * 2017-01-24 2018-07-31 华为技术有限公司 一种用于调整虚拟机加速能力的加速能力调整方法及装置
JP6777050B2 (ja) * 2017-09-21 2020-10-28 株式会社デンソー 仮想化システム、仮想化プログラム、及び、記憶媒体
CN110291502B (zh) * 2017-11-15 2022-01-11 华为技术有限公司 一种调度加速资源的方法、装置及加速系统
CN107977256A (zh) * 2017-12-15 2018-05-01 郑州云海信息技术有限公司 一种对fpga加速卡的访问方法、装置及介质
WO2019178855A1 (zh) * 2018-03-23 2019-09-26 华为技术有限公司 一种虚拟机访问远端加速设备方法及系统
US10795718B2 (en) * 2019-02-08 2020-10-06 Microsoft Technology Licensing, Llc Updating hardware with reduced virtual machine downtime
CN109976876B (zh) * 2019-03-20 2021-11-16 联想(北京)有限公司 加速器管理方法和装置
CN112153554B (zh) * 2019-06-27 2024-04-05 京东方科技集团股份有限公司 定位装置及系统
CN113407330A (zh) * 2020-03-16 2021-09-17 中国移动通信有限公司研究院 一种加速能力的匹配方法及装置、设备、存储介质
CN111736950B (zh) * 2020-06-12 2024-02-23 广东浪潮大数据研究有限公司 一种虚拟机的加速器资源添加方法及相关装置
CN112631784B (zh) * 2020-12-31 2025-01-21 联想未来通信科技(重庆)有限公司 基于资源的分配/处理方法及电子设备
CN115567499B (zh) * 2021-07-02 2025-04-25 腾讯科技(深圳)有限公司 应用程序加速方法、装置、电子设备及存储介质
CN113674131B (zh) * 2021-07-21 2024-09-13 山东海量信息技术研究院 硬件加速器设备管理方法、装置及电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797345A (zh) * 2004-12-30 2006-07-05 微软公司 用于虚拟化图形子系统的系统和方法
US7502884B1 (en) * 2004-07-22 2009-03-10 Xsigo Systems Resource virtualization switch
CN102314377A (zh) * 2010-06-30 2012-01-11 国际商业机器公司 加速器及其实现支持虚拟机迁移的方法
CN102650950A (zh) * 2012-04-10 2012-08-29 南京航空航天大学 一种支持多gpu虚拟化的平台架构及其工作方法
CN104156663A (zh) * 2014-07-31 2014-11-19 上海华为技术有限公司 一种硬件虚拟端口及处理器系统
CN104541242A (zh) * 2012-09-28 2015-04-22 英特尔公司 代码执行的灵活加速

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220217A1 (en) * 2006-03-17 2007-09-20 Udaya Shankara Communication Between Virtual Machines
US8910153B2 (en) * 2009-07-13 2014-12-09 Hewlett-Packard Development Company, L. P. Managing virtualized accelerators using admission control, load balancing and scheduling
US8869160B2 (en) 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
US20140351811A1 (en) * 2013-05-24 2014-11-27 Empire Technology Development Llc Datacenter application packages with hardware accelerators
US10140639B2 (en) * 2013-08-23 2018-11-27 Empire Technology Development Llc Datacenter-based hardware accelerator integration
WO2015042684A1 (en) * 2013-09-24 2015-04-02 University Of Ottawa Virtualization of hardware accelerator
US10261813B2 (en) * 2013-09-25 2019-04-16 Arm Limited Data processing system for dispatching tasks from a plurality of applications to a shared resource provided by an accelerator
CN105159753B (zh) * 2015-09-25 2018-09-28 华为技术有限公司 加速器虚拟化的方法、装置及集中资源管理器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502884B1 (en) * 2004-07-22 2009-03-10 Xsigo Systems Resource virtualization switch
CN1797345A (zh) * 2004-12-30 2006-07-05 微软公司 用于虚拟化图形子系统的系统和方法
CN102314377A (zh) * 2010-06-30 2012-01-11 国际商业机器公司 加速器及其实现支持虚拟机迁移的方法
CN102650950A (zh) * 2012-04-10 2012-08-29 南京航空航天大学 一种支持多gpu虚拟化的平台架构及其工作方法
CN104541242A (zh) * 2012-09-28 2015-04-22 英特尔公司 代码执行的灵活加速
CN104156663A (zh) * 2014-07-31 2014-11-19 上海华为技术有限公司 一种硬件虚拟端口及处理器系统

Also Published As

Publication number Publication date
WO2017049945A1 (zh) 2017-03-30
US10698717B2 (en) 2020-06-30
US20180210752A1 (en) 2018-07-26
EP3343364A1 (en) 2018-07-04
CN105159753A (zh) 2015-12-16
EP3343364B1 (en) 2020-01-01
EP3343364A4 (en) 2018-08-29

Similar Documents

Publication Publication Date Title
CN105159753B (zh) 加速器虚拟化的方法、装置及集中资源管理器
US20220318184A1 (en) Virtual rdma switching for containerized applications
Kim et al. {FreeFlow}: Software-based virtual {RDMA} networking for containerized clouds
CN110892380B (zh) 用于流处理的数据处理单元
US10649798B2 (en) Virtual switching method, related apparatus, and computer system
JP5644150B2 (ja) サービス提供システム、仮想マシンサーバ、サービス提供方法及びサービス提供プログラム
US8156503B2 (en) System, method and computer program product for accessing a memory space allocated to a virtual machine
WO2021051914A1 (zh) 基于gpu资源的数据处理方法、电子设备及系统
CN103414535B (zh) 数据发送方法和数据接收方法及相关装置
CN103747107B (zh) 一种兼容式云操作平台及其实现方法
US20140059160A1 (en) Systems and methods for sharing devices in a virtualization environment
CN114691286B (zh) 服务器系统、虚拟机创建方法及装置
WO2018035856A1 (zh) 实现硬件加速处理的方法、设备和系统
CN104123265A (zh) 一种众核间通信方法及系统
US9614789B2 (en) Supporting multiple virtual switches on a single host
CN103678203A (zh) 一种实现网卡零拷贝方法及装置
CN114510321A (zh) 资源调度方法、相关装置和介质
WO2018076882A1 (zh) 存储设备的操作方法及物理服务器
US11601515B2 (en) System and method to offload point to multipoint transmissions
CN113328874B (zh) 一种应用于nfv系统的数据加速方法、装置和系统
CN101441661A (zh) 一种在多个嵌入式系统之间共享文件资源的系统及方法
CN116055312A (zh) 虚拟化平台的融合方法、装置、设备及存储介质
Loewen et al. Designing a middleware api for building private iaas cloud architectures
CN110955533A (zh) 用于多连接消息接发端点的技术

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant