用于输入/输出虚拟化系统中的分组管理的技术的制作方法

文档序号:13810575阅读:162来源:国知局

本申请是申请日为2012年3月19日并且申请号为201280071601.0的同名中国专利申请的分案申请。



背景技术:

虚拟机(vm)可以包括与物理机一样操作为执行程序的机器(例如,计算机)的软件实现。虚拟化计算元件包括操作系统、应用、处理器和存储器元件。虚拟化向物理计算设备的通常被称为i/o的输入/输出性能提出新的挑战。输入/输出性能对于诸如在现代数据中心和云计算基础设施中发现的那些高性能计算机系统是关键的。作为响应,已经开发了通常被称为iov的输入/输出虚拟化方法,该方法提供提取(abstract)在通信技术中利用的基本硬件接口的硬件和软件配置。按照这种方式,输入/输出设备可以被虚拟化并且在多个虚拟机当中被共享。

由于对管理关键主机资源和虚拟机功能的诸如虚拟机监控器(vmm或超级监视器)的关键部件施加的操作需求,输入/输出虚拟化技术遭受高的开销。操作需要包括分组拷贝和中断处理。具有通常被称为sr-iov的单根输入/输出虚拟化能力的设备提供被设计为限制输入/输出虚拟化系统中的虚拟机监控器干预的一组外围部件互连(pci)快速(pcie)功能,导致增加的输入/输出性能。然而,该性能增加以输入/输出虚拟化系统的降低的控制和可管理性为代价而出现。因此,输入/输出虚拟化系统的一个设计目标是提供增加的输入/输出性能,而不负面地影响系统可管理性。因此,被设计为在高性能输入/输出虚拟化系统中提供安全性、控制和可管理性的技术是期望的。

附图说明

图1说明了输入/输出虚拟化分组管理系统的实施例。

图2说明了在输入/输出虚拟化分组管理系统内可操作的具有输入/输出虚拟化能力的适配器的实施例。

图3说明了输入/输出虚拟化分组管理系统的第一操作环境的实施例。

图4说明了输入/输出虚拟化分组管理系统的第二操作环境的实施例。

图5说明了输入/输出虚拟化分组管理系统的第三操作环境的实施例。

图6说明了输入/输出虚拟化分组管理系统的第四操作环境的实施例。

图7说明了输入/输出虚拟化分组管理系统的第一逻辑流程的实施例。

图8说明了输入/输出虚拟化分组管理系统的第二逻辑流程的实施例。

图9说明了输入/输出虚拟化分组管理系统的第三逻辑流程的实施例。

图10说明了适合于虚拟化到多个虚拟机中的计算体系结构的实施例。

具体实施方式

各种实施例通常的目的在于支持多个虚拟机的虚拟化系统。某些实施例特别的目的在于用于支持通常被称为iov的输入/输出虚拟化的虚拟化系统的分组管理技术。

虚拟化系统正在面临来自现代数据中心和云使用模型的增加的输入/输出需求。也通常被称为网络虚拟化的输入/输出虚拟化已经成为虚拟化系统的必要部件。尽管输入/输出虚拟化提供许多优点,但是它也会负面地影响虚拟化环境中的i/o性能。在输入/输出虚拟化中,虚拟系统机器的物理网络接口在虚拟系统上运行的多个虚拟机(vm)当中共享。初始输入/输出虚拟化实现涉及某些输入/输出功能的软件仿真,但是由于用于存储器保护、分组拷贝和地址转换操作的虚拟机监控器(vmm)干预而遭受相当大的性能损失。示例性虚拟机监控器实现包括内核虚拟机及其virtio网络接口驱动器以及虚拟机监控器及其准虚拟化网络接口驱动器。

通常被称为sr-iov的单根输入/输出虚拟化由外围部件互连特殊兴趣组(pci-sig)单根输入/输出虚拟化和共享1.1规范(pcisr-iov)提出以便提供对于虚拟系统外围部件互连(pci)快速(pcie)物理网络接口的一组硬件和软件增强。这些增强的目的在于经过pcie网络接口卡(nic)提供输入/输出虚拟化而不要求主要虚拟机监控器干预,例如通过允许对pcienic的直接虚拟机访问(例如,经过直接存储器存取(dma)过程)。这样,单根输入/输出虚拟化展示了虚拟系统中提高的输入/输出性能和可扩展性。然而,性能提高以诸如分组过滤的网络业务管理能力为代价而出现,该网络业务管理能力在数据中心和云计算环境中是关键的。

实施例通过使用具有输入/输出虚拟化能力的设备实现软件路由技术来解决这些和其它问题。例如,实施例可以在具有单根输入/输出虚拟化能力的设备内实现软件路由技术。更具体地,软件路由技术被布置为接收被寻址到具有输入/输出虚拟化能力的设备的网络分组(例如,以太网分组),将该分组传送到被配置为根据一个或多个分组管理策略来管理分组的软件路由器,并且经由内部输入/输出虚拟化设备体系结构将被管理的分组路由到它们的目的地部件。实施例进一步提供用于管理分组并且例如经过外部网络将分组从具有输入/输出虚拟化能力的设备传输到远程设备的软件路由技术。提供用于具有输入/输出虚拟化能力的设备的分组管理功能产生虚拟计算环境内的增加的控制、可管理性和安全性,并且潜在地使数据中心和云计算环境能够是更加动态、安全、可靠和成本有效的。

例如,在一个实施例中,一种装置可以包括一个或多个收发机,其中所述一个或多个收发机中的一个可以被配置为具有输入/输出虚拟化能力的适配器。处理器电路可以耦合到所述一个或多个收发机,并且存储器单元可以耦合到所述处理器电路。所述存储器单元可以被配置为存储在所述处理器电路上可操作的分组管理应用以便应用分组管理策略并且路由从具有输入/输出虚拟化能力的适配器来回传输的分组。分组管理应用可以提供操作为接收并且转发被寻址到具有输入/输出虚拟化能力的适配器目的地的分组的代理接口上游部件;操作为接收由所述代理接口上游部件转发的分组的虚拟路由器部件,所述虚拟路由器部件用于将一个或多个分组管理策略应用到所述分组并且将所述分组路由到所述具有输入/输出虚拟化能力的适配器目的地;以及操作为接收由所述虚拟路由器路由的分组并且经由具有输入/输出虚拟化能力的适配器体系结构将所述分组传输到所述具有输入/输出虚拟化能力的适配器目的地的代理接口下游部件。按照这种方式,可以根据某些分组管理策略来管理从诸如具有单根输入/输出虚拟化能力的适配器的具有输入/输出虚拟化能力的适配器来回传输的分组以便提供包括更加安全和可管理的输入/输出虚拟化环境的虚拟计算环境。结果,所述实施例能够利用具有如本文描述的分组管理的输入/输出虚拟化的虚拟机来提高计算环境的安全性、可管理性、可扩展性或模块性。

通常参照在本文使用的标记和术语,可以按照在计算机或计算机的网络上执行的程序过程来呈现接下来的详细描述。这些过程描述和表示由本领域中的技术人员使用以便更有效地将其工作的实质传达给本领域中的其他技术人员。

过程在这里通常被设想为是导致期望结果的操作的独立序列。这些操作是要求物理量的物理操控的那些操作。通常,尽管不是必需,这些量采取能够被存储、传送、组合、比较和以其它方式进行操控的电、磁或光学信号的形式。主要由于共同使用的原因,将这些信号称为比特、值、元素、符号、字符、项、数字等等有时被证明是方便的。然而应该注意,所有这些和类似的术语应该与适当的物理量相关联,并且仅仅是应用于那些量的方便的标签。

进而,所执行的操控经常以通常与由操作人员执行的精神操作相关联的术语而被引用,例如添加或者比较。在形成一个或多个实施例的一部分的本文描述的任意操作中,操作人员没有这样的能力在大部分情况下是必要的或者是期望的。更确切地,所述操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或者类似的设备。

各种实施例还涉及用于执行这些操作的装置或系统。这一装置可以被专门构造用于所要求的目的,或者它可以包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文呈现的过程并不内在地涉及特定的计算机或其它装置。各种通用机器可以与根据本文的教导编写的程序一起使用,或者构造更专门化的装置来执行所要求的方法步骤可以证明是方便的。通过所给出的描述,对于各种这些机器的要求的结构将得到显现。

现在参照附图,其中在通篇中相似的附图标记用于指代相似的元件。在下面的描述中,为了解释的目的,阐述了许多具体细节以便提供对其的全面理解。然而,明显的是,新颖的实施例可以在没有这些具体细节的情况下被实施。在其它实例中,以方框图形式示出了公知的结构和设备,以便便于其描述。本发明应该涵盖与请求保护的主题相一致的所有修改、等效形式和可选方案。

图1说明了输入/输出虚拟化分组管理系统100的方框图。在一个实施例中,输入/输出虚拟化分组管理系统100可以包括具有处理器电路130和存储器单元150的计算设备120。计算设备120可以进一步具有安装的软件应用,包括虚拟化应用110和分组管理应用140。尽管图1所示的输入/输出虚拟化分组管理系统100具有在某一拓扑中的有限数量的元件,但是可以认识到,输入/输出虚拟化分组管理系统100可以包括在可选的拓扑中的更多或更少的元件,如对于给定实现期望的。

在各种实施例中,输入/输出虚拟化分组管理系统100可以包括计算设备120。计算设备120的示例可以没有限制地包括超移动设备、移动设备、个人数字助理(pda)、移动计算设备、智能电话、电话、数字电话、蜂窝电话、电子书阅读器、手持设备、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机(pc)、桌上型计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器场、网页服务器、网络服务器、互联网服务器、工作站、小型计算机、大型计算机、超级计算机、网络设备、网页设备、分布式计算系统、微处理器系统、基于处理器的系统、消费类电子设备、可编程消费类电子设备、游戏设备、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线网络控制器、路由器、集线器、网关、桥、交换机、机器或其组合。实施例并不局限于这一上下文。

在各种实施例中,输入/输出虚拟化分组管理系统100可以包括处理器电路130。通常,处理器电路130可以具有适合于顺序处理操作的处理器体系结构。在一个实施例中,例如,处理器电路130可以包括用于通用计算的通用处理器电路,例如用于计算平台的中央处理(cpu)。cpu被设计用于对时延敏感并且具有隐含的指令级并行性的应用。cpu可以具有在很大程度上为顺序的结构,并且这样,cpu特别适合于顺序计算操作。处理器电路130可以是各种市场上可买到的通用处理器的任意一种,没有限制地包括处理器;应用、嵌入式和安全处理器;以及处理器;ibm和单元处理器;core(2)处理器;以及类似的处理器。双微处理器、多核处理器和其它多处理器体系结构也可以用作处理电路130。实施例并不局限于这一上下文。

在各种实施例中,输入/输出虚拟化分组管理系统100可以包括存储器单元150。存储器单元150可以包括以一个或多个较高速度存储器单元的形式的各种类型的计算机可读存储介质,例如只读存储器(rom)、随机存取存储器(ram)、动态ram(dram)、双数据速率dram(ddram)、同步dram(sdram)、静态ram(sram)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、诸如铁电聚合物存储器的聚合物存储器、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(sonos)存储器、磁卡或光学卡、诸如独立磁盘冗余阵列(raid)驱动的设备的阵列、固态存储器设备(例如,usb存储器、固态驱动(ssd))以及适合于存储信息的任何其它类型的存储介质。实施例并不局限于这一上下文。

在图1中示出的所说明的实施例中,处理器电路130可以被布置为执行虚拟化应用110和分组管理应用140。虚拟化应用110通常被布置为在计算设备120上安装和管理多个虚拟机174-b。通常,虚拟机(vm)174-b是可以在硬件或软件中实现的抽象计算机体系结构。任一实现意在被包括在虚拟机174-b的下列描述中。在一个实施例中,例如,虚拟机174-b是类似诸如计算设备120的物理机器的执行程序的机器的软件实现。虚拟化应用110可以将虚拟机174-b实现为提供能够支持完整操作系统(os)和/或应用程序的执行的完整系统平台的系统虚拟机。此外或可选地,虚拟化应用110可以将虚拟机174-b实现为被设计为运行单个程序的过程虚拟机,这意味着它支持单个过程。虚拟机174-b可以使用由诸如处理器电路130和存储器单元150的计算设备120提供的各种硬件资源连同由计算设备120实现的其它计算和通信平台。虚拟化应用110可以实现任意数量的虚拟化技术以便创建虚拟机174-b,包括虚拟机监控器(vmm)172或超级监控器和服务虚拟机174连同其它虚拟化技术。实施例并不局限于这一上下文。

可以使用任意数量的已知虚拟化软件和/或硬件平台来实现虚拟化应用110。虚拟化应用110的示例可以没有限制地包括虚拟化应用,例如由red有限公司制造的基于内核的虚拟机由oracle公司制造的由vmware有限公司制造的和由windriver有限公司制造的由internationalbusiness公司制造的以及由citrixsystems有限公司制造的和类似的虚拟化平台。实施例并不局限于这一上下文。

尽管在由虚拟化应用110创建并管理的虚拟机174-b的上下文中描述了各种实施例,但是可以认识到,可以对于提供被分割为多个分立的计算部分的硬件平台的任意计算设备120来实现一些实施例。例如,可以使用将单个硬件平台划分为多个硬件子系统的系统分区来实现各种实施例。例如,具有多个处理器和存储器单元的硬件平台可以被分为两个硬件子系统,每一个硬件子系统具有处理器和存储器单元。实施例并不局限于这一上下文。

值得注意的是,如在本文使用的“a”和“b”和“c”及类似的标志符意在是代表任意正整数的变量。因而例如,如果实现设置b=5的值,则虚拟机174-b的完整集合可以包括虚拟机176-1、176-2、176-3、176-4和176-5。实施例并不局限于这一上下文。

在各种实施例中,计算设备120可以包括一个或多个收发机160-a。每一个收发机160-a可以被实现为有线收发机、无线收发机或这两者的组合。在一些实施例中,收发机160-a可以被实现为有时被称为“硬件无线电装置”和“软件无线电装置”的物理无线适配器或虚拟无线适配器。在后一种情况下,单个物理无线适配器可以使用软件被虚拟化到多个虚拟无线适配器中。物理无线适配器典型地连接到基于硬件的无线接入点。虚拟无线适配器典型地连接到有时被称为“softap”的基于软件的无线接入点。例如,虚拟无线适配器可以允许在诸如智能电话和桌上型计算机或笔记本计算机的对等设备之间的自组织通信。各种实施例可以使用被实现为多个虚拟无线适配器的单个物理无线适配器、多个物理无线适配器、每一个都被实现为多个虚拟无线适配器的多个物理无线适配器或者其某种组合。实施例并不局限于这一上下文。

无线收发机160-a可以包括或实现各种通信技术以便允许计算设备120与其它电子设备进行通信。例如,无线收发机160-a可以实现被设计为与网络可互操作的各种类型的标准通信元件,例如一个或多个通信接口、网络接口、nic、无线电装置、无线发射机/接收机(收发机)、有线和/或无线通信介质、物理连接器等等。通过示例而非限制的方式,通信介质包括有线通信介质和无线通信介质。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(pcb)、底板、交换机架构、半导体材料、双绞线、同轴电缆、光纤、传播信号等等。无线通信介质的示例可以包括声学、射频(rf)频谱、红外和其它无线介质。

在各种实施例中,计算设备120可以实现不同类型的收发机160-a。每一个收发机160-a可以实现或利用通信参数的相同或不同的集合以便在各种电子设备之间传送信息。在一个实施例中,例如,每一个收发机160-a可以实现或利用通信参数的不同集合以便在计算设备120和一个或多个远程设备之间传送信息。通信参数的一些示例可以没有限制地包括通信协议、通信标准、射频(rf)带、无线电装置、发射机/接收机(收发机)、无线电处理器、基带处理器、网络扫描阈值参数、射频信道参数、接入点参数、速率选择参数、帧尺寸参数、聚合尺寸参数、分组重试限制参数、协议参数、无线电参数、调制和编码方案(mcs)、确认参数、介质访问控制(mac)层参数、物理(phy)层参数和影响收发机160-a的操作的任何其它通信参数。实施例并不局限于这一上下文。

在一个实施例中,例如,收发机160-a可以包括被设计为通过无线局域网(wlan)、无线城域网(wman)、无线广域网(wwan)或蜂窝无线电话系统来传送信息的无线电装置。收发机160-a可以被布置为根据不同类型的较长距离无线网络系统或协议来提供数据通信功能。提供较长距离数据通信服务的适当的无线网络系统的示例可以包括ieee802.xx系列协议,例如ieee802.11a/b/g/n系列标准协议和变形、ieee802.16系列标准协议和变形、ieee802.20系列标准协议和变形(也被称为“移动宽带无线接入”)等等。可选地,收发机160-a可以包括被设计为跨越由一个或多个蜂窝无线电话系统提供的数据联网链路传送信息的无线电装置。提供数据通信服务的蜂窝无线电话系统的示例可以包括gsm与通用分组无线业务(gprs)系统(gsm/gprs)、cdma/1xrtt系统、增强型数据速率全球演进(edge)系统、仅演进数据或演进数据优化(ev-do)系统、数据和语音演进(ev-dv)系统、高速下行链路分组接入(hsdpa)系统、高速上行链路分组接入(hsupa)和类似的系统。可以认识到,可以实现其它无线技术,并且实施例并不局限于这一上下文。

根据实施例,收发机160-a可以由被配置为虚拟化计算设备120和一个或多个远程设备之间的输入/输出路径的具有输入/输出虚拟化能力的适配器162组成。输入/输出虚拟化允许单个输入/输出资源在多个虚拟机174-b当中被共享。虚拟化输入/输出资源的示例包括以太网nic、磁盘控制器(例如,raid控制器)、光纤通道主机总线适配器(hba)或图形和视频卡及协处理器。用于输入/输出虚拟化的方案包括模型,其中虚拟化经过软件、硬件或其某种组合来实现。输入/输出虚拟化技术操作为向在虚拟化计算环境内操作的虚拟机174-b提供输入/输出资源的仿真实例。在一个实施例中,具有输入/输出虚拟化能力的适配器162被实现为具有单根输入/输出虚拟化能力的nic,如下面更充分讨论的。

具有输入/输出虚拟化能力的适配器162可以被配置为将功能实现为设备功能180-c和数据功能182-d。设备功能180-c可以由支持诸如适配器的物理端口的具有输入/输出虚拟化能力的适配器162的管理的具有完全输入/输出虚拟化能力的适配器功能组成。数据功能182-d是适配器功能的“重量轻的”实例并且通常局限于处理输入/输出流,基本上涉及数据移动功能。例如,在具有单根输入/输出虚拟化能力的设备中,设备功能180-c可以被实现为物理功能,而数据功能182-d可以被实现为虚拟功能,如本领域中的普通技术人员已知的术语。设备功能180-c和数据功能182-d分别经过设备功能驱动器184-e和数据功能驱动器186-f与虚拟机174-b相关联。可以存在每一个物理功能180-c的多个数据功能182-d。

尽管未示出,但是计算设备120可以进一步包括通常被实现用于电子设备的一个或多个设备资源,例如典型地由个人电子设备实现的各种计算和通信平台硬件和软件部件。设备资源的一些示例可以没有限制地包括协处理器、图形处理单元(gpu)、芯片集/平台控制中心(pch)、输入/输出(输入/输出)设备、计算机可读介质、显示电子设备、显示背光灯、网络接口、定位设备(例如,gps接收机)、传感器(例如,生物计量、热、环境、接近度、加速度计、气压、压力等等)、便携式电源(例如,电池)、应用程序、系统程序等等。参照图10所示的示例性计算体系结构来描述设备资源的其它示例。然而实施例并不局限于这些示例。

分组管理应用140通常被布置为管理从具有输入/输出虚拟化能力的适配器162来回传输的分组192-g。在一个实施例中,分组192-g被从外部网络190传输到由计算设备120可访问的具有输入/输出虚拟化能力的适配器162。分组192-g可以由诸如介质访问控制(mac)、互联网协议(ip)和传输控制协议(tcp)地址的一个或多个地址以及数据(即,“有效载荷”)组成。此外,可以根据能够根据本文公开的实施例进行操作的任何通信协议来配置分组192-g,该通信协议包括如分别在互联网工程任务组(ietf)互联网标准文件rfc791和2460中描述的互联网协议(ip)的ipv4和ipv6版本。分组管理应用140可以例如接收分组192-g,因为分组管理应用140或其某一部件与分组192-g头部中的目的地地址(例如,mac地址)相关联。分组管理应用140可以将一个或多个分组管理策略应用于分组192-g,例如地址过滤策略,并且将用于传送的分组192-g路由到计算设备120内的目标目的地。在另一实施例中,分组管理应用140被配置为从具有输入/输出虚拟化能力的适配器162接收分组192-g,并且管理分组192-g且将分组192-g传输到远程设备,例如经过外部网络190可访问的远程设备。

可以参照图2-6来进一步描述输入/输出虚拟化分组管理系统100和分组管理应用140的特定方面、实施例和可选形式。

图2说明了具有输入/输出虚拟化能力的适配器162的方框图。具有输入/输出虚拟化能力的适配器162可以是具有输入/输出虚拟化能力的适配器162的示例性实现。具体地说,图2中描绘的具有输入/输出虚拟化能力的适配器162可以包括具有单根输入/输出虚拟化能力的适配器。图2所示的具有输入/输出虚拟化能力的适配器162具有在某一拓扑中的有限数量的元件;然而,可以认识到,具有输入/输出虚拟化能力的适配器162可以包括如对于给定实现期望的在可选拓扑中的更多或更少的元件。尽管图2的示例性方框图说明了具有单根输入/输出虚拟化能力的适配器,但是实施例并不被如此限制,因为在本文设想具有根据实施例进行操作的能力的任何具有输入/输出虚拟化能力的适配器。示例性适配器包括但不局限于具有多根输入/输出虚拟化(mr-iov)能力的适配器和具有多队列对能力的设备(例如,具有二层过滤部件的设备,并且其中每一个队列对具有mac地址),例如包括由因特尔公司制造的vmdq技术的设备以及由solarflare通信有限公司制造的技术。如在本文讨论的二层和三层指代在规定互连系统之间的网络通信的七层模型的国际标准组织iso/iec7498中提供的并且如本领域中的普通技术人员通常已知的开放式系统互连(osi)模型的二层和三层信息。

