New! View global litigation for patent families

CN104395895A - Systems and methods for input/output virtualization - Google Patents

Systems and methods for input/output virtualization Download PDF

Info

Publication number
CN104395895A
CN104395895A CN 201380033532 CN201380033532A CN104395895A CN 104395895 A CN104395895 A CN 104395895A CN 201380033532 CN201380033532 CN 201380033532 CN 201380033532 A CN201380033532 A CN 201380033532A CN 104395895 A CN104395895 A CN 104395895A
Authority
CN
Grant status
Application
Patent type
Prior art keywords
processing
vnics
virtual
plurality
complex
Prior art date
Application number
CN 201380033532
Other languages
Chinese (zh)
Inventor
马克·赫梅尔
大卫·梅休
迈克尔·奥斯本
安东·切诺夫
文卡塔·克里希纳
Original Assignee
超威半导体公司
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

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q1/00Details of selecting apparatus or arrangements for establishing connections among stations for the purpose of transferring information via these connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0058Bus-related hardware virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATIONS NETWORKS
    • H04W76/00Connection management, e.g. connection set-up, manipulation or release
    • Y02D10/14
    • Y02D10/151

Abstract

Described is an aggregation device comprising a plurality of virtual network interface cards (vNICs) and an input/output (I/O) processing complex. The vNICs are in communication with a plurality of processing devices. Each processing device has at least one virtual machine (VM). The I/O processing complex is between the vNICs and at least one physical NIC. The I/O processing complex includes at least one proxy NIC and a virtual switch. The virtual switch exchanges data with a processing device of the plurality of processing devices via a communication path established by a vNIC of the plurality of vNICs between the at least one VM and at least one proxy NIC.

Description

用于输入/输出虚拟化的系统和方法发明领域 An input / output system and method Field of the Invention virtualization

[0001] 本发明一般来说涉及虚拟化网络,并且更具体来说涉及用于输入/输出(I/O)虚拟化的系统和方法。 [0001] The present invention generally relates to virtual networks, and more particularly relates to a system and method for virtualization of input / output (I / O) is used.

技术背景 technical background

[0002] 数据中心通常是提供支持企业和组织的互联网和内联网服务的集中式设施。 [0002] Data centers typically provide support for businesses and organizations of the Internet and Intranet services centralized facilities. 典型的数据中心可装有各种类型的电子设备,如计算机、域名系统(DNS)服务器、网络交换机、路由器、数据存储装置等。 A typical data center may be provided with various types of electronic equipment such as computers, Domain Name System (DNS) servers, network switches, routers, data storage devices. 给定的数据中心可具有成百上千个互连的服务器节点,所述服务器节点经由包括交换机、路由器等的交换体系结构来彼此通信并且与外部装置通信。 Given data center may have hundreds or thousands of interconnected server node, the server node to communicate with each other via a switching architecture, including switches, routers and communication with an external device. 数据中心可被配置用于虚拟化,从而容许服务器节点共享网络接口卡(NIC)、硬盘驱动器或其它硬件。 Data center may be configured to virtualize, allowing the server nodes share a network interface card (the NIC), a hard disk drive or other hardware. 虚拟化环境通常需要较少的硬件,进而减少功耗、所占空间、电缆敷设和运行数据中心的相关成本。 Virtualized environments typically require less hardware, thereby reducing the costs associated with power consumption, footprint, cabling and data center operations.

[0003] 实施方案概述 [0003] Overview of embodiment

[0004] 根据一个方面,提供一种包括多个虚拟网络接口卡(vNIC)和输入/输出(I/O)处理复合体的集合装置。 [0004] According to one aspect, there is provided an apparatus comprising a set of a plurality of virtual network interface card (vNICs) and input / output (I / O) processing complex. vNIC与多个处理装置通信。 vNIC communication with the plurality of processing devices. 每个处理装置具有至少一个虚拟机(VM)。 Each processing device has at least one virtual machine (VM). I/O处理复合体逻辑上介于vNIC与至少一个物理NIC之间。 I / O processing between the at least one physical NIC vNIC interposed between the complex logic. I/O处理复合体包括至少一个代理NIC和虚拟交换机。 I / O processing complex agent comprises at least one virtual NIC and switch. 虚拟交换机经由多个vNIC中的vNIC在至少一个VM与至少一个代理NIC之间建立的通信路径与多个处理装置中的处理装置交换数据。 Virtual switch exchange data via a communication path in the plurality vNIC vNIC established between the VM and the at least a plurality of the at least one NIC proxy processing means processing apparatus.

[0005] 根据另一个方面,提供一种包括多个服务器节点和集合装置的服务器集合系统。 [0005] According to another aspect, there is provided a server system a set of a plurality of nodes and a set of server devices include. 每个服务器节点具有至少一个虚拟机(VM)。 Each server node has at least one virtual machine (VM). 集合装置耦接在多个服务器节点之间并且包括:与服务器节点通信的多个虚拟网络接口卡(vNIC);以及输入输出(I/O)处理复合体。 Collection device is coupled between a plurality of server nodes and comprising: a plurality of nodes in communication with a server virtual network interface card (vNICs); and input and output (I / O) processing complexes. I/O处理复合体包括至少一个代理NIC和虚拟交换机,所述虚拟交换机经由多个vNIC中的vNIC在至少一个VM与至少一个代理NIC之间建立的通信路径与多个服务器节点中的服务器节点交换数据。 I / O switch comprises a plurality of processing complex vNIC vNIC server node of the at least one VM in a communication path established between the NIC and the at least one agent in the plurality of server nodes via at least one proxy NIC and a virtual switch, the virtual exchange data.

[0006] 根据一个方面,提供一种在虚拟化网络中执行I/O操作的方法。 [0006] According to one aspect, there is provided a method of operating the I O / execute virtual network. 所述方法包括在集合装置处创建虚拟交换机以及在服务器节点处的虚拟机与集合装置处的虚拟交换机之间形成通信路径。 The method includes creating a virtual device set at the switch and forming a communication path between the virtual machine and the virtual switch set at the apparatus at a server node.

[0007] 根据一个方面,提供一种包括计算机可读存储介质的计算机程序产品,所述计算机可读存储介质体现有计算机可读程序代码。 [0007] According to one aspect, there is provided a computer readable storage medium comprising a computer program product, the computer readable storage medium having computer readable program code embodied. 计算机可读程序代码包括被配置来在集合装置处创建虚拟交换机的计算机可读程序代码;以及被配置来在服务器节点处的虚拟机与集合装置处的虚拟交换机之间形成通信路径的计算机可读程序代码。 Computer readable program code comprising computer readable program code is configured to create a virtual switch set at the apparatus; and a computer configured to form a communication path between the virtual machine and the virtual switch device set at the server node readable code.

[0008] 根据一个方面,提供一种用于减少与I/O虚拟化操作相关联的开销的方法,所述方法包括:在服务器节点集合装置处构建并且布置虚拟交换机;以及在一个或多个服务器节点虚拟机与物理装置之间的通信信道上形成数据路径,所述物理装置与虚拟交换机通ί目。 [0008] According to one aspect, there is provided a method for reducing the I / O virtualization operations associated overhead, said method comprising: constructing virtual switch means and disposed at a server node set; and in one or more of communication channel between the nodes of the virtual machines and physical servers forming a data path means, the physical means through a virtual switch ί mesh.

[0009] 根据一个方面,提供一种集合系统,所述集合系统包括:一个或多个处理装置处的多个虚拟机;以及与所述一个或多个处理装置通信的输入/输出(I/o)处理复合体。 [0009] According to one aspect, there is provided a collection system, the collection system comprising: one or more of the plurality of virtual machines at the processing apparatus; and a plurality of the communication or processing devices with input / output (I / o) processing complexes. I/O处理复合体包括虚拟交换机。 I / O processing complex includes a virtual switch. I/o处理复合体在一个或多个虚拟机中的虚拟机与虚拟交换机之间的通信信道上建立数据路径。 I / o processing in a communication channel between one or more virtual machines in a virtual machine and the virtual switch to establish complex data path.

[0010] 图式中的若干视图的简要描述 [0010] Brief description of several views of the drawings

[0011 ] 通过参考结合附图进行的以下描述,可更好地理解本发明的以上和其它优势,在附图中相同数字指示各个图中的相同结构元件和特征。 [0011] The following description made by reference to the accompanying drawings, the foregoing may be better understood and other advantages of the present invention, in the drawings in which like numerals indicate like structural elements and features in various figures. 附图未必按比例绘制,而是将重点放在示出本发明的原理上。 Drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the present invention.

[0012] 图1是常规服务器节点的方框图; [0012] FIG. 1 is a block diagram of a conventional server node;

[0013] 图2是根据一个实施方案的计算基础设施的方框图,所述计算基础设施包括与集合系统通信的多个服务器节点; [0013] FIG. 2 is a block diagram of a computing infrastructure embodiment, the computing infrastructure comprising a plurality of servers with a set of nodes in communication system;

[0014] 图3是根据一个实施方案的I/O处理复合体的方框图; [0014] FIG. 3 is a block diagram of a complex according to one embodiment of the I / O processing;

[0015] 图4是示出根据一个实施方案的一种用于服务器节点与集合系统之间的电子通信的方法的流程图; [0015] FIG 4 is a flowchart illustrating a method of an electronic communication between the server node and a system for collection of an embodiment;

[0016] 图5是示出根据一个实施方案的一种用于虚拟交换机与目的地服务器节点之间的电子通信的方法的流程图; [0016] FIG. 5 is a flowchart illustrating a method for electronic communication between the virtual switch and a destination node for a server program of the embodiment;

[0017] 图6是根据另一个实施方案的计算基础设施中的数据流路径的图解;以及 [0017] FIG. 6 is an illustration of the data flow path computation infrastructure in another embodiment; and

[0018] 图7是根据另一个实施方案的计算基础设施中的数据流路径的图解。 [0018] FIG. 7 is an illustration of the data flow path computing infrastructure in another embodiment.

[0019] 详述 [0019] detail

[0020] 以下描述中阐述特定细节,但是本领域的普通技术人员应了解的是,可在无需至少一些细节的情况下实践系统和方法。 [0020] In the following description specific details are set forth, those of ordinary skill in the art will appreciate that the practice may be performed without a system and method for at least some of the details of the case. 在一些情况下,并未详细描述已知特征或过程以免混淆本发明。 In some cases, known features have not been described in detail so as not to obscure the present invention or process.

[0021] 图1是常规服务器节点112的方框图。 [0021] FIG. 1 is a block diagram of a conventional server node 112. 服务器节点112包括一个或多个处理器102,例如微处理器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、存储器控制器、多核处理器、总线适配器和其它类型的数据处理装置或这些装置和其它装置的组合。 Server node 112 includes one or more processors 102, such as a microprocessor, a central processing unit (CPU), a graphics processing unit (the GPU), a digital signal processor (DSP), application specific integrated circuit (ASIC), a memory controller, multi-core processors, bus adapters and other types of data processing apparatus or a combination of these devices and other devices.

[0022] 服务器节点112还包括局部存储器104和网络接口卡(NIC) 164。 [0022] The server node 112 further includes a local memory 104 and a network interface card (NIC) 164. 局部存储器104可包括非易失性存储器或易失性存储器,例如动态随机存取存储器(DRAM)或静态RAM(SRAM)。 The local memory 104 may include non-volatile memory or volatile memory, such as dynamic random access memory (DRAM) or static RAM (SRAM). NIC 164可包括以太网、高速外设部件互连(PCIe)或其它网络连接器118,以用于与例如网络交换机或路由器的交换装置建立电子通信。 NIC 164 may comprise Ethernet, Peripheral Component Interconnect (PCIe) 118 or other network connection, for electronic communication with a network switch or router, for example, means for establishing exchange.

[0023] 服务器节点112可被配置用于虚拟化。 [0023] Server node 112 may be configured to virtualize. 因此,在局部存储器104处所提供的可包括一个或多个虚拟机(VM) 114-1、114-2(总体为114),从而容许不同处理环境在服务器节点112处出现。 Thus, the local memory 104 may comprise providing the premises of one or more virtual machines (VM) 114-1,114-2 (generally designated 114), thereby allowing different processing environment 112 occurs at the server node. VM 114-1、114-2可分别包括对应于虚拟机152的操作系统154-1、154-2 (总体为154)、客体装置驱动器156-1、156-2(总体为156)和虚拟网络接口卡(vNIC) 158-1、158-2(总体为158)。 VM 114-1,114-2 may include corresponding virtual machine operating system 152 154-1,154-2 (generally designated 154), the device driver object 156-1, 156-2 (collectively 156) and the virtual network interface card (vNIC) 158-1,158-2 (total 158). 服务器节点112包括超级管理程序160,所述超级管理程序提供服务器节点112的物理元件的虚拟化抽象,进而容许VM 114共享例如NIC 164的硬件资源。 Server node 112 includes a hypervisor 160, the hypervisor virtualization abstraction of a physical element providing server node 112, thereby allowing, for example, VM 114 shared NIC 164 is a hardware resource. VM114可使用如virt1的I/O虚拟化框架与超级管理程序160通信。 VM114 available virt1 as an I / O virtualization framework 160 communicates with the hypervisor.

[0024] 每个客体操作系统154-1、154-2可执行对应于一个或多个应用程序的程序代码。 [0024] 154-1,154-2 each guest OS executable program code corresponds to one or more application programs. 这一特征在如下数据中心环境中是可取的:其中一个客户可在包括VM 114-1的第一虚拟化环境处运行一组应用程序,而另一客户可在包括VM 114-2的第二虚拟化环境处运行一组不同应用程序。 This feature is desirable as a data center environment: wherein a group of client applications can run in a virtual environment comprising at a first VM 114-1, and the other may comprise a second customer's VM 114-2 virtualized environment running at a different set of applications. 超级管理程序160可包括在虚拟化环境中提供网络连接性以使得在VM114-1、114-2处运行的应用程序可在虚拟网络中通信的虚拟交换机162或vswitch。 Hypervisor 160 may include providing network connectivity in a virtual environment so that the application can be run in the virtual switch VM114-1,114-2 communication vswitch 162 or in the virtual network. 除了提供选路发送之外,服务器节点112处的虚拟交换机162还可提供如包检查和安全控制的其它特征,所述安全控制例如用于网络防火墙的访问控制列表(ACL)。 In addition to providing routing transmitted outside the virtual switch node 112 at the server 162 may also provide other safety features, such as packet inspection and control, security control, for example, the access control list for the network firewall (ACL).

