CN102124449B - 用于低开销数据传输的方法和*** - Google Patents
用于低开销数据传输的方法和*** Download PDFInfo
- Publication number
- CN102124449B CN102124449B CN200980131451.6A CN200980131451A CN102124449B CN 102124449 B CN102124449 B CN 102124449B CN 200980131451 A CN200980131451 A CN 200980131451A CN 102124449 B CN102124449 B CN 102124449B
- Authority
- CN
- China
- Prior art keywords
- application
- virtual
- operating system
- vnic
- computing 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
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于低开销数据传输的方法。该方法包括由第一应用启动与第二应用的传输通信协议(TCP)连接;响应于所述启动,建立第一应用和第二应用之间的TCP连接;由第一应用向第二应用提供预发布缓存信息,其中该预发布缓存信息对应于第一计算机的物理存储器中的位置,且其中物理存储器中的该位置对应于第一应用的虚拟存储器地址。该方法还包含由第二应用使用该预发布缓存信息向第一应用传输数据,其中传输数据包含直接向第一计算机的物理存储器中的位置写入所述数据。
Description
背景技术
常规地,在计算机相关领域中,网络是配置成彼此通信的物理计算机***的布置。在一些情况中,物理计算机***包括虚拟机,该虚拟机也可以配置成与网络交互(即,与网络中的其他物理计算机和/或虚拟计算机通信)。存在很多不同类型的网络,且网络可以基于网络的各个方面分类,诸如通过规模、连接方法、网络中计算机***的功能关系和/或网络拓扑。
在连接方法方面,网络可以广义地分为有线(使用诸如以太网线缆的有形连接媒介)或无线(使用诸如无线电波的无形连接媒介)。不同连接方法也可以组合在单个网络中。例如,有线网络可以扩展为允许装置无线地连接到网络。然而,诸如路由器、交换机和服务器的核心网络组件一般使用物理布线连接。以太网是电子和电气工程师协会(IEEE)内限定的802.3标准,由802.3工作组监督管理。
为了形成有线网络,计算机***必须彼此物理连接。即,物理布线(例如以太网线缆)的端部必须物理连接到形成网络的计算机***中的网络接口卡。为了重新配置网络(例如,为了更换服务器或者改变网络拓扑),物理布线其中的一个或多个必须从计算机***断开且连接到不同的计算机***。
而且,当在网络中的计算机之间传输数据时,一个或多个网络协议常用于帮助确保数据被成功传输。例如,网络协议可以使用校验和、小数据分组、确认以及其他数据完整性特征来帮助避免数据丢失或数据传输期间的破坏。在(多个)网络协议中需要的数据完整性特征的量一般依赖于被传输的数据的类型以及计算机***之间的(多个)连接的质量。
发明内容
一般地,在一个方面中,本发明涉及一种用于低开销数据传输的方法。该方法包括:由第一应用启动与第二应用的传输通信协议(TCP)连接,其中第一应用在第一虚拟机中在第一计算机上运行,第二应用在第二虚拟机中在第二计算机上运行,且第一计算机和第二计算机位于机柜中且通过机柜互连通信;响应于所述启动,建立第一应用和第二应用之间的TCP连接;判断第一计算机和第二计算机位于所述机柜中;由第一应用向第二应用提供预发布缓存信息,其中所述预发布缓存信息对应于第一计算机的物理存储器中的位置,且其中物理存储器中的该位置对应于第一应用的虚拟存储器地址;以及使用预发布缓存信息由第二应用向第一应用传输数据,其中传输数据包含直接向第一计算机的物理存储器中的位置写入数据。
一般地,在一个方面中,本发明涉及一种***。该***包含机柜互连以及运行在第一虚拟机中的第一计算机上的第一应用以及运行在第二虚拟机中的第二计算机上的第二应用,其中第一计算机和第二计算机位于机柜中且通过机柜互连通信,其中第一应用被配置成启动与第二应用的传输通信协议(TCP)连接,其中响应于所述启动,在第一应用和第二应用之间建立所述TCP连接,其中第一应用被配置成在第一应用被判断为在与第二应用相同的机柜上运行之后向第二应用提供预发布缓存信息,其中所述预发布缓存信息对应于第一计算机的物理存储器中的位置且其中物理存储器中的所述位置对应于第一应用的虚拟存储器地址,并且其中第二应用使用预发布缓存信息向第一应用传输数据,其中传输数据包含直接向第一计算机的物理存储器中的所述位置写入数据。
一般地,在一个方面中,本发明涉及一种例如在计算机可读介质上实施的程序产品,该程序产品包含用于低开销数据传输的多个可执行指令,其中该多个可执行指令包含用于以下目的的指令:由第一应用启动与第二应用的传输通信协议(TCP)连接,其中第一应用在第一虚拟机中在第一计算机上运行,第二应用在第二虚拟机中在第二计算机上运行,且第一计算机和第二计算机位于机柜中且通过机柜互连通信;响应于所述启动,建立第一应用和第二应用之间的TCP连接;判断第一计算机和第二计算机位于所述机柜中;由第一应用向第二应用提供预发布缓存信息,其中所述预发布缓存信息对应于第一计算机的物理存储器中的位置,且其中物理存储器中的该位置对应于第一应用的虚拟存储器地址;以及使用预发布缓存信息由第二应用向第一应用传输数据,其中传输数据包含直接向第一计算机的物理存储器中的位置写入数据。
本发明的其他方面将从下面的说明和所附权利要求显现。
附图说明
图1示出根据本发明的一个或多个实施例的刀片机柜的示图。
图2示出根据本发明的一个或多个实施例的刀片的示图。
图3示出根据本发明的一个或多个实施例的网络直通管理器的示图。
图4示出根据本发明的一个或多个实施例的虚拟机的示图。
图5示出根据本发明的一个或多个实施例的用于创建虚拟网络路径的方法的流程图。
图6A-6C示出根据本发明的一个或多个实施例的创建虚拟网络路径的示例。
图7-8示出根据本发明的一个或多个实施例的用于低开销数据传输的方法的流程图。
图9示出根据本发明的一个或多个实施例的低开销数据传输的示例。
具体实施方式
参考附图,现在将仅作为示例详细描述本发明的特定实施例。出于一致性,各个附图中相似的元件由相似的附图标记指示。
在下面的本发明的实施例的详细描述中,提出了各种特定细节以提供本发明的更彻底的理解。然而,对于本领域技术人员而言,很明显,本发明可以不使用这些特定细节实践。在其他实例中,并不详细描述公知的特性以避免使得说明书不必要地复杂化。
一般而言,本发明的实施例提供用于低开销数据传输的方法和***。更具体而言,本发明的实施例提供用于使得在公共刀片机柜内的刀片上执行的两个应用能够使用低开销数据传输通信的方法和***。而且,本发明的实施例提供使得两个应用参与零拷贝握手且然后使用低开销数据传输进行通信的方法和***。
在本发明的一个或多个实施例中,VNIC经由机柜互连彼此连接。尤其是,VNIC可以是虚拟网络路径的节点,该虚拟网络路径包括用于经由机柜互连发射网络流量的“虚拟线路”。虚拟线路的概念在稍后详细讨论。
图1示出根据本发明的一个或多个实施例的刀片机柜(100)的示图。刀片机柜(100)包括与机柜互连(106)耦合通信的多个刀片(例如,刀片A(102)、刀片B(104))。例如,刀片机柜(100)可以是Sun微***公司的Sun Blade 6048机柜、IBM机柜、惠普公司的HP BladeSystem机箱或者任意其他类型的刀片机柜。刀片可以是与刀片机柜(100)兼容的任意(多种)类型。是总部设在纽约Armonk的国际商业机器公司(IBM)的注册商标。
在本发明的一个或多个实施例中,刀片配置成经由机柜互连(106)彼此通信。因而,刀片机柜(100)允许刀片之间的通信而无需刀片之间的传统网络线路(诸如以太网线缆)。例如,依赖于刀片机柜(100)的类型,机柜互连(106)可以是***部件互连直通(PCI-E)底板,且刀片可以配置成经由PCI-E端点彼此通信。本领域技术人员应当意识到,其他连接技术可用于连接刀片和刀片机柜。
继续图1的讨论,为了与刀片机柜(100)外部的客户端通信,刀片配置成共享物理网络接口(110)。物理网络接口(110)包括一个或多个网络端口(例如以太网端口),且提供刀片机柜(100)与刀片机柜(100)所连接的网络(即,刀片机柜(100)外部的互连计算机***)之间的接口。刀片机柜(100)例如可以使用多个网络端口连接到多个网络。
在一个或多个实施例中,物理网络接口(110)通过网络直通管理器(108)管理。具体而言,网络直通管理器(108)配置成管理刀片对于物理网络接口(110)的访问。网络直通管理器(108)还可以配置成以稍后详细讨论的方式管理刀片自身之间的内部通信。网络直通管理器(108)可以是硬件、软件和/或包括用于管理网络流量的可执行逻辑的固件的任意组合。
图2示出了根据本发明的一个或多个实施例的刀片(200)的示图。“刀片”在技术方面指的是位于刀片机柜(例如图1的刀片机柜(100))中的计算机***。刀片典型地比分立计算机***或常规服务器包含更少的组件。在本发明的一个或多个实施例中,也可以使用全特征的分立计算机***或常规服务器来代替刀片或者与刀片一起使用。一般而言,刀片机柜中的刀片各包括一个或多个处理器和相关存储器(例如RAM、ROM等)。刀片还可以包括存储装置(例如,硬盘和/或光盘驱动)和很多现今计算机***(未示出)常见的其他元件和功能,诸如键盘、鼠标和/或诸如监视器的输出装置。上述组件其中一个或多个可以被位于刀片机柜中的多个刀片到共享。例如,多个刀片可以共享单个输出设备。
继续图2的讨论,刀片(200)包括配置成运行一个或多个虚拟机(例如,虚拟机C(202),虚拟机D(204))的主机操作***(未示出)。广义地说,虚拟机是配置成经由抽象层继承主机操作***的底层功能性的不同的操作环境。在本发明的一个或多个实施例中,每个虚拟机包括操作***的单独的实例(例如操作***实例C(206)、操作***实例D(208))。例如,虚拟化项目允许在一个主机操作***中执行多个来宾操作***。是Xen项目顾问委员会管理的商标。在本发明的一个或多个实施例中,主机操作***支持虚拟运行环境。虚拟运行环境的一个示例是SolarisTM容器。在这种情况下,SolarisTM容器可以在主机操作***中运行,该主机操作***可以是SolarisTM操作***。SolarisTM是Sun微***公司的商标。在本发明的一个或多个实施例中,主机操作***可以包括虚拟机和虚拟运行环境。
存在很多不同类型的虚拟机和虚拟运行环境。而且,虚拟机可以包括很多不同类型的功能性,诸如交换机、路由器、防火墙、负载均衡器、应用服务器、任意其他类型的支持网络的服务或其任意组合。
在本发明的一个或多个实施例中,虚拟机和/或虚拟运行环境经由VNIC(例如VNIC C(210)、VNIC D(212))从主机操作***继承网络连接性。对于虚拟机和虚拟运行环境,VNIC看成是物理NIC。在本发明的一个或多个实施例中,VNIC的使用允许任意数目的虚拟机和/或虚拟运行环境共享刀片(200)的联网功能性。而且,在本发明的一个或多个实施例中,每个虚拟机和/或虚拟运行环境可以与任意数目的VNIC相关联,由此提高在可用于虚拟机和/或虚拟运行环境的联网功能性的类型方面的的灵活性。例如,虚拟机可以使用一个VNIC来用于输入的网络流量,且使用另一VNIC来用于输出的网络流量。
根据本发明的一个或多个实施例的VNIC在Nicolas G.Droux,Erik Nordmark和Sunay Tripathi等人名下的名为“Multiple VirtualNetwork Stack Instances using Virtual Network Interface Cards”的共同所有的美国专利申请No.11/489,942中详细描述,此处通过引用结合其全部内容作为参考。根据本发明的一个或多个实施例的VNIC还在Sunay Tripathi,Tim P.Marsland和Nicolas G.Droux等人名下的名为“Method and System for Controlling Virtual Machine Bandwidth”的共同所有的美国专利申请No.11/480,000中详细描述,此处通过引用结合其全部内容作为参考。
如上面所讨论,每个刀片的联网功能性(以及通过扩展,通过VNIC继承的联网功能性)包括对于共享物理网络接口的访问以及经由机柜互连与其他刀片的通信。图3示出根据本发明的一个或多个实施例的网络直通管理器(300)的示图。网络直通管理器(300)配置成从/向位于刀片中的VNIC路由网络流量。尤其是,网络直通管理器(300)包括虚拟交换表(302),该交换表包括VNIC标识符(304)到机柜互连中的VNIC位置(306)的映射。在一个或多个实施例中,VNIC标识符(304)是因特网协议(IP)地址,且VNIC位置(306)是与刀片相关联的PCI-E端点(例如,如果机柜互连是PCI-E底板)。备选地,可以使用其他路由机制。
在一个或多个实施例中,网络直通管理器(300)配置成经由物理网络接口接收网络流量且使用虚拟交换表(302)将网络流量路由到适当位置(例如VNIC所处的位置)。而且,网络直通管理器(300)可以配置成在位于在刀片机柜中的不同VNIC之间路由网络流量。在本发明的一个或多个实施例中,以这种方式使用虚拟交换表(302)有利于包括虚拟线路的虚拟网络路径的创建。因而,使用虚拟交换表(302),位于不同刀片中的虚拟机可以互连以形成任意虚拟网络拓扑,其中与每个虚拟机相关联的VNIC不需要知道其他VNIC的物理位置。而且,如果虚拟机从一个刀片迁移到另一刀片,虚拟物理拓扑可以通过更新虚拟交换表(302)被保留以反映相应VNIC的新物理位置(例如,不同的PCI-E端点)。
在一些情形中,来自一个VNIC的网络流量的目的地可能是位于相同刀片中但与不同虚拟机相关联的VNIC。在本发明的一个或多个实施例中,虚拟交换机可用于路由VNIC之间的网络流量,而与刀片机柜无关。根据本发明的一个或多个实施例的虚拟交换机在Nicolas G.Droux,Sunay Tripathi和Erik Nordmark名下的名为“VirtualSwitch”的共同所有的美国专利申请No.11/480,261中详细讨论,此处通过引用结合其全部内容作为参考。
例如,图4示出根据本发明的一个或多个实施例的虚拟交换机(400)的示图。虚拟交换机(400)提供在与虚拟机X相关的VNIC X(406)以及与虚拟机Y(404)相关的VNIC Y(408)之间的连接。在一个或多个实施例中,虚拟机(400)通过其中布置虚拟机X(402)和虚拟机Y(404)的主机操作***(410)管理。具体而言,主机操作***(410)可以配置成识别目标为相同刀片中的VNIC的网络流量,且使用虚拟交换机(400)将流量路由到VNIC。在本发明的一个或多个实施例中,虚拟交换机(400)可以通过避免不必要的来回传输的网络流量减小刀片机柜和网络直通管理器的使用。
图5示出根据本发明的一个或多个实施例用于创建虚拟网络路径的方法的流程图。在本发明的一个或多个实施例中,图5中示出的步骤其中的一个或多个可以被忽略、重复和/或以不同顺序执行。相应地,本发明的实施例不应认为限制于图5中示出的特定步骤布置。
在本发明的一个或多个实施例中,在步骤502中,为多个虚拟机实例化VNIC。如上所述,虚拟机位于刀片中。而且,虚拟机各自可以与一个或多个VNIC相关。在本发明的一个或多个实施例中,实例化VNIC涉及在存储器中装载VNIC对象且向主机操作***(即宿有与VNIC相关的虚拟机的操作***)登记VNIC对象。登记VNIC对象建立了主机操作***联网功能性与VNIC提供的抽象层之间的接口。此后,当主机操作***接收寻址到VNIC的网络流量时,主机操作***将网络流量转发到VNIC。根据本发明的一个或多个实施例的VNIC的实例化在上面通过引用结合于此的美国专利申请11/489,942中详细讨论。
如上面所讨论,单个刀片可以包括配置成彼此通信的多个虚拟机。在本发明的一个或多个实施例中,在步骤504,虚拟交换机实例化为促进虚拟机之间的通信。如上所述,虚拟交换机允许VNIC之间的通信,而与机柜互连无关。根据本发明的一个或多个实施例的虚拟交换机的实例化在上面通过引用结合于此的美国专利申请11/480,261中详细讨论。
在本发明的一个或多个实施例中,在步骤506,填充虚拟交换表。如上所述,虚拟交换表可以位于配置成管理流入到虚拟机且从虚拟机流出的网络流量的网络直通管理器中。填充虚拟交换表涉及将VNIC标识符(例如,因特网协议和/或介质访问控制(MAC)地址)与VNIC位置(例如PCI-E端口)相关联。在本发明的一个或多个实施例中,响应于经由控制操作***(即,包括功能性以控制网络直通管理器的操作***)发布的用户命令而填充虚拟交换表。
在本发明的一个或多个实施例中,VNIC包括用于控制网络包的处理的设置。在本发明的一个或多个实施例中,在步骤508,根据联网策略,设置被分配给VNIC。使用VNIC中的设置,可以强加很多不同类型的联网策略。例如,设置可用于向一个或多个VNIC提供刀片可用带宽的特定部分。作为另一示例,设置可用于将VNIC的使用限制于特定类型的网络流量,诸如IP电话(VoIP)或传输控制协议/IP(TCP/IP)。而且,用于虚拟网络路径中的多个VNIC的设置可以相同。例如,虚拟网络路径中的VNIC可以具有相同的带宽限制,由此允许一致数据流经过虚拟网络路径。在本发明的一个或多个实施例中,网络直通管理器配置成向VNIC发送所需设置。
在本发明的一个或多个实施例中,一旦VNIC被实例化且虚拟交换表被填充,网络流量可以从一个刀片中的VNIC发送到另一刀片中的VNIC。两个VNIC之间的连接可以被认为是“虚拟线路”,因为该布置消除了对于诸如以太网线缆的常规网络布线的需要。在经过一个虚拟线路的网络流量与经过另一虚拟线路的网络流量隔离的意义上说,虚拟线路功能类似于物理线路,甚至网络流量可以经过相同的刀片(即,使用位于刀片中的相同的虚拟机或不同虚拟机)。
而且,两个或更多虚拟线路的组合可以被认为是“虚拟网络路径”。具体而言,在虚拟网络路径上发射网络流量涉及使得网络流量路由通过第一虚拟线路(步骤510),且然后通过第二虚拟线路(步骤512)。例如,当经由物理网络接口从客户端接收网络流量时,一个虚拟线路可以位于物理网络接口和VNIC之间,且第二虚拟线路可以位于VNIC和另一VNIC之间。
图6A-6C示出根据本发明的一个或多个实施例用于创建虚拟网络路径的示例。具体而言,图6A示出根据本发明的一个或多个实施例的实际拓扑(600)的示图,图6B示出网络流量可以如何通过实际拓扑(600)路由,且图6C示出如图6B所示通过路由网络流量创建的虚拟网络拓扑(640)。图6A-6C仅以示例提供,且不应解读为限制本发明的范围。
首先参考图6A,实际拓扑(600)包括多个虚拟机。具体而言,实际拓扑(600)包括路由器(602)、防火墙(604)、应用服务器M(606)以及应用服务器N(608),它们中的每一个在分离的虚拟机上运行。虚拟机位于与机柜互连(622)通信耦合的刀片中且包括经由VNIC(即VNIC H(610),VNIC J(612),VNIC K(614),VNIC M(618)和VNIC N(620))由刀片提供的联网功能性。为了说明的简便性,在示图中不包括刀片本身。
在本发明的一个或多个实施例中,路由器(602)、防火墙(604)、应用服务器M(606)和应用服务器N(608)均位于分离的刀片中。备选地,如上所述,刀片可以包括多个虚拟机。例如,路由器(602)和防火墙(604)位于单个刀片中。而且,每个虚拟机可以与图6A中示出的VNIC的数目不同数目的VNIC相关联。
继续图6A的讨论,网络直通管理器(624)配置成管理流入或流出虚拟机的网络流量。而且,网络直通管理器(624)配置成管理对于物理网络接口(626)的访问,该物理网络接口用于与客户端O(628)和客户端P(630)通信。在图6A中,虚拟机、VNIC、机柜互连(622)、网络直通管理器(624)以及物理网络接口(626)全都位于机柜互连内。客户端O(628)和客户端P(630)位于机柜互连所连接的一个或多个网络(未示出)中。
图6B示出根据本发明的一个或多个实施例,网络流量可以如何路由通过实际拓扑(600)。在本发明的一个或多个实施例中,利用虚拟交换表(634)由网络直通管理器(624)执行路由。
如上面所讨论,路由进入或输出VNIC的网络流量可以被认为流过“虚拟线路”。例如,图6B示出位于应用服务器M(606)和应用服务器N(608)之间的虚拟线路(632)。为了使用该虚拟线路,应用服务器M(606)经由VNIC M(618)发送网络包。网络包被寻址到与应用服务器N(608)相关的VNIC N(620)。网络直通管理器(624)经由机柜互连(622)接收网络包,检测该网络包,且使用虚拟交换表(634)判断目标VNIC位置。如果在虚拟交换表(634)中没有发现该目标VNIC位置,则该网络包可被丢弃。在该示例中,目标VNIC位置是VNIC N(620)所位于的刀片。网络直通管理器(624)将该网络包路由到目标VNIC位置,且应用服务器N(608)经由VNICN(620)接收该网络包,由此结束虚拟线路(632)。在本发明的一个或多个实施例中,虚拟线路(632)还可用于在相反的方向,即从应用服务器N(608)到应用服务器M(606)发送网络流量。
而且,如上面所讨论,多个虚拟线路可以组合以形成“虚拟网络路径”。例如,图6B示出虚拟网络路径R(636),其从客户端O流出,通过路由器(602),通过防火墙(604),且终止在应用服务器M(606)。具体而言,虚拟网络路径R(636)包括下面的虚拟线路。一虚拟线路位于物理网络接口(626)和VNIC H(610)之间。另一虚拟线路位于VNIC J(612)和VNIC K(614)之间。又一虚拟线路位于VNIC L(616)和VNIC M(618)之间。如果路由器(602)和防火墙(604)位于相同的刀片中,则虚拟交换机可以代替VNIC J(612)和VNIC K(614)之间的虚拟线路,由此消除用于在路由器(602)和防火墙(604)之间通信的机柜互连的使用。
类似地,图6B示出虚拟网络路径S(638),其从客户端P(630)流出,通过路由器(602)且终止在应用服务器N(608)。虚拟网络路径S包括物理网络接口(626)和VNIC H(610)之间的虚拟线路以及VNIC J(612)和VNIC N(620)之间的虚拟线路。虚拟网络路径R(636)和虚拟网络路径S(638)之间的差异示意了多个虚拟网络路径如何位于相同的刀片机柜中。
在本发明的一个或多个实施例中,针对每个虚拟网络路径分别应用VNIC设置。例如,不同的带宽限制可用于虚拟网络路径R(636)和虚拟网络路径S(638)。因而,虚拟网络路径可以被认为是包括很多与常规网络路径(例如以太网线缆)相同的特征,尽管常规网络线路在刀片机柜中并不使用。然而,在机柜外,例如在物理网络接口(626)与客户端O(628)和/或客户端P(630)之间,可能仍需要常规网络线路。
图6C示出从使用如图6B所示的虚拟网络路径R(636)、虚拟网络路径S(638)和虚拟线路(632)得出的虚拟网络拓扑(640)的示图。虚拟网络拓扑(640)允许各种网络组件(即,路由器(602)、防火墙(604)、应用服务器M(606)、应用服务器N(608)、客户端O(628)和客户端P(630))以类似于常规有线网络的方式交互。然而,如上面所讨论,位于刀片机柜内的组件(即,路由器(602)、防火墙(604)、应用服务器M(606)和应用服务器N(608))之间的通信无需使用常规网络线路实现。
在本发明的一个实施例中,使用传输控制协议(TCP)和因特网协议(IP),可以在刀片机柜中不同刀片上运行的虚拟机之间传输数据。而且,可以使用低开销数据传输方式在虚拟机之间传输数据。尤其是,数据可以直接从一个刀片上的物理存储器传输到另一刀片上的物理存储器。
更具体而言,虚拟机(或其中执行的应用)可以建立与另一虚拟机的TCP连接,且然后,使用TCP连接执行零拷贝握手。在本发明的一个实施例中,零拷贝握手涉及判断虚拟机是否能够使用低开销数据传输通信且虚拟机(或其中运行的应用)是否希望使用低开销数据传输来传输数据。在本发明的一个实施例中,虚拟机可以使用TCP/IP上的数据传输与使用低开销数据传输的数据传输的组合来通信。
在本发明的一个实施例中,通过允许来自与发送应用(在第一虚拟机上运行)相关联的虚拟存储器的数据直接传输到接收应用(在第二虚拟机上运行)的虚拟存储器来实现低开销数据传输,其中第一应用在第一刀片上运行且第二应用在第二刀片上运行。在本发明的一个实施例中,必须在数据传输之前提供传输所用的目标虚拟存储器地址。如果接收应用在来宾操作***(在虚拟机中运行)上运行,该来宾操作***在主机操作***中运行,则接收应用必须向发送应用(或相关进程)提供物理存储器地址(对应于与接收应用相关联的虚拟存储器)以用于将数据传输到的缓存。然而,接收应用仅能够提供用于接收应用的虚拟存储器地址。该虚拟机存储器地址必须转换一次或更多次以获得底层物理存储器地址。转换处理在下面的图7中描述。一旦完成了转换,物理存储器地址(以及任何其他必要信息)被提供到发送应用(或相关处理)以进行低开销数据传输,如图8所述。
图7示出在使用低开销数据传输的应用之前用于为应用预发布(pre-posting)缓存的方法的流程图。在本发明的一个或多个实施例中,如图7所示的步骤其中的一个或多个可以省略、重复和/或以与图7示出的顺序不同的顺序进行。相应地,本发明的实施例不应解读为限制为图7中示出的特定步骤布置。
在步骤700,应用指定预发布缓存地址。在本发明的一个实施例中,预发布缓存地址是与该应用相关的虚拟存储器中的虚拟存储器地址。在本发明的一个实施例中,预发布缓存地址可以指容量大于1MB的缓存。在步骤702,来宾操作***接收且转换预发布缓存地址为来宾OS虚拟存储器地址。在本发明的一个实施例中,来宾OS虚拟存储器地址是与来宾操作***相关的虚拟存储器中的虚拟存储器地址。
在步骤704,来宾操作***向主机操作***提供来宾OS虚拟存储器地址。在步骤706,主机操作***接收且转换来宾OS虚拟存储器地址为主机OS虚拟存储器地址。基于主机虚拟存储器地址,操作***可以判断对应于主机OS虚拟存储器地址的底层物理存储器地址。对应于主机OS虚拟存储器地址的物理存储器地址是对应于该预发布缓存地址的相同物理存储器地址。
在本发明的一个实施例中,主机操作***告知来宾操作***该预发布缓存地址已经被成功预发布。来宾操作***进而可以告知应用该预发布缓存地址已经被成功预发布。另外,主机操作***可以保持转换的物理地址和任意其他相关信息(总称为“预发布缓存信息”)。
在此阶段,该应用现在可以参与低开销数据传输。更具体而言,该应用可以使用低开销数据传输来接收数据。本领域技术人员应当意识到,对于给定应用,图7可以重复多次,以使得应用预发布在低开销数据传输中使用的多个缓存。而且,如果其他应用也使用图7示出的方法预发布缓存,则应用还可以使用低开销数据传输向另一应用发送数据。
图8示出启动和使用低开销数据传输的方法的流程图。在本发明的一个或多个实施例中,如图8所示的步骤其中的一个或多个可以省略、重复和/或以与图8示出的顺序不同的顺序进行。因此,本发明的实施例不应解读为限制为图8中示出的特定步骤布置。
在步骤800,应用A试图发起与应用B的TCP连接。在本发明的一个实施例中,应用A提供分配给其上运行应用B的虚拟机(或者分配给与该虚拟机相关的VNIC)的IP地址。另外,应用A还可以提供端口号。
在步骤802,来宾OS内核响应于来自应用A的启动TCP连接的请求,创建套接字A。在本发明的一个实施例中,套接字A是IP端口号对所标识的内核层进程,且是配置成与应用A和在主机操作***(其上运行来宾OS)上运行的VNIC接口的通信端点。在步骤804,TCP连接通过套接字A启动。在步骤806,套接字B应答该连接请求且建立TCP连接。
在步骤808,启动零拷贝握手。在本发明的一个实施例中,零拷贝握手是一种数据交换,其设计为确立两个应用是否可以使用低开销数据传输来传输数据。在本发明的一个实施例中,在应用A向应用B发送一个或多个请求以判断应用A和应用B是否可以使用低开销数据传输来传输数据时,启动零拷贝握手。在本发明的一个实施例中,所述请求可以包括在TCP SYN包中放置特定标记。
在本发明的一个实施例中,代替启动零拷贝握手的应用,在各个主机操作***(见下面的图9)上运行的VNCI可以启动且随后进行零拷贝握手。在这种情况下,在TCP连接的启动之前,应用之一或二者已经指示它们能够使用低开销数据传输来传输数据且已经执行了图7中示出的方法以获得预发布缓存信息。
在步骤810,作为零拷贝握手的一部分,判断应用A和应用B是否通过本地TCP连接相连。在本发明的一个实施例中,当应用A和应用B在相同刀片机柜内的刀片上运行时,应用A和应用B通过本地TCP连接相连。如果应用A和应用B通过本地TCP连接相连,则处理前进到步骤812。否则,处理前进到步骤820。在步骤820,应用A和应用B使用TCP/IP通信。
在步骤812,作为零拷贝握手的一部分,判断应用B是否希望参与低开销数据传输。在本发明的一个实施例中,这种判断可以包括以下判断其中任一:(i)应用B将使用低开销数据传输向应用A发送数据但是将仅经由TCP/IP从应用A接收数据;以及(ii)应用B将使用低开销数据传输向应用A发送数据且应用B将使用低开销数据传输从应用A接收数据。如果应用B希望参与低开销数据传输,则处理前进到步骤814。否则,处理前进到步骤820(即,应用B不希望参与上述方案任意一个)。在本发明的一个实施例中,通过TCP连接执行零拷贝握手。
在步骤814,应用B被提供以应用A的预发布缓存信息。在步骤816,取决于步骤812中的判断,应用A可以被提供以应用B的预发布缓存信息。在本发明的一个实施例中,在步骤814和步骤816中传输的信息通过TCP连接传递。在步骤818,应用A和应用B参与低开销数据传输。
在本发明的一个或多个实施例中,从应用A到应用B的低开销数据传输例如使用直接存储器访问(DMA)操作,其中DMA操作使用应用B的预发布缓存信息作为输入。本领域技术人员将意识到,其他写操作(例如RDMA)可用于直接从一个物理存储器位置向不同刀片上的另一物理存储器写入数据。
在本发明的一个实施例中,由在各个主机操作***上运行(或管理)的DMA(或DRMA)引擎执行低开销传输。而且,因为数据传输直接从一个刀片到另一刀片,数据传输不需要与诸如TCP的其他传输协议相关的附加处理开销。而且,在本发明的一个实施例中,低开销数据传输可以使用机柜互连的底层错误检测和校正功能来以确保数据以非破坏方式传输。
在本发明的一个实施例中,一旦来自应用B的数据使用低开销数据传输被传输到应用A,应用A被通知数据的存在。在本发明的一个实施例中,应用A从运行它的来宾操作***接收通知。而且,该来宾操作***被运行它的主机操作***通知。最后,主机操作***被应用B、运行应用B的来宾操作***或者运行上述来宾操作***(或其上运行的进程)的主机操作***通知。
在本发明的一个实施例中,应用A和应用B可以使用TCP/IP和低开销数据传输二者通信。例如,TCP/IP可用于某一类型(例如特定文件格式的所有文件)和/或小于某一大小的所有通信,且低开销数据传输可用于另一类型和/或大于某一大小的所有通信。
图9示出根据本发明的一个或多个实施例的低开销数据传输的示例。图9仅用于示例性目的且不应解读为限制本发明的范围。参考图9,刀片A(900)和刀片B(902)各自通信地耦合到机柜互连(912)。刀片A(900)中的应用A(908)被配置成经由使用套接字A(918)和套接字B(920)作为端点的TCP连接与刀片B(902)中的应用B(910)通信。具体而言,套接字A(918)被配置成通过VNIC A(926)、VNIC B(928)和机柜互连(912)向套接字B(902)传输数据。而且,应用A(908)在来宾OS A(未示出)上的虚拟机A(904)中运行,且应用B(910)在来宾OS B(未示出)上的虚拟机B(906)中运行。
基于上述内容,考虑应用A(908)和应用B(910)各自执行了图7所述的方法以产生缓存预发布信息的场景。更具体而言,应用A(908)在应用A虚拟存储器(VM)(914)中分配预发布缓存A(未示出)。与预发布缓存A相关的虚拟存储器地址然后被转换成来宾操作***VM(922)地址。来宾操作***VM(922)地址然后由主机操作***A(930)转换以从主机VM(934)获得对应于底层物理存储器地址的主机VM地址。针对应用B执行类似的过程,且使用应用B VM(916)且转换成来宾操作***VM(924)地址且最后转换成对应于主机VM(936)中的主机VM地址的底层物理存储器地址。
使用上述预发布缓存信息,根据本发明的一个实施例,应用可以按照以下方式通信。具体而言,应用A(908)被配置成请求与应用B(910)的TCP连接以用于传输数据。套接字A(918)经由VNIC A(926)至VNIC B(928)启动与套接字B(920)的TCP连接。
一旦建立TCP连接,就进行零拷贝握手。具体而言,VNIC A(926)做出应用A(908)和应用B(910)通过本地TCP连接相连的判断。做出应用B(910)将使用低开销数据传输向应用A(908)发送数据且应用B(910)将使用低开销数据传输从应用A(908)接收数据的另一判断。
在本发明的一个或多个实施例中,VNIC A(926)然后将应用A的预发布缓存信息传送到VNIC B(928)且VNIC B(928)将应用B的预发布缓存信息传送到VNIC A(926)。两个应用然后可以使用低开销数据传输来传输数据。
在本发明的一个实施例中,来自应用B(910)的数据使用RDMA引擎传输且应用A的预发布缓存信息被直接传输到应用A的VM(914),其中RDMA引擎位于刀片B(902)中且由VNIC B(928)管理。在传输之前,VNIC A可以将从VNIC B接收的物理存储器中的位置与应用A相关的允许地址范围进行比较以判断数据是否可以被传输到预发布缓存信息指定的存储器中的位置。如果VNIC A接收的物理存储器中的位置处于允许地址范围之外,则传输被拒绝。
本发明的实施例还可用于通过使用本发明的实施例来传输数据应用以在虚拟机(例如,虚拟机A(904)和虚拟机B(906))之间传输数据。例如,参考图9,从应用A(908)向应用B(910)发送数据。应用A(908)可以通过到VNIC A(926)的连接传输数据。根据本发明的实施例,VNIC A(926)获得用于虚拟机B(906)的预发布缓存且随后例如使用RDMA引擎直接将数据传输到虚拟来宾OSB VM(924)。当接收时,数据被拷贝到应用B VM(916)。在这种情形中,与应用相对,虚拟机知道使用低开销数据传输来传输数据的能力。然而,应用则不知道这种功能性。而且,在该场景中,应用不需要包括预发布缓存的功能性。而是,虚拟机需要包括预发布缓存的功能性。
本领域技术人员将意识到,尽管使用刀片来描述本发明,本发明可以扩展为与非刀片的其他计算机***一起使用。具体而言,本发明可以扩展到至少包括存储器、处理器以及物理连接到和通过机柜互连通信的机制的任意计算机。这种计算机的示例包括但不限于多处理器服务器、网络电器以及轻量化计算装置(例如,仅包括存储器、处理器、物理连接到且通过机柜互连通信的机制)以及使得上述组件实现交互的必要硬件。
而且,本领域技术人员应当意识到,如果非刀片的一个或多个计算机不用于实现本发明,则可以使用适当的机柜来代替刀片机柜。
包含软件指令的计算机程序产品可以执行本发明的实施例。软件指令可以存储在诸如光盘(CD)、磁盘、磁带或任意其他计算机可读存储装置的计算机可读存储介质上。
尽管参考有限数目的实施例描述了本发明,在获知本公开的益处之后,本领域技术人员将意识到可以设计其他实施例而不偏离此处公开的本发明的范围。因此,本发明的范围仅由所附权利要求限定。
Claims (17)
1.一种用于低开销数据传输的方法,包含:
由第一应用启动与第二应用的传输通信协议TCP连接,其中第一应用在第一虚拟机中在第一计算机上运行,第二应用在第二虚拟机中在第二计算机上运行,且第一计算机和第二计算机位于机柜中且通过机柜互连通信;
响应于所述启动,建立第一应用和第二应用之间的TCP连接;
判断所述第一计算机和所述第二计算机位于所述机柜中;
由第一应用向第二应用提供预发布缓存信息,其中所述预发布缓存信息对应于第一计算机的物理存储器中的位置,且其中所述物理存储器中的该位置对应于第一应用的虚拟存储器地址;以及
使用预发布缓存信息由第二应用向第一应用传输数据,其中传输数据包含直接向第一计算机的物理存储器中的位置写入数据,
其中所述预发布缓存信息是通过以下步骤产生的:
在与第一应用相关的虚拟存储器中分配虚拟存储器地址;
向运行第一应用的来宾操作***提供虚拟存储器地址,其中该来宾操作***在第一虚拟机中运行;
转换虚拟存储器地址以获得与来宾操作***相关的来宾操作***虚拟存储器地址;
向其上运行来宾操作***的主机操作***提供来宾操作***虚拟存储器地址;
转换所述虚拟存储器地址以获得与主机操作***相关的主机操作***虚拟存储器地址,其中该主机操作***虚拟存储器地址对应于第一计算机的物理存储器中的所述位置。
2.根据权利要求1所述的方法,其中该预发布缓存信息通过TCP连接被提供且该预发布缓存信息被提供到第一虚拟网络接口卡VNIC。
3.根据权利要求2所述的方法,其中该第一VNIC被配置成将从第二VNIC接收的物理存储器中的位置与第一应用相关的允许地址范围进行比较以判断数据是否可以被发送到所述物理存储器中的所述位置,其中该第一VNIC位于第一计算机上。
4.根据权利要求2所述的方法,其中该第二应用向位于第二计算机上的第二虚拟网络接口卡VNIC提供与所述TCP连接相关的物理存储器的位置。
5.根据权利要求4所述的方法,其中传输数据包含:
使用远程直接存储器访问RDMA和第一计算机的物理存储器中的所述位置,由第二VNIC向第一计算机的物理存储器中的所述位置写入数据。
6.根据权利要求4所述的方法,其中第一VNIC和第二VNIC是虚拟网络路径中的节点,其中所述虚拟网络路径包含第一VNIC和第二VNIC之间的第一虚拟线路。
7.根据权利要求4所述的方法,其中第二虚拟机被配置成从第一虚拟机向第一计算机的物理存储器中的所述位置直接传输数据,其中第二VNIC使用远程直接存储器访问RDMA引擎传输所述数据。
8.根据权利要求1所述的方法,其中第一计算机和第二计算机是刀片。
9.一种用于低开销数据传输的***,包含:
机柜互连;以及
运行在第一虚拟机中的第一计算机上的第一应用以及运行在第二虚拟机中的第二计算机上的第二应用,其中第一计算机和第二计算机位于机柜中且通过机柜互连通信,
其中第一应用被配置成启动与第二应用的传输通信协议TCP连接,
其中响应于所述启动,在第一应用和第二应用之间建立所述TCP连接,
其中第一应用被配置成在第一应用被判断为在与第二应用相同的机柜上运行之后向第二应用提供预发布缓存信息,
其中所述预发布缓存信息对应于第一计算机的物理存储器中的位置且其中所述物理存储器中的所述位置对应于第一应用的虚拟存储器地址,
其中第二应用使用预发布缓存信息向第一应用传输数据,其中传输数据包含直接向第一计算机的物理存储器中的所述位置写入数据,并且
其中预发布缓存信息通过以下步骤产生:
在与第一应用相关的虚拟存储器中分配虚拟存储器地址;
向运行第一应用的来宾操作***提供虚拟存储器地址,其中该来宾操作***在第一虚拟机中运行;
转换虚拟存储器地址以获得与来宾操作***相关的来宾操作***虚拟存储器地址;
向其上运行来宾操作***的主机操作***提供来宾操作***虚拟存储器地址;
转换所述虚拟存储器地址以获得与主机操作***相关的主机操作***虚拟存储器地址,其中该主机操作***虚拟存储器地址对应于第一计算机的物理存储器中的位置。
10.根据权利要求9所述的***,其中通过所述TCP连接提供所述预发布缓存信息。
11.根据权利要求9所述的***,其中第二应用向位于第二计算机上的虚拟网络接口卡VNIC提供与所述TCP连接相关的物理存储器的位置。
12.根据权利要求11所述的***,其中传输数据包含:
使用远程直接存储器访问RDMA和第一计算机的物理存储器中的所述位置,由所述VNIC向第一计算机的物理存储器中的所述位置写入数据。
13.根据权利要求11所述的***,其中第二虚拟机被配置成从第一虚拟机向第一计算机的物理存储器中的所述位置直接传输所述数据,其中所述VNIC使用远程直接存储器访问RDMA引擎传输所述数据。
14.根据权利要求9所述的***,其中第一计算机和第二计算机是刀片。
15.一种用于低开销数据传输的***,包括:
用于利用第一应用启动与第二应用的传输通信协议TCP连接的装置,其中第一应用在第一虚拟机中在第一计算机上运行,第二应用在第二虚拟机中在第二计算机上运行,且第一计算机和第二计算机位于机柜中且通过机柜互连通信;
用于响应于所述启动,建立第一应用和第二应用之间的TCP连接的装置;
用于判断第一计算机和第二计算机位于所述机柜中的装置;
用于利用第一应用向第二应用提供预发布缓存信息的装置,其中所述预发布缓存信息对应于第一计算机的物理存储器中的位置,且其中所述物理存储器中的该位置对应于第一应用的虚拟存储器地址;
用于使用预发布缓存信息,利用第二应用向第一应用传输数据的装置,其中传输数据包含直接向第一计算机的物理存储器中的位置写入数据;以及
用于产生预发布缓存信息的装置,其中所述用于产生预发布缓存信息的装置包含:
用于在与第一应用相关的虚拟存储器中分配虚拟存储器地址的装置;
用于向运行第一应用的来宾操作***提供虚拟存储器地址的装置,其中该来宾操作***在第一虚拟机中运行;
用于转换虚拟存储器地址以获得与来宾操作***相关的来宾操作***虚拟存储器地址的装置;
用于向其上运行来宾操作***的主机操作***提供来宾操作***虚拟存储器地址的装置;
用于转换所述虚拟存储器地址以获得与主机操作***相关的主机操作***虚拟存储器地址的装置,其中该主机操作***虚拟存储器地址对应于第一计算机的物理存储器中的所述位置。
16.根据权利要求15所述的***,其中在位于第一计算机上的第一虚拟网络接口卡VNIC和位于第二计算机上的第二VNIC之间建立所述TCP连接,其中第一计算机和第二计算机是刀片。
17.根据权利要求16所述的***,其中所述用于传输所述数据的装置还包括用于使用远程直接存储器访问RDMA引擎,利用第二VNIC向第一计算机的物理存储器中的所述位置写入所述数据的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/165,312 US8739179B2 (en) | 2008-06-30 | 2008-06-30 | Method and system for low-overhead data transfer |
US12/165,312 | 2008-06-30 | ||
PCT/US2009/048594 WO2010002688A1 (en) | 2008-06-30 | 2009-06-25 | Method and system for low-overhead data transfer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102124449A CN102124449A (zh) | 2011-07-13 |
CN102124449B true CN102124449B (zh) | 2014-01-29 |
Family
ID=40941005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980131451.6A Active CN102124449B (zh) | 2008-06-30 | 2009-06-25 | 用于低开销数据传输的方法和*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US8739179B2 (zh) |
EP (1) | EP2318926B1 (zh) |
CN (1) | CN102124449B (zh) |
WO (1) | WO2010002688A1 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6718415B1 (en) | 1999-05-14 | 2004-04-06 | Acqis Technology, Inc. | Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers |
US6643777B1 (en) | 1999-05-14 | 2003-11-04 | Acquis Technology, Inc. | Data security method and device for computer modules |
US8019732B2 (en) | 2008-08-08 | 2011-09-13 | Amazon Technologies, Inc. | Managing access of multiple executing programs to non-local block data storage |
US8214576B2 (en) * | 2009-03-03 | 2012-07-03 | Vmware, Inc. | Zero copy transport for target based storage virtual appliances |
US8578083B2 (en) * | 2009-03-03 | 2013-11-05 | Vmware, Inc. | Block map based I/O optimization for storage virtual appliances |
US20100257294A1 (en) * | 2009-04-06 | 2010-10-07 | Greg Regnier | Configurable provisioning of computer system resources |
WO2010123140A1 (ja) * | 2009-04-24 | 2010-10-28 | 日本電気株式会社 | パケット通信システム、パケット通信装置、パケット通信方法、パケット通信プログラムを記録したコンピュータ読み取り可能な記録媒体 |
EP2449469B1 (en) * | 2009-06-29 | 2019-04-03 | Hewlett-Packard Enterprise Development LP | Hypervisor-based management of local and remote virtual memory pages |
US8671153B1 (en) * | 2010-08-20 | 2014-03-11 | Acqis Llc | Low cost, high performance and high data throughput server blade |
CN102457537B (zh) | 2010-10-19 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种传输控制协议的通信方法及服务器 |
US9092426B1 (en) | 2011-01-03 | 2015-07-28 | Applied Micro Circuts Corporation | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing |
US8913613B2 (en) | 2011-02-16 | 2014-12-16 | Oracle International Corporation | Method and system for classification and management of inter-blade network traffic in a blade server |
US9858241B2 (en) | 2013-11-05 | 2018-01-02 | Oracle International Corporation | System and method for supporting optimized buffer utilization for packet processing in a networking device |
US8634415B2 (en) | 2011-02-16 | 2014-01-21 | Oracle International Corporation | Method and system for routing network traffic for a blade server |
US9268590B2 (en) | 2012-02-29 | 2016-02-23 | Vmware, Inc. | Provisioning a cluster of distributed computing platform based on placement strategy |
CN102609215B (zh) * | 2012-04-11 | 2015-05-27 | 华为数字技术(成都)有限公司 | 数据处理方法及装置 |
WO2014074239A2 (en) * | 2012-09-25 | 2014-05-15 | Openpeak Inc. | Method and system for sharing vpn connections between applications |
US9489327B2 (en) | 2013-11-05 | 2016-11-08 | Oracle International Corporation | System and method for supporting an efficient packet processing model in a network environment |
CN104092661B (zh) * | 2014-06-10 | 2017-09-26 | 深信服科技股份有限公司 | 虚拟机串口的通信方法及装置 |
EP3188117B1 (en) * | 2014-10-23 | 2022-09-14 | Huawei Technologies Co., Ltd. | Electronic device and graphics processing unit card |
US20160285970A1 (en) * | 2015-03-27 | 2016-09-29 | International Business Machines Corporation | Network communication between virtual machine applications via direct memory access |
US10222992B2 (en) | 2016-01-30 | 2019-03-05 | Western Digital Technologies, Inc. | Synchronization method and apparatus for an interconnection network using parallel-headerless TDMA routing |
US10644958B2 (en) | 2016-01-30 | 2020-05-05 | Western Digital Technologies, Inc. | All-connected by virtual wires network of data processing nodes |
WO2017137093A1 (en) * | 2016-02-12 | 2017-08-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for forwarding an incoming byte stream between a first workload and a second workload by means of a virtual switch |
CN106383747A (zh) * | 2016-08-31 | 2017-02-08 | 华为技术有限公司 | 一种计算资源调度方法及装置 |
US11507404B2 (en) * | 2016-12-28 | 2022-11-22 | Intel Corporation | Virtualized remote direct memory access |
CN108287723B (zh) * | 2016-12-30 | 2022-07-12 | 华为技术有限公司 | 一种应用交互方法、装置、物理机及*** |
WO2020000489A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 一种pcie发送、接收方法及装置、设备和*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1893437A (zh) * | 2005-07-01 | 2007-01-10 | 中国科学院声学研究所 | 一种基于传输网络的流媒体业务传输平台*** |
CN101162971A (zh) * | 2007-10-30 | 2008-04-16 | 华为技术有限公司 | 数据传输的方法、设备及*** |
Family Cites Families (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6070219A (en) | 1996-10-09 | 2000-05-30 | Intel Corporation | Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller |
US6714960B1 (en) | 1996-11-20 | 2004-03-30 | Silicon Graphics, Inc. | Earnings-based time-share scheduling |
DE19654846A1 (de) | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
US6041053A (en) | 1997-09-18 | 2000-03-21 | Microsfot Corporation | Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards |
US6131163A (en) | 1998-02-17 | 2000-10-10 | Cisco Technology, Inc. | Network gateway mechanism having a protocol stack proxy |
CA2236188C (en) | 1998-04-28 | 2002-10-01 | Thomas Alexander | Firmware controlled transmit datapath for high-speed packet switches |
US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
JP2000020490A (ja) * | 1998-07-01 | 2000-01-21 | Fujitsu Ltd | 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体 |
US6269401B1 (en) | 1998-08-28 | 2001-07-31 | 3Com Corporation | Integrated computer system and network performance monitoring |
US6600721B2 (en) | 1998-12-31 | 2003-07-29 | Nortel Networks Limited | End node pacing for QOS and bandwidth management |
US6757731B1 (en) | 1999-02-25 | 2004-06-29 | Nortel Networks Limited | Apparatus and method for interfacing multiple protocol stacks in a communication network |
US6771595B1 (en) | 1999-08-31 | 2004-08-03 | Intel Corporation | Apparatus and method for dynamic resource allocation in a network environment |
WO2001025920A1 (en) | 1999-10-05 | 2001-04-12 | Ejasent, Inc. | Virtual resource id mapping |
US7046665B1 (en) | 1999-10-26 | 2006-05-16 | Extreme Networks, Inc. | Provisional IP-aware virtual paths over networks |
JP3817400B2 (ja) | 2000-01-11 | 2006-09-06 | 富士通株式会社 | ラベルスイッチングシステムにおける明示ルート指定方法及びパケット中継装置 |
US6831893B1 (en) | 2000-04-03 | 2004-12-14 | P-Cube, Ltd. | Apparatus and method for wire-speed classification and pre-processing of data packets in a full duplex network |
US6985937B1 (en) | 2000-05-11 | 2006-01-10 | Ensim Corporation | Dynamically modifying the resources of a virtual server |
US6594775B1 (en) | 2000-05-26 | 2003-07-15 | Robert Lawrence Fair | Fault handling monitor transparently using multiple technologies for fault handling in a multiple hierarchal/peer domain file server with domain centered, cross domain cooperative fault handling mechanisms |
KR20020017265A (ko) | 2000-08-29 | 2002-03-07 | 구자홍 | 동일 아이피 서브넷상에 구성된 서로 다른 가상랜 사이의통신방법 |
US7213098B2 (en) * | 2000-11-28 | 2007-05-01 | Sun Microsystems, Inc. | Computer system and method providing a memory buffer for use with native and platform-independent software code |
US7142508B2 (en) | 2000-12-22 | 2006-11-28 | Radiance Technologies, Inc. | System and method for controlling data transfer rates on a network |
US6944168B2 (en) | 2001-05-04 | 2005-09-13 | Slt Logic Llc | System and method for providing transformation of multi-protocol packets in a data stream |
US7620955B1 (en) | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
JP3465703B2 (ja) | 2001-07-18 | 2003-11-10 | 日本電気株式会社 | 共通チャネルフロー制御方法 |
US20030037154A1 (en) | 2001-08-16 | 2003-02-20 | Poggio Andrew A. | Protocol processor |
US7318095B2 (en) | 2001-11-21 | 2008-01-08 | Clearcube Technology, Inc. | Data fail-over for a multi-computer system |
US7260102B2 (en) | 2002-02-22 | 2007-08-21 | Nortel Networks Limited | Traffic switching using multi-dimensional packet classification |
US7177311B1 (en) | 2002-06-04 | 2007-02-13 | Fortinet, Inc. | System and method for routing traffic through a virtual router-based network switch |
JP3789395B2 (ja) | 2002-06-07 | 2006-06-21 | 富士通株式会社 | パケット処理装置 |
US7111303B2 (en) | 2002-07-16 | 2006-09-19 | International Business Machines Corporation | Virtual machine operating system LAN |
KR100481614B1 (ko) | 2002-11-19 | 2005-04-08 | 한국전자통신연구원 | 서비스 거부와 분산 서비스 거부 공격으로부터 정상트래픽을 보호하는 방법 및 그 장치 |
US7835363B2 (en) | 2003-02-12 | 2010-11-16 | Broadcom Corporation | Method and system to provide blade server load balancing using spare link bandwidth |
US20040210623A1 (en) | 2003-03-06 | 2004-10-21 | Aamer Hydrie | Virtual network topology generation |
US7114096B2 (en) | 2003-04-02 | 2006-09-26 | International Business Machines Corporation | State recovery and failover of intelligent network adapters |
US7356818B2 (en) | 2003-06-24 | 2008-04-08 | International Business Machines Corporation | Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor |
JP4053967B2 (ja) | 2003-11-20 | 2008-02-27 | 株式会社日立コミュニケーションテクノロジー | Vlanサーバ |
WO2005057318A2 (en) | 2003-12-11 | 2005-06-23 | Bladefusion Technologies 2003 Ltd. | Method and an apparatus for controlling executables running on blade servers |
US7752635B2 (en) | 2003-12-18 | 2010-07-06 | Intel Corporation | System and method for configuring a virtual network interface card |
KR100608904B1 (ko) | 2003-12-18 | 2006-08-04 | 한국전자통신연구원 | 서비스 품질 보장을 위한 시스템 및 방법 |
US7633955B1 (en) | 2004-02-13 | 2009-12-15 | Habanero Holdings, Inc. | SCSI transport for fabric-backplane enterprise servers |
US8838743B2 (en) | 2004-02-13 | 2014-09-16 | Intel Corporation | Apparatus and method for a dynamically extensible virtual switch |
US8156490B2 (en) | 2004-05-08 | 2012-04-10 | International Business Machines Corporation | Dynamic migration of virtual machine computer programs upon satisfaction of conditions |
US9264384B1 (en) | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
US7515589B2 (en) | 2004-08-27 | 2009-04-07 | International Business Machines Corporation | Method and apparatus for providing network virtualization |
GB2418326B (en) | 2004-09-17 | 2007-04-11 | Hewlett Packard Development Co | Network vitrualization |
US20060070066A1 (en) | 2004-09-30 | 2006-03-30 | Grobman Steven L | Enabling platform network stack control in a virtualization platform |
US20060092928A1 (en) | 2004-10-15 | 2006-05-04 | Dell Products L.P. | System and method for providing a shareable input/output device in a PCI express environment |
US7688838B1 (en) | 2004-10-19 | 2010-03-30 | Broadcom Corporation | Efficient handling of work requests in a network interface device |
US7450498B2 (en) | 2004-10-27 | 2008-11-11 | Morgan Stanley | Fault tolerant network architecture |
US7694298B2 (en) * | 2004-12-10 | 2010-04-06 | Intel Corporation | Method and apparatus for providing virtual server blades |
CN101019405B (zh) | 2005-01-28 | 2011-09-28 | 美国博通公司 | 用于在通信网络中缓解拒绝服务的方法和*** |
US7730486B2 (en) | 2005-02-28 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | System and method for migrating virtual machines on cluster systems |
US7865908B2 (en) | 2005-03-11 | 2011-01-04 | Microsoft Corporation | VM network traffic monitoring and filtering on the host |
US20060206602A1 (en) | 2005-03-14 | 2006-09-14 | International Business Machines Corporation | Network switch link failover in a redundant switch configuration |
US20060236063A1 (en) | 2005-03-30 | 2006-10-19 | Neteffect, Inc. | RDMA enabled I/O adapter performing efficient memory management |
US7200704B2 (en) | 2005-04-07 | 2007-04-03 | International Business Machines Corporation | Virtualization of an I/O adapter port using enablement and activation functions |
US7561531B2 (en) | 2005-04-19 | 2009-07-14 | Intel Corporation | Apparatus and method having a virtual bridge to route data frames |
US7478178B2 (en) | 2005-04-22 | 2009-01-13 | Sun Microsystems, Inc. | Virtualization for device sharing |
US7525957B2 (en) | 2005-09-01 | 2009-04-28 | Emulex Design & Manufacturing Corporation | Input/output router for storage networks |
US8949364B2 (en) | 2005-09-15 | 2015-02-03 | Ca, Inc. | Apparatus, method and system for rapid delivery of distributed applications |
US20070083723A1 (en) | 2005-09-23 | 2007-04-12 | Dey Jayanta K | Highly-available blade-based distributed computing system |
US20070101323A1 (en) | 2005-10-28 | 2007-05-03 | Microsoft Corporation | Automatic virtual machine adjustments to network changes |
EP1977571A2 (en) * | 2006-01-12 | 2008-10-08 | Broadcom Israel R&D | Method and system for protocol offload and direct i/o with i/o sharing in a virtualized network environment |
US8635388B2 (en) | 2006-03-31 | 2014-01-21 | Broadcom Corporation | Method and system for an OS virtualization-aware network interface card |
US7613749B2 (en) | 2006-04-12 | 2009-11-03 | International Business Machines Corporation | System and method for application fault tolerance and recovery using topologically remotely located computing devices |
US7853958B2 (en) | 2006-06-28 | 2010-12-14 | Intel Corporation | Virtual machine monitor management from a management service processor in the host processing platform |
US7643482B2 (en) | 2006-06-30 | 2010-01-05 | Sun Microsystems, Inc. | System and method for virtual switching in a host |
US7788411B2 (en) | 2006-07-20 | 2010-08-31 | Oracle America, Inc. | Method and system for automatically reflecting hardware resource allocation modifications |
US8005022B2 (en) | 2006-07-20 | 2011-08-23 | Oracle America, Inc. | Host operating system bypass for packets destined for a virtual machine |
US8392565B2 (en) | 2006-07-20 | 2013-03-05 | Oracle America, Inc. | Network memory pools for packet destinations and virtual machines |
US8819242B2 (en) * | 2006-08-31 | 2014-08-26 | Cisco Technology, Inc. | Method and system to transfer data utilizing cut-through sockets |
US7552298B2 (en) * | 2006-09-28 | 2009-06-23 | Broadcom Corporation | Method and system for deferred pinning of host memory for stateful network interfaces |
US8214509B2 (en) * | 2006-10-02 | 2012-07-03 | Microsoft Corporation | Receive coalescing and direct data placement |
US7926067B2 (en) * | 2006-11-28 | 2011-04-12 | Broadcom Corporation | Method and system for protocol offload in paravirtualized systems |
US7664089B2 (en) | 2007-01-12 | 2010-02-16 | Hitachi Ltd. | System and method for using an adaptive hybrid coordination function (HCF) in an 802.11E wireless LAN |
WO2008093174A1 (en) | 2007-02-02 | 2008-08-07 | Groupe Des Ecoles Des Telecommuinications (Get) Institut National Des Telecommunications (Int) | Autonomic network node system |
US20080192648A1 (en) | 2007-02-08 | 2008-08-14 | Nuova Systems | Method and system to create a virtual topology |
US8305879B2 (en) | 2007-03-30 | 2012-11-06 | International Business Machines Corporation | Peripheral component switch having automatic link failover |
US7925795B2 (en) | 2007-04-30 | 2011-04-12 | Broadcom Corporation | Method and system for configuring a plurality of network interfaces that share a physical interface |
US8930522B2 (en) | 2007-06-29 | 2015-01-06 | Alcatel Lucent | Replica/cache locator, an overlay network and a method to locate replication tables and caches therein |
US7979739B2 (en) | 2007-11-13 | 2011-07-12 | Hewlett-Packard Development Company, L.P. | Systems and methods for managing a redundant management module |
-
2008
- 2008-06-30 US US12/165,312 patent/US8739179B2/en active Active
-
2009
- 2009-06-25 CN CN200980131451.6A patent/CN102124449B/zh active Active
- 2009-06-25 EP EP09774139.1A patent/EP2318926B1/en active Active
- 2009-06-25 WO PCT/US2009/048594 patent/WO2010002688A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1893437A (zh) * | 2005-07-01 | 2007-01-10 | 中国科学院声学研究所 | 一种基于传输网络的流媒体业务传输平台*** |
CN101162971A (zh) * | 2007-10-30 | 2008-04-16 | 华为技术有限公司 | 数据传输的方法、设备及*** |
Also Published As
Publication number | Publication date |
---|---|
US8739179B2 (en) | 2014-05-27 |
WO2010002688A1 (en) | 2010-01-07 |
EP2318926A1 (en) | 2011-05-11 |
CN102124449A (zh) | 2011-07-13 |
EP2318926B1 (en) | 2018-05-09 |
US20090328073A1 (en) | 2009-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102124449B (zh) | 用于低开销数据传输的方法和*** | |
CN109120494B (zh) | 在云计算***中接入物理机的方法 | |
CN102017544B (zh) | 卸载网络处理的方法和*** | |
Weerasinghe et al. | Enabling FPGAs in hyperscale data centers | |
JP5792894B2 (ja) | ポート拡張トポロジ情報の取得用方法、システム及び制御ブリッジ並びにアップリンクポートの処理方法及びシステム | |
US9571301B2 (en) | System and method for a multi-tenant datacenter with layer 2 cloud interconnection | |
CN107078969A (zh) | 实现负载均衡的计算机设备、***和方法 | |
WO2006004780A1 (en) | Advanced switching peer-to-peer protocol | |
TW201217983A (en) | Register access in distributed virtual bridge environment | |
US10362120B2 (en) | Distributed gateways with centralized data center for high throughput satellite (HTS) spot beam network | |
US8886838B2 (en) | Method and system for transferring packets to a guest operating system | |
US10372633B1 (en) | Interconnection of peripheral devices on different electronic devices | |
CN105556929A (zh) | 在云计算***中运行应用的网络元件和方法 | |
WO2021185083A1 (zh) | Vnf实例化方法及装置 | |
EP4191907A1 (en) | Vnf instantiation method and apparatus | |
US7350014B2 (en) | Connecting peer endpoints | |
WO2021022947A1 (zh) | 一种部署虚拟机的方法及相关装置 | |
WO2021244483A1 (zh) | 一种虚拟化的网络服务的部署方法及装置 | |
WO2022126389A1 (zh) | 建立网络连接的方法及装置 | |
WO2021057650A1 (zh) | 数据访问方法、装置、***、电子设备及计算机可读介质 | |
CN118118348A (zh) | 一种虚拟化网络功能vnf的实例化方法及装置 | |
ERLANGER | Getting Off the Bus. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |