CN113691465B - 一种数据的传输方法、智能网卡、计算设备及存储介质 - Google Patents

一种数据的传输方法、智能网卡、计算设备及存储介质 Download PDF

Info

Publication number
CN113691465B
CN113691465B CN202010426296.9A CN202010426296A CN113691465B CN 113691465 B CN113691465 B CN 113691465B CN 202010426296 A CN202010426296 A CN 202010426296A CN 113691465 B CN113691465 B CN 113691465B
Authority
CN
China
Prior art keywords
virtual
data
equipment
transmission
transmitted
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
CN202010426296.9A
Other languages
English (en)
Other versions
CN113691465A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010426296.9A priority Critical patent/CN113691465B/zh
Publication of CN113691465A publication Critical patent/CN113691465A/zh
Application granted granted Critical
Publication of CN113691465B publication Critical patent/CN113691465B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details

Abstract

本申请实施例提供数据的传输方法、智能网卡、计算设备及存储介质,在本申请实施例中,通过计算设备中具有处理单元的传输设备以及运行在处理单元上的虚拟转发设备,实现计算设备中的虚拟设备与外部设备之间的数据传输;由于虚拟转发设备可依赖于传输设备实现数据发送,即虚拟转发设备通过占用传输设备的独立的处理单元的资源来实现转发,从而节省出来计算设备的计算资源,使得计算设备节省出来的计算资源可提供给更多用户,可用于提高用户的服务体验度,以及为更多的新用户提供更多计算资源。同时,还可以降低计算资源成本。

Description