具有输入/输出虚拟化能力的适配器162包括由计算设备120可访问的具有单根输入/输出虚拟化能力的网络接口卡220。具有单根输入/输出虚拟化能力的网络接口卡220支持包括二层交换机250、设备功能180-c(即,物理功能180-1)和数据功能182-d(即,虚拟功能182-1、182-2、182-3、182-d)的具有输入/输出虚拟化能力的适配器体系结构230。通常被称为iommu的输入/输出存储器管理单元210可以与具有单根输入/输出虚拟化能力的网络接口卡220相关联。通常,输入/输出存储器管理单元210允许虚拟机174-1、174-2、174-3、174-b及其部件在具有或者不具有减少的虚拟机监控器170干预的情况下直接访问具有单根输入/输出虚拟化能力的网络接口卡220,提高了计算设备120内的数据移动的性能。如图2所示,实施例提供具有输入/输出虚拟化能力的适配器162的部件可以被布置在一个或多个子网络中。例如,虚拟功能182-d可以被布置在(例如,经过子网联网)一个或多个子网络260-h中,如对于虚拟功能182-1和182-2所示的。

具有输入/输出虚拟化能力的适配器体系结构230被配置为在计算设备120内对分组192-g进行分类和传送。二层交换机250被配置为从分组源270接收分组192-g,并且基于二层信息对分组192-g进行分类。例如,在一个实施例中,二层交换机250被配置为基于包含在分组192-g的头部内的mac地址对分组192-g进行分类。在常规的具有单根输入/输出虚拟化能力的系统中,分组源270可以例如是经过物理端口由单根输入/输出虚拟化网络接口卡220可访问的外部网络190。然而,根据本文提供的实施例,分组源270可以是分组管理应用140。

具有输入/输出虚拟化能力的适配器体系结构230可以由物理功能180-1的形式的设备功能180-c和虚拟功能182-1、182-d的形式的多个数据功能182-d组成。二层交换机250可以例如经由被配置用于由包含在分组192-g内的mac地址指定的目的地虚拟功能182-d的接收队列来将被分类的分组192-g传送到虚拟功能182-d。分组192-g可以经过相对应的虚拟功能驱动器182-g,例如利用直接存储器存取(dma)过程,被传送到在电子设备120中操作的目的地虚拟机174-b。如图2所示,具有输入/输出虚拟化能力的适配器体系结构230支持在具有单根输入/输出虚拟化能力的网络接口卡220处从分组源270接收的分组192-g的分类以及到它们的预期目的地(例如,虚拟机174-b)的传送。尽管就管理和传送在具有输入/输出虚拟化能力的适配器162处接收的分组192-g而言讨论了在图2中说明的具有输入/输出虚拟化能力的适配器162,但是本领域中的普通技术人员将认识到具有输入/输出虚拟化能力的适配器162以及用于将分组192-g从具有输入/输出虚拟化能力的适配器162传输到外部网络190的相关联的部件的适用性。

图3说明了输入/输出虚拟化分组管理系统100的操作环境300的实施例。更具体地,操作环境300可以说明分组管理应用140的更详细的方框图。

如图3所示,内容个性化应用140可以包括各种部件302-i。如在本申请中使用的,术语“部件”意在指代计算机相关实体,或者是硬件、硬件和软件的组合、软件或者执行中的软件。例如,部件可以是但不局限于在处理器上运行的过程、处理器、硬盘驱动、(光学和/或磁存储介质的)多个存储设备、对象、可执行体、执行的线程、程序和/或计算机。通过说明档方式,在服务器上运行的应用和服务器二者可以是部件。一个或多个部件可以存在于过程和/或执行的线程内,并且部件可以位于一个计算机上和/或分布在两个或多个计算机之间。进而,部件可以通过各种类型的通信介质可通信地耦合到彼此以便协调操作。该协调可以涉及信息的单向或双向交换。例如,部件可以按照通过通信介质或者物理或虚拟通信路径传送的信号的形式来传送信息。信息可以被实现为被分配到各种信号线的信号。在这样的分配中,每一个消息是信号。然而,进一步的实施例可以可选地采用数据消息。这样的数据消息可以横跨各种连接进行发送。示例性连接包括并行接口、串行接口、总线接口和pci接口,包括经过物理或虚拟连接实现的pcie接口。

在图3中示出的所说明的实施例中,内容个性化应用140可以包括代理接口上游部件302-1、虚拟路由器部件302-2、代理接口下游部件302-3和选通部件302-4。在这一特定的实现中,没有使用选通部件302-4,并且如由虚线边界指示的在处理器电路130上被省略或者变得不活动。然而,可以在参照图6描述的实施例中使用选通部件302-4。尽管图3所示的分组管理应用140仅在某一拓扑中具有四个部件,但是可以认识到,根据对于给定实现所期望的,分组管理应用140可以包括在可选的拓扑中的更多或更少的部件。实施例并不局限于这一上下文。

代理接口上游部件302-1可以通常接收被传输到具有输入/输出虚拟化能力的适配器162的分组192-g。根据实施例,代理接口上游部件302-1可以被配置为一个或多个虚拟功能182-d或者被配置为一个或多个收发机160-a,例如作为代理接口上游部件302-1的一个或多个实例操作的一个或多个网络接口卡。代理接口上游部件302-1可以与诸如ip、tcp和mac地址的特定网络地址信息相关联。例如,代理接口上游部件302-1可以与在计算设备120外部可见的mac地址相关联,该mac地址用于寻址被传输到计算设备120,包括特定的虚拟机174-b,的分组。

电子设备120的元件,例如收发机160-a、虚拟机174-b、设备功能驱动器184-e、数据功能驱动器186-f和代理接口上游部件142可以与用于内部和外部网络通信的一个或多个地址相关联。例如,虚拟机174-b可以与可以由在其中操作的驱动器184-e、186-f配置的mac地址、tcp地址、ip地址或其某种组合相关联。根据实施例,某些地址可以仅在电子设备120内被利用,而其它地址可以用于寻址被从例如外部网络190传输到电子设备120的分组192-g。例如,分组192-g可以由指定目的地ip地址和目的地mac地址的以太网分组组成。目的地mac地址可以是被指派到代理接口上游部件142的mac地址,而目的地ip地址可以与虚拟机174-b之一相关联。

代理接口上游部件302-1操作为将分组192-g转发到虚拟路由器部件302-2。当分组192-g被传输到计算设备时,例如被寻址到具有输入/输出虚拟化能力的适配器162时,接收分组192-g并且将该分组转发到虚拟路由器部件302-2的序列进行操作。在可选形式中,计算设备120的网络接口(例如,虚拟机174-b及其部件)可以操作为经过具有输入/输出虚拟化能力的适配器162将数据和分组192-g传输到例如位于外部网络190中的远程设备。在这种情况下,该序列相反地工作,其中代理接口上游部件302-1从虚拟路由器部件302-2接收分组192-g,并且操作为将分组192-g传输到它的目标目的地。

虚拟路由器部件302-2可以通常将分组管理策略310-j应用到在其中接收的分组192-g,并且路由分组192-g用于传送到它们的预期目的地。根据实施例,分组管理策略310-i可以涉及分组过滤策略,包括ip和mac地址过滤策略,如本领域中的普通技术人员已知的。虚拟路由器部件302-2不局限于ip和mac过滤策略,因为在本文设想能够根据实施例进行操作的任何分组管理策略。例如,虚拟路由器部件302-2可以由分组管理策略310-i组成,该分组管理策略310-i由诸如基于tcp端口的过滤的一个或多个高级过滤策略组成,其中虚拟功能182-d的特定端口可以被阻挡。

如在上文中描述的,与某一计算设备120的网络接口相关联的诸如mac地址的某些地址可以仅在计算设备120的环境内在内部被利用。这样,虚拟路由器部件302-2操作为将分组192-g路由到计算设备120的环境内的目标目的地。例如,虚拟路由器部件302-2可以接收由以太网分组组成的分组192-g,该以太网分组具有与代理接口上游部件302-1相关联的mac地址以及与诸如虚拟功能182-d或物理功能180-c的目的地计算设备120的网络接口相关联的ip地址。虚拟路由器部件302-2可以操作为将分组192-g路由到目的地计算设备120的网络接口。例如,虚拟路由器可以使用与分组192-g相关联的ip地址来执行在与计算设备120相关联的地址注册中的地址查找以便确定目的地计算设备120的网络接口的mac地址。如果例如根据地址注册,ip地址与目的地计算设备120的网络接口的mac地址相关联(即,分组过滤),则虚拟路由器部件302-2可以及继续转发分组192-g。

