有状态环境中的网络适配器硬件状态迁移发现的制作方法
【专利摘要】本申请涉及有状态环境中的网络适配器硬件状态迁移发现。提供了一种方法,其中发现系统接收移动在第一系统上执行的虚拟机的迁移请求。该发现系统识别对应于第一系统的第一网络适配器,并且识别被第一网络适配器用于处理由虚拟机生成的数据分组的硬件状态数据。发现系统进而识别与该硬件状态数据的原生格式兼容的第二网络适配器,并且把虚拟机迁移到对应于所识别出的第二网络适配器的第二系统。
【专利说明】有状态环境中的网络适配器硬件状态迁移发现
【技术领域】
[0001]本公开内容涉及识别根据有状态卸载格式处理处理分组的源网络适配器的硬件属性,以及进而发现支持该硬件属性原生格式的等效目的地网络适配器。
【背景技术】
[0002]现代通信网络适配器支持“有状态”卸载数据传输格式,其中网络适配器执行特定的处理任务,以便减少主机系统的处理负荷。典型的有状态卸载格式包括远程直接存储器存取(RDMA)、互联网广域RDMA协议(iWARP)、Infiniband (IB)以及TCP卸载引擎(TOE)。为了支持有状态卸载格式,网络适配器把用于任何给定虚拟机连接的“状态”限定到对应于该虚拟机的网络适配器实例的上下文。代表这种上下文的有状态卸载信息包括以每个虚拟机为基础描述硬件属性的硬件状态数据,诸如对应于连接、寄存器、内存注册、用于与虚拟机通信的结构(队列对、完成队列,等等)以及诸如地址解析协议(ARP)表的其它各种数据结构的信息。
【发明内容】
[0003]根据本公开内容的一种实施例,提供了一种方法,其中发现系统接收移动在第一系统上执行的虚拟机的迁移请求。该发现系统识别对应于第一系统的第一网络适配器,并且识别由第一网络适配器用来处理由虚拟机生成的数据分组的硬件状态数据。发现系统还识别与所述硬件状态数据的原生格式兼容的第二网络适配器,并且把虚拟机迁移到对应于所识别出的第二网络适配器的第二系统。
[0004]以上是概述并且因此必然包含细节的简化、一般化和忽略;因此,本领域技术人员将认识到,本概述仅仅是说明性的而不是要以任何方式进行限制。如只能由权利要求定义的本公开内容的其它方面、发明性特征及优点将在以下阐述的非限制性具体描述中变得显然。
【专利附图】
【附图说明】
[0005]通过参考附图,本公开内容可以得到更好的理解,并且其各种目标、特征及优点将对本领域技术人员变得显然,其中:
[0006]图1是示出把逻辑分区从源系统迁移到目的地系统的迁移代理的示例性图,其中逻辑分区包括虚拟机和原生网络适配器硬件状态数据;
[0007]图2是示出发现合适目的地系统的图形表示的示例性图;
[0008]图3是包括主机属性以及对应的网络适配器属性表条目的示例性候选表;
[0009]图4是示出在发现目的地系统和把虚拟机迁移到该目的地系统时所采取的步骤的示例性流程图;
[0010]图5是示出在发现合适目的地系统时所采取的步骤的示例性流程图,该目的地系统包括兼容主机以及与源系统相比而言等效的网络适配器;[0011]图6是示出在主机系统中准备要迁移的虚拟机时所采取的步骤的示例性流程图;
[0012]图7是示出把逻辑分区从源系统迁移到目的地系统时所采取的步骤的示例性流程图;
[0013]图8是示出跟踪并存储用于在虚拟机上执行的模块的硬件状态数据的网络适配器的示例性图;
[0014]图9是示出硬件状态数据从源网络适配器到目的地网络适配器的迁移的示例性图;
[0015]图10是示出访问候选表存储区域以便识别合适目的地系统的分布式策略服务的示例性图;
[0016]图11是示出覆盖到物理网络空间上的虚拟网络抽象的示例性图;
[0017]图12是其中可以实现本文所述方法的数据处理系统的示例性框图;以及
[0018]图13提供了图12中所示信息处理系统环境的扩展,以说明本文所述的方法可以在联网环境中操作的各种各样的信息处理系统上执行。
【具体实施方式】
[0019]本文所使用的术语仅仅是为了描述特定的实施例而不是要作为本公开内容的限制。所本文所使用的,除非上下文明确地另外指出,否则单数形式“一”、“一个”和“这个”是要也包括复数形式。还应当理解,当在本说明书使用时,术语“包括”和/或“包含”规定所述特征、整数、步骤、操作、元素和/或部件的存在,但是并不排除一个或多个其它特征、整数、步骤、操作、元素、部件和/或其组的存在或添加。
[0020]以下权利要求中所有方式或步骤加功能元素的对应结构、材料、动作及等价物都是要包括用于结合具体所述的其它所述元素执行所述功能的任何结构、材料或行为。已经为了说明和描述给出了本公开内容的描述,但这不是详尽的或者要把本公开内容限定到所公开的形式。在不背离本公开内容范围与主旨的情况下,许多修改和变化对本领域普通技术人员都将是显而易见的。实施例的选择和描述是为了最好地解释本公开内容的原理和实践应用,并使本领域普通技术人员能够理解本公开内容具有适于预期特定使用的各种修改的各种实施例。
[0021]所属【技术领域】的技术人员知道,本公开内容的各个方面可以实现为系统、方法或计算机程序产品。因此,本公开内容的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本公开内容的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0022]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0023]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0024]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0025]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”程序设计语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0026]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0027]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0028]这些计算机程序指令也可以加载到计算机、其它可编程数据处理装置或者其它设备上,使得一系列操作步骤在计算机、其它可编程装置或者其它设备上执行,产生一种计算机实现的过程,使得在所述计算机或者其它可编程装置上执行的指令提供用于实现在所述流程图和/或框图中的一个或多个方框中所指定的功能/动作的过程。
[0029]以下的具体描述将总体上遵循如上所述本公开内容的概述,根据需要进一步解释和扩展本公开内容各方面和实施例的定义。
[0030]本公开内容描述了用于发现合适目的地系统的方法,基于有状态卸载格式经计算机网络发送数据分组的虚拟机要迁移到所述目的地系统。因此,系统管理员具有,在需要的时候,诸如由于安全问题或网络带宽问题,把虚拟机迁移到不同目的地系统的灵活性。
[0031]图1是示出把包括原生网络适配器硬件状态数据的虚拟机从源系统迁移到目的地系统的迁移代理的示例性图。覆盖网络环境100覆盖到物理网络上并且利用逻辑策略经虚拟网络在虚拟机之间发送数据。因此,虚拟网络独立于物理网络的物理拓扑结构约束(对于进一步的细节,见图11和对应的文字)。
[0032]覆盖网络环境100包括源系统105。源系统105包括主机110和源网络适配器150。主机Iio包括规定虚拟机135和设备驱动器140的管理程序145。虚拟机135利用设备驱动器140向源网络适配器150发送有状态卸载数据分组。例如,有状态卸载数据分组可以遵守诸如远程直接存储器存取(RDMA)、互联网广域RDMA协议(iWARP)、Infiniband (IB)或TCP卸载引擎(TOE)的有状态卸载格式。
[0033]源网络适配器150进而利用硬件状态数据152处理数据分组并且经覆盖网络环境100把数据分组发送到目的地虚拟机。硬件状态数据152包括代表源网络适配器150的上下文的有状态信息,诸如关于用于与虚拟机135通信的连接和结构的数据(例如,队列对、完成队列等),并且还可以包括寄存器信息、内存注册以及其它各种数据结构(例如,ARP表、序列号、重发信息等)。
[0034]在一种实施例中,硬件状态数据152包括(0SI模型的)层4连接状态信息,该信息允许源网络适配器150执行重发和分组确认,这减轻了主机110执行这种琐碎的任务。例如,iWARP经标准的以太网架构提供RDMA能力,它利用映射到底层以太网适配器的应用缓冲区。当通信启动时,与启动TCP连接的网络适配器进行连接。一旦处于活动状态,在分组建立时,应用的传出缓冲区上的数据就被网络适配器封装为TCP段。
[0035]系统管理员可能希望把虚拟机135从源系统105迁移到不同的系统,诸如为了安全目的或者网络带宽管理目的。因此,系统管理员可以向(包括在分布式策略服务165中的)迁移代理160发送迁移命令,该迁移代理负责发现包括兼容主机以及支持覆盖网络环境100的等效网络适配器的合适目的地系统。在一种实施例中,兼容主机是满足迁移虚拟机的系统需求的主机,其中所述需求是诸如CPU需求、存储器需求、带宽需求等。在一种实施例中,等效的网络适配器是对应于与源网络适配器150相同供应商标识符和相同版本标识符的网络适配器。
[0036]迁移代理160通过一系列发现步骤把目的地系统115识别为合适的目的地系统。在一种实施例中,迁移代理160利用包括主机属性和网络适配器属性的候选表,据其识别合适的目的地系统(对于进一步的细节,见图3、5以及对应的文字)。在这种实施例中,迁移代理160确定主机120支持虚拟机135的系统需求并且目的地网络适配器190与源网络适配器150等效(例如,包括匹配的设备id、固件版本及其它相关的适配器属性)。
[0037]为了迁移虚拟机135,硬件状态数据152也必须迁移。但是,硬件状态数据152对于设备驱动器140和虚拟机135来说是部分或完全不透明的。因此,迁移代理160指示源网络适配器150 (通过设备驱动器140、管理程序145或者其它驱动代理)提取硬件状态数据152。源网络适配器150停顿I/O和存储器活动,以避免提取过程中的状态变化或讹误,并且经设备驱动器140把硬件状态数据152拷贝到共享存储器142指定的存储器块起始地址。该存储器块起始地址可以作为其初始化的一部分来协商或者作为提取命令中的一个参数提供给源网络适配器150。
[0038]迁移代理160向源系统105和目的地系统115发送迁移虚拟机135的迁移请求。进而,管理程序145和185建立连接,以便把虚拟机135 (包括共享存储器142)流传输到主机120、结果是流传输到虚拟机175和共享存储器182。此外,管理程序185把设备驱动器180分配给逻辑分区170,并且把状态插入命令发送到目的地网络适配器190。该状态插入命令指示目的地网络适配器190从共享存储器182所述存储器块起始地址检索硬件状态数据,并且把硬件状态数据152加载到网络适配器190上。因此,当存储在目的地网络适配器190中时,硬件状态数据152维持其原生形式,从而排除了地址转换步骤。
[0039]在一种实施例中,目的地网络适配器190执行校验和来证实硬件状态数据。在另一种实施例中,目的地网络适配器190可以利用首部或单独的标记有效地设置上下文。在还有另一种实施例中,当源网络适配器150在迁移过程中保持活动时,迁移代理160可以方便源网络适配器150和目的地网络适配器190之间的一个或多个事务,以验证它们状态的等效性。
[0040]图2是示出发现合适的目的地系统的图形表示的示例性图。在一种实施例中,迁移代理160基于可用主机、兼容主机及等效的网络适配器迭代地选择合适的目的地系统。在另一种实施例中,迁移代理160使用候选表,诸如图3中所示的候选表,执行这种迭代步骤。
[0041]迁移代理识别覆盖网络环境100中包括的可用的主机220。可用的主机220包括主机250-290,每个主机使用各种不同的网络适配器。图2中的例子显示迁移代理确定主机250-268不满足迁移虚拟机的主机需求(例如,没有足够的存储器或带宽可用性)。因此,迁移代理把主机272-290识别为满足或超过迁移虚拟机的主机需求的“兼容”主机230。
[0042]接下来,迁移代理分析对应于兼容主机230的网络适配器274、285和295,以便识别等效于由迁移虚拟机所使用的网络适配器的网络适配器。在一种实施例中,等效的网络适配器是设备ID和供应商ID都与迁移虚拟机的网络适配器匹配的网络适配器。图2中所示的例子显示网络适配器295等效于迁移虚拟机的网络适配器。因此,迁移代理向源和目的地系统的管理程序发送建立连接并且把虚拟机从源系统迁移到目的地系统的消息。
[0043]图3是包括主机属性和对应的网络适配器属性表条目的示例性候选表。迁移代理(作为分布式策略服务的一部分)管理候选表300,以便为执行有状态卸载数据传输的虚拟机跟踪主机需求和网络适配器需求。在一种实施例中,本地分布式策略服务器可以管理候选表300,该表将包括处于本地虚拟网络水平的表条目。在另一种实施例中,根分布式策略服务器可以管理候选表300,该表将包括处于全局覆盖网络环境水平的表条目(对于进一步的细节,见图10及对应的文字)。
[0044]候选表300包括表条目的列表,这包括主机名称(列310)和主机属性(列320)。例如,主机系统可以针对虚拟机规定处理能力、存储器和带宽的特定量。在一种实施例中,列320可以包括最小化、额定和/或最大化主机属性。
[0045]表条目还包括用于由对应主机系统使用的网络适配器的网络适配器信息。列330包括网络适配器标识符以及列340包括网络适配器属性。在一种实施例中,网络适配器属性识别网络适配器的供应商ID和设备ID。因此,迁移代理可以发现等效的(匹配的)网络适配器,以便把处于其原生格式的硬件状态数据迁移到不同的网络适配器。
[0046]图4是示出在发现目的地系统并且把虚拟机从源系统迁移到目的地系统时所采取的步骤的示例性流程图。迁移代理处理在400开始,随后迁移代理从管理员415接收迁移在源系统上执行的虚拟机的请求(步骤410)。虚拟机发送穿越网络适配器的有状态卸载数据分组(例如,RDMA),其中网络适配器利用硬件状态数据处理数据分组。
[0047]在步骤420,迁移代理识别虚拟机的数据分组穿越的源网络适配器(例如,包括在请求中或者经候选表识别)。作出关于网络适配器的硬件状态是否可移动的判定(例如,适配器支持提取,判定430)。如果网络适配器的硬件状态是不可移动的,则判定430分支到“否”分支,随后迁移代理在步骤435向管理员415返回错误,并且在步骤438结束。
[0048]另一方面,如果网络适配器的硬件状态是可移动的,则判定430分支到“是”分支,随后迁移代理通过一系列步骤发现其网络适配器支持由源网络适配器使用的硬件状态数据的合适目的地系统(预定义的过程块440,对于进一步的细节,见图5和对应的文字)。
[0049]在步骤450,迁移代理向源网络适配器发布提取命令(例如,通过其设备驱动器或管理程序),以停顿I/o和存储器活动,并且把硬件状态数据拷贝到共享存储器位置(对于进一步的细节,见图6和对应的文字)。
[0050]源系统105进而向迁移代理发送硬件状态数据已经拷贝到共享存储器的指示(在步骤470接收)。迁移代理向源系统和目的地系统发送建立连接并且把虚拟机(包括硬件状态数据)从源系统105迁移到目的地系统115的迁移请求(预定义的过程块480,对于进一步的细节,见图7和对应的文字)。一旦被迁移,目的地系统115的管理程序就根据迁移后的硬件状态数据配置其目的地网络适配器。在步骤490,虚拟机在目的地系统115上恢复操作,并且迁移代理处理在495结束。
[0051]图5是示出迁移代理在发现包括兼容主机和等效网络适配器的合适目的地系统时所采取的步骤的示例性流程图。在一种实施例中,等效的网络适配器是能够以其原生硬件格式(例如,不需要地址转换)利用源网络适配器的硬件状态数据的适配器。
[0052]目的地发现处理在500开始,随后在步骤520 (包括在分布式策略服务中的)迁移代理识别对应于迁移虚拟机的系统需求。例如,虚拟机系统需求可以包括处理速度、存储器需求、网络带宽需求等。在步骤530,迁移代理访问候选表525并且识别满足主机系统需求的兼容主机系统。在一种实施例中,当主机系统能够满足或超过虚拟机系统需求时,该主机系统就是兼容的。例如,虚拟机可能需要4GB的系统存储器,而主机系统可能能够向虚拟机提供6GB的系统存储器。
[0053]在步骤540,迁移代理识别包括在候选表525中的源网络适配器的原生硬件属性。在一种实施例中,源网络适配器的原生硬件属性包括源网络适配器的设备id、固件版本及其它相关的适配器属性。接下来,迁移代理识别由(来自步骤530的)兼容主机系统使用的、与源网络适配器的原生硬件属性等效的一个或多个网络适配器(步骤550)。
[0054]在步骤560,迁移代理进而选择等效网络适配器当中的一个。在一种实施例中,迁移代理向网络管理员发送消息并且允许网络管理员选择等效网络适配器当中的一个。处理在580返回。
[0055]图6是示出在主机系统准备要迁移的虚拟机时所采取的步骤的示例性流程图。源系统处理在600开始,随后源系统从迁移代理160接收状态提取命令,以便迁移在源主机系统上执行的特定虚拟机(步骤610)。在步骤620,源系统(例如,经设备驱动器或管理程序)停顿源网络适配器150上的I/O和存储器活动,以避免虚拟机迁移过程中的状态变化或讹误。
[0056]在步骤630,源系统指示源网络适配器150提取关于迁移虚拟机的硬件状态数据,并且在步骤640,源系统把硬件状态数据拷贝到共享存储器142,该共享存储器142是系统存储器并且是迁移到目的地系统的虚拟机的一部分。在步骤650,源系统通知迁移代理160虚拟机已经准备好迁移,并且源系统处理在660结束。
[0057]图7是示出把虚拟机从源系统迁移到目的地系统时所采取的步骤的示例性流程图。源系统处理在700开始,随后源系统从迁移代理160接收从源系统迁移到目的地系统的请求。目的地系统处理开始,随后目的地系统在755接收对应的请求。
[0058]在步骤710,源系统的管理程序与目的地系统的管理程序建立连接并请求目的地系统储备用于迁移虚拟机的资源。在一种实施例中,请求包括远程适配器配置参数,该参数指示迁移虚拟机的共享存储器中存储硬件状态数据的存储器块起始地址(步骤710)。
[0059]在步骤760,目的地系统的管理程序分配用于虚拟机的空间。在步骤710和765,管理程序把虚拟机从源系统迁移到目的地系统,并且在一种实施例中,目的地系统通过诸如校验和计算来验证迁移。目的地系统的管理程序进而在步骤770把设备驱动器分配给被迁移的逻辑分区,以便让虚拟机与目的地网络适配器通信。
[0060]在步骤775,目的地系统的管理程序向目的地网络适配器发送“状态插入”命令,该命令指示目的地网络适配器从共享存储器中的存储器块起始地址检索硬件状态数据并且相应地配置目的地网络适配器。在一种实施例中,存储器块起始地址包括在由源系统的管理程序发送的资源请求中(以上讨论的步骤710)。在另一种实施例中,源管理程序向目的地管理程序发送包括该存储器块起始地址的独立消息。一旦被配置,目的地管理程序就在步骤789向源管理程序发送迁移确认,并且目的地管理程序处理在790结束。
[0061 ] 源管理程序在步骤720接收成功迁移确认,并且在步骤730释放源系统的资源(虚拟机、设备驱动器、共享存储器等)。源管理程序处理在735结束。
[0062]图8是示出跟踪和存储用于在虚拟机上执行的模块的硬件状态数据的网络适配器的示例性图。虚拟机135使用模块800-850通过源网络适配器150向其它虚拟机发送/从其它虚拟机接收有状态卸载数据分组。模块800-850中每一个都具有关于源网络适配器150的“状态”,该状态存储在硬件状态数据152中。在一种实施例中,硬件状态数据152包括代表连接/数据报状态的一组状态信息。例如,硬件状态数据152可以包括以下:
[0063].资源的保护域分组
[0064].保护域设备统计数据
[0065].队列对发送队列硬件生产者索引
[0066].队列对发送队列软件消费者索引
[0067].队列对接收队列硬件生产者索引
[0068].队列对接收队列软件消费者索引
[0069].关联的存储器区域
[0070]?关联的地址句柄(handle)
[0071].完成队列硬件生产者索引
[0072].完成队列软件消费者索引
[0073].完成队列硬件设备统计数据
[0074].虚拟到逻辑/总线地址映射
[0075]当虚拟机135迁移到目的地系统时,硬件状态数据152拷贝到共享存储器区域并且与虚拟机135 —起迁移到目的地系统。目的地系统进而根据迁移后的硬件状态数据152配置其目的地网络适配器。在一种实施例中,源网络适配器150可以管理数千个硬件状态数据152,每个硬件状态数据都对应于一个不同的虚拟机。在这种实施例中,只有对应于迁移虚拟机的硬件状态数据152才拷贝到目的地系统。
[0076]图9是示出硬件状态数据从源网络适配器到目的地网络适配器的迁移的示例性图。源网络适配器150利用硬件状态数据152把有状态卸载数据分组从源虚拟机发送到目的地虚拟机。在迁移到目的地网络适配器190的过程中,硬件状态数据152拷贝到共享存储器142中存储器块起始地址800。当虚拟机135作为虚拟机175拷贝到目的地系统时,硬件状态数据152进而以其原生硬件格式拷贝并且在共享存储器182上仍然存储在存储器块起始地址800。由于目的地网络适配器190与源网络适配器150等效的事实,硬件状态数据152进而以其原生硬件格式拷贝到目的地网络适配器190。
[0077]由于目的地网络适配器190与源网络适配器150等效的事实,目的地网络适配器190以其原生格式利用硬件状态数据,由此不需要地址转换。
[0078]图10是示出访问候选表存储区域以便识别合适目的地系统的分布式策略服务的示例性图。迁移代理160与本地网络策略服务器接口,以识别合适的目的地系统。在一种实施例中,本地网络策略服务器1000管理关于源系统的覆盖网络(例如,覆盖网络环境100)的策略和物理路径转换。在另一种实施例中,用于不同覆盖网络的策略服务器共同定位并且根据它们对应的覆盖网络标识符区分来自不同迁移代理的策略请求。
[0079]分布式策略服务165是分层构造的,并且当本地网络策略服务器1000不能定位合适的目的地系统时,本地网络策略服务器1000查询根策略服务器1010,以搜索合适的目的地系统。根策略服务器1010进而访问候选表仓库1015并且把合适的目的地系统标识符发送到本地网络策略服务器1000,本地网络策略服务器1000进而把其发送到迁移代理160。在一种实施例中,根策略服务器1010可以向本地网络策略服务器1000发送向本地网络策略服务器1030查询合适的目的地系统的消息,其中本地网络策略服务器1030管理与本地网络策略服务器1000所管理的主机系统不同的其它主机系统。
[0080]图11是示出覆盖到物理网络空间上的虚拟网络抽象的示例性图。虚拟网络1100是覆盖网络环境的一部分并且包括在虚拟机(例如,虚拟机1102-1110)之间提供端到端虚拟连接的策略(例如,策略1103-1113)。虚拟网络1100中每一个都对应于一个唯一的虚拟标识符,这允许多个虚拟网络在物理空间1120上的并发操作。如本领域技术人员可以认识到的,虚拟网络1100中的一些可以包括虚拟机1102-1110的一部分,而其它虚拟网络1100可以包括与图11中所示不同的虚拟机和不同的策略。
[0081]当“源”虚拟机向“目的地”虚拟机发送数据时,对应于这两个虚拟机的策略描述数据在其上行进的逻辑路径(例如,通过防火墙、通过加速器,等等)。换句话说,策略1103-1113定义不同的虚拟机如何彼此(或者与外部网络)通信。例如,策略可以定义一组虚拟机之间的服务质量(QoS)需求;与特定虚拟机关联的访问控制;或者当发送或接收数据时穿越的一组虚拟或物理设备(装备)。此外,有些设备可以包括诸如压缩、IP安全(IPsec),SSL的加速器,或者诸如防火墙或入侵检测系统的安全设备。此外,策略可以配置为禁止源虚拟机和目的地虚拟机之间的通信。
[0082]虚拟网络1100逻辑地覆盖到物理空间1120上,该物理空间包括物理实体1135至1188(主机、交换机和路由器)。虽然策略在系统中实施的途径影响并依赖于物理空间1120,但是虚拟网络1100更依赖于策略中的逻辑描述。因此,多个虚拟网络1100可以覆盖到物理空间1120上。如可以看到的,物理空间1120被分成子网X1125和子网Y1130。子网经路由器1135和1140结合。虚拟网络1100独立于物理空间1120的物理约束(例如,子网内的L2层约束)。因此,虚拟网络可以包括既包括在子网X1125中又包括在子网Y1130中的物理实体。
[0083]在一种实施例中,虚拟网络抽象支持不同虚拟网络1100之间的地址独立性。例如,在两个不同虚拟网络中运行的两个不同虚拟机可以具有相同的IP地址。作为另一个例子,虚拟网络抽象支持把属于同一虚拟网络的虚拟机部署到位于不同物理子网(包括物理实体之间的交换机和/或路由器)中的不同主机上。在另一种实施例中,属于不同虚拟网络的虚拟机可以在同一物理主机上托管。在还有另一种实施例中,虚拟网络抽象支持在数据中心中任何地方的虚拟机迁移,而不改变该虚拟机的网络地址也不会丢失其网络连接。
[0084]对于关于这种体系架构的进一步细节,见2011年8月5日提交的序列#13/204, 211 “Virtual Switch Data Control in a Distributed Overlay Network,,,该申请在此引入作为参考。
[0085]图12说明了信息处理系统1200,该系统是能够执行本文所述计算操作的计算机系统的简化例子。信息处理系统1200包括耦合到处理器接口总线1212的一个或多个处理器1210。处理器接口总线1212把处理器1210连接到也称为存储器控制器集线器(MCH)的北桥1215。北桥1215连接到系统存储器1220并且为处理器1210提供访问系统存储器的手段。图形控制器1225也连接到北桥1215。在一种实施例中,PCI Express总线1218把北桥1215连接到图形控制器1225。图形控制器1225连接到显示设备1230,诸如计算机监视器。
[0086]北桥1215和南桥1235利用总线1219彼此连接。在一种实施例中,总线是在北桥1215和南桥1235之间每个方向以高速传输数据的直接媒体接口(DMI)总线。在另一种实施例中,外围组件互连(PCI)总线连接北桥和南桥。南桥1235,也称为I/O控制器集线器(ICH),是总体上实现以比北桥所提供的能力更低速度操作的能力的芯片。南桥1235通常提供用于连接各种部件的各种总线。这些总线包括,例如PCI和PCI Express总线、ISA总线、系统管理总线(SMBus或SMB)、和/或低引脚数(LPC)总线。LPC总线常常连接低带宽设备,诸如引导ROMl296和“传统” I/O设备(利用“超I/O”芯片)。“传统” I/O设备(1298)可以包括,例如串行和并行端口、键盘、鼠标和/或软盘控制器。LPC总线还把南桥1235连接到可信平台模块(TPM)1295。南桥1235中常常包括的其它部件包括直接存储器存取(DMA)控制器、可编程中断控制器(PIC)以及利用总线1284把南桥1235连接到诸如硬盘驱动器的非易失性存储设备1285的存储设备控制器。
[0087]ExpressCardl255是把热插拔设备连接到信息处理系统的一个插槽。ExpressCardl255既支持PCI Express又支持USB连接性,因为它既利用通用串行总线(USB)又利用PCI Express总线连接到南桥1235。南桥1235包括向连接到USB的设备提供USB连接性的USB控制器1240。这些设备包括摄像头(相机)1250、红外线(IR)接收器1248、键盘和触控板1244、以及提供无线个人区域网络(PAN)的蓝牙设备1246。USB控制器1240还向其它各种USB连接的设备1242,诸如鼠标、可移动的非易失性存储设备1245、调制解调器、网卡、ISDN连接器、传真机、打印机、USB集线器及许多其它类型的USB连接设备,提供USB连接性。虽然可移动的非易失性存储设备1245示为USB连接的设备,但是可移动的非易失性存储设备1245也可以利用不同的接口连接,诸如Firewire接口等。
[0088]无线局域网(LAN)设备1275经PCI或PCI Express总线1272连接到南桥1235。LAN设备1275通常实现全都使用相同的协议在信息处理系统1200和另一个计算机系统或设备之间无线地通信的无线(over-the-air)调制技术的IEEE801.11标准当中的一个。光学存储设备1290利用串行ATA(SATA)总线1288连接到南桥1235。串行ATA适配器和设备经高速串行链路通信。串行ATA总线还把南桥1235连接到其它形式的存储设备,诸如硬盘驱动器。音频电路系统1260,诸如声卡,经总线1258连接到南桥1235。音频电路系统1260还提供诸如音频线路输入和光学数字音频输入端口 1262、光学数字输出和耳机插孔1264、内部扬声器1266和内部麦克风1268的功能性。以太网控制器1270利用总线,诸如PCI或PCI Express总线,连接到南桥1235。以太网控制器1270把信息处理系统1200连接到计算机系统,诸如局域网(LAN)、互联网及其它公共和私有的计算机网络。
[0089]虽然图12示出了一个信息处理系统,但是信息处理系统可以采取许多形式。例如信息处理系统可以采取台式、服务器、便携式、膝上型、笔记本或者其它形状因子的计算机或数据处理系统。此外,信息处理系统可以采取其它形状因子,诸如个人数字助理(PDA)、游戏设备、ATM机、便携式电话设备、通信设备或者包括处理器和存储器的其它设备。
[0090]图12中所示并且在本文中描述为提供安全功能的可信平台模块(TPM1295)仅仅是硬件安全模块(HSM)的一个例子。因此,本文所描述和阐述的TPM包括任何类型的HSM,包括但不限于遵循命名为“可信平台模块(TPM)规范版本1.2”的可信计算组(TCG)标准的硬件安全设备。TPM是可以结合到任意数量的信息处理系统,诸如在图13中略述的那些,当中的硬件安全子系统。
[0091]图13提供了图12中所示信息处理系统环境的扩展,以说明本文所述的方法可以在联网环境中操作的各种各样的信息处理系统上执行。信息处理系统的类型从小型手持式设备,诸如手持式计算机/移动电话1310,到大型主机系统,诸如大型计算机1310,变化。手持式计算机1310的例子包括个人数字助理(PDA)、个人娱乐设备,诸如MP3播放器、便携式电视机以及光盘播放器。信息处理系统的其它例子包括笔输入或平板计算机1320、膝上型或笔记本计算机1330、工作站1340、个人计算机系统1350、以及服务器1360。在图13未单独示出的其它类型的信息处理系统由信息处理系统1380表示。如所示出的,各种信息处理系统可以利用计算机网络1300联网到一起。可以用于互连各种信息处理系统的计算机网络类型包括局域网(LAN)、无线局域网(WLAN)、互联网、公共交换电话网(PSTN)、其它无线网络、以及可用于互连信息处理系统的任何其它网络拓扑结构。许多信息处理系统都包括非易失性数据仓库,诸如硬驱和/或非易失性存储器。图13中示出的有些信息处理系统绘出了独立的非易失性数据仓库(服务器1360使用非易失性数据仓库1365,大型计算机1370使用非易失性数据仓库1375,而信息处理系统1380使用非易失性数据仓库1385)。非易失性数据仓库可以是在各种信息处理系统外部的一个部件或者可以在一个信息处理系统内部。此外,可移动的非易失性存储设备1245可以利用各种技术在两个或更多个信息处理系统之间共享,诸如把可移动的非易失性存储设备1245连接到USB端口或者信息处理系统的另一连接器。
[0092]虽然本公开内容的特定实施例已经示出并进行了描述,但是对本领域技术人员来说很显然,基于本文的教导,在不背离本公开内容及其更广泛方面的情况下可以进行改变和修改。因此,所附权利要求是要在其范围内涵盖所有属于本公开内容真正主旨与范围的这种改变和修改。此外,应当理解,本公开内容只能由所附权利要求来定义。本领域技术人员应当理解,如果预期具体数量的所介绍权利要求元素,则这种意图将在权利要求中明确地书面陈述,并且在缺少这种书面陈述的情况下就不存在这种限制。对于非限制性例子,为了帮助理解,以下所附权利要求包含使用介绍性短语“至少一个”和“一个或多个”来介绍权利要求元素。但是,即使当同一个权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一”、“一个”的不定冠词时,这种短语的使用也不应当认为是暗示由不定冠词“一”、“一个”对权利要求元素的介绍把包含这种被介绍权利要求元素的任何特定权利要求限定到只包含一个这种元素的公开内容;对于定冠词在权利要求中的使用,这也同样适用。
【权利要求】
1.一种方法,包括: 接收移动在第一系统上执行的虚拟机的迁移请求; 识别对应于所述第一系统的第一网络适配器,其中所述第一网络适配器包括用于处理由所述虚拟机生成的数据分组的硬件状态数据,所述硬件状态数据以原生格式存储在位于所述第一网络适配器上的存储器区域中; 识别与所述原生格式兼容的第二网络适配器,其中所述第二网络适配器包括在第二系统中;以及 把所述虚拟机迁移到所述第二系统。
2.如权利要求1所述的方法,其中识别第二网络适配器还包括: 识别对应于第一网络适配器的一个或多个第一网络适配器属性; 识别对应于第二网络适配器的一个或多个第二网络适配器属性;以及确定所述一个或多个第一网络适配器属性中的每一个等效于所述一个或多个第二网络适配器属性中的一个。
3.如权利要求2所述的方法,其中所述一个或多个第一网络适配器属性中的每一个匹配第二网络适配器属性中的一个。
4.如权利要求1所述的方法,其中所述第一系统包括第一主机,而所述第二系统包括第二主机,所述方法 还包括: 识别对应于所述虚拟机的一个或多个第一主机需求,其中所述第一主机需求中的至少一个选自包含处理需求、存储器需求和带宽需求的组;以及 确定所述第二主机支持所述一个或多个第一主机需求中的每一个。
5.如权利要求1所述的方法,其中所述数据分组是根据有状态卸载格式处理的,其中所述有状态卸载格式选自包含远程直接存储器存取(RDMA)格式、互联网广域RDMA协议(iffARP)格式、Infiniband (IB)格式、以及TCP卸载引擎(TOE)格式的组。
6.如权利要求5所述的方法,其中所述数据分组由所述第一网络适配器通过覆盖网络环境发送到目的地虚拟机,所述覆盖网络环境包括独立于物理网络的物理拓扑结构约束的一个或多个虚拟网络。
7.如权利要求6所述的方法,其中所述覆盖网络环境包括确定所述第二网络适配器等效于所述第一网络适配器的分布式策略服务。
8.如权利要求1所述的方法,还包括: 根据硬件状态数据恢复虚拟机在第二系统上的执行;以及 响应于恢复虚拟机在第二系统上的执行而释放所述第一系统上的一个或多个资源。
9.一种信息处理系统,包括: 一个或多个处理器; 耦合到所述处理器中的至少一个处理器的存储器; 一组计算机程序指令,存储在存储器中并且由至少一个处理器执行,以便执行以下动作: 接收移动在第一系统上执行的虚拟机的迁移请求; 识别对应于所述第一系统的第一网络适配器,其中所述第一网络适配器包括用于处理由所述虚拟机生成的数据分组的硬件状态数据,所述硬件状态数据以原生格式存储在位于所述第一网络适配器上的存储器区域中; 识别与所述原生格式兼容的第二网络适配器,其中所述第二网络适配器包括在第二系统中;以及 把所述虚拟机迁移到所述第二系统。
10.如权利要求9所述的信息处理系统,其中所述处理器执行附加的动作,包括: 识别对应于第一网络适配器的一个或多个第一网络适配器属性; 识别对应于第二网络适配器的一个或多个第二网络适配器属性;以及确定所述一个或多个第一网络适配器属性中的每一个等效于所述一个或多个第二网络适配器属性中的一个。
11.如权利要求10所述的信息处理系统,其中所述一个或多个第一网络适配器属性中的每一个匹配第二网络适配器属性中的一个。
12.如权利要求9所述的信息处理系统,其中所述第一系统包括第一主机,而所述第二系统包括第二主机,并且其中所述处理器执行附加的动作,包括: 识别对应于所述虚拟机的一个或多个第一主机需求,其中所述第一主机需求中的至少一个选自包含处理需求、存储器需求和带宽需求的组;以及 确定所述第二主机支持所述一个或多个第一主机需求中的每一个。
13.如权利要求9所述的信息处理系统,其中所述数据分组是根据有状态卸载格式处理的,其中所述有状态卸载格式选自包含远程直接存储器存取(RDMA)格式、互联网广域RDMA协议(iWARP)格式、Infiniband (IB)格式、以及TCP卸载引擎(TOE)格式的组。
14.如权利要求13所述的信息处理系统,其中所述数据分组由所述第一网络适配器通过覆盖网络环境发送到目的地虚拟机,所述覆盖网络环境包括独立于物理网络的物理拓扑结构约束的一个或多个虚拟网络。
15.如权利要求14所述的信息处理系统,其中所述信息处理系统是包括在覆盖网络环境中的分布式策略服务。
16.如权利要求9所述的信息处理系统,其中所述处理器执行附加的动作,包括: 根据硬件状态数据恢复虚拟机在第二系统上的执行;以及 响应于恢复虚拟机在第二系统上的执行而释放所述第一系统上的一个或多个资源。
17.一种存储在计算机可读存储介质中的计算机程序产品,包括计算机程序代码,当所述代码被信息处理系统执行时,使所述信息处理系统执行动作,包括: 接收移动在第一系统上执行的虚拟机的迁移请求; 识别对应于所述第一系统的第一网络适配器,其中所述第一网络适配器包括用于处理由所述虚拟机生成的数据分组的硬件状态数据,所述硬件状态数据以原生格式存储在位于所述第一网络适配器上的存储器区域中; 识别与所述原生格式兼容的第二网络适配器,其中所述第二网络适配器包括在第二系统中;以及 把所述虚拟机迁移到所述第二系统。
18.如权利要求17所述的计算机程序产品,其中所述信息处理系统执行附加的动作,包括: 识别对应于第一网络适配器的一个或多个第一网络适配器属性;识别对应于第二网络适配器的一个或多个第二网络适配器属性;以及确定所述一个或多个第一网络适配器属性中的每一个等效于所述一个或多个第二网络适配器属性中的一个。
19.如权利要求18所述的计算机程序产品,其中所述一个或多个第一网络适配器属性中的每一个匹配第二网络适配器属性中的一个。
20.如权利要求17所述的计算机程序产品,其中所述第一系统包括第一主机,而所述第二系统包括第二主机,并且其中所述信息处理系统执行附加的动作,包括: 识别对应于所述虚拟机的一个或多个第一主机需求,其中所述第一主机需求中的至少一个选自包含处理需求、存储器需求和带宽需求的组;以及 确定所述第二主机支持所述一个或多个第一主机需求中的每一个。
21.如权利要求17所述的计算机程序产品,其中所述数据分组是根据有状态卸载格式处理的,其中所述有状态卸载格式选自包含远程直接存储器存取(RDMA)格式、互联网广域RDMA协议(iWARP)格式、Infiniband (IB)格式、以及TCP卸载引擎(TOE)格式的组。
22.如权利要求21所述的计算机程序产品,其中所述数据分组由所述第一网络适配器通过覆盖网络环境发送到目的地虚拟机,所述覆盖网络环境包括独立于物理网络的物理拓扑结构约束的一个或多个虚拟网络。
23.如权利要求22所述的计算机程序产品,其中所述覆盖网络环境包括确定所述第二网络适配器等效于所述第一网络适配器的分布式策略服务。
24.如权利要求17所述的计算机程序产品,其中所述信息处理系统执行附加的动作,包括: 根据硬件状态数据恢复虚拟机在第二系统上的执行;以及 响应于恢复虚拟机在第二系统上的执行而释放所述第一系统上的一个或多个资源。
25.—种方法,包括: 接收移动在第一系统上执行的虚拟机的迁移请求,其中所述第一系统包括第一网络适配器; 识别对应于所述虚拟机的一个或多个主机需求; 识别每个都支持所述一个 或多个主机需求的多个兼容主机; 识别对应于所述第一网络适配器的一个或多个第一网络适配器属性; 选择对应于所述多个兼容主机中与所述一个或多个网络适配器属性中每一个等效的一个兼容主机的第二网络适配器;以及 把所述虚拟机迁移到包括选定的第二网络适配器的第二系统。
【文档编号】H04L29/06GK103843302SQ201280048970
【公开日】2014年6月4日 申请日期:2012年9月26日 优先权日:2011年10月4日
【发明者】O·卡多纳, V·简, 拉科什·沙马, R·J·勒西欧 申请人:国际商业机器公司