网络复制的技术的制作方法

文档序号:13110116阅读:275来源:国知局
本申请是申请日为2011年12月19日,国际申请号为PCT/US2011/065862,进入中国国家阶段日期为2013年6月4日,国家申请号为201180058431.8,名为“网络复制的技术”申请的分案申请。背景远程计算服务经常用来代表各用户操作网络。例如一机构可远程地操作彼此通信的多个计算设备。可根据机构的需要利用诸如路由器、交换机、防火墙等之类的各种网络设备在网络中配置计算设备。进一步地,计算和网络设备可包括虚拟和/或真实的计算设备。例如,机构的网络可包括通过一个或多个虚拟网络设备彼此通信的多个虚拟机,藉此形成覆盖真实网络的虚拟网络。可对计算设备进行编程以根据虚拟网络的拓扑进行通信,且可使用各种技术来使得通信能够在虚拟网络覆盖的真实网络上行进。在一些实例中,期望的是复制网络,或复制其中至少一部分。例如,机构可希望测试网络,同时仍允许网络工作。类似地,机构可希望在不使得网络实际经受压力的情况下,模拟施加在网络上的各种压力。机构可希望测试对于其网络的修改可如何作用或者可希望重建引起一个或多个事件的事件(诸如网络故障)。一般而言,存在各种理由表明网络复制为何会有用。然而,网络复制可能是费时费力的过程,一般需要将新网络配置成为旧网络的复制品的大量干预。附图简述图1示出其中可实现各个实施例的环境。图2示出可利用图1所示环境的各组件的环境。图3更详细地示出图2的环境的一部分。图4是根据一实施例的用于请求网络复制的过程的说明性示例的流程图。图5是根据一实施例的用于响应于接收到复制网络的指令而复制网络的过程的说明性示例的流程图。图6是根据一实施例的用于复制网络的过程的说明性示例的流程图。图7是根据一实施例的用于创建复制网络的对象拷贝的过程的说明性示例的流程图。图8是根据一实施例的时间线的示图,该时间线示出网络对象的浅拷贝的创建。图9是根据一实施例的时间线的示图,该时间线示出网络对象的深拷贝的创建。图10是根据一实施例的利用复制网络的说明性示例的流程图。图11是根据一实施例的利用复制网络的另一个说明性示例的流程图。详细描述此处描述和提出的技术包括对于诸如网络复制之类的过程有用的系统与方法。在一实施例中,接收复制网络的至少一部分的请求,且响应于该请求,该网络的至少一部分被复制。该请求可以是由远程访问该网络的诸如网络管理员的用户所发起的。可通过为了允许用户访问其网络(多个)的目的而设置的web服务层的各种应用编程接口(API)来进行网络的接入。作为示例,可由提供被用于操作网络的计算资源的另一个机构来代表用户(和/或与用户关联的机构)操作该网络。作为示例,该计算资源可位于一个或多个数据中心且通过使用web服务的API的用户远程地访问,但是可使用其他技术。为了网络复制的目的,可提供一个或多个API。另外可使用一个或多个数据中心来实现可远程访问其网络的其他用户的网络。计算资源可包括计算设备、存储设备、交换机、路由器、网关、集线器、以及可被用于操作网络的其他设备,包括下述的一些设备和一般适用于网络环境的任何设备。在一实施例中,被复制的网络是虚拟覆盖网络。在一实施例中,被复制的网络包括覆盖物理设备网络的一个或多个虚拟设备的网络。物理设备可包括一个或多个集线器、交换机、路由器、网关、防火墙、服务器、存储设备、和/或可被用在网络环境中的一个或多个其他设备。类似地,虚拟设备可包括一个或多个虚拟集线器、虚拟交换机、虚拟路由器、虚拟网关、虚拟防火墙、虚拟服务器、虚拟存储设备、和/或可被用在网络环境中的一个或多个其他设备。如此处所使用地,当从上下文中显而易见时,虚拟设备可被没有“虚拟”二字地引用。在包括虚拟网络的一组设备和包括被虚拟网络所覆盖的物理网络的一组设备之间可能不存在一一对应关系。作为示例,可使用一个物理设备来实现多个虚拟设备。例如,可使用计算设备来实现多个虚拟机。作为另一个示例,可使用多个物理设备来实现单个虚拟设备。例如,可由多个物理存储设备来实现虚拟存储设备。此外,尽管可由单个物理设备实现多个虚拟设备且可使用多个物理设备来实现单个虚拟设备,也可由单个物理设备实现一些虚拟设备。例如,可由单个物理存储设备来实现虚拟存储卷。在一实施例中,向做出请求的用户提供机会来指定与可如何复制网络有关的一个或多个参数。在一实施例中,用户能标识要复制的网络的一个或多个部分(诸如一个或多个子网络)。此外,可用各种特性来对用户网络中的设备加标签。设备的标签可涉及在网络中该设备的用途(诸如该设备被用于支持的应用的类型),一般可涉及该设备的任何方面,或可与该设备的一特性没有明显关联。在一实施例中,用户可指定一个或多个标签作为包括在复制网络中或排除在复制网络外的条件。例如,用户可指定仅加有“生产(production)”标签的设备应当被包括在复制网络中。其他参数可涉及在要拷贝网络的复制网络中的对象的保真度。例如,如果要拷贝的网络包括虚拟机,则用户可具有多个选项用于指定复制虚拟机的要求。例如,用户可指定虚拟机的低保真度,藉此复制网络可仅具有对应的虚拟机。用户可指定较高的保真度,其中对应虚拟机的性能与原始虚拟机的匹配度达各种程度。例如,用户可指定,复制虚拟机应该被实现为具有最小处理性能、可用块存储、和/或运行各种软件应用的能力。类似地,用户可指定非常高的保真度,其中,例如,应当在使用特定处理器模型的机器上实现复制虚拟机。一般而言,可向指定拷贝保真度的用户提供与复制网络对象应该如何接近地匹配被复制的对象相关的任何类型的特性。作为可被指定的参数的另一示例,用户可指定应被用于复制网络中的对应设备的网络中设备的各种因特网协议地址。在一实施例中,用户还能够指定要拷贝网络中的设备的至少一个拷贝类型。在一个实施例中,用户能够在要拷贝网络中指定诸如“浅”或“深”拷贝之类的拷贝类型,但是还可提供其他拷贝类型用于选择。通过网络对象的浅拷贝,可声明对象的新实例。新实例可按需操作,从而检索有关拷贝前原始对象状态的信息。网络对象的浅拷贝可例如是网络对象的写时拷贝(COW)覆盖。通过网络对象的深拷贝,可对复制拷贝做出包括有关对象状态的信息的存储器存储的完整拷贝,从而使复制拷贝能独立地操作,而不需要从另一个源检索与原始对象在拷贝之前的状态有关的信息。如前所述,在一实施例中,当用户提交拷贝网络的请求时,响应于该请求,网络被拷贝且向用户提供该网络的接入。拷贝网络可包括创建与被拷贝网络的一个或多个虚拟设备相对应的一个或多个虚拟复制设备。用于创建和/或操作被拷贝网络的虚拟设备的虚拟化或其他技术也可被用于创建和操作对应的复制设备。此外,用于创建被拷贝网络中的设备的任何模板可被用于创建复制设备。换言之,可从共用模板创建设备及其复制设备。以与用户指定的任何参数一致的方式完成拷贝网络。所指定的参数可应用于被拷贝的整个网络和/或被拷贝的各网络对象。在一些实施例中,用户能够对要拷贝的每一个网络对象和/或要拷贝的网络对象的子集指定不同参数。可用各种方式完成提供复制网络接入。一般而言,诸如网络管理员的用户能够以各种方式和出于各种目的来操作复制网络。作为一个示例,用户可出于测试目的对复制网络施加各种压力。用户还可出于取证目的而在复制网络中记录网络事件并重现这些事件。作为另一示例,用户可使用复制网络结合被拷贝网络来提供附加容量,或者一般地,使得复制网络的附加计算资源可用。用户还可修改复制网络,诸如测试修改被拷贝网络会如何影响其性能。将在以下段落中更加详细地描述有关各实施例(包括附加示例)的细节。图1示出用于实现根据多个实施例的方面的环境100的示例。如将理解地,虽然出于说明的目的使用了基于Web的环境,但在适当时可使用不同的环境来实现多个实施例。该环境包括电子客户机设备102,其可包括用于在合适网络104上发送和接收请求、消息、或信息并向设备的用户传送回信息的任何合适设备。这样的客户机设备的示例包括个人计算机、蜂窝电话、手持消息收发设备、膝上型计算机、机顶盒、个人数据助理、电子书阅读器、等等。网络可包括任何适当的网络,包括内联网、因特网、蜂窝网络、局域网或任何其它这样的网络或其组合。用于这样的系统的部件可至少部分地取决于所选择的网络和/或环境的类型。用于经由这样的网络通信的协议和部件是公知的,而且将不在本申请中详细讨论。在该网络上的通信可通过有线或无线连接或其组合来启用。在本示例中,该网络包括因特网,因为该环境包括用于接收请求且响应于请求提供内容服务的Web服务器106,不过对于其它网络,可使用用于相似用途的替代设备,如本领域普通技术人员将显而易见的。所示环境包括至少一个应用服务器108和数据存储110。应理解,可存在若干应用服务器、层、或其它元件、进程或部件,以上部件可链式连接或以其它方式配置,这些部件可交互以执行诸如从适当的数据存储获得数据的任务。如此处所使用的,术语“数据存储”指的是任何能够存储、存取以及检索数据的设备或设备的组合,可包括在任何标准的、分布式的或群集环境中的数据服务器、数据库、数据存储设备以及数据存储介质的任何组合和数量。该应用服务器可包括任何适当的硬件和软件,用于按需与该数据存储集成以执行用于客户机设备的一个或多个应用的多个方面,从而处理用于应用的大部分数据存取和业务逻辑。该应用服务器与数据存储合作以提供访问控制服务,且能够产生诸如文本、图形、音频和/或视频之类的内容以转移至用户,在本示例中该数据可通过Web服务器以HTML、XML或另一适当的结构化语言的形式提供给用户。对所有请求和响应的处理以及客户机设备102与应用服务器108之间的内容传递可由该Web服务器来处理。应理解,Web和应用服务器不是必需的,而且仅仅是示例部件,因为本申请中讨论的结构化代码可在任何适当的设备或主机上执行,如本申请别处所讨论的。数据存储110可包括若干独立的数据表、数据库或其它数据存储机构、以及用于存储与特定方面相关的数据的介质。例如,所示的数据存储包括用于存储生产数据112和用户信息116的机构,该机构可用于提供用于生产侧的内容。还示出该数据存储包括用于存储记录数据114的机构,该机构可用于报告、分析、或其它这类目的。应理解,可存在可能需要被存储在数据存储中的许多其它方面(诸如页面图像信息或访问权信息),这些其它方面可按需存储在以上列出的任一机构中,或存储在数据存储110中的附加机构中。数据存储110可通过与其关联的逻辑来操作,以接收来自应用服务器108的指令,并且响应于该指令来获得、更新或以其它方式处理数据。在一个示例中,用户可提交对于特定类型项目的搜索请求。在该情况下,该数据存储可访问用户信息以验证用户的身份,且能访问目录细节信息以获得与该类型的项目有关的信息。然后该信息可被返回给用户,诸如罗列在用户能经由用户设备102上的浏览器看到的网页上的结果。可在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。每个服务器将典型地包括操作系统,该操作系统提供用于该服务器的一般管理和操作的可执行程序指令,并且每个服务器将典型地包括存储指令的计算机可读介质,这些指令在被该服务器的处理器执行时允许该服务器执行其预期功能。用于服务器的操作系统和一般功能的合适实现是已知的或可买到的,而且容易由本领域普通技术人员实现(尤其鉴于本申请中的公开内容)。在一个实施例中,该环境是利用若干计算机系统和部件的分布式计算环境,这些计算机系统和部件利用一个或多个计算机网络或直接连接经由通信链路互连。然而,本领域普通技术人员将理解,这样的系统在具有比图1所示更少或更多数量的部件的系统中也可同样好地工作。因此,图1中的系统100的描绘应被理解为本质上是说明性的,并且不限于公开内容的范围。图2提供了可利用图1中所示的一个或多个组件的环境200的说明性示例,且该环境200可被用于实践本发明的各实施例。在图2中所示的环境200中,用远程计算服务提供者网络204来通信地连接多个客户内部网络202。尽管图2示出多个客户内部网络202,本发明的实施例可在其中有一个或零个客户内部网络202的环境中被实现。返回至图2中所说明的实施例,例如,客户内部网络202可以是利用远程计算服务提供者的远程计算服务的机构的内联网。作为一示例,客户可利用其自身内部网络来执行在客户操作过程中使用的各种应用,同时将作为使用远程计算服务提供者网络204的服务所提供的计算资源用于其它应用。在一实施例中,远程计算服务提供者网络204在由远程计算服务提供者所操作的数据中心内被实现。数据中心可以是其中利用了各种计算资源的设施。计算资源包括计算设备,存储设备,诸如路由器、交换机、防火墙等的网络设备等,且一般地,包括可结合计算设备的网络使用的任何设备。远程计算服务提供者网络204可被实现为具有在通信网络上彼此通信的多个数据中心。例如,远程计算服务提供者可在不同地理位置操作数据中心的网络。如图中所示,远程计算服务提供者网络204包括一个或多个客户远程网络206,在此示例中这些远程网络206是代表对应客户而操作的网络。可使用远程客户网络206来操作客户的各种操作。例如,客户可将客户内部网络202用于内部操作(诸如会计、人力资源、电子邮件等),而将客户远程网络206用于外部操作(诸如操作服务器和数据存储的网络来向公众或客户机构外部的其他用户提供web站点或其他信息资源)。一般而言,客户可出于任何合适的目的而利用客户内部网络202和/或客户远程网络206。客户远程网络206中的一个或多个可以是虚拟覆盖网络,诸如在2008年3月31日提交、题为“ConfiguringCommunicationsBetweenComputingNodes(在计算节点之间配置通信)”的美国专利申请No.12/060,074中描述的那些,该专利申请出于所有目的通过引用全部结合至此。在一实施例中,远程计算服务提供者网络204包括具有多个应用编程接口(API)210的web服务层208。web服务层208可被实现在计算机系统中,该计算机系统能接收web服务调用和相应地作出响应,诸如通过指令一个或多个其他计算机系统来基于请求执行动作。使用为了各种目的向用户提供的各种web服务API210可做出web服务调用。例如,一个API可用于网络复制的目的,如根据本发明的各实施例所描述的那样。其他API可用于其它目的,诸如供应虚拟计算实例,以其它方式配置网络,以及一般地,代表利用API的用户远程地操作计算资源。此外,尽管出于说明目的提供了web服务API,根据各实施例,可使用或远程或本地地操作计算资源的任何方式。图3示出可以是以上结合图2所述的环境200的子环境的环境300的说明性示例。如图3中所示,环境300示出向特定客户应用的环境200的一部分。在此示例中,客户具有访问远程计算服务提供者网络304的自己的客户内部网络302,其中,客户远程网络306由代表客户的远程计算服务提供者304所操作。尽管在图3中示出客户具有数个子网络308,但是客户可仅具有一个网络或具有比图中所示的更多的子网络。在一实施例中,客户远程网络306,包括多个客户子网络308。在一实施例中,一个或多个客户子网络是由远程计算服务提供者所操作的网络的覆盖网络。在图示的说明性实施例中,客户可通过路由器310和虚拟专用网络(VPN)网关312在因特网314上通过安全VPN连接访问各子网络308,但可使用访问客户子网络308的其他方式。在一实施例中,客户从其客户内部网络302建立在因特网上的安全VPN连接且通过web服务调用与客户子网络308交互,但是可使用与代表客户操作的各计算设备通信的其他方式。在一实施例中,客户内部网络302的服务器将加密的信息传达至VPN网关312,该网关312解密该信息并将经解密的指令传送至路由器310。然后路由器310将经解密的信息传送至合适的客户子网络308。来自任何客户子网络308的信息,不论是否响应于由客户内部网络302发送的任何指令,可被发送至路由器310,该路由器310将该信息传送至VPN网关312,该网关312加密该信息并在安全VPN连接314上将信息发送至客户内部网络302。尽管图3根据各实施例为说明目的而示出信息流的特定配置,可对于环境300或其他实施例利用其他配置。一般而言,可使用在各计算设备之间交换信息的任何合适方式。此外,尽管在图3中为说明目的包括了诸如VPN网关312和路由器310之类的一些设备,也可将其他设备用于通信。此外,图3中所示的环境300被简化且在环境300或在其他实施例中可包括不同于图示的其他设备。可能的设备包括,但不限于,交换机、服务器、防火墙、数据存储、集线器、其他网关等。如上所述,对于动态网络复制提供了本发明的各实施例。因此,图4示出客户可用来拷贝一个或多个网络的过程400的说明性实施例。该过程400的各部分(或者此处描述的任何其他过程,或其变形和/或组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,或者可被实现为由硬件在一个或多个处理器上集合地执行的代码(如,可执行指令、一个或多个计算机程序、或一个或多个应用),或者两者的组合。代码可被存储在计算机可读存储介质上,例如,形式为包括可由一个或多个处理器执行的多个指令的计算机程序。在一实施例中,用户选择402要拷贝的网络。可用任何合适的方式来完成对于要拷贝的网络的选择。例如,在包括远程计算服务提供者的一实施例中,客户的网络管理员或其他用户可利用接口(有时称为管理控制台),该接口允许用户选择由远程计算服务提供者代表客户操作的网络。该接口可由远程计算服务提供者作为网页提供给客户,或者该接口可以是在客户的计算设备上执行的应用。被选择的网络可以是较大网络的子网络、子网络的集合、或一般地,是彼此通信的计算资源的任何集合。在一实施例中,用户被提供有应用一个或多个过滤器的能力从而在要复制的网络上具有更多控制。在一实施例中,客户网络内的各设备具有一个或多个被指派的标签。标签可被自动指派或可以是用户指派的。例如,设备可加有设备类型标签,这可将设备标识为例如服务器、存储设备、交换机、或任何其他类型的设备。在一实施例中,用户还可提供他们自己的标签。例如,如果客户为了不同目的使用一子网络而不使用另一个子网络,用户可用对应于该目的的标签来对每一个设备加标签。例如,一个子网络中的设备可具有将设备标识为用于生产的子网络的一部分的标签,而另一个子网络中的其他设备可具有将设备标识为被用于另一目的(诸如计费)的子网络的一部分的标签。作为另一示例,存储设备可加有将设备标识为主存储设备或后备存储设备的标签。一般而言,任何类型的标签可被用于过滤。此外,设备可具有多于一个标签且各单独子网络中的设备可共享一个或多个相同标签。过滤器还可至少部分地基于所选择的网络中的设备所利用的因特网协议(IP)地址。因此,在一实施例中,当用户已经选择了要拷贝的网络时,用户选择404他或她想要应用于所选择网络的任何过滤器。此外,在一实施例中,用户被提供有选择406所选择网络中的一个或多个网络对象的期望分辨率的能力。用户所选择的分辨率可被用于确定网络的拷贝应当如何接近地匹配被拷贝的网络。可由用户所选择的分辨率的特性可包括,诸如拷贝是浅还是深(参看图8和9更完全地描述)、安装在网络对象上的软件、网络对象的存储器(易失性和/或非易失性)、处理能力、和特定硬件特性(诸如处理器模型、制造商)等之类的特性。作为示例,对于低分辨率拷贝感兴趣的用户可指定他或她想要以同样方式联网在一起的类似设备的拷贝。对于高分辨率拷贝感兴趣的用户可指定特定设备应当具有特定量的存储器、应当包括特定硬件设备、应当具有安装在其上的特定软件等。在一实施例中,当用户选择拷贝分辨率时,他或她可发送408指令来根据用户所指定的分辨率和根据用户所指定的任何过滤器来拷贝所选择的网络。在其中要拷贝的网络由远程计算服务提供者所操作的实施例中,发送指令可包括调用由远程计算服务提供者提供的web服务从而在通信网络上发送该指令。可根据各实施例来使用发送该指令的其他方法。尽管图4示出以特定顺序执行的各步骤,可在本发明的范围内考虑变形。例如,在一实施例中,可以任何顺序执行网络选择、过滤器选择、和拷贝分辨率选择,且可同时执行一个或多个步骤。其它变形被认为在本发明的范围之内。图5提供了用于拷贝网络的过程500的说明性示例。可响应于接收到根据结合图4所说明的实施例而生成的拷贝网络的指令,来执行过程500。在一实施例中,接收502到拷贝指令。该指令可标识要拷贝的网络,诸如通过网络的标识符、要拷贝的计算设备列表、或以任何合适方式。根据一实施例,在一实施例中,响应于拷贝指令,获取504网络的映射。在一实施例中,网络的映射是一个或多个文件或者其他信息集合,其指示要拷贝的网络的计算设备如何彼此连接。在一实施例中,当获取映射时,对于复制网络生成新的映射。新的映射可包括网络对象的集合(诸如列表)以及它们彼此之间的关系。可通过向原始映射施加任何用户选择的过滤器和/或其他标准来完成新映射的生成。一旦生成新的映射,根据该新的映射来创建网络对象。在一实施例中,可不生成新的映射,诸如当不施加过滤器或其他标准时,且可利用原始映射来创建该复制网络。在一实施例中,当生成新的映射时,根据该新的映射来创建508网络对象,如下文更详细地描述那样。一般而言,根据网络中网络对象之间的关系来创建对应于被拷贝的网络的网络对象。图6是根据一实施例的用于创建和提供对于复制网络的访问的过程600的说明性示例的流程图。过程600的各部分可对应于以上结合图5所述的过程500。在一实施例中,诸如以上述方式来接收602拷贝指令。根据一实施例,检查604网络配置数据存储器且取出606网络对象树。网络配置数据存储器可以是其中要拷贝网络的网络对象由远程计算服务提供者所存留的数据存储器。在一实施例中,网络对象树,是包括网络的对象以及对象之间的关系的图。可在任何合适的节点来根植(root)该树。一旦取出606网络对象树,在一实施例中,对是否将任何过滤器应用于网络对象树作出608确定。如果确定过滤器应用于网络,则向网络对象树中的对象应用608该过滤器来生成网络对象列表。例如,如果用户已经指定复制网络应当仅具有带一个或多个特定标签的网络对象,则具有该一个或多个标签的对象被标识且被添加至网络对象的列表(或其他集合)。类似地,如果用户已经指定仅特定IP地址要包括在该复制网络中,那么仅这样的网络对象被添加至列表。根据一实施例,一般而言,使用用户指定的任何标准来确定什么对象被添加至网络对象列表。在一实施例中,一旦已经应用了任何可应用的过滤器或如果不应用过滤器,生成612网络对象的有向非循环图(DAG)。在一实施例中,网络对象的DAG,是其节点为将针对复制网络而创建的网络对象且其边缘具有根据依赖度的方向的图。DAG可以是或可以不是连通图。作为示例,在一实施例中,在不为虚拟计算实例创建块存储设备的情况下,可不创建虚拟计算实例。因此,在一实施例中,从块存储设备到将块存储设备用于存储的虚拟计算实例的DAG中的边缘将具有从代表块存储设备的节点到该虚拟计算实例的方向。尽管出于说明目的本说明性示例使用DAG,但是根据各实施例可使用网络复制的任何计划。在一实施例中,一旦构建了DAG,就调用614DAG中的第一网络对象的复制操作。第一网络对象可以是由DAG中的节点所代表的任何合适的网络对象,诸如没有边缘会导向的任何节点。在一实施例中,调用复制操作包括采取动作,其结果将导致网络对象的拷贝被创建。因此,调用拷贝操作可包括对网络对象拷贝分配充分的计算资源并相应地配置这些资源。例如,如果网络对象是虚拟数据存储卷,则可将一个或多个物理存储设备分配到该卷且可配置物理存储设备来服务该卷。如果多个物理存储设备服务相同的虚拟卷,则服务该多个物理存储设备的服务器可类似地被分配并配置。一般而言,可以合适的方式来分配和配置任何计算资源。一旦为DAG中的第一网络对象调用了拷贝操作,就对是否有其他对象要拷贝作出决定616。如果有对象要拷贝,则遍历DAG到另一个节点且为DAG中的下一个网络对象而调用618拷贝操作。遍历DAG并确定是否有其他对象要拷贝的此过程可继续,直到DAG已经完全被遍历。当DAG完全被遍历后,在一实施例中,根据一实施例,提供620对于由被拷贝的对象所构成的复制网络的访问。提供对于复制网络的访问可包括向客户的一个或多个用户提供引导网络操作、配置网络、或使用web服务等访问该网络的能力。图7示出根据一实施例的用于拷贝网络对象的过程700的说明性示例。例如,一旦如结合图6所述地调用了拷贝操作,即可执行该过程700。在一实施例中,当要拷贝对象时,根据一实施例,标识702对象类型。对象类型可以是能被用于网络环境中的各种对象类型中的一个。示例包括机器、存储设备、路由器、交换机、防火墙等。在一实施例中,一旦对象类型被标识,对对象是否是无状态的作出判定704。如果该对象的配置不随着该对象在网络中操作而变化,则该对象可以是无状态的。将其接收的每一个请求与任何之前的请求独立且无关地进行处理的服务器可以是无状态的对象。类似地,其配置不变化的交换机也可以是无状态的。在一实施例中,不是无状态的对象是有状态的,即,它们的配置在操作过程中变化。例如,其操作取决于之前在网络中采取的动作的服务器不是无状态的。类似地,其配置随着被写入和/或删除的数据而变化的存储卷不是无状态的。如果对象是无状态的,则可立即创建706复制对象。例如,可针对该对象供应并配置资源从而模仿该对象。然而,如果该对象不是无状态的,则用于拷贝该对象的更为复杂的过程可能是必需的。例如,可关于拷贝类型作出确定708。在一实施例中,拷贝可以是两种类型(浅或深)中之一,但是可作出其他类型的拷贝。在一实施例中,对象的浅拷贝是作为原始对象的至少初始不完整拷贝的对象。懒拷贝是一种类型的浅拷贝。通过浅拷贝,可从原始对象获得有关对象拷贝的状态的信息,直到由于原始对象的操作引起信息变化,此时在对象拷贝变化前,信息可被拷贝到对象拷贝。一示例是存储卷的写时拷贝(COW)覆盖。当发起COW覆盖时,COW覆盖的数据块可被存储在原始存储卷内,直到针对该数据块请求了写操作。当针对数据块请求写操作时,该数据块被拷贝至COW覆盖,且然后对原始存储卷执行写操作。以此方式,可作出快速且初始地可用的拷贝。可对于任何有状态的对象(诸如虚拟机,且一般地,其状态在操作过程中变化的任何对象)作出类似类型的拷贝。另一方面,深拷贝可以是对象的完全拷贝,从而一旦做出拷贝,在拷贝的操作过程中就不必参考原始对象。作为示例,可通过精确地将存储卷中所有的数据拷贝到新的卷来作出存储卷的深拷贝,从而在作出拷贝前原始卷中存储的任何数据可经由该拷贝来获取。还可作出虚拟机和其他有状态的对象的深拷贝。以此方式,拷贝可变得完全独立于原始对象。在一实施例中,如果作出拷贝类型是浅拷贝的确定,则对象被暂停710。一旦对象被暂停,创建对象覆盖作为复制对象712且恢复714原始对象的操作。然而,如果作出拷贝是深拷贝的确定,则相应地作出对象的深拷贝。例如,对象可被暂停716且对象的存储器状态可被拷贝718。在一实施例中,所拷贝的存储器状态被用于创建720复制对象且恢复722原始对象的操作。图8和9各自提供了根据各实施例可如何作出网络对象的浅拷贝和深拷贝的说明性示例。从图8开始,该图示出时间线和对象相对于时间线的状态。在操作的正常过程中操作网络对象802且接收对于该对象作为其一部分的网络的复制请求。在一实施例中,诸如以上述方式进行网络复制。在网络复制过程中的一时间点,暂停网络对象802。声明所暂停的网络对象804的覆盖,且恢复所暂停的网络对象804。如图中所示,当恢复网络对象时,网络对象和网络对象覆盖两者从共同状态(网络对象暂停时的状态)继续。当网络对象覆盖的操作要求有关网络对象在网络复制前的状态的信息时,可从网络对象暂停时的状态的存储中获得这样的信息。类似地,需要时可将数据写入网络对象覆盖,诸如在网络对象覆盖是COW覆盖的情况中,或者在另一方便的时间,诸如在网络流量相对较轻时的时间段。继续到图9,该图类似地示出时间线和对象相对于时间线的状态。在操作的正常过程中操作网络对象902且接收对于该对象作为其一部分的网络的复制请求。在一实施例中,诸如以上述方式进行网络复制。在网络复制过程中的一时间点,暂停网络对象902。有关暂停时网络对象904的信息被拷贝来产生暂停时网络对象的拷贝906。例如,与暂停时网络对象904的状态有关的所有信息可被复制并存储在单独位置。在网络对象902是虚拟存储卷的示例中,存储在该虚拟存储卷内的信息可被拷贝到与被用于存储该虚拟存储卷的一个或多个物理存储设备不同的一个或多个物理存储设备、或被拷贝到一个或多个相同存储设备的至少不同位置上。在一实施例中,一旦作出暂停时网络对象的拷贝,就恢复暂停时网络对象904。然后分开地且独立地进行网络对象和网络对象的拷贝。尽管图8和9示出其中分别作出浅拷贝和深拷贝的方式的说明性示例,可使用其他方法。作为示例,可使用对象的状态作为原始对象和复制对象的基础。换言之,已经被拷贝的对象可在拷贝后以与复制对象如所述地按需参考有关拷贝时对象的状态的所存储信息而操作的方式类似的方式操作。作为另一个示例,在制作拷贝时,可使用如果采取了足够措施来确保数据完整性,则不要求暂停网络对象的技术。例如,如果在复制过程中注意记录并考虑了网络对象的变化,则暂停可不是必需的。一般而言,可根据本发明的各实施例而使用用于拷贝(不论是浅还是深)网络对象的任何技术。图10示出可被用于利用本发明的各实施例的过程1000的说明性示例。例如,该过程1000可被取证地使用以调查在网络上发生的各种事件。在一实施例中,记录1002网络事件。网络事件可以是关于网络发生的任何事件,包括但不限于,从一个设备到另一个设备的信息转移、对网络的管理相关改变(包括使用API作出的管理相关改变)、网络自动缩放事件、对于数据集的操作(诸如读、写、或删除操作)等。记录网络事件可包括以使得事件可至少部分地被重建的方式来存储对应于事件的信息。可用各种方式记录事件。例如,在一实施例中,远程计算服务提供者的客户可作出以各种方式影响客户的网络的API调用(如API调用所确定地)。这些客户发起的API调用(或一般地,影响被拷贝网络的任何API调用)可被记录。作为另一示例,结合如上所述的美国专利申请No.12/060,074中描述的各实施例使用的本发明的各实施例可涉及通过能记录在整个网络上行进的分组的一个或多个系统来路由网络通信,以及路由分组的信息。尽管图10将记录网络事件图示为过程1000中的分立步骤,但是可在执行其他动作的过程中连续地、和/或以与图示不同的顺序进行记录(以及一般地在各公开过程中的其他动作、及其变形)。在一实施例中,检测特定网络事件。网络管理员例如可注意到在规律的时间(诸如每天的同一时间)网络明显表现异常。一个或多个应用可检测网络性能中的一个或多个异常,诸如不寻常的高等待时间、话务量、或有关网络中一个或多个设备的性能的其他特性。可被检测到的其他网络事件包括自动缩放事件、设备故障等。一般而言,可使用检测任何类型的特定网络事件、或事件组合的任何方式。根据一实施例,当检测到特定网络事件时,可创建1006复制网络。例如,网络管理员可利用网络管理控制台的接口来提交复制网络的请求。响应于该请求,可创建1006复制网络。可以上述方式执行网络的复制,且网络的复制可考虑到该请求所指定的各种拷贝类型、分辨率、和其他标准。复制网络可包括原始网络中的所有对象或可具有不同量。在一实施例中,当创建复制网络时,可在复制网络上重现1008所记录的网络事件一次或多次,以便于允许对事件的分析。例如,可在复制网络上重现并记录各事件从而标识所检测到的网络事件的原因,或仅是获得对网络能力的进一步理解。以此方式,可在复制网络上执行有关网络操作的分析,从而允许原始网络继续正常操作。换言之,可将复制网络用于分析,同时允许原始网络正常操作,藉此允许在对网络性能的牺牲最小的情况下分析网络。图11示出可被用来利用本发明的各实施例的另一个过程1100。例如,可使用该过程1100来允许网络管理员在实际作出特定改变前研究如果作出了这些改变网络将如何操作。在一实施例中,接收1102复制网络的指令。可根据上述描述来接收复制网络的指令。当接收到复制网络的指令时,诸如以上述方式创建1104复制网络。通过复制网络,网络管理员或其他用户可出于各种目的修改1106该复制网络。例如,对复制网络的修改可包括重新配置网络中的设备、向网络添加设备和/或从网络中移除设备、增加网络各设备之间的带宽等。在一实施例中,一旦修改复制网络,就可使用经修改的复制网络。例如,可为模拟1108该网络可如何在各种压力下响应而使用经修改的复制网络。例如,用户可向网络中的各设备发送请求从而对网络施压且测量该经修改的复制网络能如何处理该压力。例如,用户可对网络施压来确定经修改的复制网络是否会自动缩放经修改的复制网络的一个或多个部分以便于容纳附加压力。一般而言,用户可使得各种负载针对经修改的复制网络生成。负载可包括对获取信息、存储信息、修改存储于一个或多个数据存储器中的信息、执行要执行的计算等、对于服务器的多个同时连接、以及一般地可由网络执行的任何动作的请求。进一步地,结合图10和11所描述的过程的部分以及此处描述的其他过程可被组合。例如,网络事件可被记录、然后被用于对经修改的复制网络的模拟,以能够对所作的任何修改是否改进了网络性能作出确定。在本发明的精神之内还可构想其他变形。条款:条款1、一种用于网络复制的计算机实现的方法,该方法包括:在配置有可执行指令的一个或多个计算机系统的控制下,至少部分地基于客户远程提供的指令来操作第一网络,该第一网络包括处于覆盖一个或多个物理网络的配置中的多个虚拟网络设备;从该客户处接收复制第一网络的web服务请求;响应于该web服务请求:从数据存储检索有关第一网络的配置信息;从所检索到的配置信息生成网络复制计划;根据该网络复制计划创建多个虚拟复制设备,该虚拟复制设备的每一个对应于第一网络的设备;根据该网络复制计划在复制网络中配置所创建的虚拟复制设备,该复制网络以与第一网络覆盖一个或多个物理网络的方式类似的方式来覆盖一个或多个物理网络;和至少部分地基于客户远程提供的指令来操作复制网络。条款2、如条款1所述的计算机实现的方法,其中第一网络包括选自包括如下的组中的一个或多个设备:服务器、存储卷、交换机、集线器、防火墙、网桥、和网关。条款3、如条款1所述的计算机实现的方法,其中虚拟复制设备中的一个或多个依赖于第一网络的一个或多个对应设备所使用的一个或多个所存储的状态表示来操作。条款4、如条款1所述的计算机实现的方法,其中虚拟复制设备中的一个或多个是第一网络的对应设备的完全拷贝。条款5、如条款1所述的计算机实现的方法,其中第一网络是较大网络的子网络,其中接收复制该第一网络的请求包括接收一个或多个过滤标准,且其中该方法还包括向该较大网络应用一个或多个过滤标准来确定第一网络。条款6、如条款1所述的计算机实现的方法,其中使用模板来创建第一网络的虚拟网络设备的至少一个,且其中创建多个虚拟复制设备包括使用模板来创建与虚拟网络设备中的所述至少一个相对应的至少一个虚拟复制设备。条款7、一种用于网络复制的计算机实现的方法,该方法包括:在配置有可执行指令的一个或多个计算机系统的控制下,接收复制第一网络的请求,该第一网络包括一个或多个虚拟设备且覆盖一个或多个物理网络;响应于接收到该请求,创建多个虚拟复制设备,这些虚拟复制设备各自对应于第一网络中的一设备,且在复制网络中设置所创建的虚拟复制设备来以与第一网络覆盖一个或多个物理网络的方式类似的方式来覆盖该一个或多个物理网络;和提供对复制网络的访问。条款8、如条款7所述的计算机实现的方法,其中提供对该复制网络的访问包括:接收用于执行对复制网络的测试的指令;执行对该复制网络的测试;和提供该测试的结果。条款9、如条款7所述的计算机实现的方法,还包括:记录第一网络的一个或多个网络事件;和其中提供对该复制网络的访问包括使得所记录的一个或多个网络事件在复制网络上发生。条款10、如条款9所述的计算机实现的方法,其中记录一个或多个网络事件包括记录影响第一网络的一个或多个API调用,且其中使得所记录的一个或多个网络事件在复制网络上发生包括使得该一个或多个API调用相对于复制网络作出。条款11、如条款7所述的计算机实现的方法,其中提供对复制网络的访问包括:修改复制网络;和对该经修改的复制网络执行测试。条款12、如条款11所述的计算机实现的方法,其中修改复制网络包括如下至少之一:改变复制网络的至少一个设备的能力;引起复制网络的分组损失的改变;引起复制网络的故障率的改变;以及用另一虚拟复制设备来替换一个或多个虚拟复制设备,该另一虚拟复制设备与被替换的一个或多个虚拟复制设备不同地执行。条款13、如条款7所述的计算机实现的方法,其中使用模板来创建第一网络的虚拟网络设备的至少一个,且其中创建多个虚拟复制设备包括使用模板来创建与虚拟网络设备中的至少一个相对应的至少一个虚拟复制设备。条款14、如条款7所述的计算机实现的方法,其中创建多个设备包括:对于第一网络的特定设备,标识该特定设备是否是有状态的设备;和当确定该特定设备是有状态的设备时,创建该特定设备的拷贝,其依赖于由该特定设备所使用的一个或多个所存储的状态表示而操作。条款15、一种或多种计算机可读存储介质,具有集合地存储在其上的指令,当由一个或多个计算系统执行这些指令时,使得该一个或多个计算系统集合地至少:接收复制第一网络的请求,该第一网络包括一个或多个虚拟设备且覆盖一个或多个物理网络;响应于接收到该请求创建复制网络,该复制网络覆盖具有与第一网络一致的拓扑的一个或多个物理网络,且包括各自对应于第一网络的一个或多个虚拟设备中的一个的一个或多个虚拟复制设备;和提供对复制网络的访问。条款16、如条款15所述的一个或多个计算机可读存储介质,其中提供对复制网络的访问包括:接收用于执行对复制网络的测试的指令;执行对复制网络的测试;和提供测试的结果。条款17、如条款15所述的一个或多个计算机可读存储介质,其中该指令还使得该一个或多个计算机系统集合地至少:记录第一网络的一个或多个网络事件;和其中提供对复制网络的访问包括使得所记录的一个或多个网络事件在复制网络上发生。条款18、如条款15所述的一个或多个计算机可读存储介质,其中创建复制网络包括将复制虚拟设备的至少一子集配置成具有与第一网络的一个或多个虚拟设备集合的标识符相同的标识符。条款19、如条款15所述的一个或多个计算机可读存储介质,其中标识符是因特网协议地址。条款20、一种能复制网络的计算机系统,包括:一个或多个处理器;和存储器,包括可执行指令,当由一个或多个处理器执行这些可执行指令时使得该计算机系统至少:接收复制第一网络的请求,该第一网络包括一个或多个虚拟设备且覆盖一个或多个物理网络;响应于接收到该请求创建多个虚拟复制设备,这些虚拟复制设备各自对应于第一网络中的一设备,且在虚拟复制网络中设置所创建的设备来以与其中第一网络覆盖一个或多个物理网络的方式类似的方式来覆盖该一个或多个物理网络;和提供对复制网络的访问。条款21、如条款20所述的计算机系统,其中所创建的多个虚拟复制设备的至少子集是第一网络中的设备的写时拷贝覆盖。条款22、如条款20所述的计算机系统,其中提供对复制网络的访问包括:接收用于执行对复制网络的测试的指令;执行对复制网络的测试;和提供测试的结果。条款23、如条款22所述的计算机系统,其中还包括在执行测试前修改复制网络。条款24、如条款20所述的计算机系统,其中该第一网络包括选自包括如下组中的一个或多个设备:服务器、存储卷、交换机、集线器、防火墙、网桥、和网关。条款25、一种用于网络复制的计算机实现的方法,该方法包括:在配置有可执行指令的一个或多个计算机系统的控制下,接收复制覆盖一个或多个物理网络的第一网络的请求;和响应于接收到该请求:创建多个虚拟设备且在虚拟网络中配置该多个设备以使得该多个虚拟设备彼此通信地连接,从而以与第一网络覆盖一个或多个物理网络的方式类似的方式覆盖该一个或多个物理网络,该多个设备包括对应于第一网络的一个或多个设备的一个或多个虚拟设备。条款26、如条款25所述的计算机实现的方法,其中接收请求包括接收指定第一网络的一个或多个设备的保真度的信息;和其中创建新的虚拟网络包括根据所指定的保真度来创建一个或多个复制虚拟设备。条款27、如条款25所述的计算机实现的方法,其中从用户处远程地接收该请求;和创建多个虚拟设备在其中一个或多个其他用户操作一个或多个其他网络的设施中执行。条款28、如条款25所述的计算机实现的方法,其中接收复制第一网络的请求包括接收一个或多个过滤标准,且其中该方法还包括向较大网络应用该一个或多个过滤标准来确定第一网络的至少子集。条款29、如条款25所述的计算机实现的方法,其中第一网络是虚拟覆盖网络。多个实施例可进一步在各种各样的操作环境中实现,这些操作环境在一些情况下可包括能用于操作多个应用中的任一个应用的一个或多个用户计算机、计算设备或处理设备。用户或客户机设备可包括运行标准操作系统的多个通用个人计算机(诸如台式计算机或膝上型计算机)以及运行移动软件且能够支持多个联网和消息收发协议的蜂窝、无线以及手持设备。这样的系统还可包括多个工作站,工作站运行多种可买到的操作系统和用于部署和数据库管理目的的其它已知应用中的任一种。这些设备还可包括其它电子设备,诸如虚拟终端、瘦客户机、游戏系统、以及能够经由网络通信的其它设备。大多数实施例利用本领域普通技术人员熟悉的至少一个网络,用于支持利用多种商用协议中的任一种协议的通信,这些协议诸如/IP、OSI、FTP、UPnP、NFS、CIFS以及AppleTalk。例如,该网络可以是局域网、广域网、虚拟专用网、因特网、内联网、外联网、公共交换电话网、红外网、无线网及其任何组合。在利用Web服务器的实施例中,Web服务器可运行多种服务器或中间层应用中的任一种,包括HTTP服务器、FTP服务器、CGI服务器、数据服务器、Java服务器以及商业应用服务器。这些服务器还能够响应于来自用户设备的请求执行程序或脚本,诸如通过执行可被实现为按照任何编程语言编写的一个或多个脚本或程序的一个或多个Web应用,编程语言诸如C、C#或C++或诸如Perl、Python或TCL之类的任何脚本语言及其组合。这些服务器还可包括数据库服务器,包括但不限于可从以及买到的数据库服务器。该环境可包括如上讨论的多个数据存储以及其它存储器和存储介质。这些存储器和存储介质可驻留在多个位置,诸如一个或多个计算机本地(和/或驻留在其中)或在该网络上的任一或所有计算机远端的存储介质。在特定实施例组中,该信息可驻留在本领域普通技术人员熟悉的存储区域网(“SAN”)中。类似地,用于执行归属于计算机、服务器或其它网络设备的功能的任何必要的文件可适当地本地和/或远程地存储。在系统包括计算机化设备的情况下,每个这样的设备可包括经由总线电耦合的硬件元件,这些元件包括例如至少一个中央处理单元(CPU)、至少一个输入设备(例如鼠标、键盘、控制器、触摸屏或小键盘)以及至少一个输出设备(例如显示设备、打印机或扬声器)。这样的系统还可包括一个或多个存储设备,诸如盘驱动器、光存储设备以及固态存储设备,诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)以及可移动介质设备、存储卡、闪存卡等等。这样的设备还可包括计算机可读存储介质读取器、通信设备(例如调制解调器、网卡(无线或有线)、红外通信设备等)以及如上所述的工作存储器。该计算机可读存储介质读取器可与计算机可读存储器介质连接或配置成接收该计算机可读存储介质,表示远程、本地、固定和/或可移除的存储设备,以及用于临时和/或更持久地包含、存储、传输以及检索计算机可读信息的存储介质。该系统和多个设备还将典型地包括位于至少一个工作存储器设备中的多个软件应用、模块、服务或其它要素,包括操作系统和应用程序,诸如客户机应用或Web浏览器。应当理解,替代实施例可具有以上描述的实施例的多种变型。例如,也可使用定制硬件,和/或特定要素可在硬件、软件(包括便携式软件,诸如小程序)或二者中实现。此外,可采用通向诸如网络输入/输出设备之类的其它计算设备的连接。用于包含代码或代码部分的存储介质和计算机可读介质可包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于按照存储和/或传输诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的任何方法和技术来实现的易失性和非易失性、可去除和不可去除的介质,包括RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可用于存储所需信息且可由系统设备访问的任何其它介质。基于本申请中提供的公开和教导,本领域普通技术人员将理解实现多个实施例的其它途径和/或方法。因此,应当以说明性而非限制性的意味看待说明书和附图。然而,将明显的是,可对其作出各种修改和改变而不背离所附权利要求中所阐述的本发明的宽泛精神和范围。其他变形也在本发明的精神内。由此,尽管所公开的技术易于作出各种修改和替换构造,但其某些图示实施例在附图中示出并且在上文中已详细描述。然而应当理解,这不旨在将本发明限于所公开的一种或多种具体形式,而相反地,旨在覆盖落入本发明的精神和范围内的所有修改、替换构造和等效方案,如所附权利要求书定义的。在描述所公开的实施例的上下文中(尤其是在以下权利要求书的上下文中)使用术语“一”、“一个”和“该”以及类似称谓旨在解释为覆盖单数和复数,除非在本文中另外说明或明显与上下文矛盾。术语“包括”、“具有”、“由…构成”和“包含”应当解释为开放式的术语(即,表示“包括,但不局限于”),除非另外注明。术语“连接”应当解释为部分或全部包含在内、附连、或结合在一起,即使存在某些中介。本文中的值范围的叙述仅旨在用作单独引用落在该范围内的每一单独值的速记方法,除非在本文中另外说明,并且每一单独值被结合到本说明书中,好像它在本文中单独叙述的一样。本文中所述的所有方法可以任何合适的次序执行,除非在本文中另外说明或明显与上下文矛盾。使用本文中所提供的任何和所有示例、或示例性语言(例如,“诸如”)仅旨在更好地图示本发明的实施例,而不造成对本发明的范围的限制,除非另外限定。本说明书中的语言不应当解释为指示实践本发明必需的非限定元素。在本文中描述了本发明的优选实施例,包括发明人已知的用于实现本发明的最佳模式。这些优选实施例的变体可在本领域内普通技术人员阅读在前描述之后变得显而易见。发明人期待有经验的技术人员酌情采用这些变体,并且发明人想要本发明以本文具体描述以外的其他形式来实践。因此,本发明包括这里所附的权利要求书中所叙述的主题的所有修改和等效方案,如可适用法规所允许的。此外,上述元素在其所有可能变体中的任意组合均被本发明涵盖,除非在本文中另外说明或明显与上下文矛盾。本文中所引用的所有参考文献(包括出版物、专利申请和专利)通过引用结合于此,好像每一参考文献被单独和具体地指示为通过引用结合于此且整体地阐述于此。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1