[0025] 超级管理程序160和虚拟交换机162在服务器节点112处执行I/O虚拟化操作,所述I/O虚拟化操作可包括在VM 114之间使用缓慢且处理器密集型的“世界交换机”。 [0025] The hypervisor 160 and virtual switches 162 perform I / O operations at the virtual server node 112, the I / O virtualization operations may include the use of between VM 114 and slow processor intensive "world switch . " 超级管理程序160处的虚拟交换以这种方式增加开销并且降低VM I/O性能,从而导致带宽、(PU资源的低效利用,并且还导致高延迟。可能发生不一致的CPU利用,因为虚拟交换机162可假设CPU周期预期用于一个VM(例如,VM 114-1)下的客户端应用程序,这可能影响在另一个VM(例如,VM 114-2)处运行的应用程序。 Hypervisor virtual exchange 160 in such a manner to reduce overhead and increase the VM I / O performance, leading to bandwidth (PU inefficient use of resources, and also results in high latency. CPU utilization inconsistency may occur because the virtual switch 162 CPU cycles may be assumed that the intended application for a client VM (e.g., VM 114-1) at, which may affect another VM (e.g., VM 114-2) applications running at.

[0026] 为了减少与虚拟化环境相关联的CPU开销和流量延迟,希望提供NIC装置到客体虚拟机的直接通过。 [0026] In order to reduce CPU overhead and traffic virtual environment associated with a delay, it is desirable to provide means to directly NIC guest virtual machine. 然而,这样做需要绕过超级管理程序160和虚拟交换机162,从而导致与虚拟交换机162所提供的功能性和安全性有关的限制。 However, doing so requires bypass the hypervisor virtual switch 160 and 162, leading to restrictions on the functionality and safety provided by the virtual switch 162.

[0027] 本发明概念提供一种集合系统和方法,用来减少与在服务器节点VM与如NIC、基本输入输出系统(B1S)、主机总线适配器(HBA)硬盘驱动器等物理装置之间执行的I/O虚拟化操作相关联的开销,其实现方式是:在服务器节点集合系统处构建并且布置虚拟交换机,以及在从服务器节点VM到服务器节点集合系统的通信信道(例如,PCIe连接等)上形成数据路径。 [0027] The concepts of the present invention provides a set of system and method for reducing the VM and the server node, such as in the NIC, the basic input output system (B1S), I performed between the physical apparatus of a host bus adapter (HBA) of a hard disk drive / O virtualization operations associated overhead, its implementation is: Construction and disposed virtual switch server node collection system at and forming on the server node VM communication channel to the server node collecting system (eg, PCIe connection, etc.) data path. 服务器节点集合系统处的虚拟交换机从服务器节点处的超级管理程序卸载虚拟交换功能。 Virtual switching system at the server node set unmount the virtual switching functions from the hypervisor server node. 这样做减少了与服务器节点处的I/O虚拟化操作相关的CPU密集型处理,因为超级管理程序在这些操作中的作用被减少或消除。 This reduces the server node associated with the I / O operation of the virtual CPU-intensive process, because the role of the hypervisor in these operations is reduced or eliminated. 虚拟网络可因此延伸到集合装置,从而在需要电子装置之间的大规模通信的数据中心或其它环境处提供可扩缩性。 Virtual network may thus extend to the collection means, whereby the electronic device is required between the large-scale data centers or other communications environments provide the scalability. 虚拟交换机在处理ACL、监测虚拟机之间的安全性方面不受限制,或与选路发送决定、隧道效应(例如,IP或通用路由封装(GRE)隧道效应)或虚拟化主机处的相关特征相关。 Virtual switch in terms of safety between the ACL processing, the virtual machine monitor is not limited, or the transmission and routing decisions, related tunneling characteristics (e.g., IP, or Generic Routing Encapsulation (GRE) tunneling) or virtual hosts at related. 相反,这些特征在服务器节点集合系统处是可用的。 Rather, characterized in that the collecting system at the server node is available.

[0028] 如上所述,附接的服务器节点处的VM可使用virt1 (本领域中已知的用于I/O的虚拟化框架)与超级管理程序通信。 [0028] As described above, VM server node may be attached using virt1 (known in the art, a frame for virtualization of I / O) communication with the hypervisor. 本发明概念的实施方案证实,当执行I/o操作时,超级管理程序的与I/o有关的作用被减少或消除。 Embodiment of the concept of the present invention confirmed that when performing I / o operations, and I / o hypervisor related action is reduced or eliminated. 相反,例如可提供硬件来执行VM的I/O操作,从而在VM与服务器节点集合系统之间建立直接通信、减少I/O延迟和在其它情况下由VM消耗的CPU资源。 Instead, for example, provide the VM hardware to perform I / O operations, thereby establishing direct communication between the server and the set of nodes VM system, to reduce I / O latency and CPU resources consumed in other cases by the VM. 相反,服务器节点集合系统与互连的服务器节点的局部存储器通信,例如以在I/O操作中读取/写入数据。 In contrast, the local memory of the communication server nodes and server nodes interconnected collection system, for example, read I / O operation / write data. 服务器节点集合系统可包括输入/输出存储器管理单元(1MMU)。 Server node set system may include an input / output memory management unit (1MMU). 1MMU可由超级管理程序控制,例如以在提供存储器保护的同时促进跨超级管理程序的通过,例如当执行直接存储器存取(DMA)操作时。 1MMU controlled by the hypervisor, for example, by promoting cross-hypervisor memory while providing protection of, for example, when performing a direct memory access (DMA) operation. 这一特征可消除在超级管理程序的引导下发生的存储器到存储器的数据复制。 This feature eliminates the memory occur at boot hypervisor copied to the data memory. 另一特征在于,vNIC可供虚拟化服务器节点处的客体使用,从而容许在无需超级管理程序干预的情况下直接附接到集合系统。 Further characterized in that, for object vNICs virtualization server node, thereby allowing the collection system attached directly without hypervisor intervention.

[0029] 图2是根据一个实施方案的计算基础设施的方框图,所述计算基础设施包括与集合系统200通信的多个服务器节点212-1至212-N(总体为212)。 [0029] FIG. 2 is a block diagram of a computing infrastructure embodiment, the computing infrastructure comprising a plurality of server systems and a set of communication nodes 212-1 through 200 212-N (generally designated 212).

[0030] 集合系统200包括多个vNIC 222-1至222_N(总体为222)、交换机结构224和I/O处理复合体226。 [0030] The system 200 includes a plurality of set vNIC 222-1 to 222_N (generally designated 222), the switch fabric 224 and I / O processing complex 226. 服务器节点212或相关处理装置可依靠集合系统200来共享如NIC 242的物理装置,或共享与集合系统300通信的存储器、B1S或其它计算机硬件部件。 Server node 212 or the associated processing device 200 may rely on a set of systems to share the NIC 242 as a physical device or a shared memory system with a collection, or other computer hardware components B1S 300 communication.

[0031] 交换机结构224包括多个I/O端口(未示出),所述I/O端口在服务器节点212至212-N和/或一个或多个电子装置252之间交换数据或其它电子信息,所述一个或多个电子装置通过网络路由器324等与集合系统通信。 [0031] The switch structure 224 comprises a plurality of I / O ports (not shown), the I / O port between the node 212 to the server 212-N, and / or one or more electronic devices 252 to exchange data or other electronic information, the one or more electronic devices in communication with the collection system 324 via network routers and the like. 交换机结构224可包括用于在I/O端口之间移动数据的交换配置,例如纵横式交换,如本领域的普通技术人员所熟知。 The switch fabric 224 may include configuring a mobile for exchanging data between I / O port, for example, crossbar switch, as those of ordinary skill in the art. 交换机结构224和I/O处理复合体226可经由I/O通信信道227加以互连,所述I/O通信信道227提供带宽以用于在交换机结构224处的输出端口与I/O处理复合体226之间交换数据。 The switch fabric 224 and I / O processing complex 226 may be interconnected via I / O communication channel 227, the I / O bandwidth of a communication channel 227 to provide for the structure of output port 224 of the switch I / O processing complex exchange of data between the body 226.

[0032] I/O处理复合体226处理在服务器节点212与例如远程电子装置252的一个或多个外部电子装置之间交换的数据。 [0032] I / O processing complex 226 in processing data exchanged between server node 212 and a remote electronic device 252 or a plurality of external electronic devices such as. 在一个实施方案中,I/o处理复合体226包括用于在服务器节点212和/或远程电子装置252之间交换数据的网络处理器。 In one embodiment, I / o for processing complex comprising between 226 and / or remote electronic device 252 server node processor 212 to exchange data network. 在另一个实施方案中,I/O处理复合体226包括用于根据控制平面处理器(未示出)向交换机结构224执行数据传递或从交换机结构224执行数据传递的多路复用器和其它逻辑,可在所述控制平面处理器处提供多个vNIC 222-1至222-N(总体为222)。 In another embodiment, I / O 226 comprises a processing complex or from the multiplexer for transmitting structure 224 and performs data transfer according to the switch control plane processor (not shown) to perform data other switch fabric 224 logic to provide a plurality vNIC 222-1 through 222-N (generally designated 222) of said control plane processor. 这里,I/O处理复合体226可充当用于例如在两个或更多个服务器节点312之间或在服务器节点212与远程计算装置252之间将数据传输到集合系统200中并且将数据从集合系统200传输出去的暂存区。 Here, I / O processing complex 226 may serve as, for example, 312 or between node 212 and the remote server computing device in two or more server nodes to set the data transmission between system 200 and 252 from the data set transmission system 200 out of the staging area.

[0033] 每个vNIC 222可连接到下文详细描述的I/O处理复合体226处的虚拟交换机。 [0033] Each vNIC 222 may be connected to the following detailed description of the I / O processing of the virtual switch 226 complex. 每个vNIC 222可将服务器节点212处的VM 252逻辑上连接到I/O处理复合体226处的虚拟交换机处的端口。 Each vNIC 222 VM 252 may be logically connected to the server node 212 to the I / O processing at the virtual switch port 226 of the composite. 这可通过在vNIC 222与服务器节点222处的vNIC接口258-1至258-N(总体为258)之间经由PCIe连接214或相关网络连接建立通信路径以及通过vNIC接口258交换数据来达成。 This can be between 222 and 222 vNIC server node vNIC interfaces 258-1 to 258-N (generally designated 258) via a PCIe connector 214 or associated network connection and establishing a communication path interface 258 to exchange data via vNIC achieved. 每个vNIC 222可指派有一个地址,例如MAC地址和/或IP地址。 Each vNIC 222 may be assigned an address such as a MAC address and / or IP address.

[0034] 服务器节点212-1至212_N(总体为212)可为单套接字服务器或其它低功耗的基于处理器的服务器。 [0034] The server node 212-1 to 212_N (generally designated 212) may be a single socket processor-based server, or other servers low power consumption. 服务器节点212可配置为处理器群集或其它熟知的布置。 Server node 212 may be configured as a cluster of processors, or other well-known arrangements. 服务器节点212可被配置成包括例如本文所描述的一个或多个虚拟化环境。 Server node 212 may be configured to include one or more of the herein described virtualized environment. 服务器节点212可维持存储器204中所定义的环形缓冲器等,用来处理数据以用于执行数据传输和/或接收操作。 Server node 212 may maintain the ring buffer memory 204 and the like, as defined, for performing data processing for data transmission and / or reception operations.

[0035] 服务器节点212可各自包括至少一个处理器202,所述至少一个处理器202可包括一个或多个微处理器、CPU、GPU、DSP、ASIC、存储器控制器、多核处理器或其它数据处理装置或以上各者的元件的组合。 [0035] The Server node 212 may each include at least one processor 202, at least one processor 202 may include one or more microprocessors, CPU, GPU, DSP, ASIC, memory controller, a multi-core processor or other data or a combination of the above means by the processing element.

[0036] 服务器节点212各自包括局部存储器204。 [0036] each server node 212 includes a local memory 204. 局部存储器204可为非易失性或易失性存储器,例如DRAM或静态RAM (SRAM)的一个或多个信道。 Local memory 204 may be nonvolatile or volatile memory, or DRAM, for example, a static RAM (SRAM) or a plurality of channels. 服务器节点112可各自包括I/O逻辑(未示出),所述I/O逻辑包括用于管理服务器节点212与集合系统200之间的数据传递并且用于执行本领域的普通技术人员已知的其它I/O功能的南桥或相关I/O控制器。 Each server node 112 may include I / O logic (not shown), the I / O logic includes ordinary skill in the art for performing data transfer between system 212 and the set of nodes 200 and a management server for known other I / Southbridge or associated I / O controllers O functions. I/O逻辑可包括用于经由单向或双向通信路径214与集合系统200通信的以太网接口、PCIe接口和/或其它网络连接器、接口等。 I / O logic may include a unidirectional or bidirectional communication via a communication path 214 and the collection system Ethernet interface 200, the PCIe interface, and / or other network connector interface.

[0037] 存储在局部存储器204处的可包括程序代码,如与一个或多个VM 252、操作系统(未示出)和软件应用程序(未示出)(例如数据中心环境中的客户应用程序)相关的程序代码。 [0037] stored in the local memory may include program code 204, such as one or more VM 252, operating system (not shown) and software applications (not shown) (e.g., the client application data center environment ) related to the program code.

[0038] 服务器节点212的局部存储器204可包括至少一个vNIC接口258_1、258_N (总体为258)。 [0038] The local memory 212 of server node 204 may include at least one vNIC interfaces 258_1,258_N (generally designated 258). 每个vNIC接口258被构建并且布置来在服务器节点112处的一个或多个VM 252与在集合系统200处生成的vNIC 222之间建立通信。 Each vNIC interface 258 is constructed and arranged to at a server node 112 or to establish communication between the collection system 200 vNIC 222 generated at the plurality of VM 252. 在一个实施方案中,在vNIC接口258与对应vNIC 222之间建立1:1关系。 In one embodiment, the establishment of an interface 258 between the corresponding vNIC vNIC 222: 1 relationship. 在另一个实施方案中,在vNIC接口258与vNIC 222之间建立N:1关系,其中N是大于I的整数。 In another embodiment, N established between the interface 258 and vNIC vNIC 222: 1 relationship, where N is an integer greater than I,.

[0039] vNIC接口258可包括一组寄存器,所述一组寄存器包括用于控制对应vNIC 222的数据。 [0039] vNIC interface 258 may comprise a set of registers, the registers include a set of corresponding data for controlling the vNIC 222. vNIC接口258可包括用于在服务器节点存储器204与集合系统200之间传递数据的虚拟DMA引擎。 vNIC interface 258 may include a virtual DMA engine to transfer data between the server nodes 200 and 204 set the memory system. vNIC接口258可包括邮箱,所述邮箱用来与对应vNIC 222通信,例如告知VNIC222发送到vNIC 222的数据将被处理。 vNIC interface 258 may include a mailbox, the mailbox 222 for communication with a corresponding vNIC, such as sending data to inform VNIC222 vNIC 222 will be processed. vNIC接口258可包括向CPU202提供中断的中断生成器。 vNIC interface 258 may include a CPU202 provided to interrupt generator interrupts. 例如,可中断CPU 202,从而指示数据到达。 For example, the interrupt CPU 202, indicating the data arrival.

[0040] vNIC接口258可通过PCIe总线或其它通信路径214向对应vNIC222提供通知,这个通知指示数据已经移动到服务器节点212处的局部存储器204以用于传输。 [0040] vNIC interface 258 may provide a notification 214 to a corresponding vNIC222 PCIe bus or other communication path, the notification indicating that the data has been moved to a local memory 204 for transmission to the server node 212. 经由vNIC接口258及其对应vNIC 222将VM I/O直接发送到I/O处理复合体226,更具体来说,发送到I/O处理复合体226处的虚拟交换机。 VNIC via the interface 258 and corresponding to the VM vNIC 222 I / O is sent directly to the I / O processing complex 226, and more particularly, to the transmission I / O virtual switch 226 at the processing complex.

[0041] 在一个实施方案中,VM 252根据如virt1的联盟提供标准与超级管理程序260通信。 [0041] In one embodiment, VM 252 standard and communications according to the hypervisor 260 of Union as virt1. 在另一个实施方案中,VM 252根据专有通信与超级管理程序260通信。 In another embodiment, VM 252 in communication with a communication according to a proprietary hypervisor 260. 不管VM 252与超级管理程序260之间的通信方式如何,可经由VM 252与I/O处理复合体226处的虚拟交换机(未示出)之间的通信来执行I/O操作,其中超级管理程序260所执行的干扰性I/O相关通信很少或根本没有。 Regardless of how the communication between the VM 252 and the hypervisor 260, VM 252 via the I / O processing complex 226 of virtual switch (not shown) to perform communication between the I / O operation, wherein the hypervisor interfering program 260 executed by the I / O associated with little or no communication. 因此,这一特征可改进I/O性能并且减少与介于VM 252与I/O处理复合体226之间的数据传递相关的延迟。 Thus, this feature may improve I / O performance and reduce interposed between VM 252 and I / O processing between the data transfer composite 226 delays associated.

[0042] 图3是根据例如图2中示出的一个实施方案的I/O处理复合体226的方框图。 [0042] FIG. 3 is an example of an embodiment shown in FIG. 2 I / O 226 is a block diagram of the processing complex. I/O处理复合体226可包括处理器302、存储器装置304、至少一个代理NIC 306和至少一个虚拟交换机308。 I / O processing complex 226 may include a processor 302, a memory device 304, at least one agent at least one virtual NIC 306 and the switch 308.

[0043] 处理器302执行程序代码以用于执行I/O处理复合体226的功能,例如与虚拟交换机308相关的功能,如基于与数据包相关联的目的地地址将数据引导到代理NIC 306,以及协调与存储器装置304的数据传递及服务器节点212和/或外部装置之间经由NIC 242的数据传递。 [0043] The processor 302 executes program code for performing I / O processing complex 226, such as switch 308 associated with the virtual functions, such as data packet based on a destination address associated with the direct data to the agent NIC 306 NIC 242 is transmitted via the data between and and / or an external device and a data transfer coordinator server node 304 and the memory device 212. 处理器302可包括一个或多个CPU、GPU、DSP、ASIC、存储器控制器、多核处理器或其它类型的数据处理装置或以上各者的元件的组合。 The processor 302 may comprise one or a combination of elements of the data processing apparatus a plurality of more or CPU, GPU, DSP, ASIC, memory controllers, or other types of multi-core processor of each person. 处理器302可由虚拟交换机308和/或与虚拟交换机308通信的一个或多个代理NIC 306使用。 The processor 302 may be a virtual switch 308 and / or a 308 communicate with the virtual switch NIC 306 or more agents used.

[0044] 存储器装置304可存储一组描述符和/或数据,以供虚拟交换机308处理。 [0044] The memory device 304 may store a set of descriptors and / or data, a virtual switch 308 for processing. 存储器装置304可维持用于NIC 242的缓冲器,例如接收缓冲器。 The memory device 304 may maintain a buffer for NIC 242, such as receive buffer. 处理器302可将数据串流传输到虚拟交换机308。 The processor 302 may transmit the data stream to the virtual switch 308. 这一特征可消除复制缓冲器的需要,可通过创建指向存储器装置304中的原始缓冲器的新描述符在适当位置使用所述缓冲器。 This feature eliminates the need to copy the buffer, the buffer can be used in place by creating a pointing device 304 the original memory buffer a new descriptor. 在一个实施方案中,存储器装置304是I/O处理复合体226的一部分。 In one embodiment, the memory device 304 is an I / O part 226 complex process. 在另一个实施方案中,存储器装置304与I/O处理复合体226分离并且定位在别处,例如集合系统200的另一个位置处。 In another embodiment, the memory device 304 and I / O processing 226 complex separated and positioned elsewhere, for example, the collection system 200 to another location. 存储器304可包括规则、ACL或相关准则,其中包括可由虚拟交换机308用来例如处理数据的可执行CPU代码和数据。 The memory 304 may include rules, guidelines, or the ACL, which comprises a virtual switch 308 may be used, for example CPU-executable code and data for processing data. 可处理规则、ACL等来确定可将数据转递到目的地的条件,例如:是否拒绝或转递数据、将数据转递到哪里或关于如何处理含有数据的包的其它信息。 It can handle rules, like the ACL may be determined to transmit the data to the destination of the conditions, for example: whether to reject or to transmit data, or where to transmit the data to other information on how to process packets containing data.

[0045] 每个代理NIC306被构建并且布置来例如被以1:1关系直接与vNIC 222通信。 [0045] Each agent NIC306 is constructed and arranged to be for example 1: 1 222 communicate directly with vNICs relationship. vNIC 222-1可根据关于从对应服务器节点212-1接收到的数据的目的地信息在处理器302的控制下建立与代理NIC 306的通信。 vNIC 222-1 may establish communication with the proxy NIC 306 under control of processor 302 based on the destination information about the data received from the node 212-1 to the corresponding server. vNIC 222-1可向代理NIC 306发送针对接收数据的可用性的请求。 vNIC 222-1 may send a request for the availability of the received data to the proxy NIC 306. 代理NIC 306可发送指示其可接收数据的响应。 NIC 306 may send the agent indicating that it can receive the response data. 否则,vNIC 222-1可等到代理NIC 306可用来处理从vNIC 222-1接收的数据。 Otherwise, vNIC 222-1 NIC 306 may wait until the agent may be used to process data received from the vNIC 222-1. vNIC222_l和代理NIC 306可进入轮询模式,藉此,代理NIC 306可接收关于存储器位置状态的定期轮询以及针对接收并且处理来自VNIC222-1的数据的可用性的请求。 vNIC222_l agent and NIC 306 may enter the polling mode, whereby the agent NIC 306 may receive periodically poll the memory location regarding the status and the availability of a request for receiving and processing data from the VNIC222-1.

[0046] 在数据传递操作期间,代理NIC 306可将数据放置在存储器304中和/或从存储器304检索数据。 During [0046] In the data transfer operation, the agent can place data NIC 306 and / or retrieve data from the memory 304 in the memory 304. 代理NIC 306可向虚拟交换机308生成通知,这个通知指示存储器装置304处的数据可用于处理。 Agent notifies the NIC 306 may generate virtual switch 308, a notification indicating that data at the memory device 304 is available for processing. 代理NIC 306还可从存储器装置304检索数据以供虚拟交换机308处理并且用于输出到目的地。 Agent NIC 306 may also retrieve data from the memory device 304 for processing the virtual switch 308 and for outputting to a destination. 确定有足够的存储器位置可用之后,代理NIC306可将数据分配到存储器304。 That there are sufficient available memory location after the agent NIC306 can allocate data to the memory 304. 处理器302可管理代理NIC 306所执行的到存储器304的数据分配。 Data processor 302 may assign the management agent executed by NIC 306 in the memory 304.

[0047] 虚拟交换机308处理来自存储器304或代理NIC 306的数据包、数据帧、数据单元或其它数据单位。 [0047] The virtual switch 308 from the memory 304 to process packets or agent NIC 306, a data frame, a data unit, or other units of data. 虚拟交换机308可根据数据包、数据帧等的标头信息将数据选路发送到其目的地。 Virtual switch 308 may transmit the packet according to header information, data such as the data frame routing to its destination. 虚拟交换机308可在服务器节点212处的VM 252之间和/或在VM 252与例如物理NIC242或相关输出装置的物理装置之间提供逻辑连接。 Virtual switch 308 may be and / or provides a logical connection between the VM 252 and NIC242 or physical means such as physical output device associated between VM 252 212 at the server node. 集合系统200可包括各自与不同代理NIC 306相关联的多个虚拟交换机308。 Collection system 200 may include a plurality of switches each with a different virtual NIC 306 associated with the proxy 308. 从代理NIC 306到虚拟交换机308的数据路径可提供目的地信息,虚拟交换机308使用所述目的地信息来选路发送所接收的数据。 NIC data path from the agent 306 to the virtual switch 308 can provide the destination information, the virtual switch 308 uses the destination information to the selected data transmission path received. 虚拟交换机308可执行本领域的普通技术人员已知的其它功能,例如包分类、包检查和安全控制(例如,用于网络防火墙的ACL)等。 The virtual switch 308 may perform other functions to those of ordinary skill in the art, such as packet classification, packet inspection, and security control (e.g., the ACL for the network firewall) and the like. 虚拟交换机308可根据规则引擎(未示出)来处理数据,所述规则引擎例如为确定何时删除或转递数据包的防火墙规则。 Virtual switch 308 may process data in accordance with rules engine (not shown), for example, the rules engine to determine when to delete or transmitting the data packet firewall rules.

[0048] 图4是示出根据一个实施方案的一种用于服务器节点与集合系统之间的电子通信的方法400的流程图。 [0048] FIG 4 is a flowchart illustrating a method of electronic communication between the node and the set of server system 400 according to an embodiment of a scheme for. 在描述方法400的过程中,对参照图2和图3所描述的服务器节点212和集合系统200进行参考。 In describing the method 400, the server nodes 2 and 3 described with reference to FIGS. 212 and 200 refer to a collection system. 方法400可由存储在一个或多个服务器节点212的局部存储器204和/或图2和图3的集合系统200中的指令来管控。 The method 400 may be instructions stored in the one or more server nodes 200 of local memory 204, 212 and collection system / or FIG. 2 and FIG. 3 to control. 方法400的一些或全部可在芯片上、在ASIC、片上系统(SOC)或相关装置处执行。 Some or all of the method may be, is performed on a chip (SOC) or a related device 400 on the chip at the ASIC.

[0049] 在方框402处,可将数据单元、数据包、数据帧或其它固定长度或可变长度的数据单位提供到服务器节点(例如,源服务器节点212-1)的局部存储器,以用于输出到目的地(例如,服务器节点212-N或外部电子装置252)。 [0049] At block 402, the data unit can, packet, data frame or other fixed or variable length data unit provided to the server node (e.g., node 212-1 origin server) in the local memory, to use output to a destination (e.g., server node 212-N or an external electronic device 252). 源服务器节点212-1的CPU 202可生成关于局部存储器中将要从服务器节点212输出的数据的描述符或相关信息。 Source server node CPU 202 212-1 may generate a descriptor or related information about the data output from the local memory in the server node 212. 描述符可包括与将要传递到集合系统200的数据相关的命令、分散-集中列表等。 Descriptor may include a command associated with the data to be transmitted to the collection system 200, the dispersion - Concentration lists. 描述符信息可识别:月艮务器节点局部存储器204中驻留数据内容的位置;数据将要传输到的目的地地址;将要移动的数据的字节数;和/或用于将数据传输到目的地电子装置的其它相关信息。 Descriptor information may identify: a local memory that works to node 204 months in the presence of resident data content; data to be transmitted to the destination address; the number of bytes of data to be moved; and / or for transmitting data to the destination other related information to the electronic device.

[0050] 在方框404处,源服务器节点212-1的vNIC接口258-1可生成如下通知:数据位于局部存储器204中并且可用于传输。 [0050] At block 404, the source server node vNIC interfaces 258-1212-1 notification may be generated as follows: data is located in local memory 204 and is available for transmission. vNIC接口258-1可向对应vNIC 222-1通知数据用于传输的可用性。 vNIC vNIC interfaces 258-1 222-1 may correspond to a notification of the availability of data for transmission. CPU 202可生成经由vNIC接口252-1在通信路径214 (例如,PCIE总线)上发送到vNIC 222-1的邮箱写入或相关事件通知。 CPU 202 may generate a notification vNIC vNIC interfaces 252-1 to 222-1 send mailbox writing or related events on a communication path 214 (e.g., PCIE bus) via.

[0051] 在方框406处,vNIC 222-1读取并且处理描述符,以确定目的地地址或相关信息。 [0051] At block 406, vNIC 222-1 reads the descriptor and the process to determine the destination address or related information. 或者,元信息可具备识别目的地端口的传输描述符或包。 Alternatively, meta information may be provided to identify the destination port or a packet transfer descriptor. 因此,vNIC 222-1确定数据可用于传递。 Thus, vNIC 222-1 determines that the data available for transmission.

[0052] 在方框408处,vNIC 222-1可使用目的地信息来识别代理NIC 306,所述代理NIC306与特定虚拟交换机308处的接口通信,所述虚拟交换机用于处理来自源服务器节点212-1的数据。 [0052] At block 408, vNIC 222-1 destination information may be used to identify agents NIC 306, the proxy 308 and interface communication NIC306 specific virtual switch, the virtual switch for processing from the source server node 212 data -1. vNIC 222-1可根据通信模式与代理NIC 306通信。 vNIC 222-1 with the agent according to the communication modes of communication NIC 306. 根据一个模式,不管代理NIC 306的状态如何,例如不管是否存在用于数据的可用缓冲器位置,vNIC 222-1可建立与代理NIC 306的直接通信。 According to one mode, the NIC 306 regardless of the state of the agent, for example, regardless of whether there is data available buffer position, vNIC 222-1 can establish direct communication with the NIC 306 of the proxy. 根据另一个模式,可确定缓冲器位置是否可用于数据。 According to another mode, the position may be determined whether the buffer can be used for data. 如果可用,那么在vNIC 222-1与代理NIC 306之间建立通信路径。 If available, the establishment of a communication path between the agent and the vNIC 222-1 NIC 306. I/O处理复合体226可手动或自动被配置用于至少一个通信模式。 I / O processing 226 may be manually or automatically configured for the at least one composite communication mode. 因此,可形成从数据源(例如,源服务器节点212-1处的VM 252)到代理NIC 306的数据路径,所述代理NIC 306转而与虚拟交换机308通信。 Thus, the data path may be formed from a data source (e.g., source server node 212-1 VM 252) of NIC 306 to the proxy, the proxy NIC 306 in turn communicate with the virtual switch 308. 参见例如图6中示出的数据路径602。 See, for example, the data path 602 shown in FIG. 6. vNIC 222被构建并且布置来沿数据路径将数据从相关联的VM 252输出到虚拟交换机308。 vNIC 222 and is constructed to output the data along the data path from the VM 252 to the associated virtual switch 308 is disposed.

[0053] 在方框410处,代理NIC 306可将数据传递到存储器装置304处的缓冲器,以供虚拟交换机308进行后续处理。 [0053] At block 410, the proxy NIC 306 may pass the data to the buffer memory device 304, a virtual switch 308 for subsequent processing. vNIC 222-1可从服务器节点存储器204提取描述符,并且因此在代理NIC 306的引导和控制下通过建立的数据路径将数据移动到存储器装置304。 vNIC 222-1 204 may be extracted descriptor from the server node memory, and therefore under the guidance and control agents NIC 306 through the data path established move data to the memory device 304.

[0054] 在方框412处,代理NIC 306生成通知,所述通知向虚拟交换机308告知存储器装置304处可由虚拟交换机308处理的数据。 [0054] At block 412, the proxy NIC 306 generates a notification to the virtual switch 308 to inform the memory device 304 may process data virtual switch 308.

[0055] 在方框414处,虚拟交换机308可处理数据,例如检查数据包等。 [0055] At block 414, virtual switch 308 may process data, such as checking the data packets and the like. 虚拟交换机308可检查数据,以根据描述符和/或标头信息来确定是否应过滤或转递数据。 Virtual switch 308 may check the data, to determine in accordance with the descriptor and / or header information whether to transmit data or filtering. 虚拟交换机308可例如根据预先确定的政策来协调一个或多个代理NIC 306与一个或多个目的地服务器节点212存储器和/或远程计算装置252之间的数据传递。 For example, virtual switch 308 may be coordinated with one or more agents NIC 306 and one or more destination storage server nodes 212 and / or data transfer between remote computing device 252 according to the policy determined in advance. 虚拟交换机308可识别来自代理NIC 306的数据的来源,从而容许虚拟交换机308执行如维持ACL、包检查等的功能。 Virtual switch 308 may identify the source NIC 306 from the proxy data, thereby allowing the implementation of the virtual switch 308 is maintained as the ACL, the packet inspection function. 虚拟交换机308可应用预先确定的规则,处理目的地MAC地址,并且执行本领域的普通技术人员已知的其它虚拟交换机功能。 Virtual switch 308 can apply predetermined rules, the processing destination MAC address, and performs those of ordinary skill in the art other virtual switch functions. 以这种方式,可减少或消除与服务器节点超级管理程序相关的处理器密集型操作。 In this manner, the processor may be reduced or eliminated intensive operations associated with the server node hypervisor. 而且,可避免与可变负载相关的问题,例如分配给虚拟机的CPU资源被其它过程消耗。 Further, to avoid the problems associated with a variable load, such as the virtual machine assigned to CPU resources are consumed by other processes.

[0056] 图5是示出根据一个实施方案的一种用于虚拟交换机与目的地服务器节点之间的电子通信的方法500的流程图。 [0056] FIG. 5 is a diagram illustrating an embodiment of a flowchart of a method of electronic communication between the virtual switch and a destination node 500 for the server. 在描述方法500的过程中,对图2至图4进行参考。 In describing the method 500, FIG. 2 to FIG. 4 for reference. 方法500可由存储在一个或多个服务器节点212的局部存储器204和/或图2和图3的集合系统200中的指令来管控。 The method 500 may be instructions stored in the one or more server nodes 200 of local memory 204, 212 and collection system / or FIG. 2 and FIG. 3 to control. 方法500的一些或全部可在芯片上、在ASIC、片上系统(SOC)或相关装置处执行。 Some or all of the method may be, is performed on a chip (SOC) or a related device 500 on the chip at the ASIC.

[0057] 虚拟交换机308从代理NIC 306接收数据,所述代理NIC 306转而可从存储器304检索数据。 [0057] The virtual switch to receive data from the proxy 308 NIC 306, the NIC 306 in turn proxy may retrieve data from the memory 304. 虚拟交换机308可分类、选路发送或以其它方式处理数据,例如以便将数据转递到目的地服务器节点212-N或远程计算装置252。 Virtual switch 308 may be classified, routing or transmission data is processed in other ways, for example in order to transmit the data to the destination server node 212-N or remote computing device 252. 虚拟交换机308可执行其它熟知的虚拟交换机功能,如包封装/解封装、第2层安全和其它熟知的虚拟交换机特征。 Virtual switch 308 may perform other functions well known in the virtual switch, such as packet encapsulation / decapsulation, Layer 2 security features, and other well-known virtual switch.

[0058] 在方框502处,虚拟交换机308通知代理NIC 306数据可用于传输。 [0058] At block 502, virtual switch 308 NIC 306 notifies the proxy data available for transmission. 可根据如地址的目的地信息来确定代理NIC 306。 NIC 306 may be determined according to the proxy address as the destination information.

[0059] 在方框504处,代理NIC 306建立与目的地vNIC 222-N的通信。 [0059] At block 504, the agent establishes communication with the destination NIC 306 vNIC 222-N of the. 可在代理NIC306与vNIC 222-N之间的双向路径处建立通信。 In a bidirectional communication path may be established between the agent and NIC306 vNIC 222-N. 代理NIC 306可处理对应于由虚拟交换机308转递的数据有效负载的包标头或其它字段中的目的地信息,以识别要接收数据的vNIC222。 Agent NIC 306 may process the information corresponding to the destination packet header or other fields of virtual switch 308 to transmit data payload in order to receive data identifying vNIC222. 代理NIC 306可通知vNIC 222-N数据可用于由虚拟交换机308选路发送。 NIC 306 may inform the agent vNIC 222-N can be used for data transmission by the virtual routing switch 308. 处理器302可创建含有命令/分散数据的传输描述符。 The processor 302 may create transmit descriptors including a command / data dispersed. 处理器302可告知代理NIC 306传输数据可用于从虚拟交换机308输出。 The processor 302 NIC 306 may inform the agent can be used for transmitting data output from the virtual switch 308.

[0060] 在方框506处,目的地服务器节点212-N处的CPU 202可发布接收描述符,所述接收描述符指向目的地服务器节点212-N的局部存储器204中的可用数据缓冲器。 [0060] At block 506, CPU 212-N at the destination node 202 may release the server reception descriptor, the receiving data buffer available descriptor points to the destination server node local memory 204 212-N in. 接收描述符可包括缓冲器地址、长度或相关信息。 Receive descriptor may include a buffer address, length, or related information. 可通过在硬件中发生的按响门铃来发布描述符。 The descriptor may be released by pressing the bell ringing occurs in hardware.

[0061] 在方框508处,目的地vNIC 222-N可从目的地节点存储器204分配接收缓冲器,以用于从虚拟交换机308接收数据。 [0061] At block 508, the destination vNIC 222-N may receive the distribution destination node buffer 204 from the memory, for receiving data from the virtual switch 308. 如果当前没有可用的接收缓冲器,那么I/O处理复合体226可等待接收缓冲器在目的地服务器节点存储器204处变得可用。 If no receive buffer is available, the I / O processing complex 226 may wait to receive buffer memory 204 to become available at a node at a destination server.

[0062] 在方框510处,目的地vNIC 222-N提取并且处理用于接收缓冲器的描述符,并且将数据移动到目的地服务器节点212-N处的局部存储器204。 [0062] At block 510, the destination vNIC 222-N for extracting and processing the receive buffer descriptors, and move the data to the local memory 204 212-N at the destination server node.

[0063] 图6是根据另一个实施方案的计算基础设施20中的数据流路径的图解。 [0063] FIG. 6 is an illustration of the data flow path 20 of the computing infrastructure to another embodiment. 在描述方法6的过程中,对图2至图5进行参考。 In the process described in Method 6, FIG. 2 to FIG. 5 for reference.

[0064] 形成从源服务器节点212-1处的VM 252到集合系统200处的代理NIC 306-1的数据路径602。 [0064] 602 is formed from the agent 200 VM 212-1 at the server node at the source system 252 to the set of data path NIC 306-1. 可根据本文描述的方法400来形成数据路径602。 400 to 602 may form a data path according to the methods described herein. 根据沿数据路径602提供到vNIC 222-1的目的地信息来确定代理NIC 306-1。 The provided along data path 602 to the destination information to determine the agent vNIC 222-1 NIC 306-1. 代理NIC 306-1将经由数据路径602接收到的数据604输出到存储器304处的可用位置中。 Agent NIC 306-1 received via the data path 602 output data 604 to the available memory location 304.

[0065] 代理NIC 306-1向虚拟交换机308发送通知606,这个通知告知虚拟交换机308数据可用于处理。 [0065] Agent 606 NIC 306-1 sends a notification 308 to the virtual switch, the virtual switch 308 to inform the notification data is available for processing. 虚拟交换机306可处理608数据,例如将数据转递到目的地,应用规则、ACL或其它安全特征。 Virtual switch 306 may process data 608, for example, to transmit the data to the destination, application rules, the ACL or other security features. 虚拟交换机308可例如根据参照图5所描述的方框502将数据输出610到所选代理NIC 306-2。 The virtual switch 308 may be described with reference to block 502 of FIG. 5, for example, the data output 610 to the selected agent NIC 306-2.

[0066] 形成从虚拟交换机308到目的地服务器节点212-2处的目标VM252的数据路径612。 612 [0066] 308 is formed from the virtual path data to the destination switch node server 212-2 of the target VM252. 可根据本文描述的方法400和/或方法500来形成数据路径612。 A data path 612 may be formed according to the method 400 described herein and / or method 500.

[0067] 图7是根据另一个实施方案的计算基础设施20中的数据流路径的另一个图解。 [0067] FIG. 7 is an illustration of another data flow path 20 of the computing infrastructure to another embodiment.

[0068] 将数据包从远程计算机252输出702到与NIC 242通信的存储器304处的接收缓冲器。 [0068] The data packets from the remote computer 702 receives the output 252 to a buffer 304 of memory 242 in communication NIC.

[0069] 处理器302可通知704虚拟交换机308存储器304中存在用于处理的数据。 [0069] The processor 302 may be informed of the presence data 704 for processing the virtual switch 308 in the memory 304.

[0070] 虚拟交换机308可从存储器304检索706数据并且处理数据,例如选路发送、检查坐寸ο [0070] The virtual switch 308 may retrieve from memory 706 the data 304 and processes the data, for example, sending routing, check seat inch ο

[0071] 形成从代理NIC 306到目的地服务器节点212-2处的目标VM 252的数据路径708。 708 [0071] forming a data path from the proxy server NIC 306 to the destination node 212-2 of the target VM 252. 可根据本文描述的方法400和/或方法500来形成数据路径708。 A data path 708 may be formed according to the method 400 described herein and / or method 500.

[0072] 如本领域的技术人员将了解,本发明的各方面可体现为系统、方法或计算机程序产品。 [0072] As those skilled in the art will appreciate, various aspects of the invention may be embodied as a system, method or computer program product. 因此,本发明的各方面可以采用以下形式:完全硬件实施方案、完全软件实施方案(包括固件、常驻软件、微代码等)或结合软件方面与硬件方面的实施方案,所述实施方案在本文中全部可总体上称为“电路”、“模块”或“系统”。 Accordingly, aspects of the present invention may take the form of: an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or in combination with software embodiments and hardware aspects, the embodiments herein in all be referred to as "circuit," generally, "module" or "system." 另外,本发明的各方面可采用体现在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质上体现有计算机可读程序代码。 Further, aspects of the present invention may take the form of a computer program product embodied in a medium in one or more computer-readable, the one or more computer-readable program code embodied on a computer readable medium.

[0073] 可利用一个或多个计算机可读介质的任何组合。 [0073] may utilize one or more computer-readable media in any combination. 计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。 The computer-readable medium may be a computer readable signal medium or a computer-readable storage medium. 计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或装置或前述各者的任何合适组合。 The computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing it is. 计算机可读存储介质的更具体实例(非详尽列表)将包括以下介质:具有一个或多个导线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPR0M或闪存)、光纤、便携式光盘只读存储器(⑶-ROM)、光学存储装置、磁性存储装置或前述各者的任何合适组合。 The computer-readable storage medium More specific examples (a non-exhaustive list) of the medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read only memory (ROM), erasable programmable read-only memory (EPR0M or Flash memory), any suitable combination of optical fiber, a portable compact disc read-only memory (⑶-ROM), an optical storage device, magnetic storage device, or the respective persons. 在本文档的上下文中,计算机可读存储介质可以是可含有或存储供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置来使用的程序的任何有形介质。 In the context of this document, a computer-readable storage medium may contain or store instruction execution system, apparatus, or device, or any tangible medium with the instruction execution system program, apparatus, or device used.

[0074] 计算机可读信号介质可包括传播数据信号,所述传播数据信号中体现有计算机可读程序代码,例如体现在基带中或体现为载波的一部分。 [0074] A computer readable signal medium may include a propagated data signal, the data signal embodied in the propagation having computer readable program code embodied, for example, in baseband or as part of a carrier wave embodied. 这种传播信号可采用多种形式中的任一种,这些形式包括但不限于电磁形式、光学形式或所述形式的任何合适组合。 Such a propagated signal may take any of a variety of forms, such forms include, but are not limited to electromagnetic, optical, or any suitable combination of such forms. 计算机可读信号介质可以是并非计算机可读存储介质并且可传达、传播或传送供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置来使用的程序的任何计算机可读介质。 A computer readable signal medium may be any computer not a computer readable storage medium and that can communicate, propagate or transport the instruction execution system, apparatus, or device, or a program with the instruction execution system, apparatus, or device readable medium. 体现在计算机可读介质上的程序代码可以使用任何适当的介质加以传输,所述介质包括但不限于无线、有线线路、光纤电缆、RF等或前述各者的任何合适组合。 Embodied on a computer readable medium program code may be any suitable transmission medium, said medium including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing is.

[0075] 用于进行本发明各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,所述编程语目包括:面向对象的编程语目,如Java、Smalltalk、C++等;以及常规程序性编程语言,如“C”编程语言或类似的编程语言。 Computer program code [0075] for carrying out operations for aspects of the present invention may be any combination of one or more programming languages ​​to write the programming language head comprising: an object oriented programming language mesh, such as Java, Smalltalk, C ++ and the like; and a conventional procedural programming languages, such as the "C" programming language or similar programming languages. 计算机可读程序指令可以完全在用户的计算机上执行,部分地在用户的计算机上执行,作为独立的软件包执行,部分地在用户的计算机上且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。 Computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a standalone software package, partly and partly on a remote computer on the user's computer or entirely on the remote computer or server on execution. 在后一种场景中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。 In the latter scenario, the remote computer may be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (the WAN)), or may be connected to an external computer (e.g., through the Internet using an Internet Service Provider ).

[0076] 下文中参照根据本发明的实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或方框图来描述本发明的各方面。 [0076] Hereinafter with reference to a flow chart illustrating a method according to an embodiment of the present invention, apparatus (systems) and computer program products and / or block diagrams to describe various aspects of the invention. 将理解的是,流程图图解和/或方框图的每个方框以及流程图图解和/或方框图的方框组合可由计算机程序指令来实现。 It will be appreciated that the flowchart illustrations and / or block diagrams, and each block and / or combinations of blocks in the block diagram flow chart illustrating be implemented by computer program instructions. 可以将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理设备的处理器来产生一种机器,以使得经由计算机或其它可编程数据处理设备的处理器来执行的指令创建用于实现在流程图和/或方框图的一个或多个方框中规定的功能/操作的手段。 These computer program instructions may be provided to a general purpose computer, special purpose computer, a processor or other programmable data processing apparatus to produce a machine, such that the instructions through a computer or other programmable data processing apparatus create means for performing It means to implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0077] 还可以将这些计算机程序指令存储在可以引导计算机、其它可编程数据处理设备或其它装置以特定方式起作用的计算机可读介质中,以使得存储在计算机可读介质中的指令产生一种制品,所述制品包括实现在流程图和/或方框图的一个或多个方框中规定的功能/操作的指令。 [0077] These computer programs may also be stored in the instructions can direct a computer, other programmable data processing apparatus, or other apparatus to function in a particular manner a computer-readable medium to generate such a storage medium in a computer-readable instructions species article, said article comprising implement the function specified in the flowchart and / or block diagram block or blocks / instruction operation. 还可以将计算机程序指令加载到计算机、其它可编程数据处理设备或其它装置上以使一系列操作步骤在计算机、其它可编程设备或其它装置上得以执行,从而产生一种计算机实现过程,以使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或方框图的一个或多个方框中规定的功能/操作的过程。 The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions specified in the flowchart and / or one or more blocks in a block diagram / operations.