虚拟路由器部件302-2可以将与分组相关联的初始mac地址(即,代理接口上游部件302-1mac地址)改变到与目的地计算设备120的网络接口相关联的mac地址。受到分组管理策略310-j影响并且被重新寻址用于传送到目的地计算设备120的网络接口的分组192-g包括被管理的分组320-k,其可以被转发到代理接口下游部件302-3。

当分组192-g由具有输入/输出虚拟化能力的适配器162进行传输时,对于虚拟路由器部件302-2描述的序列本质上相反地操作。例如,分组192-g可以由虚拟路由器部件302-2从代理接口下游部件302-3接收,并且可以由与发送分组192-g的源计算设备120的网络接口相关联的源地址信息组成。虚拟路由器部件302-2可以操作为管理分组192-g(例如,对分组192-g进行过滤)并且确定是否将该分组转发到代理接口上游部件302-1(例如,与分组192-g相关联的mac地址和ip地址被验证)。如果虚拟路由器将分组192-g转发到代理接口上游部件302-1,则它可以操作为重新寻址该分组以便使其由与外部网络目标目的地相关联的一个或多个地址元素(例如,目的地mac和/或ip地址)组成。

代理接口下游部件302-3通常操作为从虚拟路由器部件302-2接收被管理的分组320-k,并且将该被管理的分组320-k传输到具有输入/输出虚拟化能力的适配器体系结构230用于传送到目的地计算设备120的网络接口。例如,代理接口下游部件302-3可以接收被管理的分组320-k并且将该被管理的分组320-k传输到具有输入/输出虚拟化能力的适配器体系结构230的二层交换机250,该交换机可以操作为将被管理的分组320-k传送到其最终目的地。具有输入/输出虚拟化能力的适配器体系结构230根据本领域中的普通技术人员已知的过程将分组320-k传送到目的地(例如,虚拟功能182-d)。在可选形式中,当将分组192-g从具有输入/输出虚拟化能力的适配器162的虚拟功能182-d传输到远程设备时,代理接口下游部件302-3可以操作为从具有输入/输出虚拟化能力的适配器体系结构230接收分组192-g并且将分组192-g转发到虚拟路由器部件302-2。

在一个实施例中,代理接口下游部件302-3可以由虚拟功能182-d组成,并且经过具有输入/输出虚拟化能力的适配器162操作的剩余虚拟功能182-d(不包括被用作代理接口上游部件302-1的虚拟功能182-d)可以被布置在一个或多个内部子网络260-h中。因此,代理接口下游部件302-3可以操作为用于被布置在一个或多个子网络260-h中的虚拟功能182-d的到外部网络190的桥。在另一实施例中,每一个子网络260-h可以由至少一个代理接口下游部件302-3组成,使得在子网络260-h内部传输的所有分组192-g必须经过对于子网络260-h的代理接口下游部件302-3。

图4说明了输入/输出虚拟化分组管理系统100的操作环境400的实施例。更具体地,操作环境400可以说明分组管理应用400的更详细的方框图。

如图4所示,分组192-g可以被传输到计算设备120并且由被实现为诸如网络接口卡的收发机160-1的代理接口上游部件302-1接收。分组192-g可以与mac地址430相关联,该mac地址与实现代理接口上游部件302-1的收发机160-1的mac地址430相对应。分组192-g也与目的地计算设备120的网络接口的ip地址410相关联,在图4的示例性实施例中,目的地计算设备120的网络接口是与ip地址410和mac地址432相关联的虚拟功能182-d。代理接口上游部件302-1将分组192-g转发到在计算设备120内的服务虚拟机440中操作的虚拟路由器部件302-2。虚拟路由器部件302-2将分组管理策略310-j应用于分组192-g,并且重新寻址分组192-g,使得它基于到计算设备120的网络接口的mac地址映射的被注册的ip地址而与目的地虚拟功能182-1的mac地址432相关联。

具有ip地址410和mac地址432的被管理的分组320-k被转发到代理接口下游部件302-3,该代理接口下游部件302-3被配置为与具有输入/输出虚拟化能力的适配器体系结构230通过接口进行连接。在图4中,代理接口下游部件302-3包括具有输入/输出虚拟化能力的适配器162的物理功能180-1。被管理的分组320-k由代理接口下游部件302-3转发到具有输入/输出虚拟化能力的适配器体系结构230,该体系结构处理被管理的分组320-k到目的地虚拟功能180-1的传送,并且最终到在计算设备内操作的虚拟机174-1的虚拟功能驱动器186-1的传送。

如在上文中描述的,本领域中的普通技术人员将认识到,根据本文提供的实施例经过分组管理应用140从具有输入/输出虚拟化能力的适配器162传输的外发分组192-g的传输可以本质上按照与图4的示例实施例相关联的顺序相反的顺序进行操作,其中分组的mac地址430和ip地址410与外部目标目的地相关联。

图5说明了输入/输出虚拟化分组管理系统100的操作环境500的实施例。更具体地,操作环境500可以说明分组管理应用140的更详细的方框图。

如图5所示,代理接口上游部件302-1可以被实现为物理功能180-1,并且代理接口下游部件302-3可以被实现为具有输入/输出虚拟化能力的适配器162的虚拟功能182-1。然而,实施例并不被这样限制,因为代理接口上游部件302-1可以被实现为虚拟功能182-d或nic,并且代理接口下游部件302-3可以被实现为物理功能182-c。如在图5中描绘的示例实施例中所示的,代理接口上游部件302-1、虚拟路由器部件302-2和代理接口下游部件302-3可以在计算设备120内操作的服务虚拟机440中进行操作。

图6说明了输入/输出虚拟化分组管理系统100的操作环境600的实施例。更具体地,操作环境600可以说明一种情况,其中分组管理应用140的选通部件302-4被实现在具有输入/输出虚拟化能力的适配器162中。

根据实施例,分组管理应用140可以被配置为抑制分组经过选通部件302-4从某些虚拟功能182-d的传输或接收,选通部件302-4可以被配置为物理功能180-c或虚拟功能182-d。在一个实施例中,可以对于作为具有输入/输出虚拟化能力的适配器162的内部网络接口进行操作的虚拟功能182-d来抑制分组192-g的传输或接收。这样,仅例如被实现为虚拟功能182-d的代理接口上游部件302-1可以能够将分组发送到外部网络190或其它虚拟功能182-d。在一个实施例中,分组传输或接收的抑制可以操作为实施策略以便防止软件路由器部件302-2对于由诸如虚拟机174-b的计算设备120的网络接口传输的分组192-g被绕过。在另一实施例中,选通部件302-4可以操作为抑制在不同的子网络260-1、260-2中操作的部件之间发送的分组192-g的传输或接收。例如,选通部件302-4可以抑制以不同的子网络260-2内的虚拟功能182-3为目标的来自子网络260-1内的虚拟功能182-1的分组192-g的传输,其中目标虚拟功能182-3未被配置作为代理接口上游部件302-1。