一种数据的传输方法、智能网卡、计算设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据的传输方法、智能网卡、计算设备及存储介质。
背景技术
随着互联网的发展,传统的IT(Internet Technology)信息技术架构解也向更加灵活快速响应的云架构进行迁移转换,进入到了云计算时代。
云计算,也可以称为“云”,其提供的服务是一项基于互联网、面向企业提供的、基于云存储技术的文件存储、访问、备份、共享、管理、协作服务。随着云计算的持续演进,基于云存储的服务已经成为企业实践的主流选择。企业和个人可以通过互联网方便快捷地从云计算提供的服务上获取所需的IT资源,既降低成本,又满足灵活部署、高效率的服务需求。为了向更多用户提供IT资源,提高用户的服务体验,自然需要提高云计算的性能。
发明内容
本申请的多个方面提供一种数据的传输方法、智能网卡、计算设备及存储介质,用以向用户提供更多的计算资源,提高服务体验。
本申请实施例提供一种数据的传输方法,适用于计算设备,所述计算设备包括传输设备以及至少一个虚拟设备,所述传输设备具有处理单元;所述方法包括:确定任一所述虚拟设备与外部设备之间是否具有待传输数据;当确定具有所述待传输数据的情况下,通过运行在所述处理单元上的虚拟转发设备,使得所述待传输数据在所述虚拟设备与所述外部设备之间传输。
本申请实施例还提供一种数据的传输方法,适用于具有处理单元的传输设备,所述传输设备设置在计算设备中;所述方法包括:接收外部设备发送的待传输数据;根据所述待传输数据确定对应的虚拟设备;将所述待传输数据分配至对应的虚拟设备,所述虚拟设备设置在所述计算设备中。
本申请实施例还提供一种智能网卡,所述智能网卡设置在计算设备上,所述计算设备包括至少一个虚拟设备;所述智能网卡包括:处理器以及运行在所述处理器上的虚拟转发设备;当任一所述虚拟设备与外部设备之间进行传输数据,所述智能网卡通过所述虚拟转发设备,使得在所述虚拟设备与所述外部设备之间传输数据。
本申请实施例还提供一种计算设备,包括上述的智能网卡。
本申请实施例还提供一种计算设备,包括传输设备以及至少一个虚拟设备,所述传输设备具有处理单元,可独立实现网络数据传输;所述计算设备还包括:所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:当确定任一所述虚拟设备与外部设备之间具有待传输数据的情况下,通过运行在所述处理单元上的虚拟转发设备,使得所述待传输数据在所述虚拟设备与所述外部设备之间传输。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
在本申请实施例中,通过计算设备中具有处理单元的传输设备以及运行在处理单元上的虚拟转发设备,实现计算设备中的虚拟设备与外部设备之间的数据传输;由于虚拟转发设备可依赖于传输设备实现数据发送,即虚拟转发设备通过占用传输设备的独立的处理单元的资源来实现转发,从而节省出来计算设备的计算资源,使得计算设备节省出来的计算资源可提供给更多用户,可用于提高用户的服务体验度,以及为更多的新用户提供更多计算资源。同时,还可以降低计算资源成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1A为本申请一示例性实施例的数据的传输系统的结构示意图;
图1B为本申请一示例性实施例的数据的传输系统的结构示意图;
图2为本申请一示例性实施例的数据的传输方法的流程示意图;
图3为本申请又一示例性实施的数据的传输方法的示意图;
图4为本申请一示例性实施例的数据的传输方法的流程示意图;
图5为本申请又一示例性实施例提供的数据的传输装置的结构示意图;
图6为本申请又一示例性实施例提供的数据的传输装置的结构示意图;
图7为本申请一示例性实施例提供的计算设备的结构示意图;
图8为本申请一示例性实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
虚拟化作为云计算基础架构的关键一环,可有效地降低物理服务器数量。虚拟化通过对物理基础架构和应用程序的高效整合,节省了数据中心所占用的空间及运营开销。通过虚拟化技术,能够在一个物理服务器上生成多个虚拟机,并且能在这些虚拟机之间能实现全面的隔离。用户通过这些虚拟机获取云计算上的资源。
而,虚拟机需要通过虚拟交换机(VS,Virtual Switch)与外界进行数据交互时,但虚拟交换机的运行需要独占物理服务器的中央处理器CPU(central processing unit,中央处理器),以及使用其部分内存存取转发状态和相关配置。这就导致了可提供的CPU资源和内存资源变少,造成了一定程度上的资源浪费。
在本申请实施例中,通过计算设备中具有处理单元的传输设备以及运行在具有处理单元的传输设备上的虚拟转发设备,实现计算设备中的虚拟设备与外部设备之间的数据传输;由于虚拟转发设备可依赖于传输设备实现数据发送,即虚拟转发设备通过占用传输设备的独立的处理单元的资源来实现转发,从而节省出来计算设备的计算资源,使得计算设备节省出来的计算资源可提供给更多用户,可用于提高用户的服务体验度,以及为更多的新用户提供更多计算资源。同时,还可以降低计算资源成本。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1A为本申请一示例性实施例提供的一种数据的传输系统的结构示意图。如图1A所示,该传输系统100A可以包括:第一设备101以及第二设备102。
其中,第一设备101可以是有一定计算能力的设备,可以实现向第二设备102发送传输数据的功能,该传输数据对于第二设备102而言,可以属于待传输数据。该传输数据可以需要第二设备102进行一些数据处理。第一设备101的基本结构可以包括:至少一个处理器。处理器的数量可以取决于具有一定计算能力装置的配置和类型。具有一定计算能力装置也可以包括存储器,该存储器可以为易失性的,例如RAM,也可以为非易失性的,例如只读存储器(Read-Only Memory,ROM)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(Operating System,OS)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,具有一定计算能力装置还包括一些基本配置,例如网卡芯片、IO总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、输入笔等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,第一设备101可以为智能终端,例如,手机、台式电脑、笔记本、平板电脑等。
第二设备102是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据传输以及数据处理的设备。在物理实现上,第二设备102可以是任何能够提供计算服务,响应服务请求,并进行数据处理的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第二设备102的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
在本申请实施例中,第一设备101,发送需要进行处理的传输数据至第二设备102;第二设备102,通过传输设备接收到该传输数据(对于第二设备102而言,该传输数据也是待传输数据),并通过运行在该传输设备中处理单元,如独立的处理器,上的虚拟转发设备,将该传输数据发送至第二设备102中对应的虚拟设备。
虚拟设备接收到该传输数据后,可以对该传输数据进行数据处理,并将处理后的数据再发送至虚拟转发设备,并通过传输设备将该处理后的数据返回至第一设备101。
此外,基于该系统100A,本申请一示例性实施例还提供的一种数据的传输系统的结构示意图。如图1B所示,该传输系统100B可以包括:第一设备101、第二设备102以及第三设备103。
由于前文已经详细阐述过了第一设备101和第二设备102,此处就在赘述。
其中,第三设备103与第二设备102相似。第三设备103也可以是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据传输以及数据处理的设备。在物理实现上,第三设备103可以是任何能够提供计算服务,响应服务请求,并进行数据处理的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第三设备103的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
基于系统100A中所述,第二设备102中的虚拟设备接收到该传输数据后,可以在处理数据的过程,通过运行在处理单元,如独立的处理器,上的虚拟转发设备以及传输设备,向第三设备103发送传输数据(对于第三设备103而言,该传输数据也可以是待传输数据)。第三设备103中的传输设备接收到该传输数据,并由其运行在处理单元,如独立的处理器,上的虚拟转发设备将该传输数据发送至对应的虚拟设备,其虚拟设备对该传输数据进行数据处理,并将处理后的数据原路返回至第二设备102的对应虚拟设备,以供第二设备102的对应虚拟设备基于该接收到的处理后的数据,进行数据处理,并返回至第一设备101中。
此外,对于第三设备103而言,第三设备103也可以没有虚拟设备以及虚拟转发设备,则可以在第三设备103的传输设备接收到该传输数据后,直接由第三设备103自身对接收到的传输数据进行数据处理,并将数据处理结果原路返回至第二设备102。
需要说明的是,上述各个系统中的涉及到的设备的个数均可以为多个。如,多个不同的第一设备101访问一个或多个不同的第二设备102等。
在本申请实施例的应用场景中,用户通过第一设备101,如电脑,向第二设备102,如云服务器,存储视频文件。用户通过第一设备101安装的浏览器访问第二设备102提供存储服务的web网络界面。第一设备101,响应于用户存储视频文件的操作,获取该视频文件作为传输数据,并将该视频文件发至第二设备102的传输设备,如网卡。该传输设备接收到该视频文件后,将该视频文件发送至在其CPU处理器上运行的虚拟转发设备,如虚拟交换机,通过该虚拟转发设备将该视频文件发送至第二设备102中的虚拟设备,如虚拟机,进行文件存储。该虚拟设备存储完该视频文件后,可以通过虚拟转发设备以及传输设备,将视频存储成功的信息至第一设备101,使得第一设备101接收到该信息后,通过web界面展示给用户。
此外,用户还可以通过第一设备101从第二设备102上获取文件。第一设备101向第二设备102发送获取请求,第二设备102通过传输设备以及其CPU处理器上运行的虚拟转发设备,将该获取请求发送至对应的虚拟设备,虚拟设备基于该获取请求可以从第三设备103处获取到该获取请求对应的文件。该获取文件的过程,与第一设备101发送数据至第二设备的过程相似,此处就不再赘述。第二设备102对应的虚拟设备接收到文件后,将该文件返回至第一设备101。
需要说明的是,上述系统还可以应用在其它场景中,例如,网站搭建等,云服务销售等,此处就不再一一赘述。
在上述本实施例中,第一设备101、第二设备102以及第三设备103进行网络连接,该网络连接可以是无线连接。若第一设备101、第二设备102以及第三设备103是通信连接,该移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax、5G等中的任意一种。
下面结合方法实施例,针对数据的传输过程进行详细说明。
图2为本申请一示例性实施例的数据的传输方法的流程示意图。本申请实施例提供的该方法200由计算设备执行,即上述第二设备102执行,如,云服务器。该计算设备包括传输设备以及至少一个虚拟设备,该传输设备具有处理单元,如独立的CPU处理器。该方法200包括以下步骤:
201:确定任一虚拟设备与外部设备之间是否具有待传输数据。
202:当确定具有待传输数据的情况下,通过运行在处理单元上的虚拟转发设备,使得待传输数据在虚拟设备与外部设备之间传输。
以下针对上述步骤进行详细阐述:
201:确定任一虚拟设备与外部设备之间是否具有待传输数据。
其中,虚拟设备是指依赖于计算设备(如,物理服务器,云服务器等),创建出独立运行环境的设备。如虚拟机。可以通过虚拟技术在计算设备上创建。在计算设备支持的情况下,该虚拟设备还可以为容器docker,如计算设备满足可提供多个传输设备。
外部设备是指计算设备以外的设备,并且与计算设备中虚拟设备进行网络通信。如,用户的电脑。
其中,确定方式可以包括:
1)、接收外部设备发送的待传输数据;确定待传输数据是否是发送至任一虚拟设备,当确定是发送至任一虚拟设备,则确定任一虚拟设备与外部设备之间具有待传输数据。
例如,根据前文所述,用户的电脑通过网络向云服务器发送视频文件进行存储,云服务器会通过其传输设备,如智能网卡,接收到该视频文件。当接收到该视频文件后,根据该视频文件,通过传输设备确定是发送至云服务器中的一个虚拟机时,则确定云服务器中的虚拟机与用户的电脑之间存在待传输数据,如视频文件。
需要说明的是,由于传输设备是具有独立的处理单元的,其不依赖与计算设备,所以,通过传输设备确定存在待传输数据,不会占用云服务器的计算资源,如CPU资源,即不会占用云服务器中虚拟设备的计算资源,所以使得虚拟设备的计算资源得到了有效的提高。
2)、确定虚拟设备是否要发送数据至外部设备,当确定要发送数据至外部设备,则确定任一虚拟设备与外部设备之间具有待传输数据。
例如,根据前文所述,云服务器中的虚拟设备,如虚拟机,在存储完视频文件后,可以向用户的电脑发送存储成功的信息时,则可以确定该虚拟机和用户电脑之间存在待传输数据,即存储成功的信息。在虚拟机想要发送该信息时,可以先向传输设备发送请求,用于请求发送该信息。则可以确定虚拟机此时想要发送信息。
202:当确定具有待传输数据的情况下,通过运行在处理单元上的虚拟转发设备,使得待传输数据在虚拟设备与外部设备之间传输。
其中,传输设备是指具有独立的处理单元的硬件设备,如具有独立CPU的硬件设备,还可以具有独立的内核、内存以及DMA(Direct Memory Access,直接存储器存取)控制器等,可以被视为一个小型的独立智能终端。可用于将虚拟设备想要发送的数据发送至外部设备。
当计算设备设置有用于向外发送数据以及接收数据的物理网卡时,该传输设备可以负责从该物理网卡上接收向计算设备的虚拟设备发送的数据,此时,该传输设备在接收到数据后,将其发送至对应的虚拟设备,但是不会占用计算设备的计算资源。
当该传输设备可以用于执行该计算设备的网络传输功能,该传输设备可以为智能网卡。该智能网卡可以是一个带有CPU的片上SoC(System-on-a-Chip,芯片系统)。该智能网卡既可以负责接收发送给计算设备的数据,即将接收到提供给计算设备,也可以负责间接收发送给计算设备中虚拟设备的数据。
应理解,实现本传输设备功能的设备均属于本实施例的保护范畴。
虚拟转发设备是指虚拟网络传输设备,用于将物理传输设备(即上述传输设备)上接收到的对应数据转发至计算设备中的虚拟设备。如,虚拟交换机、虚拟路由器、虚拟网关、虚拟网桥、以及虚拟中继器等等。应理解,具有上述转发功能的设备,均在本申请实施例的保护范畴内。该虚拟转发设备运行在传输设备的CPU处理器上,依赖于传输设备的硬件资源创建,可以通过虚拟技术在该传输设备上创建,将其运行在CPU处理器上,由于虚拟技术属于现有技术,此处就不再赘述。为了能够清楚地说明本申请实施例,以下仅以虚拟交互机为例进行说明,但应理解,对于其它具有转发功能的虚拟转发设备而言,也是同样适用的(例如,将虚拟交换机更换为虚拟路由器、虚拟网关等等,都可以执行本申请实施例的执行逻辑和功能),且转发过程是相似的,就不再赘述。
下面以传输设备接收到外部设备发送的数据为例进行说明:
例如,根据前文所述,在传输设备不属于智能网卡时,计算设备则配有物理网卡。云服务器的物理网卡接收到用户电脑发送的视频文件,并确定该视频文件要发送至计算设备中的虚拟机中。则物理网卡将该视频文件发送至传输设备,或者直接发送至传输设备上的虚拟交换机。此时则确定是有待传输数据。在传输设备接收到该视频文件后,也会将视频文件发给虚拟交换机。虚拟交换机将视频文件发送至对应的虚拟机。
需要说明的是,虚拟机在向外部设备发送数据的过程与上述例子相似,此处就不再赘述。且后续举例过程中虚拟机发送数据与传输设备发送数据的过程是相似的,就全部列出,仅其中一个为例进行说明。
由于转发数据的过程都在传输设备上进行,消耗传输设备的CPU计算资源,不再额外占用计算设备的CPU计算资源,从而为腾出了计算设备的更多的计算资源。
此外,在传输设备不是智能网卡时,仅属于小型智能网络设备,从物理网卡处接收数据,并发送至虚拟设备,容易造成为了过多设备的浪费,增加经济成本。为了解决这个问题,可以将此时的传输设备与物理网卡进行结合,将传输设备设置为智能网卡,以解决上述问题。
基于此,该方法200还可以包括:当确定具有待传输数据的情况下,通过运行在处理单元上的虚拟转发设备以及传输设备,将待传输数据在虚拟设备与外部设备之间进行传输。
例如,根据前文所述,在该传输设备为智能网卡时,用户电脑向该智能网卡发送视频文件,并由智能网卡确定该视频文件是发向虚拟机的数据,则将该视频文件发送至其上虚拟交换机,虚拟交换机将该视频文件发送至虚拟机。
其中,通过运行在处理单元上的虚拟转发设备,将待传输数据在虚拟设备与外部设备之间进行传输,包括:通过运行在处理单元上的虚拟转发设备以及传输设备,将所述待传输数据在虚拟设备与外部设备之间进行传输。
例如,根据前文所述,在该传输设备为智能网卡时,用户电脑向该智能网卡发送视频文件,并由智能网卡确定该视频文件是发向虚拟机的数据,则将该视频文件发送至其上虚拟交换机,虚拟交换机将该视频文件发送至虚拟机。
应理解,在传输设备为小型智能设备中的智能网卡时,依旧也可以实现上述步骤202,对于步骤202的说明,此处就不再赘述。
需要说明的是,由于计算设备被腾出来更多的计算资源,基于该被腾出的计算资源可以更好地为用户提供服务,提升用户的服务体验。同时,还可以将这些计算资源售卖给更多新用户,提升经济效益。当然虚拟转发设备,如虚拟交换机VS运行在智能网卡或者智能设备(即传输设备)上,同样会消耗传输设备的CPU和内存,但是通常情况下传输设备的CPU都是较为低端的,成本远小计算设备,如云服务器上的CPU,则不会消耗过大的经济成本。
另,为了解决计算设备中CPU共享内存,导致内存性能问题,服务器即计算设备采用了NUMA(Non Uniform Memory Access Architecture,非统一内存访问架构)系统构架,使得计算设备至少都是两路的,即具有两个或两个以上的socket node(CPU插槽节点)。且在虚拟交换机运行在计算设备上时,而不是在传输设备上是。由于同一个节点内的CPU访问的性能消耗小于不同节点之间的CPU访问的性能消耗。VS转发数据所使用的CPU和虚拟设备(如虚拟机)所使用的的VCPU(虚拟CPU)在不同的节点node上,在进行访问时就会导致严重计算设备CPU性能损耗,进而导致性能下降。而将VS设置在传输设备上,则可以很好的解决这个问题,降低计算设备的性能损耗。
这种形态可以支持将整个计算设备的资源售卖给用户,而不会有资源碎片的问题。同时也衍生了通常所说的裸金属(BareMetal)服务器。
此外,该方法200还包括:通过传输设备接收外部设备发送的待传输数据;其中,通过运行在处理单元上的虚拟转发设备以及传输设备,将待传输数据在虚拟设备与外部设备之间进行传输,包括:通过传输设备将待传输数据发送至虚拟转发设备;根据待传输数据携带的虚拟传输标识,通过虚拟转发设备确定对应的虚拟设备,并将待传输数据发送至对应的虚拟设备。
其中,确定虚拟设备的方式可以包括:根据虚拟传输标识,通过虚拟转发设备确定对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;根据虚拟传输设备与虚拟设备的对应关系,确定对应的虚拟设备。
其中,虚拟传输设备是指用于在虚拟设备与虚拟转发设备之间进行数据传输的虚拟设备,如虚拟网卡。虚拟传输设备与虚拟设备存在一一对应的关系,如虚拟网卡与虚拟机之间存在一一对应的关系。这种对应关系是在计算设备中创建虚拟设备时生成的,在生成虚拟设备后,给每个虚拟设备指定一个虚拟转发设备标识(如虚拟网卡ID)。此时虚拟转发设备还没有建立出来。
虚拟传输设备的创建方式可以为:根据传输设备的设备硬件资源以及对应关系,创建虚拟设备对应的虚拟传输设备。
例如,根据前文所述,虚拟网卡是通过智能网卡(在该传输设备是智能网卡的前提下,此处以智能网卡为例进行说明)建立的。智能网卡确定对应关系中存在的虚拟网卡数量,如10个,在根据自身的硬件资源,如CPU资源以及内存资源等,可以进行10份等量划分,将每份硬件资源的智能网卡作为虚拟网卡使用。或者在每份硬件资源上创建虚拟网卡。
需要说明的是,即使上述传输设备不属于智能网卡即不是智能网卡,也可以在其上的硬件资源创建多个虚拟网卡,从而实现传输。
虚拟传输标识是指标识出虚拟设备的信息,如虚拟网卡ID。
例如,根据前文所述,用户电脑向智能网卡发送视频文件,并由智能网卡确定该视频文件是发向虚拟机的数据,则将该视频文件发送至其上虚拟交换机,虚拟交换机根据该视频文件携带的的虚拟网卡ID,确定虚拟网卡,由于虚拟网卡与虚拟机存在一对一关系,既可以确定对应的虚拟机。则虚拟交换机将视频文件发送至确定的虚拟机。
更具体地,将待传输数据发送至对应的虚拟设备的方式,可以包括:通过确定的虚拟传输设备以及运行在传输设备上的虚拟IO设备,向对应虚拟设备发送所述待传输数据。
其中,虚拟IO(Input,Output输入输出)设备是指可以实现IO操作的虚拟设备,如virtIO(虚拟IO)设备。该虚拟IO设备是通过程序直接建立在硬件设备上的,即传输设备上的,从而使得该虚拟IO设备可以视为一个硬件虚拟IO设备。
例如,如图3所示,根据前文所述,用户电脑向智能网卡发送视频文件,并由智能网卡确定该视频文件是发向虚拟机的数据,则将该视频文件发送至其上虚拟交换机,虚拟交换机根据该视频文件携带的的虚拟网卡ID,确定虚拟网卡,由于虚拟网卡与虚拟机存在一对一关系,既可以确定对应的虚拟机。则虚拟交换机通过确定的虚拟网卡将视频文件通过virtIO设备,以中断传送的方式发送至确定的虚拟机。
为了提高传输设备内的性能利用,减少性能损耗。通过确定的虚拟传输设备以及运行在传输设备上的虚拟IO设备,向对应虚拟设备发送待传输数据,还可以包括:通过虚拟IO设备,确定对应虚拟设备中用于存储待传输数据的缓存区域;通过虚拟IO设备,将待传输数据存储至缓存区域中;通过传输设备的DMA控制器,将待传输数据从缓存区域中复制到虚拟设备中。
其中,DMA(Direct Memory Access,直接存储器存取)控制器是指内部转移数据的控制设备。该DMA控制器是设置在传输设备中的。一个处理器CPU可以包含多个DMA控制器。DMA控制器将包括一条地址总线、一条数据总线和控制寄存器。DMA控制器具有访问其所需要的资源的能力,而无须处理器CPU本身的介入,它能产生中断。
例如,如图3所示,根据前文所述,在虚拟交换机确定对应的虚拟机后,则虚拟交换机通过确定的虚拟网卡将视频文件通过virtIO设备发送,其中virtIO向虚拟机获取其缓冲存储地址,该地址指向一个缓冲区域,并写入至virtIO设备创建的虚拟队列中,用于存储该视频文件。当虚拟交换机要发送视频文件时,通过确定的虚拟网卡将视频文件通过virtIO设备存储至该缓冲区域,在通过智能网卡上的DMA控制器,将缓冲区域中的视频文件存储至虚拟机中存储地址内。
由于本申请实施例通过硬件DMA控制器的方式,将待传输数据发送至虚拟设备,而不再经由CPU进行数据传输的处理,能够有效的节省了传输设备的CPU,同时也不会占用计算设备的CPU资源,也大大降低了虚拟设备在不同节点上所带来的性能差异。这样可以更好的支持大带宽场景,虽然智能网卡上的CPU能力较弱,但带宽性能却完全不输新一代CPU,甚至性能更好。如果开启了巨型帧jumbo frame,传输设备中的单CPU就可以打满25g网卡带宽。
应理解,也可以通过计算设备中的DMA控制器来将数据从缓存区域中复制到虚拟设备中。
此外,virtIO设备运行在硬件智能网卡上,或者硬件传输设备上,对于用户的使用其实是无感知的,因为用户还是可以通过web界面看到的或者查询到云服务器或者虚拟机还是使用的是该virtIO设备接口,但是对于这个virtIO设备设置在哪,用户其实是不知道的,是无感知的。而且在传输设备上设置virtIO设备来实现IO传输,由于该virtIO设备的普适性极好,也可以使得物理服务器也具有普适性,无需用户再去购买其它设置来实现IO传输。
在不限定virtIO设备的前提下,也可以通过其它设备,实现虚拟IO设备的功能。或者直接通过传输设备实现虚拟IO设备的功能。且控制器也可以是除了DMA控制器以外的其它控制器,且一样可以起到DMA控制器的作用,该控制器的硬件属于传输设备。
具体的,将待传输数据发送至对应的虚拟设备,包括:通过传输设备,确定对应虚拟设备中用于存储待传输数据的缓存区域;通过传输设备,将待传输数据存储至缓存区域中;通过传输设备的控制器,将待传输数据从缓存区域复制到虚拟设备中。
例如,根据前文所述,在虚拟交换机确定对应的虚拟机后,则虚拟交换机通过虚拟网卡向虚拟机获取其缓冲存储地址,该地址指向一个缓冲区域,并创建的队列中,用于存储该视频文件。当虚拟交换机要发送视频文件时,通过虚拟网卡将视频文件存储至该缓冲区域,在通过智能网卡上的控制器,将缓冲区域中的视频文件存储至虚拟机中存储地址内。
由于外部设备在向计算设备发送数据时,也可以是向计算设备的一些程序发送的数据,即不是向虚拟设备发送的数据,此时计算设备的物理网卡在接收到数据应当先确定其是否是发送给虚拟设备的。
具体的,该方法200还包括:通过传输设备确定待传输数据是否是发送至虚拟设备;当确定是发送至虚拟设备,执行通过传输设备将待传输数据发送至虚拟转发设备的步骤。
下面以传输设备为智能网卡为例进行说明:
例如,如图3所示,根据前文所述,用户电脑通过网络向计算设备发送视频文件,并由其智能网卡接收到该视频文件后,智能网卡通过该视频文件携带的信息确定是否发送至虚拟机,例如当视频文件携带有虚拟网卡ID,则确定该视频文件是要发送至虚拟机的,则通过VF(Virtual Function)虚拟功能将视频文件发送至虚拟交换机,从而使得虚拟交换机将视频文件发送至虚拟机。发送过程前文已经详细阐述过了,此处就再赘述。当视频文件没有携带虚拟网卡ID,或者携带了其它标识,该标识指向了计算设备的其它非虚拟机程序,则确定该视频文件是要发送给计算设备的,即不是发送给虚拟机的。此时,智能网卡通过PF物理功能(Physical Function)将视频文件发送至智能网卡的内核(Kernel)。通过该内核对该视频文件进行处理,并通知计算设备的程序来获取该视频文件。
应理解的是,由于智能网卡通过其内核来通知计算设备的程序来读取传输数据,来替代计算设备内核的工作,也可以减轻由计算设备内核处理该传输数据的过程,节省计算设备的计算资源。
以下针对虚拟设备向外部设备发送数据的情况进行说明,应理解的是,该情况与接收数据是相似的,所以不会再过多的赘述,仅进行简单示意:
通过运行在处理单元上的虚拟转发设备以及传输设备,将待传输数据在虚拟设备与外部设备之间进行传输,包括:针对发送待传输数据的任一虚拟设备,通过该虚拟设备将待传输数据发送至虚拟转发设备;通过虚拟转发设备将待传输数据发送至传输设备;通过传输设备,将待传输数据发送至外部设备。
例如,如图3所示,根据前文所述,在虚拟机接收到视频文件后,进行存储,存储成功后,发送成功信息给用户电脑。此时,虚拟机通过virtIO设备发送,在通过智能网卡上的DMA控制器,将该信息发送至虚拟网卡,虚拟网卡在通过虚拟交换机发送至智能网卡,智能网卡返回至用户电脑。
具体的,通过该虚拟设备将待传输数据发送至虚拟转发设备,包括:根据虚拟设备与虚拟传输设备的对应关系,确定该虚拟设备对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;通过该虚拟设备以及运行在传输设备上的虚拟IO设备,向确定的虚拟传输设备发送待传输数据;通过虚拟传输设备向虚拟转发设备发送。
由于前文已经详细阐述过相似过程,此处就再赘述。
需要说明的是,由于本申请实施例中虚拟转发设备设置在传输设备上,例如,虚拟交换机设置在智能网卡上,那么虚拟交换机只需要与智能网卡的适配即可,不用在考虑虚拟交换机与物理服务器,即云服务器进行硬件适配的问题。因为,虚拟交换机与物理服务器进行适配的时候,由于物理服务器具有多个硬件,物理服务器每换一个类型的物理网卡,VS都需要适配,如果物理服务器开启了NUMA系统构架,VS也要适配,物理服务器由x86构架变为了ARM构架,VS还是需要适配。但是VS运行在智能网卡上却可以减少这种配置适配的工作。对于物理服务器是否开启NUMA系统构架,物理服务器是使用ARM构架还是x86构架,VS都是不感知的,且不用在意的。
基于上述相同的发明构思,图4示出了本申请另一示例性实施例提供的又一种数据的传输方法的流程示意图。本申请实施例提供的该方法400由计算设备中具有处理单元(如,单独的处理器)的传输设备执行,如,智能网卡,该方法400包括以下步骤:
401:接收外部设备发送的待传输数据。
402:根据待传输数据确定对应的虚拟设备。
403:将待传输数据分配至对应的虚拟设备,虚拟设备设置在计算设备中。
由于前文已经详细阐述过步骤401-403的具体实施方式,此处就不再赘述。
其中,根据待传输数据确定对应的虚拟设备,包括:根据待传输数据携带的虚拟传输标识,通过运行在处理单元上的虚拟转发设备确定对应的虚拟设备。
其中,根据待传输数据携带的虚拟传输标识,通过运行在处理单元上的虚拟转发设备确定对应的虚拟设备,包括:根据虚拟传输标识,通过虚拟转发设备确定对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;根据虚拟传输设备与虚拟设备的对应关系,确定对应的虚拟设备。
其中,将待传输数据分配至对应的虚拟设备,包括:通过确定的虚拟传输设备以及运行在传输设备上的虚拟IO设备,向对应虚拟设备发送所述待传输数据。
其中,虚拟设备是指依赖于所述计算设备,创建出独立运行环境的设备。
由于前文已经详细阐述过程上述步骤的具体实施方式,此处就不再赘述。另,本方法400未能详细描述的内容,还可以参照上述方法200中的各个步骤。
基于上述相同的发明构思,本申请另一示例性实施例提供一种智能网卡,智能网卡设置在计算设备上,计算设备包括至少一个虚拟设备;智能网卡包括:处理器以及运行在处理器上的虚拟转发设备。
当任一虚拟设备与外部设备之间进行传输数据,智能网卡通过虚拟转发设备,使得在虚拟设备与外部设备之间传输数据。
其中,智能网卡接收外部设备发送的待传输数据,并将待传输数据发送至虚拟转发设备;根据待传输数据携带的虚拟传输标识,虚拟转发设备确定对应的虚拟设备,并将待传输数据发送至对应的虚拟设备。
其中,智能网卡还包括:虚拟传输设备;虚拟转发设备根据虚拟传输标识,确定对应的虚拟传输设备;根据虚拟传输设备与虚拟设备的对应关系,确定对应的虚拟设备。
其中,智能网卡还包括:虚拟IO设备;确定的虚拟传输设备根据虚拟IO设备,向对应虚拟设备发送待传输数据。
其中,智能网卡还包括:虚拟传输设备;根据智能网卡的硬件资源以及虚拟传输设备与虚拟设备的对应关系,创建虚拟设备对应的虚拟传输设备。
其中,虚拟设备是指依赖于计算设备,创建出独立运行环境的设备。
由于前文已经详细阐述过本智能网卡的具体实施方式,此处就不再赘述。另,本智能网卡未能详细描述的内容,还可以参照上述方法200中的各个步骤。
应理解,本智能网卡也具有处理器和存储器,存储器用于存储计算机程序。处理器,用于执行上述计算程序。
基于上述相同的发明构思,本申请另一示例性实施例提供一种计算设备,如,云服务器。该计算设备包括上述智能网卡。
图5为本申请一示例性实施例提供的数据的传输装置的结构框架示意图。该装置500可以应用于计算设备中,例如,云服务器,该计算设备包括传输设备以及至少一个虚拟设备,传输设备具有处理单元;该装置500包括确定模块501以及传输模块502;以下针对各个模块的功能进行详细的阐述:
确定模块501:用于确定任一虚拟设备与外部设备之间是否具有待传输数据。
传输模块502:用于当确定具有待传输数据的情况下,通过运行在处理单元上的虚拟转发设备,使得待传输数据在虚拟设备与外部设备之间传输。
其中,传输模块502,还用于当确定具有待传输数据的情况下,通过运行在处理单元上的虚拟转发设备以及传输设备,将待传输数据在虚拟设备与外部设备之间进行传输。
传输模块502,具体用于通过运行在处理单元上的虚拟转发设备以及传输设备,将待传输数据在虚拟设备与外部设备之间进行传输。
此外,该装置500还包括:接收模块,用于接收外部设备发送的待传输数据;确定模块,还用于确定待传输数据是否是发送至任一虚拟设备,当确定是发送至任一虚拟设备,则确定任一虚拟设备与外部设备之间具有待传输数据。
确定模块,还用于确定虚拟设备是否要发送数据至外部设备,当确定要发送数据至外部设备,则确定任一虚拟设备与外部设备之间具有待传输数据。
传输模块502,还用于通过传输设备接收外部设备发送的待传输数据;其中,传输模块502,包括:传输单元,用于通过传输设备将待传输数据发送至虚拟转发设备;确定单元,用于根据待传输数据携带的虚拟传输标识,通过虚拟转发设备确定对应的虚拟设备,并将待传输数据发送至对应的虚拟设备。
确定单元,用于根据虚拟传输标识,通过虚拟转发设备确定对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;根据虚拟传输设备与虚拟设备的对应关系,确定对应的虚拟设备。
确定单元,用于通过确定的虚拟传输设备以及运行在传输设备上的虚拟IO设备,向对应虚拟设备发送所述待传输数据。
传输模块502,还用于通过传输设备确定待传输数据是否是发送至虚拟设备;当确定是发送至虚拟设备,执行通过传输设备将待传输数据发送至虚拟转发设备的步骤。
传输模块502,包括:发送单元,用于针对发送待传输数据的任一虚拟设备,通过该虚拟设备将待传输数据发送至虚拟转发设备;通过虚拟转发设备将待传输数据发送至传输设备;通过传输设备,将待传输数据发送至外部设备。
发送单元,用于根据虚拟设备与虚拟传输设备的对应关系,确定该虚拟设备对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;通过该虚拟设备以及运行在传输设备上的虚拟IO设备,向确定的虚拟传输设备发送待传输数据;通过虚拟传输设备向虚拟转发设备发送。
此外,该装置500还包括:创建模块,用于根据传输设备的设备硬件资源以及对应关系,创建虚拟设备对应的虚拟传输设备。
确定单元,用于通过虚拟IO设备,确定对应虚拟设备中用于存储待传输数据的缓存区域;通过虚拟IO设备,将待传输数据存储至缓存区域中;通过传输设备的DMA控制器,将待传输数据从缓存区域复制到虚拟设备中。
确定单元,用于通过传输设备,确定对应虚拟设备中用于存储待传输数据的缓存区域;通过传输设备,将待传输数据存储至所述缓存区域中;通过传输设备的控制器,将待传输数据从缓存区域复制到虚拟设备中。
其中,传输设备是硬件设备。虚拟设备是指依赖于计算设备,创建出独立运行环境的设备。
图6示出了本申请又一示例性实施例提供的又一种数据的传输装置的结构框架示意图。该装置600可以应用于具有处理单元的传输设备,如,智能网卡;该装置600包括:接收模块601、确定模块602以及分配模块603,以下针对各个模块的功能进行详细的阐述:
接收模块601,用于接收外部设备发送的待传输数据.
确定模块602,用于根据待传输数据确定对应的虚拟设备。
分配模块603,用于将待传输数据分配至对应的虚拟设备,虚拟设备设置在计算设备中。
其中,确定模块602,用于根据待传输数据携带的虚拟传输标识,通过运行在处理单元上的虚拟转发设备确定对应的虚拟设备。
确定模块602,包括:传输单元,用于根据虚拟传输标识,通过虚拟转发设备确定对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;确定单元,用于根据虚拟传输设备与虚拟设备的对应关系,确定对应的虚拟设备。
分配模块603,用于通过确定的虚拟传输设备以及运行在传输设备上的虚拟IO设备,向对应虚拟设备发送待传输数据。
其中,虚拟设备是指依赖于计算设备,创建出独立运行环境的设备。
需要说明的是,对于装置600未能提及的部分内容,可以参照上述装置500的内容。
以上描述了图5所示的传输装置500的内部功能和结构,在一个可能的设计中,图5所示的传输装置500的结构可实现为一个计算设备,如服务器,该计算设备包括传输设备以及至少一个虚拟设备,传输设备具有处理单元;如图7所示,该设备700还可以包括:存储器701以及处理器702;
存储器701,用于存储计算机程序;
处理器702,用于执行计算机程序,以用于:确定任一虚拟设备与外部设备之间是否具有待传输数据;当确定具有待传输数据的情况下,通过运行在处理单元上的虚拟转发设备,使得待传输数据在虚拟设备与外部设备之间传输。
其中,处理器702,还用于,当确定具有待传输数据的情况下,通过运行在处理单元上的虚拟转发设备以及传输设备,将待传输数据在虚拟设备与外部设备之间进行传输。
处理器702,具体用于,通过运行在处理单元上的虚拟转发设备以及传输设备,将待传输数据在虚拟设备与外部设备之间进行传输。
此外,处理器702,还用于,接收外部设备发送的待传输数据;确定模块,还用于确定待传输数据是否是发送至任一虚拟设备,当确定是发送至任一虚拟设备,则确定任一虚拟设备与外部设备之间具有待传输数据。
处理器702,还用于,确定虚拟设备是否要发送数据至外部设备,当确定要发送数据至外部设备,则确定任一虚拟设备与外部设备之间具有待传输数据。
处理器702,还用于,通过传输设备接收外部设备发送的待传输数据;其中,处理器702,具体用于,通过传输设备将待传输数据发送至虚拟转发设备;根据待传输数据携带的虚拟传输标识,通过虚拟转发设备确定对应的虚拟设备,并将待传输数据发送至对应的虚拟设备。
处理器702,具体用于,根据虚拟传输标识,通过虚拟转发设备确定对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;根据虚拟传输设备与虚拟设备的对应关系,确定对应的虚拟设备。
处理器702,具体用于,通过确定的虚拟传输设备以及运行在传输设备上的虚拟IO设备,向对应虚拟设备发送所述待传输数据。
处理器702,还用于,通过传输设备确定待传输数据是否是发送至虚拟设备;当确定是发送至虚拟设备,执行通过传输设备将待传输数据发送至虚拟转发设备的步骤。
处理器702,具体用于,针对发送待传输数据的任一虚拟设备,通过该虚拟设备将待传输数据发送至虚拟转发设备;通过虚拟转发设备将待传输数据发送至传输设备。该设备700还包括:通信组件703,用于通过传输设备,将待传输数据发送至外部设备。
处理器702,具体用于,根据虚拟设备与虚拟传输设备的对应关系,确定该虚拟设备对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;通过该虚拟设备以及运行在传输设备上的虚拟IO设备,向确定的虚拟传输设备发送待传输数据;通过虚拟传输设备向虚拟转发设备发送。
此外,处理器702,还用于,根据传输设备的设备硬件资源以及对应关系,创建虚拟设备对应的虚拟传输设备。
处理器702,具体用于,通过虚拟IO设备,确定对应虚拟设备中用于存储待传输数据的缓存区域;通过虚拟IO设备,将待传输数据存储至缓存区域中;通过传输设备的DMA控制器,将待传输数据从缓存区域复制到虚拟设备中。
处理器702,具体用于,通过传输设备,确定对应虚拟设备中用于存储待传输数据的缓存区域;通过传输设备,将待传输数据存储至所述缓存区域中;通过传输设备的控制器,将待传输数据从缓存区域复制到虚拟设备中。
其中,传输设备是硬件设备。虚拟设备是指依赖于计算设备,创建出独立运行环境的设备。
另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图2方法实施例中数据的传输方法的步骤。
以上描述了图6所示的传输装置600的内部功能和结构,在一个可能的设计中,图6所示的传输装置600的结构可实现为具有处理单元的传输设备,即一个计算设备,如,智能网卡。如图8所示,该设备800可以包括:存储器801以及处理器802;
存储器801,用于存储计算机程序;
处理器802,用于执行计算机程序,以用于:接收外部设备发送的待传输数据;根据待传输数据确定对应的虚拟设备;将待传输数据分配至对应的虚拟设备,虚拟设备设置在计算设备中。
其中,处理器802,具体用于根据待传输数据携带的虚拟传输标识,通过运行在处理单元上的虚拟转发设备确定对应的虚拟设备。
处理器802,具体用于:根据虚拟传输标识,通过虚拟转发设备确定对应的虚拟传输设备,虚拟传输设备是基于传输设备创建的;根据虚拟传输设备与虚拟设备的对应关系,确定对应的虚拟设备。
处理器802,具体用于:通过确定的虚拟传输设备以及运行在传输设备上的虚拟IO设备,向对应虚拟设备发送待传输数据。
其中,虚拟设备是指依赖于计算设备,创建出独立运行环境的设备。
需要说明的是,对于该设备800未能提及的部分内容,可以参照上述设备700的内容。
另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图4方法实施例中数据质量的确定方法的步骤。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (25)

