CN108062239B - 一种加速器加载方法、系统和加速器加载装置 - Google Patents

一种加速器加载方法、系统和加速器加载装置 Download PDF

Info

Publication number
CN108062239B
CN108062239B CN201610989130.1A CN201610989130A CN108062239B CN 108062239 B CN108062239 B CN 108062239B CN 201610989130 A CN201610989130 A CN 201610989130A CN 108062239 B CN108062239 B CN 108062239B
Authority
CN
China
Prior art keywords
accelerator
acceleration
target
host
virtual machine
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
CN201610989130.1A
Other languages
English (en)
Other versions
CN108062239A (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 CN201610989130.1A priority Critical patent/CN108062239B/zh
Priority to CN202010459605.2A priority patent/CN111813459A/zh
Priority to EP17870073.8A priority patent/EP3531282A4/en
Priority to PCT/CN2017/105878 priority patent/WO2018086436A1/zh
Publication of CN108062239A publication Critical patent/CN108062239A/zh
Priority to US16/407,920 priority patent/US11416267B2/en
Application granted granted Critical
Publication of CN108062239B publication Critical patent/CN108062239B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/083Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/803Application aware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Materials For Photolithography (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种加速器加载方法和系统。加速器加载装置获取加速需求,所述加速需求包括待创建虚拟机的加速功能和所述待创建虚拟机的加速性能。所述加速器加载装置确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器。所述加速器加载装置确定对应所述目标加速器的镜像,并向所述目标加速器所在的目标主机发送镜像加载命令,所述镜像加载命令用于使所述目标主机根据所述镜像加载命令为所述目标加速器加载所述镜像。本发明可以根据待创建虚拟机所需要的加速功能和加速性能确定能够创建该虚拟机的目标主机,并将用于加速的镜像加载到该目标主机的可用加速器上,实现了加速器的动态加载和部署。

Description

一种加速器加载方法、系统和加速器加载装置
技术领域
本发明涉及加速技术,尤其涉及一种加速器加载方法、系统和加速器加载装置。
背景技术
网络运营商的网络通常是由大规模并且迅速增长的多种多样的硬件设备组成。开发一个新的网络业务或者网络功能经常需要新类型的设备,而为这些新类型的设备寻找空间、提供电源变得越来越困难。更为严重的是,硬件生命周期变得越来越短而业务创造却在加速,这抑制了新增值业务的部署,并且限制了不断增长的以网络为中心领域的创新。
网络功能虚拟化(英文:Network Functions Virtualisation,简称:NFV)通过借用虚拟化技术,将许多类型的网络设备合并到符合工业标准的高容量服务器、交换机或存储设备上,这些服务器、交换机或者存储设备可以部署在数据中心,网络节点或者用户端。NFV实现了软件的灵活加载,从而加快了网络部署和调整的速度,降低了业务部署的复杂度,提高了网络设备的统一化、通用化、适配性等。
由于NFV架构采用了工业标准硬件,而标准硬件在处理大量网络功能时,存在性能下降的问题。为了解决NFV架构性能下降问题,NFV硬件加速成为了一个重要的研究方向。硬件加速,具体来说,就是使用专用的更高效的硬件来实现特定的网络功能,而实现这些功能的硬件,称为加速器。
目前,加速功能的提供方式可以分为两类:第一类,由加速器厂商提供的固定功能(fixed-function)加速;第二类,加速器厂商提供加速功能的镜像(image),并在厂商提供的驱动器(driver)中提供镜像的加载功能,在服务器(server)本地加载镜像。这样服务器可以通过加载不同功能的镜像,实现不同的加速功能。
然而,现有的加速器即使在加载镜像的时候,也只能加载特定功能的镜像,而不支持按需动态加载不同的镜像,不能实现不同的功能。这样,当需要不同的加速功能时,必须提供相应的硬件加速器,造成资源的浪费。
发明内容
为了解决上述现有技术中的问题,本发明提供一种加速器加载方法、系统和加速器加载装置,能够为加速器动态加载满足待创建虚拟机的加速需求的镜像,以实现加速器的按需分配,节约硬件资源。
本发明第一方面提供了一种加速器加载方法,应用于加速器加载装置。所述加速器加载装置获取加速需求,所述加速需求包括待创建虚拟机的加速功能和所述待创建虚拟机的加速性能。所述加速器加载装置确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器并确定对应所述目标加速器的镜像。所述加速器加载装置向所述目标加速器所在的目标主机发送镜像加载命令,所述镜像加载命令包括所述镜像的描述符以及所述目标加速器的标识,所述镜像加载命令用于使所述目标主机根据所述镜像加载命令为所述目标加速器加载所述镜像;所述镜像的描述符包括所述镜像的标识和所述镜像的位置中的至少一个。
通过上述方式,可以根据待创建虚拟机的加速需求为目标加速器加载满足所述加速需求的镜像,使所述目标加速器具有所述加速需求相应的功能,实现了加速器的按需分配。
在第一方面的第一种实现方式中,当确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器时,所述加速器加载装置根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找加速数据库,确定能够提供满足所述待创建虚拟机的加速功能和待创建虚拟机的加速性能的至少一个可用加速器的至少一个候选主机,以及每个候选主机的可用加速器的信息。所述加速器加载装置确定所述至少一个候选主机中的一个候选主机为目标主机,并确定所述目标主机的可用加速器为目标加速器。其中,所述加速数据库用于存储所述加速器加载装置所管理的每个主机的加速信息,每个主机的加速信息包括所述主机的标识、所述主机的每个加速器的标识,所述加速器的加速器型号、所述加速器的特性组、所述加速器的属性和所述加速器的状态,所述加速器的特性组包括所述加速器的加速功能和所述加速器的加速性能;所述加速器的属性用于指示所述加速器是否可以动态加载镜像。
本发明中的加速数据库存储了每个主机的加速信息,所述加速器加载装置能够根据待创建虚拟机的加速功能和加速性能查找到候选主机,进而从候选主机中确定目标主机以及该目标主机对应的目标加速器。通过上述第一种实施方式,所述加速器加载装置能够查找到用于待创建虚拟机的最合适的加速器,总体上能够提高系统的运行效率。
基于上述第一方面的第一种实现方式,在所述第一方面的第二种实现方式中,当确定能够提供满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的可用加速器的至少一个候选主机时,所述加速器加载装置用于获取所述加速需求对应的主机列表,所述主机列表包括满足所述加速需求的至少一个主机的标识。所述加速器加载装置根据所述主机列表、所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找所述加速数据库,确定所述主机列表中能够提供满足所述待创建虚拟机的加速功能和待创建虚拟机的加速性能的可用加速器的至少一个候选主机。
在实际部署中,所述加速器加载装置可以管理大量主机,因此,可能存在多个主机都满足待创建虚拟机的加速功能和加速性能,选出这样的主机作为候选主机可以避免将镜像加载到不能满足加速需求的主机上导致的网络拥塞和系统性能下降等问题。
基于上述第一方面的第二种实现方式,在所述第一方面的第三种实现方式中,当获取所述加速需求时,所述加速器加载装置获取创建虚拟机的请求,所述创建虚拟机的请求包括所述待创建虚拟机的计算资源需求、所述待创建虚拟机的存储资源需求以及所述加速需求,所述加速需求为所述待创建虚拟机的加速需求。当获取所述加速需求对应的主机列表时,所述加速器加载装置根据所述计算资源需求和存储资源需求从所述加速器加载装置管理的所有主机中查找能够满足所述计算资源需求和所述存储资源需求的一个或多个主机,根据所述一个或多个主机的标识,生成所述加速需求对应的所述主机列表。
本发明中,所述加速器加载装置根据待创建虚拟机的存储资源需求和所述待创建虚拟机的计算资源需求确定主机列表,以确保查找到的主机能够支撑待创建虚拟机的业务需求。
基于上述第一方面至第一方面的第三种实现方式中的任意一种,在所述第一方面的第四种实现方式中,当确定所述至少一个候选主机中的一个候选主机为目标主机时,所述加速器加载装置根据主机过滤规则,从所述至少一个候选主机中选择一个候选主机作为目标主机。
由于待创建虚拟机最终只能被创建在一个目标主机上,所以如果有多个候选主机可以满足待创建虚拟机的各种要求时,所述加速器加载装置根据主机过滤规则从所述多个候选主机中选择一个最合适的目标主机,能实现负载均衡或系统效率的最大化。
基于上述第一方面的第一种至第四种实现方式中的任意一种,在所述第一方面的第五种实现方式中,所述加速数据库还包括每个加速器的特性组对应的镜像的描述符;当确定对应所述目标加速器的镜像时,所述加速器加载装置确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符,将所述目标特性组对应的镜像作为所述目标加速器的镜像;所述目标特性组的加速功能为所述待创建虚拟机的加速功能,所述目标特征组的加速性能为所述待创建虚拟机的加速性能。
基于上述第一方面的第五种实现方式,在所述第一方面的第六种实现方式中,所述加速数据库还包括每个特性组的标记,所述特性组的标记用于指示所述特性组中的加速功能是否为所述特性组对应的加速器的当前功能。当查找所述加速数据库确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符时,所述加速器加载装置查找所述加速数据库,确定所述目标加速器符合加载条件。其中所述目标加速器符合加载条件包括:所述目标特性组的加速功能不为所述目标加速器的当前功能且所述目标加速器的状态为空闲。
上述事实方式中,所述加速器加载装置确定目标特性组的加速功能不为所述目标加速器的当前功能且所述目标加速器的状态为空闲的加速器为符合加载条件的加速器,能够避免将镜像加载到已经加载了符合所述加速需求的镜像的加速器上带来的资源浪费。
基于上述第一方面的第六种实现方式,在所述第一方面的第七种实现方式中,接收所述目标主机发送的镜像请求,所述镜像请求包括所述镜像的描述符;所述加速器加载装置根据所述镜像的描述符从加速器镜像库获取所述镜像并向所述目标主机发送所述镜像。其中,所述加速器镜像库用于存储镜像和镜像信息,每个镜像的镜像信息包括所述镜像的描述符、所述镜像对应的加速器型号、所述镜像能够提供的加速功能和所述镜像能够提供的加速性能。
当向所述目标主机发送所述镜像后,所述加速器加载装置接收所述目标主机发送的通知消息,所述通知消息包括所述目标主机的标识、所述目标加速器的标识、所述待创建虚拟机的加速功能以及所述待创建虚拟机的加速性能。所述加速器加载装置根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能更新所述加速数据库,将所述目标加速器的状态修改为已锁定,并将所述待创建虚拟机的加速功能设置为所述目标加速器的当前功能。
所述加速器加载装置通过更新加速数据库,使加速数据库中的信息能够实时反映所有主机上的加速器的最新状态,实现了加速器的精确查找,能够避免信息更新不及时导致的镜像加载失败。
本发明中,所述加速器加载装置随时可以接收新镜像,并在所述加速器镜像库中存储所述新镜像以及所述新镜像的镜像信息。所述新镜像的镜像信息包括所述新镜像的描述符、所述新镜像对应的加速器型号、所述新镜像能够提供的加速功能和所述新镜像能够提供的加速性能。然后,所述加速器加载装置根据所述新镜像对应的加速器型号查找所述加速数据库,在所述加速数据库中为支持所述新镜像对应的加速器型号的每个加速器添加包括所述新镜像的加速功能和所述新镜像的加速性能的特性组以及所述新镜像的描述符。
本发明中,所述加速器加载装置通过接收新镜像,并在加速器镜像库和加速数据库中分别更新所述新镜像相关的信息,使新镜像的信息能够实现体现在加速数据库中,提高了确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器时查找到的目标加速器的精确性,避免将镜像加载到不合适的加速器所导致的网络拥塞或系统性能下降。
本发明第二方面提供了一种加速器加载装置,包括计算管理功能、加速管理控制器、加速器镜像库和加速数据库,上述各种组件互相作用,以实现第一方面及第一方面的各实现方式中的方法。
本发明第三方面提供了一种加速器加载系统,包括上述第二方面的加速器加载装置和至少一个主机,所述至少一个主机包括所述加速器加载装置确定的目标主机。
本发明第四方面提供了另一种加速器加载装置,包括处理器、第一存储器、第二存储器和通信接口,所述第一存储器用于存储计算管理程序代码和加速管理程序代码,所述第二存储器用于存储加速器镜像库和加速数据库。所述处理器用于调用所述计算管理程序代码以实现所述第一方面和第二方面中的计算管理功能,调用所述加速管理程序代码以实现所述第一方面和第二方面中所述加速管理控制器的功能。所述处理器还在调用计算管理程序代码和/或加速管理程序代码的过程中,根据需要对加速器镜像库和/或加速数据库执行查找、读取或更新等操作。
本发明第五方面提供了一种存储介质,用于存储计算机程序代码,所述计算机程序代码运行时,能够实现本发明第一方面及其各实现方式中的方法。
本发明可以根据待创建虚拟机的加速功能和加速性能确定能够创建该虚拟机的目标主机,并将用于加速的镜像加载到该目标主机的可用加速器上,实现了加速器的动态加载和部署。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种加速器加载系统的结构示意图;
图2为本发明实施例提供的一种加速器加载方法的流程示意图;
图3为本发明实施例提供的另一种加速器加载方法的流程示意图;
图4A为本发明实施例提供的加速器镜像库的结构示意图;
图4B为本发明实施例提供的更新后的加速器镜像库的结构示意图;
图5A为本发明实施例提供的加速数据库的结构示意图;
图5B为本发明实施例提供的更新后的加速数据库的结构示意图;
图5C为图5B所示的加速数据库根据新镜像的镜像信息更新后的示意图;
图6为本发明实施例提供一种加速器加载装置的结构示意图。
具体实施方式
以下结合附图对本发明进行详细描述。
如图1所示,为本发明实施例提供的一种加速器加载系统100的结构示意图。所述加速器加载系统100包括加速器加载装置200和一个或多个主机300。为方便描述,图1中以一个主机300来作为示例。所述加速器加载装置200上部署有虚拟化基础设施管理器(英文:Virtualised Infrastructure Manager,简称:VIM),主机300上部署有NFV基础设施(英文:NFV Infrastructure,简称NFVI)。其中,所述VIM用于控制和管理所有NFVI的计算、存储和网络资源,每个NFVI包括用于建立虚拟网络功能(英文:virtual network functions,简称:VNFs)的运行环境的硬件和软件组件。其中,VIM和NFVI均为逻辑概念,仅用于介绍本发明实施例的应用场景,不作为对本发明的限制。其中,VIM包括计算管理功能(英文:computemanagement function)210,加速管理控制器(英文:acceleration managementcontroller)220,加速器镜像库(英文:accelerator image repository)230和加速数据库(英文:acceleration database)240。其中,加速器镜像库230和加速数据库240可以存储在同一个存储器中,也可以分别存储在不同的存储器中。NFVI包括加速代理310和一个或多个加速器驱动320,每个加速器驱动320对应一个通用加速器,所述通用加速器能够动态加载用于实现特定功能的镜像。主机300还可以包括系统管理程序hypervisor和计算代理。所述hypervisor在主机300上生成至少一个虚拟机(英文:virtual machine,简称:VM),所述计算代理用于与所述hypervisor通信以管理所述至少一个VM。
当所述加速器加载系统100运行时,所述加速器加载装置200获取加速需求,所述加速需求包括待创建虚拟机,例如,第一VM,的加速功能和加速性能;确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器;确定对应所述目标加速器的镜像;向所述目标加速器所在的目标主机,例如,主机300,发送镜像加载命令,所述镜像加载命令包括所述镜像的描述符以及所述目标加速器的标识;所述镜像的描述符包括所述镜像的标识和位置中的至少一个。主机300接收所述镜像加载命令,根据所述镜像加载命令为所述目标加速器加载所述镜像。
当确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器时,所述加速器加载装置300根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找加速数据库240,确定能够提供满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的可用加速器的至少一个候选主机,以及每个候选主机的可用加速器的信息;确定所述至少一个候选主机中的一个候选主机,例如,主机300,为目标主机,并确定所述目标主机的可用加速器为目标加速器。
其中,加速数据库240用于存储所述加速器加载装置所管理的每个主机的加速信息,每个主机的加速信息包括所述主机的标识、所述主机的每个加速器的标识,所述加速器的加速器型号、所述加速器的特性组、所述加速器的属性和所述加速器的状态,所述加速器的特性组包括所述加速器的加速功能和所述加速器的加速性能;所述加速器的属性用于指示所述加速器是否可以动态加载镜像。后续将结合附图对加速数据库240进行详细介绍。
当确定能够提供满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的可用加速器的至少一个候选主机时,加速器加载装置200获取所述加速需求对应的主机列表,所述主机列表包括满足所述加速需求的至少一个主机的标识。加速器加载装置200根据所述主机列表、所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找加速数据库240,确定所述主机列表中能够提供满足所述待创建虚拟机的加速功能和待创建虚拟机的加速性能的可用加速器的至少一个候选主机。
在一个实施方式中,当获取所述加速需求时,加速器加载装置200获取创建虚拟机的请求,所述创建虚拟机的请求包括所述待创建虚拟机的计算资源需求、所述待创建虚拟机的存储资源需求以及所述加速需求,所述加速需求为所述待创建虚拟机的加速需求。当获取所述加速需求对应的主机列表时,加速器加载装置200根据所述待创建虚拟机的计算资源需求和所述待创建虚拟机的存储资源需求从所述加速器加载装置管理的所有主机中查找能够满足所述计算资源需求和所述存储资源需求的一个或多个主机;根据所述一个或多个主机的标识,生成所述加速需求对应的所述主机列表。
当确定所述至少一个候选主机中的一个候选主机为目标主机时,加速器加载装置200根据主机过滤规则,从所述至少一个候选主机中选择一个候选主机作为目标主机。其中,所述主机过滤规则是指当多个主机都满足所述加速需求时,从所述多个主机中选择一个候选主机的规则,所述主机过滤规则可以是选择负载最轻的主机。所述主机过滤规则也可以称为加速资源约束。
所述加速数据库240还包括每个加速器的特性组对应的镜像的描述符。当确定对应所述目标加速器的镜像时,加速器加载装置200确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符,将所述目标特性组对应的镜像作为所述目标加速器的镜像;所述目标特性组的加速功能为所述待创建虚拟机的加速功能,所述目标特征组的加速性能为所述待创建虚拟机的加速性能。
进一步地,加速数据库240还包括每个特性组的标记,所述特性组的标记用于指示所述特性组中的加速功能是否为所述特性组对应的加速器的当前功能。在查找所述加速数据库确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符之前,所加速器加载装置200还查找所述加速数据库,确定所述目标加速器符合加载条件。其中所述目标加速器符合加载条件包括:所述目标特性组的加速功能不为所述目标加速器的当前功能且所述目标加速器的状态为空闲。
主机300向所述加速器加载装置200发送镜像请求,所述镜像请求包括所述镜像的描述符。加速器加载装置200接收所述镜像请求,根据所述镜像的描述符从加速器镜像库230获取所述镜像并向所述目标主机发送所述镜像。其中,加速器镜像库230用于存储镜像和镜像信息,每个镜像的镜像信息包括所述镜像的描述符、所述镜像对应的加速器型号、所述镜像能够提供的加速功能和所述镜像能够提供的加速性能。后续将结合附图对加速器镜像库230进行详细介绍。
所述镜像加载完成后,主机300还向加速器加载装置200发送通知消息,所述通知消息包括所述主机300的标识、所述目标加速器的标识、所述待创建虚拟机的加速功能以及所述待创建虚拟机的加速性能。加速器加载装置200接收所述通知消息,根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能更新所述加速数据库,将所述目标加速器的状态修改为已锁定,并将所述待创建虚拟机的加速功能设置为所述目标加速器的当前功能。
由于开发者可能会不断开发新镜像,以更新加速器的功能,因此加速器加载装置200还接收新镜像,在加速器镜像库230中存储所述新镜像以及所述新镜像的镜像信息;所述新镜像的镜像信息包括所述新镜像的描述符、所述新镜像对应的加速器型号、所述新镜像能够提供的加速功能和所述新镜像能够提供的加速性能;根据所述新镜像对应的加速器型号查找所述加速数据库,在所述加速数据库中为支持所述新镜像对应的加速器型号的每个加速器添加包括所述新镜像的加速功能和所述新镜像的加速性能的特性组以及所述新镜像的描述符。
上述加速器加载装置200和主机300可以位于同一台物理服务器上,也可以位于不同的物理服务器上。
基于图1所示的加速器加载系统,本发明提供了一种加速器加载方法,所述方法由图1中的加速器加载装置200执行。在一个实施例中,所述方法包括图2所示的步骤。
在S201中,加速器加载装置200获取加速需求,所述加速需求包括待创建虚拟机所需要的加速功能和加速性能。
在S202中,加速器加载装置200确定满足所述加速功能和加速性能的目标加速器。
在S203中,加速器加载装置200确定对应所述目标加速器的镜像。
在S204中,加速器加载装置200向所述目标加速器所在的目标主机300发送镜像加载命令,所述镜像加载命令包括所述镜像的描述符以及所述目标加速器的标识,所述镜像加载命令用于使目标主机300根据所述镜像加载命令为所述目标加速器加载所述镜像。
图2所示方法中各步骤的具体实现方式,可以参考在介绍图1所示的加速器加载系统时对加速器加载装置200的描述。
通过上述方式,加速器加载装置确定满足待创建虚拟机的加速功能和加速性能的目标加速器,并为该目标加速器加载满足所述加速功能和加速性能的镜像,实现了加速器的按需分配,避免为每个加速功能配置对应的硬件加速器造成的硬件资源浪费。
以下结合图3,对图1所示的加速器加载系统和图2所示的加速器加载方法进行详细说明。
当实现S201时,加速器加载装置200的计算管理功能210执行图3中的S302。
在S302中,计算管理功能210获取创建虚拟机的请求,该创建虚拟机的请求包括待创建虚拟机的加速需求,所述加速需求包括所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能。
该创建虚拟机的请求还可以包括所述待创建虚拟机的计算资源需求以及所述待创建虚拟机的存储资源需求。
其中,所述创建虚拟机的请求可以是用户需要部署虚拟机的时候触发的。所述计算资源需求例如可以是所述待创建虚拟机所需要的中央处理单元(英文:centralprocessing unit,简称:CPU)的规格。所述规格可以包括所述CPU包括的计算引擎(又称为内核)的数量。所述存储资源需求例如可以是所述待创建虚拟机所需要的存储空间的大小,例如,120GB。所述待创建虚拟机的加速功能例如可以包括加密或解密、压缩或解压缩、三层(layer 3)转发、虚拟可扩展局域网(英文:Virtual eXtensible Local Area Network,简称:VXLAN)转发,所述加速性能包括执行所述功能时的速度,例如,VXLAN转发时的速率20Gbps。进一步地,当所述待创建虚拟机的加速功能为转发功能时,所述创建虚拟机的请求还可以包括转发表的规格,即所述转发表的最大表项数。
当实现S202时,加速器加载装置200的计算管理功能210和加速管理控制器220执行图3中的S304、S306和S308。
在S304中,计算管理功能210向加速管理控制器220发送所述待创建虚拟机的加速需求,所述所述待创建虚拟机的加速需求包括所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能。
例如,所述待创建虚拟机的加速需求中包括的所述待创建虚拟机的加速功能为VXLAN转发,所述待创建虚拟机的加速性能为20Gbps。
在S306中,加速管理控制器220根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找加速数据库240,确定能够提供满足所述加速功能和加速性能的可用加速器的至少一个候选主机,以及每个候选主机的可用加速器的信息。
其中,所述可用加速器的信息称为可用加速器的描述(profile),每个可用加速器的信息包括所述可用加速器所在的主机的标识,所述可用加速器的加速器型号,所述可用加速器的标识(英文:identifier,简称:ID)。
其中,加速数据库240用于存储所述加速器加载装置所管理的每个主机的加速信息,每个主机的加速信息包括所述主机的标识、所述主机的每个加速器的标识,所述加速器的加速器型号、所述加速器的特性组、所述加速器的属性和所述加速器的状态,所述加速器的特性组包括所述加速器的加速功能和所述加速器的加速性能。
加速器的属性用于指示所述加速器是否可以动态加载镜像。加速器的属性包括:可加载和不可加载。可加载是指加速器可以被动态地加载不同的镜像以实现不同的加速功能,不可加载是指该加速器的功能已经被固化或只能加载特定的镜像。
加速器的状态包括四种:已分配、已锁定和空闲。已分配的加速器为已经被某个虚拟机使用的加速器。已锁定的加速器为已经加载了镜像且准备分配给虚拟机使用的加速器,已锁定的加速器不能再加载新的镜像。空闲的加速器为可以被加载镜像的加速器,空闲的加速器可以是已经被加载过镜像且该被加载的镜像已经被释放的加速器,也可以是从来没有被加载过镜像的加速器。已释放的空闲加速器可以被直接分配给其他的虚拟机使用,也可以重新加载该加速器支持的其他加速功能和加速性能对应的镜像。
本发明中将属性为可加载且状态为空闲的加速器称为可用加速器。本发明中,状态为已分配或已锁定的加速器,其对应的加速功能和加速性能为所述加速器实际能够提供的加速功能和加速性能。对于属性为可加载且状态为空闲的加速器,其对应的加速功能和加速性能为所述加速器理论上能够支持的加速功能和加速性能,本发明中,一个加速器理论上可以支持多个加速功能的多种加速性能。
进一步地,加速数据库240中还包括每个加速器的特性组对应的镜像的描述符以及每个特性组的标记,所述特性组的标记用于指示所述特性组中的加速功能是否为所述特性组对应的加速器的当前功能。示例性地,本申请中用标记为1表示特性组中的加速功能为所述特性组对应的加速器的当前功能,用标记为0表示特性组中的加速功能不是所述特性组对应的加速器的当前功能。
如图5A所示,为本发明实施例提供的加速数据库240的示意图,加速数据库240中存储了每个主机对应的加速器的信息。图5A中示出了3个主机,主机H1上有两个加速器A11和A12,其中加速器A11为不可加载的加速器,已经被分配给某个虚拟机用于三层转发的加速,加速器A11只支持一个特性组{三层转发,10Gbps},对应的特性组标记为1,表明该特性组中的三层转发功能为加速器A12的当前功能。加速器A12为可加载的加速器,其支持两个特性组,分别是{VXLAN转发,20Gbps}特性组和{VXLAN转发,10Gbps}特性组,其中,{VXLAN转发,10Gbps}特性组的标记为1,表明{VXLAN转发,10Gbps}特性组对应的镜像已经被加载到了加速器A12上,加速器A12的加速器状态为空闲,表明虽然加速器A12曾经被某个虚拟机使用过,但已经被该虚拟机释放了,加速器M12可以直接被分配给需要加速功能为VXLAN转发,加速性能为10Gbps的虚拟机使用,也可以重新加载镜像。主机H2上有一个加速器A21,加速器A21只支持一个特性组{加密,20Gbps},对应的特性组标记为1,并且加速器A21的加速器状态为已锁定,表明加速器A21已经被加载了镜像准备分配给虚拟机使用,加速器A21不能被加载其他镜像。主机H3上有一个加速器A31,加速器A31只支持一个特性组{VXLAN转发,20Gbps},对应的特性组标记为0,加速器A31的加速器状态为空闲,表明加速器A31上还没有加载任何镜像。镜像描述符D1到D5分别指示对应不同特性组的镜像。
作为示例,当所述加速功能为VXLAN转发,加速性能为20Gbps时,加速管理控制器220通过查找图5A所示的加速数据库240,确定候选主机为主机H1和主机H3,对应的可用加速器为主机H1上的加速器A12和主机H3上的加速器A31。
可选地,S306之前,所述方法还包括:加速管理控制器220根据所述加速功能和所述加速性能查找加速数据库240,当查找不到满足所述加速需求的已锁定加速器时,执行S306。
S306进一步可以包括S306-1和S306-2。
在S306-1中,加速管理控制器220获取所述加速需求对应的主机列表。
其中,所述主机列表包括满足所述加速需求的至少一个主机的标识。所述主机的标识用于唯一识别所述主机。
在S306-1的一个实施方式中,计算管理功能210向加速管理控制器220发送的加速需求中还包括主机列表,所述主机列表包括所述加速器加载装置200所管理的所有能够满足所述待创建虚拟机的计算资源需求和所述待创建虚拟机的存储资源需求的主机的信息。即,在该实现方式中,S306-1包括:加速管理控制器220接收所述计算管理功能210发送的所述加速需求对应的主机列表。所述主机列表可以包括在所述加速需求中,也可以由计算管理功能210单独发送给加速管理控制器220。
所述加速器加载装置200上存储了其所管理的所有主机的信息,每个主机的信息包括所述主机能够提供的计算资源和存储资源。其中,加速器加载装置200能够管理哪些主机是由管理员配置的,所有主机的信息可以存储在所述加速器加载装置200的任意规划的存储空间中。当获取主机列表时,计算管理功能210根据所述计算资源需求和存储资源需求从所述所有主机中查找能够满足所述计算资源需求和所述存储资源需求的一个或多个主机,根据所述一个或多个主机的标识,生成所述主机列表并发送给加速管理控制器220。
在S306-1的另一个实现方式中,所述加速需求中还包括所述待创建虚拟机的计算资源需求和所述待创建虚拟机的存储资源需求,所述获取所述加速需求对应的主机列表包括:加速管理控制器220根据所述计算资源需求和存储资源需求从所述加速器加载装置管理的所有主机中查找能够满足所述计算资源需求和所述存储资源需求的一个或多个主机,根据所述一个或多个主机的标识,生成所述主机列表。
在S306-2中,加速管理控制器220根据所述主机列表、所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找加速数据库240,确定所述主机列表中能够提供满足所述加速功能和加速性能的可用加速器的至少一个候选主机,以及每个候选主机的可用加速器的信息。
在S308中,加速管理控制器200确定所述至少一个候选主机中的一个候选主机为目标主机,并确定所述目标主机的可用加速器为目标加速器。
当候选主机只有一个时,加速管理控制器220直接确定该候选主机为目标主机,该候选主机的可用加速器为所述目标加速器。
当所述候选主机包括多个主机时,在S308的一个实现方式中,所述加速需求中还包括主机过滤规则,S308包括:加速管理控制器220根据所述主机过滤规则,从所述至少一个候选主机中选择一个候选主机作为目标主机,并确定所述目标主机的可用加速器为目标加速器。
当所述候选主机包括多个主机时,在S308的另一个实现方式中,所述加速需求中不包括主机过滤规则,S308包括:
S308-1,加速管理控制器220向计算管理功能发送候选主机通知消息,所述候选主机通知消息包括所述至少一个候选主机中每个候选主机的信息,其中,每个候选主机的信息至少包括所述候选主机的标识。
S308-2,计算管理功能210根据主机过滤规则,从所述至少一个候选主机中选择一个候选主机作为目标主机。
S308-3,加速管理控制器220接收计算管理功能210发送的所述目标主机的标识,根据所述目标主机的标识,确定所述目标主机,并确定所述目标主机的可用加速器为目标加速器。
例如,加速管理控制器220根据主机过滤规则确定主机H1为目标主机,加速器A12为目标加速器。
在实现S203时,加速器加载装置200中的加速管理控制器220执行图3中的S310。
在S310中,加速管理控制器220确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符,将所述目标特性组对应的镜像作为所述目标加速器的镜像。
所述目标特性组的加速功能为所述待创建虚拟机的加速功能,所述目标特征组的加速性能为所述待创建虚拟机的加速性能。
其中,所述加速管理控制器220可以根据S306中的查找结果确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符。
如图5A所示,加速数据库240还包括每个特性组的标记。S310之前,所述方法还可以包括:加速管理控制器220查找所述加速数据库,确定所述目标加速器符合加载条件,其中所述目标加速器符合加载条件包括:所述目标特性组的加速功能不为所述目标加速器的当前功能且所述目标加速器的状态为空闲。
当实现S204时,加速管理控制器220执行图3中的S312。
在S312中,加速管理控制器220向所述目标主机的加速代理310发送镜像加载命令,所述镜像加载命令包括所述镜像的描述符,以及所述目标加速器的标识。
为了实现所述镜像的加载,如图3所示,目标主机300中的加速代理310和加速器驱动320也要相应执行部分操作。
在S314中,加速代理310从加速器镜像库230获取所述镜像。
在S314之前,所述方法还可以包括:加速代理310根据所述镜像的描述符判断本地是否缓存有所述镜像,如果没有缓存该镜像,执行S314。
在S314的一个实施方式中,加速代理310向加速器镜像库230发送镜像请求,所述镜像请求包括所述镜像的描述符,然后,加速代理310接收加速器镜像库230发送的所述镜像;在S314的另一个实施方式中,加速代理310向加速管理控制器220发送镜像请求,所述镜像请求包括所述镜像的描述符,加速管理控制器220收到该镜像请求后,根据所述镜像的描述符访问加速器镜像库230获取所述镜像,并将获取的所述镜像发送给加速代理310。
其中,加速器镜像库230用于存储镜像和镜像信息,每个镜像的镜像信息包括所述镜像的描述符(descriptor)、所述镜像对应的加速器型号、所述镜像能够提供的加速功能和所述镜像能够提供的加速性能。其中,镜像是指加载后能够执行某种功能的代码,所述镜像的描述符为所述镜像的标识和所述镜像的位置中的至少一个。所述镜像的位置是指所述镜像在加速器镜像库230中存储的位置。所述加速器型号是指用于指示某类加速器的一串字母和数字,图中4用M11,M12和M13表示。如图4A所示,为加速器镜像库230的结构示意图,加速器镜像库230可以包括第一存储区和第二存储区,所述第一存储区用于存储镜像信息,图4A示例性地提供了镜像i1、i2和i3的镜像信息,所述第二存储区用于存储镜像,在一个实施方式中,第二存储区可以包括多个数据块,镜像的位置是指所述镜像在所述第二存储区中所占用的数据块,例如,镜像i1到13分别被存储在块1到块3的每个数据块中。
当目标加速器为A12时,加速管理控制器220根据加速器标识A12对应的加速器型号M12查找加速器镜像库230,确定加速器型号M12对应的镜像为i2,即确定满足所述加速需求的镜像为i2。加速管理控制器220获取镜像i2的描述符,所述描述符可以是镜像i2的标识和位置中的至少一个。
如图3所示,为了使所述镜像能正确加载到加速器上,所述方法还包括S316和S318。
在S316中,加速代理310接收所述镜像,将所述镜像发送给所述目标加速器对应的加速器驱动320。
在S318中,所述加速器驱动320加载所述镜像,使所述目标加速器能够实现所述加速功能。
进一步地,对了更准确管理加速器,如图3所示,所述方法进一步包括:
在S320中,加速器驱动320将所述目标加速器的标识、所述待创建虚拟机的加速功能以及所述待创建虚拟机的加速性能的对应关系发送给加速代理310。
在S322中,加速代理310向加速管理控制器220发送通知消息,所述通知消息包括所述目标主机的标识、所述目标加速器的标识、所述待创建虚拟机的加速功能以及所述待创建虚拟机的加速性能。
其中,所述目标主机的标识可以为所述主机的因特网协议(英文:InternetProtocol,简称IP)地址或介质访问地址(英文:media access control,简称:MAC)地址,也可以为其他能够唯一标识所述目标主机的信息。
在S324中,加速管理控制器220在收到所述通知消息后,向计算管理功能210发送加速器分配消息,所述加速器分配消息包括所述目标主机的标识。
所述加速器分配消息用于通知所述计算管理功能210已经为所述目标主机上的加速器加载了镜像。
在S326中,加速管理控制器220在接收到所述通知消息后,还可以根据所述通知消息更新加速数据库240。
具体来说,在加速数据库240中将所述目标加速器对应的加速功能和加速性能更新为所述通知消息中的所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能,将所述目标加速器的状态修改为已锁定,并将所述待创建虚拟机的加速功能设置为所述目标加速器的当前功能。如图5B所示,为更新后的加速数据库240。由于加速器A12已经被加载了能够提供加速性能为20Gbps的VXLAN转发的镜像,则特性组{VLAN转发,20Gbps}对应的状态被改为1,特性组{VXLAN转发,10Gbps}对应的状态被改为0,表明加速器A12的当前功能为特性组{VLAN转发,20Gbps}中的VXLAN转发,并且,由于特性组{VLAN转发,20Gbps}对应的镜像没有被分配给虚拟机使用过,因此,加速器A12对应的加速器状态被修改为已锁定。至此,加速器A12被加载完成,可以被分配给虚拟机使用。
此外,由于开发者会不断开发新镜像,以更新加速器的功能,因此加速器加载装置200还接收新镜像,在加速器镜像库230中存储所述新镜像以及所述新镜像的镜像信息,并根据所述新镜像的镜像信息更新加速数据库240。
例如,当开发者(加速器生产厂商)针对加速器型号M31开发了加速功能为VXLAN转发,加速性能为40Gbps的新镜像i4后,开发者会将该新镜像发送给加速器加载装置200,加速器加载装置200将根据该新镜像更新加速器镜像库230。更新后的加速器镜像库230如图4B所示,可以看出,与图4A相比,图4B增加了镜像i4和i4的镜像信息。然后,加速管理控制器220根据i4的镜像信息中的加速器型号M31遍历加速数据库230,找到加速数据库230中加速器型号M31对应的加速器A31,为加速器A31添加一条特性组信息。如图5C所示,为根据新镜像的镜像信息更新后的加速数据库240。更新后的加速器A31多了一个特性组{VXLAN转发,40Gbps},特性组{VXLAN转发,40Gbps}对应的镜像描述符为D6,其中D6包括i4或块4中的至少一个,特性组{VXLAN转发,40Gbps}对应的特性组标记为0,表示特性组{VXLAN转发,40Gbps}中的VLXAN转发不是加速器A31的当前功能。
通过上述方式,能够实现加速器镜像库230和加速数据库240的动态更新,保证在创建虚拟机的时候能查找到最合适的加速器以实现加速功能。
图2和图3中各步骤的编号仅仅是为了表述方便,并不用于限制各步骤的执行顺序。
基于图2和图3所示的方法,本发明另一个实施例提供了一种加速器加载装置。如图6所示,该加速器加载装置包括处理器601、第一存储器602、第二存储器603和通信接口604,其中,处理器601、第一存储器602、第二存储器603和通信接口604通过总线605实现彼此之间的通信。第一存储器602中存储有计算管理程序代码6021和加速管理程序代码6022,第二存储器603中存储有加速器镜像库230和加速数据库240。
处理器601用于调用计算管理程序代码6021以执行图2和图3中由计算管理功能210执行的步骤,调用加速管理程序代码6022以执行图2和图3中由计加速管理控制器220执行的步骤,并在调用计算管理程序代码6021或加速管理程序代码6022的过程中,对加速器镜像库230和加速数据库240执行查找、读取或更新等操作。
通信接口604为一系列用于与外部设备通信的接口的集合,至少包括用于获取创建虚拟机的请求的接口以及与处理器601通过执行计算管理程序代码6021选定的目标主机通信的接口。
上述计算管理程序代码6021和加速管理程序代码6022可以为独立的两个计算机程序,也可以为同一个计算机程序的两个片段。
在一个实施方式中,本发明实施例中的处理器601可以包括两个处理器,其中一个处理器用于执行计算管理程序代码6021,另一个处理器用于执行加速管理程序代码6022。
上述第一存储器602和第二存储器603可以是物理上独立的两个存储器,也可以位于同一个物理存储设备上,类似地,上述加速器镜像库230和加速数据库240既可以位于同一个存储器上,又可以位于不同的存储器上。
本发明实施例还提供一种计算机存储介质,该计算机存储介质可存储有一个或多个程序,该一个或多个程序执行时能够实现上述方法实施例中记载的加速器加载方法的部分或全部步骤;或者说,当所述一个或多个程序被包含一个或多个处理器的计算机设备运行时,使所述计算机设备执行如上述方法实施例中记载的加速器加载方法。
本发明中,加速器加载装置在需要创建虚拟机时,可以根据待创建虚拟机的加速功能和加速性能,以及计算资源需求和存储资源需求确定能够创建该虚拟机的目标主机,并将用于加速的镜像加载到该目标主机的可用加速器上,实现了加速器的动态加载和部署。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (34)

1.一种加速器加载方法,应用于加速器加载装置,其特征在于,包括:
获取加速需求,所述加速需求包括待创建虚拟机的加速功能和所述待创建虚拟机的加速性能;
通过基于所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能进行查找的方式,确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器;
确定对应所述目标加速器的镜像;
向所述目标加速器所在的目标主机发送镜像加载命令,其中,所述镜像加载命令包括所述镜像的描述符以及所述目标加速器的标识,所述镜像加载命令用于使所述目标主机根据所述镜像加载命令为所述目标加速器加载所述镜像,所述镜像的描述符包括所述镜像的标识和所述镜像的位置中的至少一个。
2.根据权利要求1所述的方法,其特征在于,所述确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器包括:
根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找加速数据库,确定能够提供满足所述待创建虚拟机的加速功能和待创建虚拟机的加速性能的至少一个可用加速器的至少一个候选主机,以及每个候选主机的可用加速器的信息;
确定所述至少一个候选主机中的一个候选主机为目标主机,并确定所述目标主机的可用加速器为目标加速器;
其中,所述加速数据库用于存储所述加速器加载装置所管理的每个主机的加速信息,每个主机的加速信息包括所述主机的标识、所述主机的每个加速器的标识,所述加速器的加速器型号、所述加速器的特性组、所述加速器的属性和所述加速器的状态,所述加速器的特性组包括所述加速器的加速功能和所述加速器的加速性能;所述加速器的属性用于指示所述加速器是否可以动态加载镜像。
3.根据权利要求2所述的方法,其特征在于,确定能够提供满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的可用加速器的至少一个候选主机包括:
获取所述加速需求对应的主机列表,所述主机列表包括满足所述加速需求的至少一个主机的标识;
根据所述主机列表、所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找所述加速数据库,确定所述主机列表中能够提供满足所述待创建虚拟机的加速功能和待创建虚拟机的加速性能的可用加速器的至少一个候选主机。
4.根据权利要求3所述的方法,其特征在于,
所述获取所述加速需求包括:
获取创建虚拟机的请求,所述创建虚拟机的请求包括所述待创建虚拟机的计算资源需求、所述待创建虚拟机的存储资源需求以及所述加速需求,所述加速需求为所述待创建虚拟机的加速需求;
所述获取所述加速需求对应的主机列表包括:
根据所述计算资源需求和存储资源需求从所述加速器加载装置管理的所有主机中查找能够满足所述计算资源需求和所述存储资源需求的一个或多个主机,根据所述一个或多个主机的标识,生成所述加速需求对应的所述主机列表。
5.根据权利2-4中任意一项所述的方法,其特征在于,所述确定所述至少一个候选主机中的一个候选主机为目标主机包括:
根据主机过滤规则,从所述至少一个候选主机中选择一个候选主机作为目标主机。
6.根据权利要求2-4中任意一项所述的方法,其特征在于,所述加速数据库还包括每个加速器的特性组对应的镜像的描述符;
所述确定对应所述目标加速器的镜像包括:
确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符,将所述目标特性组对应的镜像作为所述目标加速器的镜像;所述目标特性组的加速功能为所述待创建虚拟机的加速功能,所述目标特性组的加速性能为所述待创建虚拟机的加速性能。
7.根据权利要求6所述的方法,其特征在于,所述加速数据库还包括每个特性组的标记,所述特性组的标记用于指示所述特性组中的加速功能是否为所述特性组对应的加速器的当前功能;
所述确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符之前,所述方法还包括:
查找所述加速数据库,确定所述目标加速器符合加载条件;
其中所述目标加速器符合加载条件包括:
所述目标特性组的加速功能不为所述目标加速器的当前功能且所述目标加速器的状态为空闲。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述目标主机发送的镜像请求,所述镜像请求包括所述镜像的描述符;
根据所述镜像的描述符从加速器镜像库获取所述镜像并向所述目标主机发送所述镜像;
其中,所述加速器镜像库用于存储镜像和镜像信息,每个镜像的镜像信息包括所述镜像的描述符、所述镜像对应的加速器型号、所述镜像能够提供的加速功能和所述镜像能够提供的加速性能。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述目标主机发送的通知消息,所述通知消息包括所述目标主机的标识、所述目标加速器的标识、所述待创建虚拟机的加速功能以及所述待创建虚拟机的加速性能;
根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能更新所述加速数据库,将所述目标加速器的状态修改为已锁定,并将所述待创建虚拟机的加速功能设置为所述目标加速器的当前功能。
10.根据权利要求8或9所述的方法,其特征在于,还包括:
接收新镜像,在所述加速器镜像库中存储所述新镜像以及所述新镜像的镜像信息,所述新镜像的镜像信息包括所述新镜像的描述符、所述新镜像对应的加速器型号、所述新镜像能够提供的加速功能和所述新镜像能够提供的加速性能;
根据所述新镜像对应的加速器型号查找所述加速数据库,在所述加速数据库中为支持所述新镜像对应的加速器型号的每个加速器添加包括所述新镜像的加速功能和所述新镜像的加速性能的特性组以及所述新镜像的描述符。
11.一种加速器加载装置,其特征在于,包括:
计算管理功能模块,用于获取加速需求,所述加速需求包括待创建虚拟机的加速功能和所述待创建虚拟机的加速性能;
加速管理控制器,用于通过基于所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能进行查找的方式,确定满足所述加速功能和加速性能的目标加速器;确定对应所述目标加速器的镜像;向所述目标加速器所在的目标主机发送镜像加载命令,所述镜像加载命令包括所述对应所述目标加速器的镜像的描述符以及所述目标加速器的标识,所述镜像加载命令用于使所述目标主机根据所述镜像加载命令为所述目标加速器加载所述镜像。
12.根据权利要求11所述的加速器加载装置,其特征在于,还包括加速数据库,
所述计算管理功能模块还用于向所述加速管理控制器发送所述加速需求;
当确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器时,所述加速管理控制器用于根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找所述加速数据库,确定能够提供满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的可用加速器的至少一个候选主机,以及每个候选主机的可用加速器的信息;确定所述至少一个候选主机中的一个候选主机为目标主机,并确定所述目标主机的可用加速器为目标加速器;
其中,所述加速数据库用于存储所述加速器加载装置所管理的每个主机的加速信息,每个主机的加速信息包括所述主机的标识、所述主机的每个加速器的标识,所述加速器的加速器型号、所述加速器的特性组、所述加速器的属性和所述加速器的状态,所述加速器的特性组包括所述加速器的加速功能和所述加速器的加速性能;所述加速器的属性用于指示所述加速器是否可以动态加载镜像。
13.根据权利要求12所述的加速器加载装置,其特征在于,当确定能够提供满足所述加速功能和加速性能的可用加速器的至少一个候选主机时,所述加速管理控制器用于:
获取所述加速需求对应的主机列表,所述主机列表包括满足所述加速需求的至少一个主机的标识;
根据所述主机列表、所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找所述加速数据库,确定所述主机列表中能够提供满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的可用加速器的至少一个候选主机。
14.根据权利要求13所述的加速器加载装置,其特征在于,
所述计算管理功能模块用于获取创建虚拟机的请求,所述创建虚拟机的请求包括所述待创建虚拟机的计算资源需求、所述待创建虚拟机的存储资源需求以及所述加速需求,所述加速需求为所述待创建虚拟机的加速需求;根据所述计算资源需求和存储资源需求从所述加速器加载装置管理的所有主机中查找能够满足所述计算资源需求和所述存储资源需求的一个或多个主机,根据所述一个或多个主机的标识,生成所述加速需求对应的所述主机列表;向所述加速管理控制器发送所述主机列表;
所述加速管理控制器还用于接收所述计算管理功能发送的所述主机列表。
15.根据权利要求13所述的加速器加载装置,其特征在于,所述加速需求中还包括所述待创建虚拟机的计算资源需求和所述待创建虚拟机的存储资源需求,
当获取所述加速需求对应的主机列表时,所述加速管理控制器用于根据所述计算资源需求和所述存储资源需求从所述加速器加载装置管理的所有主机中查找能够满足所述计算资源需求和所述存储资源需求的一个或多个主机,根据所述一个或多个主机的标识,生成所述主机列表。
16.根据权利要求12-15中任意一项所述的加速器加载装置,其特征在于,所述加速需求中还包括主机过滤规则,
当确定所述至少一个候选主机中的一个候选主机为目标主机时,所述加速器加载装置用于根据所述主机过滤规则,从所述至少一个候选主机中选择一个候选主机作为目标主机。
17.根据权利要求12-15中任意一项所述的加速器加载装置,其特征在于,当确定所述至少一个候选主机中的一个候选主机为目标主机时,
所述加速管理控制器用于向所述计算管理功能发送候选主机通知消息,所述候选主机通知消息包括所述至少一个候选主机中每个候选主机的信息,其中,每个候选主机的信息至少包括所述候选主机的标识;
所述计算管理功能模块用于根据主机过滤规则,从所述至少一个候选主机中选择一个候选主机作为目标主机,并向所述加速管理控制器发送所述目标主机的标识;
所述加速管理控制器用于接收所述计算管理功能发送的所述目标主机的标识,根据所述目标主机的标识,确定所述目标主机。
18.根据权利要求15所述的加速器加载装置,其特征在于,所述加速数据库还包括每个加速器的特性组对应的镜像的描述符;
当确定对应所述目标加速器的镜像时,所述加速管理控制器用于:
确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符,将所述目标特性组对应的镜像作为所述目标加速器的镜像;所述目标特性组的加速功能为所述待创建虚拟机的加速功能,所述目标特性组的加速性能为所述待创建虚拟机的加速性能。
19.根据权利要求18所述的加速器加载装置,其特征在于,所述加速数据库还包括每个特性组的标记,所述特性组的标记用于指示所述特性组中的加速功能是否为所述特性组对应的加速器的当前功能;
确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符之前,所述加速管理控制器还用于:查找所述加速数据库,确定所述目标加速器符合加载条件;
其中所述目标加速器符合加载条件包括:
所述目标特性组的加速功能不为所述目标加速器的当前功能且所述目标加速器的状态为空闲。
20.根据权利要求11所述的加速器加载装置,其特征在于,当向所述目标主机发送镜像加载命令时,
所述加速管理控制器用于向所述目标主机的加速代理发送所述镜像加载命令,所述镜像加载命令用于使所述加速代理为所述目标加速器对应的加速器驱动加载所述镜像。
21.根据权利要求20所述的加速器加载装置,其特征在于,
加速器镜像库用于接收所述加速代理发送的镜像请求,所述镜像请求包括所述镜像的描述符;根据所述镜像的描述符获取所述镜像并向所述加速代理发送所述镜像;
其中,所述加速器镜像库用于存储镜像和镜像信息,每个镜像的镜像信息包括所述镜像的描述符、所述镜像对应的加速器型号、所述镜像能够提供的加速功能和所述镜像能够提供的加速性能。
22.根据权利要求20所述的加速器加载装置,其特征在于,所述加速管理控制器还用于:
接收所述加速代理发送的镜像请求,所述镜像请求包括所述镜像的描述符;
所根据所述镜像的描述符访问加速器镜像库以获取所述镜像;以及
将所述镜像发送给所述加速代理;
其中,所述加速器镜像库用于存储镜像和镜像信息,每个镜像的镜像信息包括所述镜像的描述符、所述镜像对应的加速器型号、所述镜像能够提供的加速功能和所述镜像能够提供的加速性能。
23.根据权利要求19所述的加速器加载装置,其特征在于,所述加速管理控制器还用于:
接收加速代理发送的通知消息,所述通知消息包括所述目标主机的标识、所述目标加速器的标识、所述待创建虚拟机的加速功能以及所述待创建虚拟机的加速性能;
根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能更新所述加速数据库,将所述目标加速器的状态设置为已锁定,并将所述待创建虚拟机的加速功能设置为所述目标加速器的当前功能。
24.根据权利要求21-22中任意一项所述的加速器加载装置,其特征在于:
所述加速器镜像库还用于接收新镜像,存储所述新镜像以及所述新镜像的镜像信息,所述新镜像的镜像信息包括所述新镜像的描述符、所述新镜像对应的加速器型号、所述新镜像能够提供的加速功能和所述新镜像能够提供的加速性能;
所述加速管理控制器还用于根据所述新镜像对应的加速器型号查找加速数据库,在所述加速数据库中为支持所述新镜像对应的加速器型号的每个加速器添加包括所述新镜像的加速功能和所述新镜像的加速性能的特性组以及所述新镜像的描述符。
25.一种加速器加载系统,其特征在于,包括加速器加载装置和至少一个主机:
所述加速器加载装置用于:获取加速需求,所述加速需求包括待创建虚拟机的加速功能和所述待创建虚拟机的加速性能;通过基于所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能进行查找的方式,确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器;确定对应所述目标加速器的镜像;向所述目标加速器所在的目标主机发送镜像加载命令,所述镜像加载命令包括所述镜像的描述符以及所述目标加速器的标识;所述目标主机为所述至少一个主机中的一个主机;所述镜像的描述符包括所述镜像的标识和位置中的至少一个;
所述目标主机用于接收所述镜像加载命令,根据所述镜像加载命令为所述目标加速器加载所述镜像。
26.根据权利要求25所述的系统,其特征在于,当确定满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的目标加速器时,所述加速器加载装置用于:
根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找加速数据库,确定能够提供满足所述待创建虚拟机的加速功能和待创建虚拟机的加速性能的可用加速器的至少一个候选主机,以及每个候选主机的可用加速器的信息;
确定所述至少一个候选主机中的一个候选主机为目标主机,并确定所述目标主机的可用加速器为目标加速器;
其中,所述加速数据库用于存储所述加速器加载装置所管理的每个主机的加速信息,每个主机的加速信息包括所述主机的标识、所述主机的每个加速器的标识,所述加速器的加速器型号、所述加速器的特性组、所述加速器的属性和所述加速器的状态,所述加速器的特性组包括所述加速器的加速功能和所述加速器的加速性能;所述加速器的属性用于指示所述加速器是否可以动态加载镜像。
27.根据权利要求26所述的系统,其特征在于,当确定能够提供满足所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能的可用加速器的至少一个候选主机时,所述加速器加载装置用于:
获取所述加速需求对应的主机列表,所述主机列表包括满足所述加速需求的至少一个主机的标识;
根据所述主机列表、所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能查找所述加速数据库,确定所述主机列表中能够提供满足所述待创建虚拟机的加速功能和待创建虚拟机的加速性能的可用加速器的至少一个候选主机。
28.根据权利要求27所述的系统,其特征在于,
当获取所述加速需求时,所述加速器加载装置用于:
获取创建虚拟机的请求,所述创建虚拟机的请求包括所述待创建虚拟机的计算资源需求、所述待创建虚拟机的存储资源需求以及所述加速需求,所述加速需求为所述待创建虚拟机的加速需求;
当获取所述加速需求对应的主机列表时,所述加速器加载装置用于:
根据所述待创建虚拟机的计算资源需求和所述待创建虚拟机的存储资源需求从所述加速器加载装置管理的所有主机中查找能够满足所述计算资源需求和所述存储资源需求的一个或多个主机;
根据所述一个或多个主机的标识,生成所述加速需求对应的所述主机列表。
29.根据权利要求26-28中任意一项所述的系统,其特征在于,当确定所述至少一个候选主机中的一个候选主机为目标主机时,所述加速器加载装置用于:根据主机过滤规则,从所述至少一个候选主机中选择一个候选主机作为目标主机。
30.根据权利要求26-28中任意一项所述的系统,其特征在于,
所述加速数据库还包括每个加速器的特性组对应的镜像的描述符;
当确定对应所述目标加速器的镜像时,所述加速器加载装置用于:
确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符,将所述目标特性组对应的镜像作为所述目标加速器的镜像;所述目标特性组的加速功能为所述待创建虚拟机的加速功能,所述目标特性组的加速性能为所述待创建虚拟机的加速性能。
31.根据权利要求30所述的系统,其特征在于,所述加速数据库还包括每个特性组的标记,所述特性组的标记用于指示所述特性组中的加速功能是否为所述特性组对应的加速器的当前功能;
在查找所述加速数据库确定所述目标加速器的目标特性组以及所述目标特性组对应的镜像的描述符之前,所述加速器加载装置还用于:查找所述加速数据库,确定所述目标加速器符合加载条件;
其中所述目标加速器符合加载条件包括:
所述目标特性组的加速功能不为所述目标加速器的当前功能且所述目标加速器的状态为空闲。
32.根据权利要求31所述的系统,其特征在于,
所述目标主机还用于向所述加速器加载装置发送镜像请求,所述镜像请求包括所述镜像的描述符;
所述加速器加载装置还用于接收所述镜像请求,根据所述镜像的描述符从加速器镜像库获取所述镜像并向所述目标主机发送所述镜像;
其中,所述加速器镜像库用于存储镜像和镜像信息,每个镜像的镜像信息包括所述镜像的描述符、所述镜像对应的加速器型号、所述镜像能够提供的加速功能和所述镜像能够提供的加速性能。
33.根据权利要求32所述的系统,其特征在于,
所述目标主机还用于向所述加速器加载装置发送通知消息,所述通知消息包括所述目标主机的标识、所述目标加速器的标识、所述待创建虚拟机的加速功能以及所述待创建虚拟机的加速性能;
所述加速器加载装置还用于接收所述通知消息,根据所述待创建虚拟机的加速功能和所述待创建虚拟机的加速性能更新所述加速数据库,将所述目标加速器的状态修改为已锁定,并将所述待创建虚拟机的加速功能设置为所述目标加速器的当前功能。
34.根据权利要求32或33所述的系统,其特征在于,所述加速器加载装置还用于:
接收新镜像,在所述加速器镜像库中存储所述新镜像以及所述新镜像的镜像信息;所述新镜像的镜像信息包括所述新镜像的描述符、所述新镜像对应的加速器型号、所述新镜像能够提供的加速功能和所述新镜像能够提供的加速性能;
根据所述新镜像对应的加速器型号查找所述加速数据库,在所述加速数据库中为支持所述新镜像对应的加速器型号的每个加速器添加包括所述新镜像的加速功能和所述新镜像的加速性能的特性组以及所述新镜像的描述符。
CN201610989130.1A 2016-11-09 2016-11-09 一种加速器加载方法、系统和加速器加载装置 Active CN108062239B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201610989130.1A CN108062239B (zh) 2016-11-09 2016-11-09 一种加速器加载方法、系统和加速器加载装置
CN202010459605.2A CN111813459A (zh) 2016-11-09 2016-11-09 一种加速器加载方法、系统和加速器加载装置
EP17870073.8A EP3531282A4 (en) 2016-11-09 2017-10-12 ACCELERATOR CHARGING METHOD AND SYSTEM, AND ACCELERATOR CHARGING APPARATUS
PCT/CN2017/105878 WO2018086436A1 (zh) 2016-11-09 2017-10-12 一种加速器加载方法、系统和加速器加载装置
US16/407,920 US11416267B2 (en) 2016-11-09 2019-05-09 Dynamic hardware accelerator selection and loading based on acceleration requirements

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610989130.1A CN108062239B (zh) 2016-11-09 2016-11-09 一种加速器加载方法、系统和加速器加载装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010459605.2A Division CN111813459A (zh) 2016-11-09 2016-11-09 一种加速器加载方法、系统和加速器加载装置

Publications (2)

Publication Number Publication Date
CN108062239A CN108062239A (zh) 2018-05-22
CN108062239B true CN108062239B (zh) 2020-06-16

Family

ID=62109400

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010459605.2A Pending CN111813459A (zh) 2016-11-09 2016-11-09 一种加速器加载方法、系统和加速器加载装置
CN201610989130.1A Active CN108062239B (zh) 2016-11-09 2016-11-09 一种加速器加载方法、系统和加速器加载装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010459605.2A Pending CN111813459A (zh) 2016-11-09 2016-11-09 一种加速器加载方法、系统和加速器加载装置

Country Status (4)

Country Link
US (1) US11416267B2 (zh)
EP (1) EP3531282A4 (zh)
CN (2) CN111813459A (zh)
WO (1) WO2018086436A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976876B (zh) * 2019-03-20 2021-11-16 联想(北京)有限公司 加速器管理方法和装置
US11144290B2 (en) * 2019-09-13 2021-10-12 Huawei Technologies Co., Ltd. Method and apparatus for enabling autonomous acceleration of dataflow AI applications
CN111523657B (zh) * 2020-04-26 2023-06-20 云知声智能科技股份有限公司 神经网络加速器创建方法及装置、电子设备和存储介质
CN111736950B (zh) * 2020-06-12 2024-02-23 广东浪潮大数据研究有限公司 一种虚拟机的加速器资源添加方法及相关装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510469B1 (en) 1998-05-13 2003-01-21 Compaq Information Technologies Group,L.P. Method and apparatus for providing accelerated content delivery over a network
US8898324B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US8914626B1 (en) * 2011-05-20 2014-12-16 Amazon Technologies, Inc. Providing configurable bootstrapping of software image execution
CN103399758B (zh) * 2011-12-31 2016-11-23 华为数字技术(成都)有限公司 硬件加速方法、装置和系统
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US9304946B2 (en) * 2012-06-25 2016-04-05 Empire Technology Development Llc Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table
CN103092678B (zh) 2013-01-22 2016-01-13 华中科技大学 一种多增量虚拟机内存管理系统和方法
US9424136B1 (en) 2013-06-12 2016-08-23 Veritas Technologies Llc Systems and methods for creating optimized synthetic backup images
US10140639B2 (en) * 2013-08-23 2018-11-27 Empire Technology Development Llc Datacenter-based hardware accelerator integration
CN105900518B (zh) * 2013-08-27 2019-08-20 华为技术有限公司 用于移动网络功能虚拟化的系统及方法
US10037222B2 (en) 2013-09-24 2018-07-31 University Of Ottawa Virtualization of hardware accelerator allowing simultaneous reading and writing
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
CN104951353B (zh) 2014-03-28 2018-09-21 华为技术有限公司 一种对vnf实现加速处理的方法及装置
US9986434B2 (en) 2014-04-30 2018-05-29 Avago Technologies General Ip (Singapore) Pte. Ltd. System for accelerated network route update through exclusive access to routing tables
EP2955631B1 (en) 2014-06-09 2019-05-01 Nokia Solutions and Networks Oy Controlling of virtualized network functions for usage in communication network
US10423414B2 (en) * 2014-11-12 2019-09-24 Texas Instruments Incorporated Parallel processing in hardware accelerators communicably coupled with a processor
CN104410672B (zh) * 2014-11-12 2017-11-24 华为技术有限公司 网络功能虚拟化应用升级的方法、转发业务的方法及装置
CN105577801B (zh) 2014-12-31 2019-01-11 华为技术有限公司 一种业务加速方法及装置
US9483291B1 (en) * 2015-01-29 2016-11-01 Altera Corporation Hierarchical accelerator registry for optimal performance predictability in network function virtualization
KR102364712B1 (ko) 2015-04-03 2022-02-18 한국전자통신연구원 분산 클라우드 환경에서 서비스 오케스트레이션 시스템 및 방법
US9378043B1 (en) * 2015-05-28 2016-06-28 Altera Corporation Multilayer quality of service (QOS) for network functions virtualization platforms
US9891935B2 (en) * 2015-08-13 2018-02-13 Altera Corporation Application-based dynamic heterogeneous many-core systems and methods
CN105159753B (zh) * 2015-09-25 2018-09-28 华为技术有限公司 加速器虚拟化的方法、装置及集中资源管理器
US10048977B2 (en) * 2015-12-22 2018-08-14 Intel Corporation Methods and apparatus for multi-stage VM virtual network function and virtual service function chain acceleration for NFV and needs-based hardware acceleration
US9967136B2 (en) * 2016-03-28 2018-05-08 Dell Products L.P. System and method for policy-based smart placement for network function virtualization
CN105979007B (zh) * 2016-07-04 2020-06-02 华为技术有限公司 加速资源处理方法、装置及网络功能虚拟化系统
CN106020937A (zh) * 2016-07-07 2016-10-12 腾讯科技(深圳)有限公司 一种创建虚拟机的方法、装置及系统
US10303899B2 (en) * 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control
CN108073423B (zh) * 2016-11-09 2020-01-17 华为技术有限公司 一种加速器加载方法、系统和加速器加载装置
CN110998660B (zh) 2017-05-19 2024-04-26 莫维迪乌斯有限公司 用于优化流水线执行的方法、系统和装置

Also Published As

Publication number Publication date
EP3531282A1 (en) 2019-08-28
EP3531282A4 (en) 2019-12-18
CN111813459A (zh) 2020-10-23
US20190265985A1 (en) 2019-08-29
CN108062239A (zh) 2018-05-22
US11416267B2 (en) 2022-08-16
WO2018086436A1 (zh) 2018-05-17

Similar Documents

Publication Publication Date Title
CN108073423B (zh) 一种加速器加载方法、系统和加速器加载装置
US11405274B2 (en) Managing virtual network functions
US11188347B2 (en) Virtual function driver loading method and server using global and local identifiers corresponding to locations of the virtual functions
US11416267B2 (en) Dynamic hardware accelerator selection and loading based on acceleration requirements
CN102799464B (zh) 虚拟机创建方法及系统、虚拟机重装方法及系统
US11249788B2 (en) Cloud management platform, and virtual machine management method and system
US11030025B2 (en) Managing inter-process communications in a containerized application environment
EP3905588A1 (en) Cloud platform deployment method and apparatus, server and storage medium
CN109981493B (zh) 一种用于配置虚拟机网络的方法和装置
US11036535B2 (en) Data storage method and apparatus
CN113342711B (zh) 页表更新方法、装置及相关设备
US11799743B2 (en) Node addition in cloud networks
EP3970008A1 (en) Managed computing resource placement as a service for dedicated hosts
WO2020233002A1 (zh) 容器实例ip切换方法、装置、计算机设备及存储介质
US10911371B1 (en) Policy-based allocation of provider network resources
US20220229685A1 (en) Application execution on a virtual server based on a key assigned to a virtual network interface
US20200167171A1 (en) Virtual machine booting using disk metadata
US11924336B1 (en) Cryptographic artifact generation using virtualized security modules
CN117827369A (zh) 虚拟机改密方法、装置、电子设备及存储介质
CN116541124A (zh) 虚拟计算实例创建方法、服务器集群及服务器
CN116643848A (zh) OpenStack中集成智能网卡数据处理器的方法、装置、设备及介质
CN117667296A (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
GR01 Patent grant
GR01 Patent grant