如图6所示,选通部件302-4可以被插入在二层交换机250和与具有输入/输出虚拟化能力的适配器162相关联的mac/物理层620之间。诸如虚拟功能182-d的计算设备120的网络接口可以尝试将分组192-g传输到外部网络190或者其它虚拟功能182-d。分组192-g可以被从虚拟功能182-d传输到二层交换机250。在一个实施例中,选通部件302-4可以由物理功能180-1进行配置以便选择性地选通或绕过来自某些虚拟功能182-d的传输流,仪表抑制来自相对应的虚拟机174-b的分组。这样,选通部件302-4可以操作为防止从某一计算设备120的网络接口传输的分组192-g到达mac/物理层620并且最终到达用于传输到外部网络190的网络连接630,或者计算设备120的其它网络接口(例如,虚拟功能182-d),而不经过虚拟路由器部件302-3被路由。

图7说明了逻辑流程700的一个实施例。逻辑流程700可以代表由本文描述的一个或多个实施例执行的一些或所有操作。例如,逻辑流程可以说明由输入/输出虚拟化分组管理系统100执行的操作。

在图7中示出的所说明的实施例中,逻辑流程700可以在块702处接收被寻址到具有输入/输出虚拟化能力的适配器目的地的分组并且将该分组转发到虚拟路由器。例如,代理接口上游部件302-1可以从外部网络190接收分组192-g。分组192-g可以被寻址到被布置在计算设备120内的虚拟功能182-d或虚拟机174-b。代理接口上游部件302-1可以将分组192-g转发到虚拟服务器部件302-2用于分组管理和路由。

逻辑流程700可以在块704处经由虚拟路由器将一个或多个分组管理策略应用于所述分组。例如,虚拟路由器部件302-2可以将一个或多个分组管理策略310-j应用于分组192-g。根据实施例,一个或多个分组管理策略310-j可以由地址(例如,基于mac、ip、tcp端口的过滤或者其某种组合)过滤策略组成。

逻辑流程700可以在块706处经由虚拟路由器将该分组路由到具有输入/输出虚拟化能力的适配器目的地。例如,虚拟路由器部件302-2可以将分组192-g路由到由包含在分组192-g内的地址指示的目的地。该目的地可以是计算设备120的网络接口,例如虚拟功能182-d。路由可以由下列操作组成:修改分组192-g的目的地地址部分以便包含目的地地址(例如,目的地计算设备120的网络接口的mac地址)而不是用于将分组(例如,与代理接口上游部件302-1相关联的mac地址)传输到具有输入/输出虚拟化能力的适配器162的地址。

逻辑流程700可以在块708处经由具有输入/输出虚拟化能力的适配器体系结构将该分组传输到具有输入/输出虚拟化能力的适配器目的地。例如,代理接口下游部件302-3可以从虚拟路由器部件302-2接收分组192-g,现在是被管理的分组320-k,并且可以将被管理的分组302-k转发到具有输入/输出虚拟化能力的适配器体系结构230用于传送到最终目的地。在一个实施例中,代理接口下游部件302-3将该分组转发到具有输入/输出虚拟化能力的适配器体系结构230的二层交换机250。

图8说明了逻辑流程800的一个实施例。逻辑流程800可以代表由本文描述的一个或多个实施例执行的一些或所有操作。例如,逻辑流程可以代表输入/输出虚拟化分组管理系统100的执行。

在图8中示出的所说明的实施例中,逻辑流程800可以在块802处确定在虚拟路由器处接收的分组的目的地地址。例如,分组192-g可以被传输到包括ip地址410和mac地址430的计算设备。ip地址410可以是与诸如虚拟功能182-d的具有输入/输出虚拟化能力的适配器162内的元件相关联的ip地址。虚拟路由器部件302-2可以利用ip地址410来确定与目的地元件相关联的相对应的mac地址432。

逻辑流程800可以在块804处修改该分组的地址以便与具有输入/输出虚拟化能力的适配器内的目的地的地址相对应。例如,虚拟路由器部件302-2可以将分组192-g的目的地mac地址430从与代理接口上游部件302-1相关联的地址改变到与具有输入/输出虚拟化能力的适配器162内的目的地相关联的mac地址432,例如与虚拟功能182-d相关联的mac地址432。

逻辑流程800可以在块806处将该分组转发到具有输入/输出虚拟化能力的适配器体系结构用于传输到目的地。例如,虚拟路由器部件302-2可以将分组192-g转发到代理接口下游部件302-3,该代理接口下游部件可以将分组192-g传输到具有输入/输出虚拟化能力的适配器体系结构230。在一个实施例中,代理接口下游部件302-3将分组192-g传输到具有输入/输出虚拟化能力的适配器体系结构230内的二层交换机250。具有输入/输出虚拟化能力的适配器体系结构230根据本领域中的普通技术人员已知的输入/输出虚拟化过程(例如,单根输入/输出虚拟化过程)将分组192-g传送到目的地(例如,虚拟功能182-d)。

图9说明了逻辑流程900的一个实施例。逻辑流程900可以代表由本文描述的一个或多个实施例执行的一些或所有操作。例如,逻辑流程可以代表输入/输出虚拟化分组管理系统100的执行。

在图9中示出的所说明的实施例中,逻辑流程900可以在块902处确定在虚拟路由器处接收的分组的目的地地址。例如,虚拟路由器部件302-2可以接收由代理接口上游部件302-1转发的分组192-g。虚拟路由器部件302-2可以检查分组192-g的头部并且确定与其相关联的任何地址,包括ip地址和mac地址430、432。

逻辑流程900可以在块904处执行与地址注册中的分组相关联的地址的查找。例如,虚拟路由器部件302-2可以操作为将与分组192-g相关联的一个或多个目的地地址定位在地址注册中,该地址注册例如与计算设备120、具有输入/输出虚拟化能力的适配器162或这两者相关联。基于分组管理策略310-j,虚拟路由器部件可以执行相关联的mac地址430、432、ip地址410或任何其它相关联的地址的查找。

逻辑流程900可以在块906处防止具有没有位于地址注册中的地址的分组的传输。例如,虚拟路由器部件402-2可以转发与位于地址注册中的地址400、430、432相关联的分组192-g,并且可以防止与没有位于地址注册中的地址410、430、432相关联的分组192-g的传输。按照这种方式,分组管理应用140可以管理计算设备120和具有输入/输出虚拟化能力的适配器162内的分组传输,例如以便确保在其中传输的分组192-g的安全性。

图10说明了适合于实现诸如输入/输出虚拟化分组管理系统100的先前描述的各种实施例的示例性计算体系结构1000的实施例。在一个实施例中,计算体系结构1000可以包括或者被实现为诸如计算设备120等等的电子设备的一部分。实施例并不局限于这一上下文。

如在本申请中使用的,术语“装置”和“部件”意在指代计算机相关的实体,或者是硬件、硬件和软件的组合、软件或者执行中的软件,其示例由示例性计算体系结构1000提供。例如,部件可以是但不局限于在处理器上运行的过程、处理器、硬盘驱动、(光学和/或磁存储介质的)多个存储驱动、对象、可执行体、执行的线程、程序和/或计算机。通过说明的方式,在服务器上运行的应用和服务器二者可以是部件。一个或多个部件可以存在于过程和/或执行的线程内,并且部件可以位于一个计算机上和/或分布在两个或更多个计算机之间。进而,部件可以通过各种类型的通信介质可通信地耦合到彼此以便协调操作。协调可以涉及信息的单向或双向交换。例如,部件可以按照通过通信介质传送的信号的形式来传送信息。信息可以被实现为被分配到各种信号线的信号。在这样的分配中,每一个消息是信号。然而,进一步的实施例可以可选地采用数据消息。这样的数据消息可以跨越各种连接而被发送。示例性连接包括并行接口、串行接口和总线接口。

计算体系结构1000包括各种常见的计算元件,例如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片集、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(输入/输出)部件、电源等等。然而,实施例不局限于通过计算体系结构1000的实现。

如图10所示,计算体系结构1000包括多个处理单元1004、系统存储器1006和系统总线1008。处理单元1004可以例如包括处理器电路130、132、cpu510和/或gpu530。