1.一种数据的传输方法,其特征在于,适用于计算设备,所述计算设备包括传输设备以及至少一个虚拟设备,所述传输设备具有处理单元;所述方法包括:
确定任一所述虚拟设备与外部设备之间是否具有待传输数据,所述传输设备用于接收所述外部设备发送的待传输数据;
当确定具有所述待传输数据的情况下,通过运行在所述处理单元上的虚拟转发设备以及所述传输设备,将所述待传输数据在所述虚拟设备与所述外部设备之间传输;其中,所述虚拟转发设备依赖于所述传输设备的硬件资源并通过虚拟技术在所述传输设备上创建,所述虚拟转发设备与所述虚拟设备存在一一对应的关系;
所述通过运行在所述处理单元上的虚拟转发设备以及所述传输设备,将所述待传输数据在所述虚拟设备与所述外部设备之间进行传输,包括:
通过所述传输设备将所述待传输数据发送至所述虚拟转发设备;
根据所述待传输数据携带的虚拟传输标识,通过所述虚拟转发设备确定对应的虚拟设备,并将所述待传输数据发送至对应的所述虚拟设备。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述外部设备发送的待传输数据;
确定所述待传输数据是否是发送至任一所述虚拟设备,当确定是发送至任一所述虚拟设备,则确定任一所述虚拟设备与外部设备之间具有待传输数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述虚拟设备是否要发送数据至所述外部设备,当确定要发送数据至所述外部设备,则确定任一所述虚拟设备与外部设备之间具有待传输数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述待传输数据携带的虚拟传输标识,通过所述虚拟转发设备确定对应的虚拟设备,包括:
根据所述虚拟传输标识,通过所述虚拟转发设备确定对应的虚拟传输设备,所述虚拟传输设备是基于所述传输设备创建的;
根据所述虚拟传输设备与所述虚拟设备的对应关系,确定对应的虚拟设备。
5.根据权利要求4所述的方法,其特征在于,所述将所述待传输数据发送至对应的所述虚拟设备,包括:
通过确定的虚拟传输设备以及运行在所述传输设备上的虚拟IO设备,向对应所述虚拟设备发送所述待传输数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述传输设备确定所述待传输数据是否是发送至所述虚拟设备;
当确定是发送至所述虚拟设备,执行通过所述传输设备将所述待传输数据发送至所述虚拟转发设备的步骤。
7.根据权利要求4所述的方法,其特征在于,所述通过运行在所述处理单元上的虚拟转发设备以及所述传输设备,将所述待传输数据在所述虚拟设备与所述外部设备之间进行传输,包括:
针对发送所述待传输数据的任一所述虚拟设备,通过该虚拟设备将所述待传输数据发送至所述虚拟转发设备;
通过所述虚拟转发设备将所述待传输数据发送至所述传输设备;
通过所述传输设备,将所述待传输数据发送至所述外部设备。
8.根据权利要求7所述的方法,其特征在于,所述通过该虚拟设备将所述待传输数据发送至所述虚拟转发设备,包括:
根据所述虚拟设备与所述虚拟传输设备的对应关系,确定该虚拟设备对应的虚拟传输设备,所述虚拟传输设备是基于所述传输设备创建的;
通过该虚拟设备以及运行在所述传输设备上的虚拟IO设备,向确定的所述虚拟传输设备发送所述待传输数据;
通过所述虚拟传输设备向所述虚拟转发设备发送。
9.根据权利要求4或8所述的方法,其特征在于,所述方法还包括:
根据所述传输设备的设备硬件资源以及所述对应关系,创建所述虚拟设备对应的虚拟传输设备。
10.根据权利要求5所述的方法,其特征在于,所述通过确定的虚拟传输设备以及运行在所述传输设备上的虚拟IO设备,向对应所述虚拟设备发送所述待传输数据,包括:
通过所述虚拟IO设备,确定对应所述虚拟设备中用于存储所述待传输数据的缓存区域;
通过所述虚拟IO设备,将所述待传输数据存储至所述缓存区域中;
通过所述传输设备的DMA控制器,将所述待传输数据从所述缓存区域复制到所述虚拟设备中。
11.根据权利要求4所述的方法,其特征在于,所述将所述待传输数据发送至对应的所述虚拟设备,包括:
通过所述传输设备,确定对应所述虚拟设备中用于存储所述待传输数据的缓存区域;
通过所述传输设备,将所述待传输数据存储至所述缓存区域中;
通过所述传输设备的控制器,将所述待传输数据从缓存区域复制到所述虚拟设备中。
12.根据权利要求1~3、4~8、10~11中任一项所述的方法,其特征在于,所述传输设备是硬件设备。
13.根据权利要求1~3、4~8、10~11中任一项所述的方法,其特征在于,所述虚拟设备是指依赖于所述计算设备,创建出独立运行环境的设备。
14.一种数据的传输方法,其特征在于,适用于具有处理单元的传输设备,所述传输设备设置在计算设备中;所述方法包括:
接收外部设备发送的待传输数据;
根据所述待传输数据确定对应的虚拟设备;
将所述待传输数据分配至对应的虚拟设备,所述虚拟设备设置在所述计算设备中;
所述根据所述待传输数据确定对应的虚拟设备,包括:
根据所述待传输数据携带的虚拟传输标识,通过运行在所述处理单元上的虚拟转发设备确定对应的虚拟设备;其中,所述虚拟转发设备依赖于所述传输设备的硬件资源并通过虚拟技术在所述传输设备上创建,所述虚拟转发设备与所述虚拟设备存在一一对应的关系。
15.根据权利要求14所述的方法,其特征在于,所述根据所述待传输数据携带的虚拟传输标识,通过运行在所述处理单元上的所述虚拟转发设备确定对应的虚拟设备,包括:
根据所述虚拟传输标识,通过所述虚拟转发设备确定对应的虚拟传输设备,所述虚拟传输设备是基于所述传输设备创建的;
根据所述虚拟传输设备与所述虚拟设备的对应关系,确定对应的虚拟设备。
16.根据权利要求14所述的方法,其特征在于,所述将所述待传输数据分配至对应的虚拟设备,包括:
通过确定的虚拟传输设备以及运行在所述传输设备上的虚拟IO设备,向对应所述虚拟设备发送所述待传输数据。
17.根据权利要求14-16任一项所述的方法,其特征在于,所述虚拟设备是指依赖于所述计算设备,创建出独立运行环境的设备。
18.一种智能网卡,其特征在于,所述智能网卡设置在计算设备上,所述计算设备包括至少一个虚拟设备;所述智能网卡包括:处理器、运行在所述处理器上的虚拟转发设备;
当任一所述虚拟设备与外部设备之间进行传输数据,所述智能网卡通过所述虚拟转发设备,使得在所述虚拟设备与所述外部设备之间传输数据;其中,所述虚拟转发设备依赖于所述智能网卡的硬件资源并通过虚拟技术在所述智能网卡上创建,所述虚拟转发设备与所述虚拟设备存在一一对应的关系;
所述智能网卡接收所述外部设备发送的待传输数据,并将所述待传输数据发送至所述虚拟转发设备;
根据所述待传输数据携带的虚拟传输标识,所述虚拟转发设备确定对应的虚拟设备,并将所述待传输数据发送至对应的所述虚拟设备。
19.根据权利要求18所述的智能网卡,其特征在于,所述智能网卡还包括:虚拟传输设备;
所述虚拟转发设备根据所述虚拟传输标识,确定对应的虚拟传输设备;
根据所述虚拟传输设备与所述虚拟设备的对应关系,确定对应的虚拟设备。
20.根据权利要求18所述的智能网卡,其特征在于,所述智能网卡还包括:虚拟IO设备;
确定的虚拟传输设备根据所述虚拟IO设备,向对应所述虚拟设备发送所述待传输数据。
21.根据权利要求18所述的智能网卡,其特征在于,所述智能网卡还包括:虚拟传输设备;
根据所述智能网卡的硬件资源以及所述虚拟传输设备与所述虚拟设备的对应关系,创建所述虚拟设备对应的虚拟传输设备。
22.根据权利要求18-21任一项所述的智能网卡,其特征在于,所述虚拟设备是指依赖于所述计算设备,创建出独立运行环境的设备。
23.一种计算设备,包括权利要求18-21任一项所述的智能网卡。
24.一种计算设备,包括传输设备以及至少一个虚拟设备,所述传输设备具有处理单元,可独立实现网络数据传输;
所述计算设备还包括:存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以用于:
当确定任一所述虚拟设备与外部设备之间具有待传输数据的情况下,通过运行在所述处理单元上的虚拟转发设备以及所述传输设备,将所述待传输数据在所述虚拟设备与所述外部设备之间传输;其中,所述虚拟转发设备依赖于所述传输设备的硬件资源并通过虚拟技术在所述传输设备上创建,所述虚拟转发设备与所述虚拟设备存在一一对应的关系,所述传输设备用于接收所述外部设备发送的待传输数据;
所述通过运行在所述处理单元上的虚拟转发设备以及所述传输设备,将所述待传输数据在所述虚拟设备与所述外部设备之间进行传输,包括:
通过所述传输设备将所述待传输数据发送至所述虚拟转发设备;
根据所述待传输数据携带的虚拟传输标识,通过所述虚拟转发设备确定对应的虚拟设备,并将所述待传输数据发送至对应的所述虚拟设备。
25.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现权利要求1-17任一项所述方法中的步骤。
CN202010426296.9A 2020-05-19 2020-05-19 一种数据的传输方法、智能网卡、计算设备及存储介质 Active CN113691465B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010426296.9A CN113691465B (zh) 2020-05-19 2020-05-19 一种数据的传输方法、智能网卡、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010426296.9A CN113691465B (zh) 2020-05-19 2020-05-19 一种数据的传输方法、智能网卡、计算设备及存储介质

