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

文档序号:11170789阅读:359来源:国知局
用于输入/输出虚拟化系统中的分组管理的技术的制造方法与工艺
用于输入/输出虚拟化系统中的分组管理的技术

背景技术:
虚拟机(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和单元处理器;和处理器;以及类似的处理器。双微处理器、多核处理器和其它多处理器体系结构也可以用作处理电路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的示例可以没有限制地包括虚拟化应用,例如由有限公司制造的基于内核的虚拟机由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说明了具有输入/输出虚拟化能...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1