系统总线1008提供对于包括但不局限于系统存储器1006到处理单元1004的系统部件的接口。系统总线1008可以是可以使用各种市场上可买到的总线体系结构中的任意一种进一步互连到存储器总线(具有或者不具有存储器控制器)、外围总线和本地总线的几种总线结构中的任意一种。接口适配器可以经由狭槽体系结构连接到系统总线1008。示例狭槽体系结构可以没有限制地包括加速图形端口(agp)、卡总线、(扩展)工业标准体系结构((e)isa)、微通道体系结构(mac)、nubus、外围部件互连(扩展)(pci(x))、pciexpress(pcie)、个人计算机存储卡国际协会(pcmcia)等等。

计算体系结构1000可以包括或实现各种制造物品。制造物品可以包括用于存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写或可重写存储器等等。逻辑的示例可以包括使用任何适当类型的代码实现的可执行计算机程序指令,该代码例如是源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码等等。

系统存储器1006可以包括一个或多个较高速度存储器单元的形式的各种类型的计算机可读存储介质,例如只读存储器(rom)、随机存取存储器(ram)、动态ram(dram)、双数据速率dram(ddram)、同步dram(sdram)、静态ram(sram)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、诸如铁电聚合物存储器的聚合物存储器、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(sonos)存储器、磁卡或光学卡、诸如独立磁盘冗余阵列(raid)驱动的设备的阵列、固态存储器设备(例如usb存储器、固态驱动(ssd))和适合于存储信息的任何其它类型的存储介质。在图10示出的所说明的实施例中,系统存储器1006可以包括非易失性存储器1010和/或易失性存储器1012。基本输入/输出系统(bios)可以被存储在非易失性存储器1010中。

计算机1002可以包括一个或多个较低速度存储器单元的形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动(hdd)1014、用于从可移除磁盘1018读取或写到可移除磁盘1018的磁性软盘驱动(fdd)1016以及用于从可移除光盘1022(例如,cd-rom或dvd)读取或写到可移除光盘1022的光盘驱动(fdd)1020。hdd1014、fdd1016和光盘驱动1020可以分别通过hdd接口1024、fdd接口1026和光学驱动接口1028连接到系统总线1008。用于外部驱动实现的hdd接口1024可以包括通用串行总线(usb)和ieee1394接口技术中的至少一个或两者。

驱动和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等等的易失性和/或非易失性存储。例如,多个程序模块可以被存储在驱动和存储器单元1010、1012中,包括操作系统1030、一个或多个应用程序1032、其它程序模块1034和程序数据1036。在一个实施例中,一个或多个应用程序1032、其它程序模块1034和程序数据1036可以例如包括输入/输出虚拟化分组管理系统100的各种应用和/或部件。

用户可以经过一个或多个有线/无线输入设备,例如键盘1038和诸如鼠标1040的指示设备,将命令和信息输入到计算机1002中。其它输入设备可以包括麦克风、红外(ir)遥控、射频(rf)遥控、游戏盘、指示笔、读卡器、保护锁、指纹图谱读出器、手套、图形平板计算机、操纵杆、键盘、视网膜读出器、触摸屏(例如电容性、电阻性等等)、轨迹球、轨迹板、传感器、触笔等等。这些和其它输入设备经常经过耦合到系统总线1008的输入设备接口1042连接到处理单元1004,但是可以通过诸如并行端口、ieee1394串行端口、游戏端口、usb端口、ir端口等等的其它接口进行连接。

监视器1044或其它类型的显示设备也经由诸如视频适配器1046的接口连接到系统总线1008。监视器1044可以位于计算机1002内部或外部。除了监视器1044以外,计算机典型地包括诸如扬声器、打印机等等的其它外围输出设备。

计算机1002可以使用经由到诸如远程计算机1048的一个或多个远程部件的有线和/或无线通信的逻辑连接来在联网环境中进行操作。远程计算机1048可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐电器、对等设备或其它常见网络节点,并且典型地包括关于计算机1002描述的许多或所有元件,尽管为了简洁的目的,仅说明了存储器/存储设备1050。所描绘的逻辑连接包括到局域网(lan)1052和/或诸如广域网(wan)1054的较大网络的有线/无线连接。这样的lan和wan联网环境在办公室和公司中是普通的,并且便于诸如内联网的企业级的计算机网络,所有这些网络可以连接到诸如以太网的全球通信网络。

当在lan联网环境中使用时,计算机1002经过有线和/或无线通信网络接口或适配器1056连接到lan1052。适配器1056可以便于到lan1052的有线和/或无线通信,lan1052还可以包括设置在其上的用于与适配器1056的无线功能进行通信的无线接入点。

当在wan联网环境中使用时,计算机1002可以包括调制解调器1058,或者连接到wan1054上的通信服务器,或者具有用于例如通过以太网的方式通过wan1054建立通信的其它模块。可以是内部或外部以及有线和/或无线设备的调制解调器1058经由输入设备接口1042连接到系统总线1008。在联网环境中,关于计算机1002或其部分阐述的程序模块可以被存储在远程存储器/存储设备1050中。将认识到,所示出的网络连接是示例性的,并且可以使用建立计算机之间的通信链路的其它模块。

计算机1002可操作为使用ieee802标准系列来与有线和无线设备或实体进行通信,例如被可操作地布置在无线通信(例如,ieee802.10空中调制技术)中的无线设备。这至少包括wifi(或无线保真)、wimax和bluetoothtm无线技术等等。因而,通信可以是如同常规网络一样的预定义结构,或者简单地是至少两个设备之间的自组织通信。wifi网络使用被称为ieee802.10x(a、b、g、n等)的无线电技术来提供安全、可靠和快速的无线连接。wifi网络可以用于将计算机连接到彼此、到以太网、和到有线网络(使用ieee802.3有关的介质和功能)。

该详细公开现在转到提供与进一步的实施例有关的示例;在下文中提供的示例一到二十四(1-24)意在是示例性而非限制性的。

在第一示例中,一种装置包括:一个或多个收发机,包括具有输入/输出虚拟化能力的适配器;耦合到所述一个或多个收发机的处理器电路;以及耦合到所述处理器电路的存储器单元。所述存储器单元可以被配置为存储在所述处理器电路上操作的分组管理应用以便应用分组管理策略并且路由从所述具有输入/输出虚拟化能力的适配器来回传输的分组。所述分组管理应用可以包括操作为接收并转发被寻址到具有输入/输出虚拟化能力的适配器目的地的代理接口上游部件;操作为接收如由所述代理接口上游部件转发的所述分组的虚拟路由器部件,所述虚拟路由器部件用于将一个或多个分组管理策略应用于所述分组并且将所述分组路由到所述具有输入/输出虚拟化能力的适配器目的地;以及操作为接收如由所述虚拟路由器路由的分组并且经由具有输入/输出虚拟化能力的适配器体系结构将所述分组传输到所述具有输入/输出虚拟化能力的适配器目的地的代理接口下游部件。

第二示例包括在所述第一示例中描述的装置,进一步包括具有输入/输出虚拟化能力的适配器,所述具有输入/输出虚拟化能力的适配器包括具有单根输入/输出虚拟化能力的网络接口卡。

第三示例包括在第一或第二示例中描述的装置,其中,所述代理接口上游部件包括网络接口卡。

第四示例包括在所述第一或第二示例中描述的任一装置,其中,所述代理接口上游部件包括所述具有输入/输出虚拟化能力的适配器的虚拟功能。

第五示例包括在第一到第四示例中描述的任一装置,其中,所述代理接口下游部件包括所述输入/输出虚拟化适配器的物理功能。

