CN111240800B - 硬件加速设备挂载方法及云平台 - Google Patents
硬件加速设备挂载方法及云平台 Download PDFInfo
- Publication number
- CN111240800B CN111240800B CN202010004482.3A CN202010004482A CN111240800B CN 111240800 B CN111240800 B CN 111240800B CN 202010004482 A CN202010004482 A CN 202010004482A CN 111240800 B CN111240800 B CN 111240800B
- Authority
- CN
- China
- Prior art keywords
- hardware acceleration
- server
- acceleration device
- computing node
- mounting
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Abstract
本发明披露了一种硬件加速设备挂载方法及云平台,该硬件加速设备挂载方法,包括接收挂载硬件加速设备的请求数据,对云平台中既有的硬件加速设备执行初次校验后创建和/或修改规格报告;确定服务端所对应的计算节点,当计算节点中的硬件加速设备满足服务端的当前需求时,将计算节点中所含硬件加速设备所对应的规格数据上传至计算节点的管理层;由管理层对规格数据作二次校验,当二次校验通过时由计算节点中的驱动层挂载与所述创建和/或修改规格报告所对应的硬件加速设备至服务端。在本发明中,可在服务端持续向用户提供服务的过程中根据传入的挂载硬件加速设备的请求数据,以直通模式挂载不同类型的硬件加速设备,避免了服务端服务中断现象。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种硬件加速设备挂载方法及一种云平台。
背景技术
在计算机行业及云平台中在提高软件驱动的计算设备的速度和效率的工作中面临越来越多的挑战,例如,由于功率限制和其他因素。软件驱动的计算设备采用以常规时序方式处理机器可读指令的一个或多个中央处理单元(CPU)。为了解决这个问题,计算行业已经提出了使用硬件加速设备(例如,FPGA)来补充由软件驱动的计算设备执行的处理。然而,软件驱动的计算设备和硬件加速部件是不同的类型的设备,具有根本上不同的体系架构、性能特点、功率要求、程序配置范例、接口特征等。因此,以满足具体数据处理环境的各种设计要求的方式将这两种类型的设备集成在一起是一项具有挑战性的任务。
在虚拟化调度平台(例如Openstack虚拟化平台)中,虚拟机(VM)仅能通过冷挂载方式通过Nova组件为虚拟机挂载硬件加速设备。在硬件加速设备的挂载过程中,虚拟机呈未启动状态。因此传统的硬件加速设备的挂载方式比较单一,如果将正在运行的中虚拟机关闭并加载硬件加速设备的话,必然会对向用户提供服务的虚拟机造成业务上的中断。因此,现有技术中对虚拟机执行硬件加速设备的挂载存在一定的缺陷。
有鉴于此,有必要对现有技术中的硬件加速设备的挂载方式予以改进,以解决上述问题。
发明内容
本发明的目的在于揭示一种硬件加速设备挂载方法以及一种云平台,用以至少实现对虚拟机在启动状态下实现硬件加速设备的挂载操作,避免挂载操作对虚拟机对外提供服务的中断,以提高云平台的适应性。
为实现上述第一个发明目的,本发明提供了硬件加速设备挂载方法,用于对云平台中的服务端挂载硬件加速设备,包括以下步骤:
S1、接收挂载硬件加速设备的请求数据,对云平台中既有的硬件加速设备执行初次校验后创建和/或修改规格报告;
S2、确定服务端所对应的计算节点,当所述计算节点中的硬件加速设备满足服务端的当前需求时,将与请求数据所对应的硬件加速设备所形成的规格数据上传至计算节点的管理层;
S3、由所述管理层对所述规格数据作二次校验,当二次校验通过时由计算节点中的驱动层挂载与所述创建和/或修改规格报告所对应的硬件加速设备至服务端。
作为本发明的进一步改进,接收挂载硬件加速设备的请求数据之前还包括:
由云平台中的API层对所述请求数据进行校验;
其中,对所述请求数据进行校验的校验对象为:
请求数据格式,硬件加速设备id,硬件加速设备制造商id,硬件加速设备挂载数量及硬件加速设备描述中的一种或者几种的组合。
作为本发明的进一步改进,所述步骤S1还包括:将创建和/或修改规格报告所对应的规格数据传入云平台所有计算节点的调度层,并由所述调度层确定服务端与硬件加速设备之间的映射关系。
作为本发明的进一步改进,所述步骤S2还包括:对所述计算节点中的硬件加速设备是否满足服务端的当前需求进行判断,
若是,对服务端不执行迁移操作;
若否,将服务端迁移至满足服务端的当前需求的计算节点中。
作为本发明的进一步改进,所述步骤S3中计算节点中的驱动层挂载与所述创建和/或修改规格报告所对应的硬件加速设备至服务端执行完毕后还包括:将由驱动层挂载的硬件加速设备所对应的规格数据保存至所属计算节点的数据库中,并对数据库中保存的规格数据执行更新操作。
作为本发明的进一步改进,在对数据库中保存的规格数据执行更新操作之后还包括:
对挂载硬件加速设备的计算节点中的管理层所留存的硬件加速设备记录表执行更新。
作为本发明的进一步改进,所述步骤S3中驱动层挂载硬件加速设备具体为:
根据计算节点中管理层下发至能够被Libvirt库所调用的配置数据,通过Libvirt库调用Qemu-kvm、VMware、VirtualBox或者Xen执行PCI直通,以将硬件加速设备挂载至服务端;
所述配置数据中由待加载的硬件加速设备的bus地址和/或插槽号描述。
作为本发明的进一步改进,所述硬件加速设备为集成CPU、GPU、SoC或者FPGA中的一种或者几种半导体集成电路的电子装置;
所述电子装置通过PCIE1X~PCIE16X接口与服务端相通信;
所述服务端被配置为虚拟机、容器或者云主机。
作为本发明的进一步改进,所述步骤S1中修改规格报告具体为:对计算节点中类型和/或数量相同的硬件加速设备所形成的规格数据予以修改。
基于相同发明思想,为实现上述第二个发明目的,本发明还提供了一种云平台,包括:至少一个计算节点及控制节点;
所述云平台运行如上述任一项发明所揭示的硬件加速设备挂载方法,以通过所述硬件加速设备挂载方法对形成于计算节点中的服务端执行挂载硬件加速设备的操作。
与现有技术相比,本发明的有益效果是:
在本发明中,可在服务端持续向用户提供服务的过程中根据传入的挂载硬件加速设备的请求数据,以直通模式挂载不同类型的硬件加速设备,有效地避免了挂载操作对虚拟机等服务端对外提供服务的中断,从而提高了云平台的适应性及用户体验。
附图说明
图1为本发明硬件加速设备挂载方法的流程图;
图2为本发明硬件加速设备挂载方法运行于云平台中的流程实例;
图3为云平台应用本发明硬件加速设备挂载方法选择一个计算节点挂载硬件加速设备的实例;
图4为本发明所揭示云平台的拓扑图;
图5为云平台的计算节点中包含多种硬件加速设备的物理资源池集的示意图;
图6为向云平台中响应于用户发起的请求的服务端并择一执行冷挂载与热挂载的流程图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
在详细阐述本发明各个实施例之前,对说明书所涉及术语予以概述,并最终通过后续若干实施例或者其组合对本发明作详细阐述。
术语“物理资源池”为形成计算节点(Compute Node)的各种物理资源或者硬件资源,包括但不限于隶属于该计算节点中的物理服务器、具GPU(图形处理器单元)的电子装置、FPGA硬件设备等。同时,术语“物理设备集”在逻辑上隶属于云平台100形成的整个物理资源池30。
术语“热挂载”是指服务端,尤其是服务端被配置为虚拟机的场景时,在虚拟机开启状态下,为虚拟机执行硬件加速设备的挂载操作。
术语“冷挂载”是指服务端,尤其是服务端被配置为虚拟机的场景时,在虚拟机关闭状态下,为虚拟机执行硬件加速设备的挂载操作。
术语“逻辑”包括用于执行任务的任何物理和有形功能。例如,流程图中所示的每个操作对应于用于执行该操作的逻辑组件。可以使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等、和/或其任何组合来执行操作。当由计算设备实现时,逻辑组件表示作为无论以何种方式实现的计算机系统的物理部分的电组件。
术语“对外服务”是指,在云平台100或者计算装置中为用户80和/或管理员81基于用户80和/或管理员81发起的请求、配置或者指令所形成一种服务、一种响应、一种数据结果示出等。
短语“配置为”或者短语“被配置为”包括可以构造任何种类的物理和有形的功能以执行标识的操作的任何方式。功能可以被配置为使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等、和/或其任何组合来执行操作。
实施例一:
如图1及图2所揭示的本发明一种硬件加速设备挂载方法的一种具体实施方式。
配合参照图4所示,在本实施例中,云平台100中通常配置出一个或者多个计算节点,即图4中的计算节点21与计算节点22;计算节点21中配置出一个或者多个服务端,即图4中的服务端211至服务端21i,其中,参数i取大于或者等于二的正整数。例如,服务端211至服务端21i中的任意一个服务端可被配置为虚拟机(VM)、容器(Container)或者云主机(利用虚拟化技术构建的服务器,其包括一个或者多个虚拟机)。
本实施例所揭示的硬件加速设备挂载方法,用以对上述服务端以直通方式挂载硬件加速设备,用以向服务端(例如,虚拟机)提供接近原生硬件的访问性能。当服务端211支持硬件加速功能时,服务端211可以获得硬件加速设备的硬件支持,从而可以更快和更有效地执行多个任务。该任务包括通过Storage vMotion迁移虚拟机、从模板部署虚拟机、克隆虚拟机或模板、虚拟机文件的VMFS群集锁定和元数据操作、置备厚虚拟磁盘、创建容错虚拟机、在NFS数据存储上创建和克隆厚磁盘等。
尤其需要说明的是,本申请各个实施例中所谓的“热挂载”与传统物理计算机概念上的“热拔插”(Hot-plugging)存在本质上的区别。“热拔插”是一种计算机带电拔插操作,其允许用户在不关闭计算机系统电源的前提下取出或者更换某个或者某些硬件装置,例如,硬盘、电源或者其他物理组件,以对计算机执行性能扩展。然而,在本申请中,“热挂载”的处理结果,是将硬件加速设备的PCI物理地址映射到客户虚拟系统(Guest OS)。当这种映射发生时,硬件将负责访问(和保护),客户机的操作系统212在使用该硬件加速设备时,就仿佛它不是一个虚拟系统一样。除了将客户机映射到物理内存外,新的架构还提供隔离机制,以便预先阻止其他客户机(或管理程序)访问该内存。同时,申请人指出在本申请所揭示的技术方案中硬件加速设备的算力远大于物理计算机的CPU的算力,因此挂载硬件加速设备非常适用于人工智能(AI)、图形渲染等应用场所。需要注意的是,上文所提及的CPU仅被理解为物理计算机主板上所插接的中央处理器。
参图1所示,该硬件加速设备挂载方法(以下简称“挂载方法”),用于对云平台100中的服务端挂载硬件加速设备,包括以下步骤。在本实施例中,申请人以服务端为虚拟机为范例做范例性说明,本领域的普通技术人员应当认识到,该挂载方法还可其他类型的服务端在开机状态下执行热挂载操作。该挂载方法在云平台100执行过程中依赖控制节点10的API层11与调度层12,以及计算节点21中的管理层210与驱动层214;其中,管理层210与驱动层214属于计算节点服务,并与控制节点10中的API层11与调度层12共同实现该热挂载的整体流程。该API层11在基于OpenStack架构组建的云平台100中为Nova API,调度层12为Nova-Scheduler service。
在本实施例中,该硬件加速设备可被配置为集成CPU、GPU、SoC或者FPGA中的一种或者几种半导体集成电路的电子装置(例如:具有PCIE1X~PCIE16X接口的板卡或者加速卡)。电子装置通过PCIE1X~PCIE16X接口与服务端211相通信。
首先,执行步骤S1、接收挂载硬件加速设备的请求数据,对云平台100中既有的硬件加速设备执行初次校验后创建和/或修改规格报告。云平台100可被配置为IaaS,PaaS或者SaaS三种架构中的任意一种。该步骤S1在API层10中执行,API层11运行在控制节点10中,用于接收用户80和/或管理员81(参图4所示)发起的挂载物理加速设备所对应的请求数据。初次校验包含下述两个逻辑判断过程,参图2中步骤312与步骤313所示。尤其需要说明的是,在步骤S1中的请求数据可由用户80和/或管理员81发出并传入至API层11,甚至还可以是云平台所所配置的机器人程序或者由另一个云平台通过网络所传入至API层11。
具体的,在步骤S1中,在接收挂载硬件加速设备的请求数据之前还包括:由云平台100中的API层11对所述请求数据进行校验,该校验过程含如步骤312所示出的逻辑。对所述请求数据进行校验的校验对象为:请求数据格式,硬件加速设备id,硬件加速设备制造商id,硬件加速设备挂载数量及硬件加速设备描述中的一种或者几种的组合。
如图2所示,该步骤S1具体包含步骤311至步骤314。
步骤311:API层11接收硬件加速设备配置所对应的请求数据输入,并跳转执行步骤312。
步骤312:API层11检测传过来的数据格式是否正确进行判断。
其中,传入API层11的数据即步骤S1中所提及的请求数据。
请求数据包含的数据格式如下所示:
{"pciDeviceMent":{"pciProductId":"102d","pciVendorId":"10de","pciNums":"1","display":"NVIDIA Corporation GK210GL[Tesla K80][10de:102d](reva1)"}};
其中,pciProductId为硬件加速设备id,pciVendorId为硬件加速设备制造商id,pciNums为挂载的硬件加速设备挂载数量,display为硬件加速设备描述,NVIDIACorporation GK210GL[Tesla K80][10de:102d](rev a1)为该硬件加速设备(GPU)的显卡驱动。步骤312主要检查请求数据中所包含的pciProductId、pciVendorId、pciNums的值是否符合服务端211的使用需要。
步骤S1中,执行初次校验的目的是确认自API层11传入的请求数据的数据格式是否正确,以及请求数据所对应的硬件加速设备是否符合服务端211的使用需求。若是满足,则由步骤312跳转执行步骤313;若不满足,则向API层11予以汇报,并重新调用请求数据。
步骤313:判断是否有可用的硬件加速设备资源。
上述判断过程中所谓“是否有可用”的含义是:对云平台100的后端物理资源池30中已经为某个计算节点(例如计算节点21)所已经配置且能够被服务端211执行加载操作的硬件加速设备的资源集合,即图5所示出的物理设备集213,且该检查过程由API层11执行。在步骤313中,若是,则跳转执行步骤314;若否,则返回步骤311,以向API层11予以汇报,并重新调用请求数据。
在步骤313中,可根据pciProductId和pciVendorId的值在云平台100中检查是否注册了该类型的硬件加速设备,下一步检测该类型的硬件加速设备处于中可用状态的数量是否满足pciNums的数量,由此确定物理设备集213中是否有可用的硬件加速设备资源。
然后,执行步骤314:生成硬件加速设备规格数据。规格数据逻辑上构成了规格报告。同时,在该步骤S1还包括:将创建和/或修改规格报告所对应的规格数据传入云平台100所有计算节点21的调度层12,并由所述调度层12确定服务端与一个和/或多个硬件加速设备之间的映射关系。当云平台100未加载某个或者某些硬件加速设备的实例时,则以创建方式生成规格报告所对应的规格数据传入云平台100所有计算节点21的调度层12;当云平台100已经加载某个或者某些硬件加速设备的实例时,则以修改方式生成规格报告所对应的规格数据传入云平台100所有计算节点21的调度层12,或者同时执行创建方式生成规格报告。步骤S1中修改规格报告具体为:对计算节点21中类型和/或数量相同的硬件加速设备所形成的规格数据予以修改。本步骤中“创建”与“新建”具等同技术含义。
该规格报告包含至少一个规格数据,且规格数据由上述步骤S1中的请求数据格式,硬件加速设备id,硬件加速设备制造商id,硬件加速设备挂载数量及硬件加速设备描述中的一种或者几种的组合共同描述,并优选为将所有规格数据作为一个数据集,以形成可被计算机或者操作系统所调用的规格报告。
更具体的,在本实施例中,若步骤312与步骤313所含的判断逻辑均为是(或“Y”),则跳转执行步骤314:生成硬件加速设备规格数据。
该规格数据的实例如下所示:
pci_passthrough:alias":"gpu_10de_102d:1";其中,pci_passthrough:alias为直通标签,gpu_10de_102d:1为硬件加速设备的类型和数量;如果该虚拟机(服务端211的下位概念)已经挂载了一种类型的硬件加速设备,那么新规格需要结合虚拟机以前的规格数据(即,用于表征类型的规格数据)和当前传入的数据生成一个新的硬件加速设备规格。同时,如果该虚拟机挂载一个硬件加速设备和已挂载至该虚拟机的硬件加速设备是同种类型的硬件加速设备,则用于表征类型的规格数据不发生变化,而仅对用于表征数量的规格数据数量上增加对应的数量。若给该虚拟机加载的硬件加速设备与该虚拟机已经挂载的硬件加速设备是不同类型的,则对类型与数量分别进行修改,以最终完成生成硬件加速设备规格数据的处理步骤。步骤S1执行完毕之后,API层11将包含规格数据的规格报告下发至调度层12中进行后续处理。
然后,执行步骤S2、确定服务端所对应的计算节点,当所述计算节点中的硬件加速设备满足服务端的当前需求时,将与请求数据所对应的硬件加速设备所形成的规格数据上传至计算节点的管理层210。
确定服务端所对应的计算节点的实现过程,具体如图3所示,即确定某个服务端(例如虚拟机)在逻辑上所处的计算节点,即某个虚拟机究竟运行在计算节点21上还是运行在计算节点22上。虽然,本申请在图3中仅示出了两个计算节点,但在实际的云环境或者云平台100中,本领域普通技术人员可以合理预测并可配置出数量更多的计算节点,从而为后续是否需要对服务端(例如虚拟机或者容器)执行迁移操作提供最合适且更多的选择,以提高整个云平台100的容错性与业务处理能力,并在一定程度上提高了用户80使用该云平台100的用户体验。该步骤S2由控制节点10的调度层12执行。在图3中,实线的双向箭头代表在本实施例中选用了计算节点21,虚线的双向箭头代表未被调度层12所选用的计算节点。
结合图2所示,在本实施例中,步骤S2可被分解为步骤315至步骤318。具体而言,步骤314跳转执行步骤315:调度层12选择合适的计算节点,并执行步骤316:判断是否存在合适的计算节点,该步骤316由调度层12执行。调度层12运行于云平台100的控制节点10中。在一种实例中,使用OpenStack Compute(即计算节点)来托管和管理云计算系统。OpenStackCompute(计算节点)是基础架构即服务(IaaS)系统的主要部分。OpenStack Compute与OpenStack Identity交互以进行身份验证;用于磁盘和服务器映像的OpenStack映像服务;和OpenStack Dashboard用于用户和管理界面。控制节点10用于实例生命周期的管理、管理计算资源、网络和认证管理、REST风格的API、异步的一致性通信以及Hypervisor透明,并支持Xen,XenServer/XCP,KVM,UML,VMware vSphere and Hyper-V等。
在步骤315中,调度层12选择符合运行某个实例配置的虚拟机的计算节点,并假定选取了计算节点21,并执行步骤316。
步骤S2还包括:对所述计算节点中的硬件加速设备是否满足服务端的当前需求进行判断,若是,对服务端(在本实施例中,该服务端211被理解为虚拟机)不执行迁移操作;若否,将服务端迁移至满足服务端的当前需求的计算节点中。
具体而言,步骤316至步骤318的执行过程如下所述。
调度层12根据规格数据中所包含的类型及数量的规格数据,计算当前虚拟机的所处计算节点21所配置硬件加速设备是否符合虚拟机的业务需求;如果该计算节点21中所配置的物理设备集213中所包含的资源符合虚拟机的业务需求,则不需要对虚拟机作迁出操作,如果虚拟机的业务需求,则需要结合规格数据和该虚拟机所配置的CPU和内存信息,由调度层12计算出合适的计算节点,然后把虚拟机迁移到合适的计算节点21,以将虚拟机迁移至同一个计算节点所映射的不同磁盘空间或者将虚拟机直接迁移至计算节点22的磁盘空间中。例如,可采用Storage vMotion迁移虚拟机。结合图4所示,物理设备集213中包含CPU、FPGA或者GPU中的一种或者几种,且数量为一个或者几个,共同形成为虚拟机提供加速服务的物理设备集213;并且,一个或者多个物理设备集213在逻辑上构成了云平台100中的物理资源池30的一部分。物理资源池30还可包括物理磁盘、物理网卡、物理防火墙等物理设备,以共同构成该物理资源池30。
在步骤316的逻辑判断中,若否,代表该计算节点21无法向虚拟机提供匹配用户80发起的业务请求所对应的硬件加速设备,则跳转执行步骤311;若是,跳转执行步骤318,以进一步执行虚拟机迁移是否成功的判断逻辑。在步骤318所示出的判断逻辑中,若是,则跳转执行步骤319;若否,则跳转执行步骤311。在本实施例中,虚拟机的迁移可为在线迁移,并确保整个迁移过程不中断对外服务。
最后,执行步骤S3、由管理层210对规格数据作二次校验,当二次校验通过时由计算节点21中的驱动层214挂载与所述创建和/或修改规格报告所对应的硬件加速设备至服务端。
相对于前述步骤S1所执行的“初次校验”,在步骤S3中由基于步骤S2所确定的计算节点21中的管理层210执行二次校验。执行二次校验的目的在于由计算节点21对最终的硬件加速设备的挂载操作更为可靠,且步骤S3由步骤319至步骤323予以具体执行。
步骤319:计算节点管理服务处理,且具体由管理层210执行。
然后执行步骤320:管理层210执行是否有可用的硬件加速设备资源的判断,若是,则跳转执行步骤323;若否,则跳转执行步骤311。
管理层210需要首先检查自调度层12所输入的规格数据是否合规,规格数据在传输的过程中可能会发生变更,因此管理层210首先检查输入的规格数据是否符合期望的,此处的检查主要针对pci_passthrough:alias":"gpu_10de_102d:1"的规格数据做检查。例如,某种硬件加速设备的类型(例如对该硬件加速设备执行是GPU还是FPGA的判断等)在云平台100中是否存在,以及数量不能是零或者负数等判断条件进行检查,以防止挂载操作失败。然后根据规格数据中的设备类型和数量再次检查该计算节点21上的物理设备集213中所包含的硬件加速设备是否满足虚拟机的业务需求。通过在API层11与管理层210执行两次校验,保证了挂载操作的可靠性,提高了挂载操作的效率。
然后,执行步骤321:更新数据库。
步骤S3中计算节点21中的驱动层214挂载与所述创建和/或修改规格报告所对应的硬件加速设备至服务端执行完毕后还包括:将由驱动层214挂载的硬件加速设备所对应的规格数据保存至所属计算节点21的数据库中,并对数据库中保存的规格数据执行更新操作。
步骤323:驱动层214拦截,并由计算节点21的驱动层214执行挂载硬件加速设备的挂载操作。步骤S3中驱动层214挂载硬件加速设备具体为:根据计算节点21中管理层210下发至能够被Libvirt库所调用的配置数据,通过Libvirt库调用Qemu-kvm、VMware、VirtualBox或者Xen执行PCI直通(PCI Passthrough),以将硬件加速设备挂载至服务端(即虚拟机);
配置数据中由待加载的硬件加速设备的bus地址和/或插槽号描述。
申请人示出了驱动层214执行挂载操作的一个实例,具体如下:
驱动层214根据传入的硬件加速设备规格数据生成Libvirt库能识别的XML格式的配置数据,XML格式的配置数据包括计算节点21上待执行加载操作所对应的硬件加速设备所形成的bus地址、插槽号等配置数据,并示出了如下代码示例。
<hostdev mode='subsystem'type='pci'managed='yes'>
<source>
<address domain='0x0000'bus='0x89'slot='0x00'function='0x0'/>
</source>
<address type='pci'domain='0x0000'bus='0x00'slot='0x07'function='0x0'/>
</hostdev>
最后,执行步骤322:更新硬件加速设备资源记录。即在对数据库中保存的规格数据执行更新操作之后还包括:对挂载硬件加速设备的计算节点21中的管理层210所留存的硬件加速设备记录表执行更新。硬件加速设备记录表可为轻量级文本文件(例如:txt、JSON等)。通过执行该步骤322能够为后续的挂载操作提供准确依据,防止后续的挂载处理时为步骤316至步骤318的执行提供准确且可靠依据,防止计算节点21中的物理设备集213出现竞争与调用失败等现象。
本实施例所揭示的挂载方法,可在服务端持续向用户提供服务的过程中根据传入的挂载硬件加速设备的请求数据,以直通模式挂载不同类型的硬件加速设备,有效地避免了挂载操作对虚拟机等服务端对外提供服务所可能导致的中断,从而提高了云平台100的适应性及用户体验。同时,本实施例所揭示的挂载方法还同时实现了在一个服务端挂载不同类型的硬件加速设备的需求。
实施例二:
结合图4所示,且基于实施例一所揭示的一种硬件加速设备挂载方法所揭示的技术方案,申请人指出该挂载方法还可用于对云平台100中的服务端211挂载硬件加速设备,并由此披露了云平台100的一种具体实施方式。
在本实施例中,该云平台100,包括:至少一个计算节点及控制节点10。该云平台中可包含多个计算节点,即图4所示出的计算节点21与计算节点22,并构成计算节点群20。计算节点群20可由包含实施例一所揭示的物理磁盘、物理网卡、物理防火墙等物理设备,以及一种或者多种且数量任意的硬件加速设备单独或者共同组成。需要说明的是,在云平台100的实际配置中,可将计算节点群20中的一个或者多个计算节点配置为宿主机。
进一步的,结合图4与图6所示,本实施例所揭示的云平台100在执行硬件加速设备挂载过程中还包括一个判断逻辑,即,在执行挂载操作时执行判断服务端是否为启动状态的判断步骤102;若是,则跳转执行步骤104热挂载;若否,则跳转执行步骤103冷挂载。
本实施例所揭示的云平台100运行如实施例一所揭示的一种硬件加速设备挂载方法,以通过所述硬件加速设备挂载方法对形成于计算节点中的服务端(例如:虚拟机或者容器)执行挂载硬件加速设备。
本实施例中所揭示的云平台100与实施例一所揭示的挂载方法相同部分的技术方案,请参实施例一所述,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (10)
1.硬件加速设备挂载方法,用于以直通模式对云平台中的服务端挂载硬件加速设备,且服务端在硬件加速设备挂载过程中不中断对外服务,其特征在于,包括以下步骤:
S1、服务端接收挂载硬件加速设备的请求数据,对云平台中既有的硬件加速设备传入的请求数据执行初次校验后创建和/或修改规格报告,所述规格报告由规格数据构成,所述初次校验为对API层传入的请求数据的数据格式是否正确及请求数据所对应的硬件加速设备是否符合服务端的使用需求进行判断;
S2、确定服务端所对应的计算节点,当所述计算节点中的硬件加速设备满足服务端的当前需求时,将与请求数据所对应的硬件加速设备所形成的规格数据上传至计算节点的管理层;
S3、由所述管理层对所述规格数据作二次校验,当二次校验通过时由计算节点中的驱动层挂载与所述创建和/或修改规格报告所对应的硬件加速设备至服务端。
2.根据权利要求1所述的硬件加速设备挂载方法,其特征在于,服务端接收挂载硬件加速设备的请求数据之前还包括:
由云平台中的API层对所述请求数据进行校验;
其中,对所述请求数据进行校验的校验对象为:
请求数据格式,硬件加速设备id,硬件加速设备制造商id,硬件加速设备挂载数量及硬件加速设备描述中的一种或者几种的组合。
3.根据权利要求1所述的硬件加速设备挂载方法,其特征在于,所述步骤S1还包括:将创建和/或修改规格报告所对应的规格数据传入云平台所有计算节点的调度层,并由所述调度层确定服务端与硬件加速设备之间的映射关系。
4.根据权利要求1所述的硬件加速设备挂载方法,其特征在于,所述步骤S2还包括:对所述计算节点中的硬件加速设备是否满足服务端的当前需求进行判断,
若是,对服务端不执行迁移操作;
若否,将服务端迁移至满足服务端的当前需求的计算节点中。
5.根据权利要求1所述的硬件加速设备挂载方法,其特征在于,所述步骤S3中计算节点中的驱动层挂载与所述创建和/或修改规格报告所对应的硬件加速设备至服务端执行完毕后还包括:将由驱动层挂载的硬件加速设备所对应的规格数据保存至所属计算节点的数据库中,并对数据库中保存的规格数据执行更新操作。
6.根据权利要求5所述的硬件加速设备挂载方法,其特征在于,在对数据库中保存的规格数据执行更新操作之后还包括:
对挂载硬件加速设备的计算节点中的管理层所留存的硬件加速设备记录表执行更新。
7.根据权利要求1所述的硬件加速设备挂载方法,其特征在于,所述步骤S3中驱动层挂载硬件加速设备具体为:
根据计算节点中管理层下发至能够被Libvirt库所调用的配置数据,通过Libvirt库调用Qemu-kvm、VMware、VirtualBox或者Xen执行PCI直通,以将硬件加速设备挂载至服务端;
所述配置数据中由待加载的硬件加速设备的bus地址和/或插槽号描述。
8.根据权利要求1至7中任一项所述的硬件加速设备挂载方法,其特征在于,所述硬件加速设备为集成CPU、GPU、SoC或者FPGA中的一种或者几种半导体集成电路的电子装置;
所述电子装置通过PCIE1X~PCIE16X接口与服务端相通信;
所述服务端被配置为虚拟机、容器或者云主机。
9.根据权利要求8所述的硬件加速设备挂载方法,其特征在于,所述规格数据包括:表征数量的第一规格数据及表征类型的第二规格数据;
所述步骤S1中修改规格报告具体为:
若挂载相同类型的硬件加速设备,仅修改第一规格数据;
若挂载不同类型的硬件加速设备,同时修改第一规格数据与第二规格数据。
10.一种云平台,其特征在于,包括:至少一个计算节点及控制节点;
所述云平台运行如权利要求1至9中任一项所述的硬件加速设备挂载方法,以通过所述硬件加速设备挂载方法对形成于计算节点中的服务端执行挂载硬件加速设备的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010004482.3A CN111240800B (zh) | 2020-01-03 | 2020-01-03 | 硬件加速设备挂载方法及云平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010004482.3A CN111240800B (zh) | 2020-01-03 | 2020-01-03 | 硬件加速设备挂载方法及云平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240800A CN111240800A (zh) | 2020-06-05 |
CN111240800B true CN111240800B (zh) | 2022-12-27 |
Family
ID=70868700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010004482.3A Active CN111240800B (zh) | 2020-01-03 | 2020-01-03 | 硬件加速设备挂载方法及云平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240800B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991594B (zh) * | 2023-09-26 | 2024-02-09 | 苏州元脑智能科技有限公司 | 一种负载均衡器创建方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016101638A1 (zh) * | 2014-12-23 | 2016-06-30 | 国家电网公司 | 一种电力系统云仿真平台的运营管理方法 |
CN106708430A (zh) * | 2016-11-30 | 2017-05-24 | 浪潮软件集团有限公司 | 一种云计算架构下的云硬盘实现方法 |
CN107346210A (zh) * | 2016-05-06 | 2017-11-14 | 阿里巴巴集团控股有限公司 | 硬盘数据擦除方法、服务器及系统 |
CN109032753A (zh) * | 2018-06-20 | 2018-12-18 | 上海市信息网络有限公司 | 一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台 |
CN109254825A (zh) * | 2017-07-12 | 2019-01-22 | 中兴通讯股份有限公司 | 一种纳管虚拟机硬盘的方法及装置 |
CN110046026A (zh) * | 2019-04-22 | 2019-07-23 | 无锡华云数据技术服务有限公司 | 云主机指定虚拟磁盘限速方法、计算设备及云平台 |
-
2020
- 2020-01-03 CN CN202010004482.3A patent/CN111240800B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016101638A1 (zh) * | 2014-12-23 | 2016-06-30 | 国家电网公司 | 一种电力系统云仿真平台的运营管理方法 |
CN107346210A (zh) * | 2016-05-06 | 2017-11-14 | 阿里巴巴集团控股有限公司 | 硬盘数据擦除方法、服务器及系统 |
CN106708430A (zh) * | 2016-11-30 | 2017-05-24 | 浪潮软件集团有限公司 | 一种云计算架构下的云硬盘实现方法 |
CN109254825A (zh) * | 2017-07-12 | 2019-01-22 | 中兴通讯股份有限公司 | 一种纳管虚拟机硬盘的方法及装置 |
CN109032753A (zh) * | 2018-06-20 | 2018-12-18 | 上海市信息网络有限公司 | 一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台 |
CN110046026A (zh) * | 2019-04-22 | 2019-07-23 | 无锡华云数据技术服务有限公司 | 云主机指定虚拟磁盘限速方法、计算设备及云平台 |
Non-Patent Citations (1)
Title |
---|
基于虚拟机自省的虚拟环境安全机制设计与实现;张楠;《中国优秀硕士学位论文全文数据库》;20180415;第2018年卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111240800A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109155782B (zh) | 容器之间的进程间通信 | |
EP3571586B1 (en) | Dynamic and application-specific virtualized graphics processing | |
US9811367B2 (en) | Method and apparatus for combined hardware/software VM migration | |
US20150205542A1 (en) | Virtual machine migration in shared storage environment | |
US20120054740A1 (en) | Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments | |
US8904159B2 (en) | Methods and systems for enabling control to a hypervisor in a cloud computing environment | |
CN111450524B (zh) | 云游戏中的信息处理方法、装置、云游戏服务器及介质 | |
US20190146827A1 (en) | Virtualized network function resource management method and device | |
US8813076B2 (en) | Virtual machine updates | |
US9632813B2 (en) | High availability for virtual machines in nested hypervisors | |
US20140115576A1 (en) | Extensible Network Configuration Management | |
WO2023093843A1 (zh) | 一种配置装置、调度装置及配置方法和调度方法 | |
EP3701373B1 (en) | Virtualization operations for directly assigned devices | |
CN111684418A (zh) | 用于在多租户容器平台上运行应用程序的系统和方法 | |
WO2022041507A1 (zh) | 3d渲染方法及系统 | |
WO2021018267A1 (zh) | 虚拟机热迁移方法和通信设备 | |
US10467078B2 (en) | Crash dump extraction of guest failure | |
CN115526770A (zh) | 用于虚拟化图形处理的缩放 | |
WO2017045272A1 (zh) | 虚拟机迁移方法和装置 | |
CN111240800B (zh) | 硬件加速设备挂载方法及云平台 | |
US10552228B2 (en) | Distributed hierarchical scheduler | |
US10102024B2 (en) | System and methods to create virtual machines with affinity rules and services asymmetry | |
CN113326098B (zh) | 支持kvm虚拟化与容器虚拟化的云管平台 | |
US10606681B2 (en) | Incremental dump with fast reboot | |
US11960919B2 (en) | Virtual accelerators in a virtualized computing system |
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 |