[0078] 附图中的流程图和方框图示出根据本发明的各种实施方案的系统、方法和计算机程序产品的可能实现方式的体系结构、功能性和操作。 [0078] The flowchart and block drawing illustrating a possible implementation of the architecture of the system of the various embodiments of the present invention, methods and computer program products, functionality, and operation. 就这一点来说,流程图或方框图中的每个方框可表示代码模块、代码段或代码部分,所述代码模块、代码段或代码部分包括用于实现一个或多个规定逻辑功能的一个或多个可执行指令。 In this regard, the flowchart or block diagrams each block may represent a module, segment, or portion of code, said code module, segment, or portion of code for implementing comprises a one or more specified logical function or more executable instructions. 还应指出的是,在一些替代实现方式中,方框中提到的功能可能不按图中提到的顺序出现。 It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. 例如,连续展示的两个方框实际上可以大致上同时执行,或者这些方框有时可以按相反的顺序执行,这取决于所涉及的功能性。 For example, two blocks shown in succession may in fact be substantially executed concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. 还将指出的是,方框图和/或流程图图解的每个方框以及方框图和/或流程图图解中的方框的组合可以由基于专用硬件的系统来实现,所述系统执行规定的功能或动作或者专用硬件与计算机指令的组合。 Will also be noted that the block diagram and combinations of and or / block diagram of each block of the flowchart illustrations and / or block of the flowchart illustration, can be implemented by special purpose hardware-based system by the system to perform the specified functions or action or special purpose hardware and computer instructions.

