一种虚拟机与加速器间的数据传输方法、系统及装置与流程

文档序号:23897978发布日期:2021-02-09 12:48阅读:119来源:国知局
一种虚拟机与加速器间的数据传输方法、系统及装置与流程

[0001]
本发明涉及服务器领域,特别是涉及一种虚拟机与加速器间的数据传输方法、系统及装置。


背景技术:

[0002]
为了提高云端的计算能力,越来越多的加速器资源被添加进云数据中心,比如含有fpga(field programmable gate array,现场可编程门阵列)处理单元的加速器。最初,fpga加速器插至服务器的pcie(peripheral component interconnect express,高速串行计算机扩展总线标准)插槽上,只服务于所在服务器上的应用,不能被其它服务器所访问,在一定程度上造成了fpga加速器空置浪费。为了提高fpga加速器资源的利用率,采用借助服务器网卡的方式,实现通过网络使得本地fpga加速器可被远端服务器所访问,此时所有fpga加速器逻辑上相当于共同构成了一个加速器资源池,由一个资源管理器根据需求分配加速器资源,提高了fpga加速器资源的利用率。同时,为了降低因远端服务器与fpga加速器之间的传输延迟导致的加速性能损失,远端服务器和fpga加速器的网络传输协议通常采用高速数据传输协议,比如rdma(remote direct memory access,远程直接内存访问)协议。
[0003]
目前,服务器的应用通常部署在服务器上创建的虚拟机里。为了保证云数据中心的运维效果,通常设置虚拟机具备实时迁移功能,即在一台物理机上运行的虚拟机可以迁移到另一台物理机上,而且要求在迁移过程中,用户感觉不到虚拟机中的应用被中断。如果虚拟机中所运行的应用无需访问外部设备,则迁移仅是cpu(中央处理器)和memory(存储器)的状态数据的拷贝,较容易实现虚拟机迁移。如果虚拟机中所运行的应用需要通过网络访问外部设备,有时会存在问题,比如,虚拟机中所运行的应用需要通过网络访问fpga加速器,二者之间通过rdma协议进行通信,但rdma协议实现机制要求存放一些状态到网卡硬件中,即rdma协议依赖于网卡硬件,需要借助网卡硬件的功能才能保证高速的数据传输,因网卡硬件的限制,导致在迁移过程中虚拟机中所运行的应用中断,即现有的采用rmda协议的fpga加速器资源池化方案不支持虚拟机迁移。
[0004]
因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。


技术实现要素:

[0005]
本发明的目的是提供一种虚拟机与加速器间的数据传输方法、系统及装置,可保证虚拟机中所运行的应用不中断,即本申请的采用高速传输协议+低速传输协议的加速器资源池化方案支持虚拟机迁移。
[0006]
为解决上述技术问题,本发明提供了一种虚拟机与加速器间的数据传输方法,包括:
[0007]
在虚拟机中的应用与待通信的加速器之间建立支持第一传输协议的第一传输路径和支持第二传输协议的第二传输路径;其中,所述第一传输协议为借助物理网卡硬件实
现的高速传输协议;所述第二传输协议为借助由软件模拟出的网卡设备实现的低速传输协议;
[0008]
在所述虚拟机中的应用进入运行时,控制所述虚拟机中的应用优先使用所述第一传输路径与所述加速器进行通信;
[0009]
在所述虚拟机接收到迁移命令后,控制所述虚拟机中的应用切换至所述第二传输路径与所述加速器进行通信。
[0010]
优选地,在虚拟机中的应用与待通信的加速器之间建立支持第一传输协议的第一传输路径和支持第二传输协议的第二传输路径的过程,包括:
[0011]
预先在虚拟机上设置用于支持加速器资源池化及支持所述虚拟机中的应用与待通信的加速器之间基于同一个物理网络链路实现不同传输协议连接的软件栈;其中,所述不同传输协议包括所述第一传输协议和所述第二传输协议;
[0012]
在所述虚拟机中的应用初始化阶段,调用所述软件栈提供的连接所述加速器的接口,以使所述软件栈建立所述虚拟机中的应用与所述加速器之间通讯所需的第一传输路径和第二传输路径。
[0013]
优选地,在所述虚拟机接收到迁移命令后,控制所述虚拟机中的应用切换至所述第二传输路径与所述加速器进行通信的过程,包括:
[0014]
在所述虚拟机接收到迁移命令后,关闭所述第一传输路径,并将所述第一传输路径标记为不可用;
[0015]
在所述虚拟机中的应用在使用连接所述加速器的接口进行通信时,若检测到所述第一传输路径不可用,则自动切换至所述第二传输路径完成所述虚拟机中的应用与所述加速器的通信。
[0016]
优选地,所述虚拟机与加速器间的数据传输方法还包括:
[0017]
待所述虚拟机迁移完成后,在所述虚拟机中的应用与所述加速器之间重新建立所述第一传输路径,并将所述第一传输路径标记为可用;
[0018]
在所述虚拟机中的应用在使用连接所述加速器的接口进行通信时,若检测到所述第一传输路径可用,则优先使用所述第一传输路径完成所述虚拟机中的应用与所述加速器的通信。
[0019]
优选地,所述第一传输协议具体为rdma协议;所述第二传输协议具体为tcp协议。
[0020]
优选地,所述虚拟机与加速器间的数据传输方法还包括:
[0021]
预先在服务器上设置用于指示所述服务器上运行的虚拟机中的应用所采用的具体传输路径的指示装置;
[0022]
根据所述虚拟机中的应用在运行时所使用的具体传输路径,控制所述指示装置进行相应指示操作。
[0023]
为解决上述技术问题,本发明还提供了一种虚拟机与加速器间的数据传输系统,包括:
[0024]
链路建立模块,用于在虚拟机中的应用与待通信的加速器之间建立支持第一传输协议的第一传输路径和支持第二传输协议的第二传输路径;其中,所述第一传输协议为借助物理网卡硬件实现的高速传输协议;所述第二传输协议为借助由软件模拟出的网卡设备实现的低速传输协议;
[0025]
高速传输模块,用于在所述虚拟机中的应用进入运行时,控制所述虚拟机中的应用优先使用所述第一传输路径与所述加速器进行通信;
[0026]
低速传输模块,用于在所述虚拟机接收到迁移命令后,控制所述虚拟机中的应用切换至所述第二传输路径与所述加速器进行通信。
[0027]
优选地,所述链路建立模块具体用于:
[0028]
预先在虚拟机上设置用于支持加速器资源池化及支持所述虚拟机中的应用与待通信的加速器之间基于同一个物理网络链路实现不同传输协议连接的软件栈;其中,所述不同传输协议包括所述第一传输协议和所述第二传输协议;
[0029]
在所述虚拟机中的应用初始化阶段,调用所述软件栈提供的连接所述加速器的接口,以使所述软件栈建立所述虚拟机中的应用与所述加速器之间通讯所需的第一传输路径和第二传输路径。
[0030]
优选地,所述低速传输模块具体用于:
[0031]
在所述虚拟机接收到迁移命令后,关闭所述第一传输路径,并将所述第一传输路径标记为不可用;
[0032]
在所述虚拟机中的应用在使用连接所述加速器的接口进行通信时,若检测到所述第一传输路径不可用,则自动切换至所述第二传输路径完成所述虚拟机中的应用与所述加速器的通信。
[0033]
为解决上述技术问题,本发明还提供了一种虚拟机与加速器间的数据传输装置,包括:
[0034]
存储器,用于存储计算机程序;
[0035]
处理器,用于在执行所述计算机程序时实现上述任一种虚拟机与加速器间的数据传输方法的步骤。
[0036]
本发明提供了一种虚拟机与加速器间的数据传输方法,在虚拟机中的应用与加速器之间建立两个不同且独立的数据传输路径,一个是借助物理网卡硬件实现高速传输协议的高速传输路径;另一个是借助由软件模拟出的网卡设备实现低速传输协议的低速传输路径。在虚拟机未收到迁移命令时,控制虚拟机中的应用优先使用高速传输路径与加速器进行通信,即进行高带宽、低延迟的数据传送。在虚拟机收到迁移命令后,控制虚拟机中的应用切换至低速传输路径与加速器进行通信,低速传输协议依赖的是由软件模拟出的网卡设备,其迁移过程和cpu类似,也是简单的数据传输和拷贝,可保证虚拟机中所运行的应用不中断,即本申请的采用高速传输协议+低速传输协议的加速器资源池化方案支持虚拟机迁移。
[0037]
本发明还提供了一种虚拟机与加速器间的数据传输系统及装置,与上述迁移方法具有相同的有益效果。
附图说明
[0038]
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]
图1为本发明实施例提供的一种虚拟机与加速器间的数据传输方法的流程图;
[0040]
图2为本发明实施例提供的一种虚拟机与加速器间的数据传输原理图;
[0041]
图3为本发明实施例提供的一种虚拟机与加速器间的数据传输系统的结构示意图。
具体实施方式
[0042]
本发明的核心是提供一种虚拟机与加速器间的数据传输方法、系统及装置,可保证虚拟机中所运行的应用不中断,即本申请的采用高速传输协议+低速传输协议的加速器资源池化方案支持虚拟机迁移。
[0043]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]
请参照图1,图1为本发明实施例提供的一种虚拟机与加速器间的数据传输方法的流程图。
[0045]
该虚拟机与加速器间的数据传输方法包括:
[0046]
步骤s1:在虚拟机中的应用与待通信的加速器之间建立支持第一传输协议的第一传输路径和支持第二传输协议的第二传输路径;其中,第一传输协议为借助物理网卡硬件实现的高速传输协议;第二传输协议为借助由软件模拟出的网卡设备实现的低速传输协议。
[0047]
具体地,本申请在虚拟机中的应用与待通信的加速器之间建立两个不同且独立的数据传输路径,分别称为第一传输路径和第二传输路径,第一传输路径支持借助物理网卡硬件实现的高速传输协议,即第一传输路径为高速传输路径;第二传输路径支持借助由软件模拟出的网卡设备实现的低速传输协议,即第二传输路径为低速传输路径。
[0048]
之所以在虚拟机中的应用与待通信的加速器之间建立高速传输路径和低速传输路径,是因为:若虚拟机中的应用与加速器之间采用高速传输路径进行数据传输,可实现高带宽、低延迟的数据传送,从而降低了因远端服务器与加速器之间的传输延迟导致的加速性能损失;若虚拟机中的应用与加速器之间采用低速传输路径进行数据传输,则虚拟机中所运行的应用借助由软件模拟出的网卡设备访问加速器,因为由软件模拟出的网卡设备其状态不保存在网卡硬件中,所以支持虚拟机的迁移,从而为实现既能采用高速传输协议又能保证虚拟机实时迁移的加速器资源池化提供基础。
[0049]
步骤s2:在虚拟机中的应用进入运行时,控制虚拟机中的应用优先使用第一传输路径与加速器进行通信。
[0050]
具体地,本申请在虚拟机中的应用进入运行时,控制虚拟机中的应用优先使用第一传输路径与加速器进行通信,即虚拟机在未接收到虚拟机管理软件下发的迁移命令时,虚拟机中的应用优先使用高速传输路径与加速器进行通信,实现高带宽、低延迟的数据传送。
[0051]
步骤s3:在虚拟机接收到迁移命令后,控制虚拟机中的应用切换至第二传输路径与加速器进行通信。
[0052]
具体地,本申请在虚拟机接收到虚拟机管理软件下发的迁移命令后,控制虚拟机中的应用切换至第二传输路径与加速器进行通信,即虚拟机在迁移过程中,虚拟机中的应用使用低速传输路径与加速器进行通信,可成功完成虚拟机的迁移。
[0053]
本发明提供了一种虚拟机与加速器间的数据传输方法,在虚拟机中的应用与加速器之间建立两个不同且独立的数据传输路径,一个是借助物理网卡硬件实现高速传输协议的高速传输路径;另一个是借助由软件模拟出的网卡设备实现低速传输协议的低速传输路径。在虚拟机未收到迁移命令时,控制虚拟机中的应用优先使用高速传输路径与加速器进行通信,即进行高带宽、低延迟的数据传送。在虚拟机收到迁移命令后,控制虚拟机中的应用切换至低速传输路径与加速器进行通信,低速传输协议依赖的是由软件模拟出的网卡设备,其迁移过程和cpu类似,也是简单的数据传输和拷贝,可保证虚拟机中所运行的应用不中断,即本申请的采用高速传输协议+低速传输协议的加速器资源池化方案支持虚拟机迁移。
[0054]
在上述实施例的基础上:
[0055]
请参照图2,图2为本发明实施例提供的一种虚拟机与加速器间的数据传输原理图。
[0056]
作为一种可选的实施例,在虚拟机中的应用与待通信的加速器之间建立支持第一传输协议的第一传输路径和支持第二传输协议的第二传输路径的过程,包括:
[0057]
预先在虚拟机上设置用于支持加速器资源池化及支持虚拟机中的应用与待通信的加速器之间基于同一个物理网络链路实现不同传输协议连接的软件栈;其中,不同传输协议包括第一传输协议和第二传输协议;
[0058]
在虚拟机中的应用初始化阶段,调用软件栈提供的连接加速器的接口,以使软件栈建立虚拟机中的应用与加速器之间通讯所需的第一传输路径和第二传输路径。
[0059]
具体地,本申请在虚拟机中的应用与待通信的加速器之间建立传输路径的具体方式为:
[0060]
本申请提前在虚拟机上设置一个软件栈,其支持加速器资源池化,且允许虚拟机中的应用与待通信的加速器之间基于同一个物理网络链路实现不同传输协议连接。需要说明的是,每个传输协议是以插件的形式实现的,即虚拟机中的应用只是调用软件栈提供的连接加速器的接口,至于接口所能使用的协议是由所支持的插件来决定。同时,软件栈具备协议切换的能力,当第一优先级的协议(高速传输协议)不可用时,可立即切换到第二优先级的协议(低速传输协议),从而保证连接的双方继续通信。
[0061]
本申请在虚拟机中的应用初始化阶段,调用软件栈提供的连接加速器的接口,此时软件栈会建立虚拟机中的应用与加速器之间通讯所需的高速传输路径和低速传输路径。
[0062]
作为一种可选的实施例,在虚拟机接收到迁移命令后,控制虚拟机中的应用切换至第二传输路径与加速器进行通信的过程,包括:
[0063]
在虚拟机接收到迁移命令后,关闭第一传输路径,并将第一传输路径标记为不可用;
[0064]
在虚拟机中的应用在使用连接加速器的接口进行通信时,若检测到第一传输路径不可用,则自动切换至第二传输路径完成虚拟机中的应用与加速器的通信。
[0065]
具体地,本申请在虚拟机接收到虚拟机管理软件下发的迁移命令后,先关闭高速
传输路径,并将高速传输路径标记为不可用。在虚拟机中的应用在使用连接加速器的接口进行通信时,软件栈检测到高速传输路径不可用,则自动切换至低速传输路径完成虚拟机中的应用与加速器的通信,从而使虚拟机在迁移过程中,虚拟机中的应用使用低速传输路径与加速器进行通信。
[0066]
作为一种可选的实施例,虚拟机与加速器间的数据传输方法还包括:
[0067]
待虚拟机迁移完成后,在虚拟机中的应用与加速器之间重新建立第一传输路径,并将第一传输路径标记为可用;
[0068]
在虚拟机中的应用在使用连接加速器的接口进行通信时,若检测到第一传输路径可用,则优先使用第一传输路径完成虚拟机中的应用与加速器的通信。
[0069]
进一步地,本申请在虚拟机迁移完成后,虚拟机管理软件会下发高速传输路径重建命令。本申请在接收到虚拟机管理软件下发的高速传输路径重建命令后,在虚拟机中的应用与加速器之间重新建立高速传输路径,并将高速传输路径标记为可用。在虚拟机中的应用在使用连接加速器的接口进行通信时,软件栈检测到高速传输路径可用,则优先使用高速传输路径完成虚拟机中的应用与加速器的通信,从而使虚拟机在迁移完成后,虚拟机中的应用恢复使用高速传输路径与加速器进行通信。
[0070]
作为一种可选的实施例,第一传输协议具体为rdma协议;第二传输协议具体为tcp协议。
[0071]
具体地,本申请的高速传输协议可选用rdma协议,低速传输协议可选用tcp(transmission control protocol,传输控制协议),本申请在此不做特别的限定。
[0072]
作为一种可选的实施例,虚拟机与加速器间的数据传输方法还包括:
[0073]
预先在服务器上设置用于指示服务器上运行的虚拟机中的应用所采用的具体传输路径的指示装置;
[0074]
根据虚拟机中的应用在运行时所使用的具体传输路径,控制指示装置进行相应指示操作。
[0075]
进一步地,本申请还可提前在服务器上设置一个指示装置,用于指示服务器上运行的虚拟机中的应用所采用的具体传输路径。基于此,本申请可根据虚拟机中的应用在运行时所使用的具体传输路径,控制指示装置进行相应指示操作,从而使用户可得知服务器上运行的虚拟机中的应用当前所采用的具体传输路径。
[0076]
请参照图3,图3为本发明实施例提供的一种虚拟机与加速器间的数据传输系统的结构示意图。
[0077]
该虚拟机与加速器间的数据传输系统包括:
[0078]
链路建立模块1,用于在虚拟机中的应用与待通信的加速器之间建立支持第一传输协议的第一传输路径和支持第二传输协议的第二传输路径;其中,第一传输协议为借助物理网卡硬件实现的高速传输协议;第二传输协议为借助由软件模拟出的网卡设备实现的低速传输协议;
[0079]
高速传输模块2,用于在虚拟机中的应用进入运行时,控制虚拟机中的应用优先使用第一传输路径与加速器进行通信;
[0080]
低速传输模块3,用于在虚拟机接收到迁移命令后,控制虚拟机中的应用切换至第二传输路径与加速器进行通信。
[0081]
作为一种可选的实施例,链路建立模块1具体用于:
[0082]
预先在虚拟机上设置用于支持加速器资源池化及支持虚拟机中的应用与待通信的加速器之间基于同一个物理网络链路实现不同传输协议连接的软件栈;其中,不同传输协议包括第一传输协议和第二传输协议;
[0083]
在虚拟机中的应用初始化阶段,调用软件栈提供的连接加速器的接口,以使软件栈建立虚拟机中的应用与加速器之间通讯所需的第一传输路径和第二传输路径。
[0084]
作为一种可选的实施例,低速传输模块3具体用于:
[0085]
在虚拟机接收到迁移命令后,关闭第一传输路径,并将第一传输路径标记为不可用;
[0086]
在虚拟机中的应用在使用连接加速器的接口进行通信时,若检测到第一传输路径不可用,则自动切换至第二传输路径完成虚拟机中的应用与加速器的通信。
[0087]
本申请提供的数据传输系统的介绍请参考上述数据传输方法的实施例,本申请在此不再赘述。
[0088]
本申请还提供了一种虚拟机与加速器间的数据传输装置,包括:
[0089]
存储器,用于存储计算机程序;
[0090]
处理器,用于在执行计算机程序时实现上述任一种虚拟机与加速器间的数据传输方法的步骤。
[0091]
本申请提供的数据传输装置的介绍请参考上述数据传输方法的实施例,本申请在此不再赘述。
[0092]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0093]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1