Publications (2)

Publication Number Publication Date
CN113691465A CN113691465A (zh) 2021-11-23
CN113691465B true CN113691465B (zh) 2023-05-26

Family

ID=78575911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010426296.9A Active CN113691465B (zh) 2020-05-19 2020-05-19 一种数据的传输方法、智能网卡、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN113691465B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117311910B (zh) * 2023-11-29 2024-02-27 中安网脉(北京)技术股份有限公司 一种高性能虚拟密码机运行方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445905A (zh) * 2018-06-22 2019-03-08 华为技术有限公司 虚拟机数据通信方法和系统以及虚拟机配置方法和装置
CN110990116A (zh) * 2019-11-21 2020-04-10 优刻得科技股份有限公司 在智能网卡和虚拟机之间传输数据的方法、装置和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523166B (zh) * 2011-12-23 2014-10-01 中山大学 一种适用于未来互联网的结构化网络系统
CN106445628A (zh) * 2015-08-11 2017-02-22 华为技术有限公司 一种虚拟化方法、装置和系统
CN107846466B (zh) * 2017-11-15 2020-04-07 中国联合网络通信集团有限公司 云终端外部设备的映射方法、服务器、云终端及系统
CN109379269A (zh) * 2018-11-29 2019-02-22 南京中孚信息技术有限公司 虚拟交换设备数据转发方法、装置和计算机设备
CN110417683B (zh) * 2019-07-24 2022-07-29 新华三大数据技术有限公司 报文处理方法、装置及服务器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445905A (zh) * 2018-06-22 2019-03-08 华为技术有限公司 虚拟机数据通信方法和系统以及虚拟机配置方法和装置
CN110990116A (zh) * 2019-11-21 2020-04-10 优刻得科技股份有限公司 在智能网卡和虚拟机之间传输数据的方法、装置和系统