第六示例包括在第一到第五示例中描述的任一装置,其中,所述虚拟路由器部件操作为应用包括一个或多个地址过滤策略的一个或多个分组管理策略,所述一个或多个地址过滤策略被配置为在地址注册中查找与所述分组相关联的一个或多个地址,所述地址注册与所述具有输入/输出虚拟化能力的适配器相关联;并且防止与没有位于所述地址注册中的地址相关联的分组的传输。

第七示例包括在第一到第六示例中描述的任一装置,其中,所述虚拟路由器部件操作为经由修改所述分组的目的地地址来将所述分组从与所述代理接口上游部件相关联的外部目的地地址路由到与所述具有输入/输出虚拟化能力的适配器目的地相关联的内部目的地地址。

第八示例包括在第一到第七示例中描述的任一装置,其中,所述代理接口下游部件操作为将所述分组传输到所述具有输入/输出虚拟化能力的适配器体系结构的二层交换机。

第九示例包括在第一到第八示例中描述的任一装置,所述代理接口下游部件操作为从所述具有输入/输出虚拟化能力的适配器体系结构接收分组并且将所述分组转发到所述虚拟路由器部件;其中,所述虚拟路由器部件操作为将一个或多个分组管理策略应用于所述分组,将所述分组的目的地地址修改到外部目的地地址,并且将所述分组转发到所述代理接口上游部件;其中,所述代理接口上游部件操作为将所述分组传输到外部网络。

第十示例包括在第一到第九示例中描述的任一装置,所述分组管理装置包括操作为抑制分组从具有输入/输出能力的适配器源到外部网络的传输,所述分组被配置为绕过所述虚拟路由器部件。

第十一示例包括在第一到第十示例中描述的任一装置,所述具有输入/输出虚拟化能力的适配器包括被布置在一个或多个子网络中的多个虚拟功能,所述一个或多个子网络包括被配置为接收在所述多个虚拟功能之间传输的分组的一个或多个代理接口下游部件。

在第十二示例中,一种方法包括在包括具有输入/输出能力的适配器并且由计算设备可访问的一个或多个收发机处接收被寻址到具有输入/输出虚拟化能力的适配器目的地的分组并且将所述分组转发到虚拟路由器;通过耦合到所述一个或多个收发机的处理器电路经由所述虚拟路由器将一个或多个分组管理策略应用于所述分组;经由所述虚拟路由器将所述分组路由到所述具有输入/输出虚拟化能力的适配器目的地;并且经由具有输入/输出虚拟化能力的适配器体系结构将所述分组传输到具有输入/输出虚拟化能力的适配器目的地。

第十三示例包括在第十二示例中描述的方法,其中,所述具有输入/输出虚拟化能力的适配器包括具有单根输入/输出虚拟化能力的网络接口卡。

第十四示例包括在第十二或十三示例中描述的方法,进一步包括经由网络接口卡接收被寻址到所述具有输入/输出虚拟化能力的适配器目的地的分组。

第十五示例包括在第十二或第十三示例中描述的方法,进一步包括经由所述具有输入/输出虚拟化能力的适配器的虚拟功能接收被寻址到所述具有输入/输出虚拟化能力的适配器目的地的分组。

第十六示例包括在第十二到第十五示例的任意一个中描述的方法,进一步包括经由所述具有输入/输出虚拟化能力的适配器体系结构利用所述具有输入/输出虚拟化能力的适配器的物理功能将所述分组传输到所述具有输入/输出虚拟化能力的适配器目的地。

第十七示例包括在第十二到第十六示例的任意一个中描述的方法,进一步包括应用包括一个或多个地址过滤策略的一个或多个分组管理策略,所述一个或多个地址过滤策略被配置为在地址注册中查找与所述分组相关联的一个或多个地址,所述地址注册与所述具有输入/输出虚拟化能力的适配器相关联;并且防止与没有位于所述地址注册中的地址相关联的分组的传输。

第十八示例包括在第十二到第十七示例的任意一个中描述的方法,进一步包括经由将所述分组的目的地地址从与所述具有输入/输出虚拟化能力的适配器相关联的外部目的地地址修改到与所述具有输入/输出虚拟化能力的适配器目的地相关的内部目的地地址来路由所述分组。

第十九示例包括在第十二到第十八示例的任意一个中描述的方法,进一步包括经由将所述分组传输到所述具有输入/输出虚拟化能力的适配器体系结构的二层交换机来将所述分组传输到所述具有输入/输出虚拟化能力的适配器目的地。

第二十示例包括在第十二到第十九示例的任意一个中描述的方法,进一步包括从所述具有输入/输出虚拟化能力的适配器体系结构接收分组,并且将所述分组转发到所述虚拟路由器;其中,所述虚拟路由器被配置为将一个或多个分组管理策略应用于所述分组,将所述分组的目的地地址修改到外部目的地地址,并且转发所述分组用于传输到外部网络。

第二十一示例包括在第十二到第二十示例的任意一个中描述的方法,进一步包括抑制分组从具有输入/输出虚拟化能力的适配器源到外部网络的传输,所述分组被配置为绕过所述虚拟路由器。

第二十二示例包括在第十二到第二十一示例的任意一个中描述的方法,包括将所述具有输入/输出虚拟化能力的适配器的多个虚拟功能布置在一个或多个子网络中,所述一个或多个子网络包括被配置为接收在所述多个虚拟功能之间传输的分组的一个或多个代理接口下游部件。

在第二十三示例中,至少一个机器可读存储介质包括多个指令,所述指令对在计算设备上被执行做出响应,使所述计算设备执行在第十二到第二十二示例中描述的任何方法。

在第二十四示例中,一种装置包括用于执行在第十二到第二十二示例中描述的任何方法。

各种实施例的元件可以被实现为各种硬件元件、软件元件或这两者的组合。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施方式是使用硬件元件和/或软件元件来实现可以根据任何数量的因素而改变,该因素例如是期望计算速率、功率水平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束,如对于给定实现期望的。

可以使用措辞“一个实施例”或“实施例”连同其派生词来描述一些实施例。这些术语意味着结合所述实施例描述的特定的特征、结构或特性被包括在至少一个实施例中。短语“在一个实施例中”在说明书的不同地方的出现并不一定都指代相同的实施例。进而,可以使用措辞“耦合”和“连接”连同其派生词来描述一些实施例。这些术语不必意在作为彼此的同义词。例如,可以使用措辞“连接”和/或“耦合”来描述一些实施例以便指示两个或更多个元件彼此直接物理或电学接触。然而,措辞“耦合”也意味着两个或更多个元件彼此不直接接触,但是仍然彼此协同操作或相互作用。

要强调的是,提供本公开的摘要以便允许读者更快地确定技术公开的性质。应当理解,它将不用于解释或限制权利要求的范围或含义。此外,在前面的详细描述中可以看到,为了简单化本公开的目的,在单个实施例中将各种特征分组到一起。本公开的这一方法不应该被解释为反映请求保护的实施例要求比在每一个权利要求中明确列举的特征更多的特征的意图。更确切地,如下面的权利要求反映的,创造性主题在于少于单个所公开的实施例的所有特征。因而下面的权利要求特此合并到详细描述中,每一个权利要求独立地作为单独的实施例。在所附权利要求中,措辞“包含(including)”和“在其中(inwhich)”分别用作各自的措辞“包括(comprising)”和“其中(wherein)”的浅近英语等效形式。而且,措辞“第一”、“第二”、“第三”等等仅用作标记,并且并不意在将数字要求强加在它们的对象上。

上面描述的内容包括所公开的体系结构的示例。当然,不可能描述部件和/或方法的每一个可设想的组合,但是本领域中的普通技术人员将认识到,许多进一步的组合和置换是可能的。因此,新颖的体系结构意在包括落在所附权利要求的精神和范围内的所有这样的变更、修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1