[0079] 尽管已经参照具体实施方案来展示并且描述本发明,但是本领域的技术人员应理解的是,可在不脱离本发明的精神和范围的情况下对形式和细节进行各种变更。 [0079] Although specific embodiments with reference to show and describe the present invention, those skilled in the art will appreciate that various changes may be made in form and detail without departing from the spirit and scope of the invention.

Claims (43)

1.一种集合装置,其包括: 多个虚拟网络接口卡(VNIC),其与多个处理装置通信,每个处理装置具有至少一个虚拟机(VM);以及输入/输出(I/O)处理复合体,其逻辑上介于所述vNIC与至少一个物理NIC之间,所述I/O处理复合体包括至少一个代理NIC和虚拟交换机,所述虚拟交换机经由所述多个vNIC中的vNIC在所述至少一个VM与所述至少一个代理NIC之间建立的通信路径与所述多个处理装置中的处理装置交换数据。 A collection apparatus, comprising: a plurality of virtual network interface card (the VNIC), which communicates with a plurality of processing devices, each processing device has at least one virtual machine (the VM); and input / output (I / O) processing complexes, and between said at least one physical NIC vNIC between the logic, the I / O processing complex comprises at least one agent NIC and a virtual switch, the virtual switch via said plurality of vNIC vNIC establishing a communication path for exchanging data between the NIC of the VM and the at least one agent and at least one of said plurality of processing means the processing apparatus.
2.如权利要求1所述的集合装置,其中所述I/O处理复合体还包括存储器,所述存储器临时存储在所述处理装置与所述虚拟交换机之间交换的所述数据。 2. The apparatus set forth in claim 1, wherein the I / O processing complex further comprises a memory, the data between the processing means and the virtual switch memory for temporarily storing the exchange.
3.如权利要求2所述的集合装置,其中所述至少一个代理NIC中的代理NIC将所述数据从所述通信路径输出到所述存储器。 Collection apparatus according to claim 2, wherein said at least one agent proxy NIC NIC will output the data from the memory to the communication path.
4.如权利要求2所述的集合装置,其中所述至少一个代理NIC中的代理NIC从所述存储器检索所述数据以便输出到目的地处理装置。 4. The apparatus set forth in claim 2, wherein said at least one agent NIC NIC proxy data retrieved from the memory to output to the destination processing device.
5.如权利要求2所述的集合装置,其中所述通信路径在所述处理装置处的对应于所述vNIC的vNIC接口与所述至少一个代理NIC之间延伸。 5. The apparatus set forth in claim 2, wherein the communication path corresponding to the processing means at the interface in vNIC vNIC NIC extending between the at least one agent.
6.如权利要求1所述的集合装置,其还包括耦接到所述I/O处理复合体的交换机结构,所述交换机结构包括多个端口,其中从所述多个端口中的输入端口接收所述数据并且经由所述多个端口中的输出端口将所述数据输出到所述I/o处理复合体。 6. The apparatus as set forth in claim 1 wherein the plurality of ports from said input port claims, further comprising coupled to the I / O processing of the composite switch structure, said structure comprising a plurality of switch ports, and receiving the data output via an output port of said plurality of ports of the data to the I / o processing complexes.
7.如权利要求1所述的集合装置,其中所述处理装置包括虚拟化服务器节点。 7. The apparatus set forth in claim 1, wherein said processing means comprises a virtualization server node.
8.如权利要求1所述的集合装置,其中所述虚拟交换机连接到所述至少一个物理NIC以便经由所述至少一个物理NIC在所述处理装置与远程电子装置之间交换所述数据。 8. The apparatus set forth in claim 1, wherein the virtual switch is connected to the at least one physical NIC to the at least one physical NIC exchanging the data between the device and a remote electronic device via the process.
9.如权利要求1所述的集合装置,所述集合装置还包括用于连接所述集合装置与所述多个处理装置的高速外设部件互连(PCIe)连接器。 9. The apparatus set forth in claim 1, said collection means further comprises means for connecting the set of the plurality of processing means Peripheral Component Interconnect (PCIe) connector.
10.如权利要求1所述的集合装置,其中所述集合装置处的所述虚拟交换机提供与所述交换的数据相关的安全特征。 10. The apparatus set forth in claim 1, wherein said set of virtual switch means provided at the security features associated with the exchanged data.
11.一种服务器集合系统,其包括: 多个服务器节点,每个服务器节点具有至少一个虚拟机(VM);以及集合装置,其耦接在所述多个服务器节点之间,所述集合装置包括: 多个虚拟网络接口卡(vNIC),其与所述服务器节点通信;以及输入/输出(I/O)处理复合体,所述I/O处理复合体包括至少一个代理NIC和虚拟交换机,所述虚拟交换机经由所述多个vNIC中的vNIC在所述至少一个VM与所述至少一个代理NIC之间建立的通信路径与所述多个服务器节点中的服务器节点交换数据。 A collection server system, comprising: a plurality of server nodes, each node having at least one server virtual machine (the VM); and a set of means, coupled between the plurality of server nodes, said collection means comprising: a plurality of virtual network interface card (vNICs), which communicate with the server node; and an input / output (I / O) complex processing, the I / O processing complex agent comprises at least one virtual NIC and switch, establishing a communication path via the virtual switch between said plurality of vNIC vNIC at least one of the at least one VM to the NIC proxy server nodes with the plurality of server nodes exchange data.
12.如权利要求11所述的服务器集合系统,其中所述多个服务器节点中的至少一个服务器节点包括与所述多个vNIC中的所述vNIC通信的虚拟接口,并且其中所述通信路径在所述虚拟接口与所述至少一个代理NIC之间延伸。 12. The server system set forth in claim 11, wherein said at least one server node includes a plurality of server nodes of said virtual interface vNIC vNIC in communication with said plurality, and wherein said communication path the virtual interface extending between the at least one NIC proxy.
13.如权利要求12所述的服务器集合系统,其中所述虚拟接口包括: 虚拟DMA引擎,其在所述服务器节点处的存储器与所述集合装置之间建立通信; 邮箱,其告知所述vNIC发送到所述vNIC的数据将被处理中断生成器,其向所述服务器节点处的处理器提供中断,从而指示数据到达所述服务器节点;以及一组寄存器,其包括用于控制对应于所述服务器节点的至少一个vNIC的数据。 13. The server system set forth in claim 12, wherein said virtual interface comprising: a virtual DMA engine, establishing communication between the memory node and said server means the set; mailbox, which inform the vNIC the vNIC data transmission to be processed interrupt generator, which provides an interrupt to the processor at the server node, indicating that the data reaches the server node; and a set of registers, comprising means for controlling the corresponding vNIC at least one data server node.
14.如权利要求11所述的服务器集合系统,其中所述I/O处理复合体还包括存储器,所述存储器临时存储在所述服务器节点与所述虚拟交换机之间交换的所述数据。 14. The server of claim 11, wherein the collecting system, wherein the I / O processing complex further comprises a memory, the data between the server node and the virtual switch memory for temporarily storing the exchange.
15.如权利要求14所述的服务器集合系统,其中所述至少一个代理NIC中的代理NIC将所述数据从所述通信路径输出到所述存储器。 15. The server system according to set forth in claim 14, wherein said at least one agent proxy NIC NIC will output the data from the memory to the communication path.
16.如权利要求14所述的服务器集合系统,其中所述至少一个代理NIC中的代理NIC从所述存储器检索所述数据以便输出到所述多个服务器节点中的目的地服务器节点。 16. The server system according to set forth in claim 14, wherein said at least one node of the server proxy plurality of destination nodes NIC proxy server NIC retrieved from the memory for output to the data.
17.如权利要求16所述的服务器集合系统,其中第二通信路径在所述目的地服务器节点处的对应于目的地vNIC的虚拟接口与所述代理NIC之间延伸。 17. The server system according to set forth in claim 16, wherein the second communication path in the server node corresponding to the destination at the destination vNIC extends between a virtual interface and the agent NIC.
18.如权利要求11所述的服务器集合系统,所述服务器集合系统还包括耦接到所述I/O处理复合体的交换机结构,所述交换机结构包括多个端口,其中从所述多个端口中的输入端口接收所述数据并且经由所述多个端口中的输出端口将所述数据输出到所述I/o处理复合体。 18. The server system of collection according to claim 11, said system further comprising a set of servers coupled to the I / O processing of the composite switch structure, said structure comprising a plurality of switch ports, wherein said plurality from receiving said data input port and the output port of the output port via the plurality of ports of the data to the I / o processing complexes.
19.如权利要求11所述的服务器集合系统,其中所述虚拟交换机提供与所述交换的数据相关的安全特征。 Security features related data collection system 19. The server of claim 11, wherein the virtual switch to provide the exchange.
20.一种在虚拟化网络中执行I/O操作的方法,其包括: 在集合装置处创建虚拟交换机;以及在服务器节点处的虚拟机与所述集合装置处的所述虚拟交换机之间形成通信路径。 20. A method of performing I / O operations in a virtual network, comprising: creating a virtual switch in the collection device; the set and forming between said switch means at a virtual server and the virtual machine at the node communication path.
21.如权利要求20所述的方法,其中在所述服务器节点处的所述虚拟机与所述集合装置处的所述虚拟交换机之间形成所述通信路径包括: 将数据提供到所述服务器节点处的局部存储器; 从所述服务器节点处的虚拟接口向所述集合装置处的虚拟网络接口卡(vNIC)发送通知; 在所述服务器节点处生成描述符; 读取所述描述符,以确定所述数据的目的地;以及在所述vNIC与所述集合装置处的代理NIC之间建立通信。 21. The method according to claim 20, wherein said communication path is formed between the virtual machine and the server node at the collection means at the virtual switch comprising: providing the data to the server local memory node; transmitting from said server node at a virtual interface to the collection means at the virtual network interface card (vNICs) notification; descriptor is generated at the server node; reading the descriptor, to determining a destination of the data; and establishing a communication between the agent and vNIC set means at said NIC.
22.如权利要求21所述的方法,其还包括: 由所述代理NIC通知所述虚拟交换机所述数据可用于处理。 22. The method according to claim 21, further comprising: notification by the agent, the virtual switch NIC is available for processing the data.
23.如权利要求20所述的方法,其中在服务器节点处的所述虚拟机与所述集合装置处的所述虚拟交换机之间形成所述通信路径包括: 由所述虚拟交换机通知所述集合装置处的代理NIC数据可用于从所述集合装置传输到所述服务器节点; 在所述代理NIC与所述集合装置处的目的地vNIC之间建立通信;以及在所述目的地vNIC与所述服务器节点处的虚拟接口之间建立通信。 The set of notification by the virtual switch: 23. The communication paths are formed comprising said switch means between at the virtual method of claim 20, wherein the set of the virtual machine server node NIC proxy device data may be used at the server node from the transmission set to the apparatus; communication is established between the proxy and the destination NIC vNIC means at the set; and the destination in the vNIC establishing communication between the virtual interface of the server node.
24.如权利要求20所述的方法,其还包括: 在所述服务器节点处发布接收描述符;以及由所述目的地vNIC在所述服务器节点处的存储器处分配接收缓冲器。 VNIC and assigned by the destination in a memory at the server node at the receiving buffer; publish a receive descriptor at the server node: 24. A method as claimed in claim 20, further comprising.
25.如权利要求20所述的方法,其还包括: 在所述虚拟交换机处根据源服务器节点信息来处理数据。 25. The method according to claim 20, further comprising: a virtual switch in the data processing at the source server to the node information.
26.如权利要求20所述的方法,其中所述集合装置处的所述虚拟交换机提供与所述交换的数据相关的安全特征。 26. The method according to claim 20, wherein said set of virtual switch means provided at the security features associated with the exchanged data.
27.如权利要求20所述的方法,其中形成所述通信路径包括在所述虚拟机与物理装置之间的通信信道上形成数据路径,所述物理装置与所述虚拟交换机通信。 27. The method according to claim 20, wherein said forming comprises forming a data communication path in the communication channel path between the virtual machine and the physical device of the physical device communication with the virtual switch.
28.如权利要求27所述的方法,其中所述物理装置包括网络接口卡、基本输入输出系统(B1S)、主机总线适配器(HBA)或存储装置。 28. The method according to claim 27, wherein said physical means includes a network interface card, a basic input output system (B1S), host bus adapter (HBA) or a storage device.
29.一种计算机程序产品,其包括: 体现有计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括:被配置来在集合装置处创建虚拟交换机的计算机可读程序代码;以及被配置来在服务器节点处的虚拟机与所述集合装置处的所述虚拟交换机之间形成通信路径的计算机可读程序代码。 29. A computer program product, comprising: computer-readable program embodied computer-readable code storage medium, the computer readable program code comprising: computer is configured to create a virtual switch in the set-readable program code means ; and computer readable program code is configured to form a communication path between the virtual machine server node with the apparatus set at the virtual switch.
30.一种用于减少与I/O虚拟化操作相关联的开销的方法,其包括: 在服务器节点集合装置处构建并且布置虚拟交换机;以及在一个或多个服务器节点虚拟机与物理装置之间的通信信道上形成数据路径,所述物理装置与所述虚拟交换机通信。 30. A method for reducing the overhead associated with I / O virtualization operations, comprising: constructing virtual switch means and disposed at a server node set; and the one or more server nodes of the virtual machines and physical means forming a communication channel between the data paths, the physical communication means with the virtual switch.
31.如权利要求30所述的方法,其中所述通信信道包括PCIe连接。 31. The method according to claim 30, wherein said communication channel comprises a PCIe connector.
32.如权利要求30所述的方法,其中在所述一个或多个服务器节点虚拟机与所述虚拟交换机之间形成所述数据路径包括: 从服务器节点的虚拟机向所述集合装置处的虚拟网络接口卡(vNIC)发送通知;以及在所述vNIC与所述集合装置处的代理NIC之间建立通信路径。 32. The method according to claim 30, wherein said forming comprises a data path between the one or more virtual machines and the server nodes virtual switch: to set the device at the node from the virtual machine server virtual network interface card (vNIC) transmitting notification; and establishing a communication path between the NIC proxy vNIC at the collection means.
33.如权利要求32所述的方法,其还包括: 由所述代理NIC通知所述虚拟交换机所述数据可用于处理。 33. The method according to claim 32, further comprising: notification by the virtual NIC proxy switch the said data is available for processing.
34.如权利要求30所述的方法,其中在所述一个或多个服务器节点虚拟机与所述集合装置处的所述虚拟交换机之间形成所述通信路径包括: 由所述虚拟交换机通知所述集合装置处的代理装置所述数据可用于从所述集合装置传输到所述一个或多个虚拟机处的虚拟机; 在所述代理装置与所述集合装置处的目的地虚拟装置之间建立通信;以及在所述目的地虚拟装置与所述服务器节点处的虚拟接口之间建立通信。 34. The method according to claim 30, wherein said communication path is formed between said comprises a plurality of servers or nodes of the virtual switch and the virtual machine of the apparatus set at: notification by the virtual switch said agent said data collection means may be used at the virtual machine from the apparatus to the transmission set one or more virtual machines at; the proxy device and the destination device at the set between the virtual device establishing a communication; and establishing a communication between the virtual device and the server in the destination node at virtual interface.
35.如权利要求30所述的方法,其还包括: 在所述虚拟交换机处根据源服务器节点信息来处理数据。 35. The method according to claim 30, further comprising: a virtual switch in the data processing at the source server to the node information.
36.如权利要求30所述的方法,其中所述集合装置处的所述虚拟交换机提供与所述交换的数据相关的安全特征。 36. The method according to claim 30, wherein said set of virtual switch means provided at the security features associated with the exchanged data.
37.如权利要求30所述的方法,其中所述物理装置包括网络接口卡(NIC)、基本输入输出系统(B1S)、主机总线适配器(HBA)或存储装置。 37. The method according to claim 30, wherein said physical means include a network interface card (the NIC), a basic input output system (B1S), host bus adapter (HBA) or a storage device.
38.一种集合系统,所述集合系统包括: 多个虚拟机,其在一个或多个处理装置处; 输入/输出(I/O)处理复合体,其与所述一个或多个处理装置通信,所述I/O处理复合体包括虚拟交换机,其中所述I/O处理复合体在所述一个或多个虚拟机中的虚拟机与所述虚拟交换机之间的通信信道上建立数据路径。 38. A collection system, the collection system comprising: a plurality of virtual machines, which in one or more processing device; input / output (I / O) processing complexes, with the one or more processing devices communication, the I / O processing complex includes a virtual switch, wherein the I / O processing communication channel between the virtual machine in the composite one or more virtual machines and the virtual switch in establishing a data path .
39.如权利要求38所述的集合系统,其还包括: 物理装置,其与所述I/O处理复合体通信,其中所述通信信道介于所述一个或多个虚拟机与所述物理装置之间。 39. The system set forth in claim 38, further comprising: a physical means, with the I / O complex communication processing, wherein the communication channel between the one or more virtual machines and the physical between devices.
40.如权利要求39所述的集合系统,其中所述物理装置包括网络接口卡(NIC)、基本输入输出系统(B1S)、主机总线适配器(HBA)或存储装置。 40. The system as set forth in claim 39 host bus adapter (HBA) or a storage device, wherein said physical means include a network interface card (the NIC), a basic input output system (B1S),.
41.如权利要求38所述的集合系统,其中所述I/O处理复合体还包括存储器,所述存储器临时存储在所述虚拟机、所述虚拟交换机以及所述物理装置之间交换的所述数据。 41. The system set forth in claim 38, wherein the I / O processing further comprises the composite in the virtual machine, the exchange between the virtual switch and the physical memory means, said memory for temporarily storing said data.
42.如权利要求38所述的集合系统,其中所述通信信道包括PCIe连接。 42. The system set forth in claim 38, wherein said communication channel comprises a PCIe connector.
43.如权利要求38所述的集合系统,其中所述输入/输出(I/O)处理复合体处的所述虚拟交换机提供与所述交换的数据相关的安全特征。 43. The system set forth in claim 38, wherein said input / output (I / O) processing said composite at the virtual switch to provide security features associated with the exchanged data.
CN 201380033532 2012-06-25 2013-06-10 Systems and methods for input/output virtualization CN104395895A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13531890 US8806025B2 (en) 2012-06-25 2012-06-25 Systems and methods for input/output virtualization
PCT/US2013/044914 WO2014004060A1 (en) 2012-06-25 2013-06-10 Systems and methods for input/output virtualization

Publications (1)

Publication Number Publication Date
CN104395895A true true CN104395895A (en) 2015-03-04

Family

ID=48699291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201380033532 CN104395895A (en) 2012-06-25 2013-06-10 Systems and methods for input/output virtualization

Country Status (6)

Country Link
US (1) US8806025B2 (en)
EP (1) EP2864893A1 (en)
JP (1) JP2015521779A (en)
KR (1) KR20150030738A (en)
CN (1) CN104395895A (en)
WO (1) WO2014004060A1 (en)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875204B2 (en) * 2012-05-18 2018-01-23 Dell Products, Lp System and method for providing a processing node with input/output functionality provided by an I/O complex switch
US9898317B2 (en) 2012-06-06 2018-02-20 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US8806025B2 (en) * 2012-06-25 2014-08-12 Advanced Micro Devices, Inc. Systems and methods for input/output virtualization
US20130346615A1 (en) * 2012-06-26 2013-12-26 Vmware, Inc. Storage performance-based virtual machine placement
US20140006676A1 (en) * 2012-06-28 2014-01-02 Dell Products L.P. Systems and methods for dynamic allocation of information handling resources
JP5958164B2 (en) * 2012-08-07 2016-07-27 富士通株式会社 Control apparatus, method and program, and system and information processing method
US9008085B2 (en) * 2012-08-15 2015-04-14 International Business Machines Corporation Network interface card having overlay gateway functionality
CN103227757B (en) * 2012-08-31 2016-12-28 杭州华三通信技术有限公司 OSPF packets forwarding method and apparatus
US20140280846A1 (en) * 2013-03-14 2014-09-18 Douglas Gourlay System and method for abstracting network policy from physical interfaces and creating portable network policy
US9781041B2 (en) * 2013-07-24 2017-10-03 Dell Products Lp Systems and methods for native network interface controller (NIC) teaming load balancing
US9703743B2 (en) 2014-03-31 2017-07-11 Juniper Networks, Inc. PCIe-based host network accelerators (HNAS) for data center overlay network
US9485191B2 (en) 2014-03-31 2016-11-01 Juniper Networks, Inc. Flow-control within a high-performance, scalable and drop-free data center switch fabric
US9479457B2 (en) 2014-03-31 2016-10-25 Juniper Networks, Inc. High-performance, scalable and drop-free data center switch fabric
US9294304B2 (en) * 2014-03-31 2016-03-22 Juniper Networks, Inc. Host network accelerator for data center overlay network
US20170091134A1 (en) * 2014-04-25 2017-03-30 Hitachi, Ltd. Computer and method of controlling i/o switch of computer
US9767047B2 (en) * 2014-10-03 2017-09-19 Citrix Systems, Inc. Methods and systems for filtering communication between peripheral devices and mobile computing devices
US9747240B2 (en) 2014-10-24 2017-08-29 Cisco Technology, Inc. Dynamic connection of PCIe devices and functions to an array of hosts
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
US20170039166A1 (en) * 2015-08-05 2017-02-09 Futurewei Technologies, Inc. Integration of Network Linecard (LC) to Host Operating System (OS)
US9798582B2 (en) * 2015-10-22 2017-10-24 International Business Machines Corporation Low latency scheduling on simultaneous multi-threading cores

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502884B1 (en) * 2004-07-22 2009-03-10 Xsigo Systems Resource virtualization switch
US20110090915A1 (en) * 2009-10-16 2011-04-21 Sun Microsystems, Inc. Method and system for intra-host communication
US20120005521A1 (en) * 2010-06-30 2012-01-05 Oracle America, Inc. Method and system for maintaining direct hardware access in the event of network interface card failure

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925802B2 (en) 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
US8140719B2 (en) 2007-06-21 2012-03-20 Sea Micro, Inc. Dis-aggregated and distributed data-center architecture using a direct interconnect fabric
US7945647B2 (en) * 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US7826359B2 (en) * 2008-03-24 2010-11-02 Oracle America, Inc. Method and system for load balancing using queued packet information
US8195774B2 (en) * 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US9880954B2 (en) 2008-12-01 2018-01-30 Micron Technology, Inc. Method and apparatus for providing data access
US20120072563A1 (en) * 2010-09-17 2012-03-22 Oracle International Corporation System and method for supporting well defined subnet topology in a middleware machine environment
US8806025B2 (en) * 2012-06-25 2014-08-12 Advanced Micro Devices, Inc. Systems and methods for input/output virtualization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502884B1 (en) * 2004-07-22 2009-03-10 Xsigo Systems Resource virtualization switch
US20110090915A1 (en) * 2009-10-16 2011-04-21 Sun Microsystems, Inc. Method and system for intra-host communication
US20120005521A1 (en) * 2010-06-30 2012-01-05 Oracle America, Inc. Method and system for maintaining direct hardware access in the event of network interface card failure

Also Published As

Publication number Publication date Type
US20130346531A1 (en) 2013-12-26 application
EP2864893A1 (en) 2015-04-29 application
US8806025B2 (en) 2014-08-12 grant
WO2014004060A1 (en) 2014-01-03 application
KR20150030738A (en) 2015-03-20 application
JP2015521779A (en) 2015-07-30 application

Similar Documents

Publication Publication Date Title
Fusco et al. High speed network traffic analysis with commodity multi-core systems
Egi et al. Towards high performance virtual routers on commodity hardware
US20140115578A1 (en) Providing a virtual security appliance architecture to a virtual cloud infrastructure
US8018951B2 (en) Pacing a data transfer operation between compute nodes on a parallel computer
Liu et al. High Performance VMM-Bypass I/O in Virtual Machines.
US7633955B1 (en) SCSI transport for fabric-backplane enterprise servers
US20070050520A1 (en) Systems and methods for multi-host extension of a hierarchical interconnect network
Mauch et al. High performance cloud computing
US20100223397A1 (en) Method and system for virtual machine networking
Peter et al. Arrakis: The operating system is the control plane
US20130198489A1 (en) Processing element management in a streaming data system
US8041875B1 (en) Resource virtualization switch
US8102881B1 (en) Streamlined guest networking in a virtualized environment
US20110032944A1 (en) Method and System for Switching in a Virtualized Platform
US20130086298A1 (en) Live Logical Partition Migration with Stateful Offload Connections Using Context Extraction and Insertion
US20150263991A1 (en) Physical port sharing in a link aggregation group
US20120210417A1 (en) Distributed firewall architecture using virtual machines
US20140269712A1 (en) Tagging virtual overlay packets in a virtual networking system
US20100211946A1 (en) Method and system for network abstraction and virtualization for a single operating system (os)
US20140269321A1 (en) Quantized congestion notification in a virtual networking system
US20100199275A1 (en) Server switch integration in a virtualized system
US20140321459A1 (en) Architecture for agentless service insertion
WO2013136213A1 (en) Scalable virtual appliance cloud
US20130033993A1 (en) Distributed Overlay Network Data Traffic Management by a Virtual Server
US20090031002A1 (en) Self-Pacing Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
WD01