Also Published As

Publication number Publication date
CN113691465A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
CN107231815B (zh) 用于图形渲染的系统和方法
US9350682B1 (en) Compute instance migrations across availability zones of a provider network
US9674302B1 (en) Computing resource transition notification and pending state
CN107707622B (zh) 一种访问桌面云虚拟机的方法、装置及桌面云控制器
US11281388B2 (en) Method for managing a multi-system shared memory, electronic device and non-volatile computer-readable storage medium
US20220086226A1 (en) Virtual device portability
CN113296926B (zh) 一种资源分配方法、计算设备及存储介质
CA3129984A1 (en) Method and system for accessing distributed block storage system in user mode
US20160292009A1 (en) Execution offloading through syscall trap interface
US11743325B1 (en) Centralized load balancing of resources in cloud edge locations embedded in telecommunications networks
CN113691465B (zh) 一种数据的传输方法、智能网卡、计算设备及存储介质
WO2024082985A1 (zh) 一种安装有加速器的卸载卡
US10127177B2 (en) Unified device interface for a multi-bus system
CN113691466B (zh) 一种数据的传输方法、智能网卡、计算设备及存储介质
EP4030284A1 (en) Virtual device portability
CN108932149B (zh) 数据传输方法及装置
CN113254160B (zh) 一种io资源请求方法和装置
US10481963B1 (en) Load-balancing for achieving transaction fault tolerance
US20210157626A1 (en) Prioritizing booting of virtual execution environments
CN114328434A (zh) 数据处理系统、方法、设备及存储介质
US11128701B1 (en) Cooperative preemption in a distributed multi-tenant resource pool
US11272005B1 (en) Communicating state information in a distributed storage environment
CN109032510B (zh) 基于分布式结构的处理数据的方法和装置
CN113535370A (zh) 一种实现负载均衡的多rdma网卡虚拟化的方法、设备
CN112965790B (zh) 一种基于pxe协议的虚拟机启动方法及电子设备

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40062882

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant