掌桥专利:专业的专利平台
掌桥专利
首页

虚拟执行系统中的连接性迁移

文献发布时间:2023-06-19 13:27:45


虚拟执行系统中的连接性迁移

背景技术

在虚拟机上执行的应用和/或客户操作系统可能需要被更新或打补丁。例如,更新可能需要被定期执行,以反映应用和/或客户操作系统的当前版本。备选地,更新可以被执行,以纠正在应用和/或客户操作系统中标识的问题(例如,与安全相关的、所发现的漏洞、缺陷)。

可以利用有状态连接来执行应用和/或客户操作系统。停止在虚拟机上执行应用和/或客户操作系统以执行更新/补丁可能使连接被终止。这可能对用户造成显著的负面影响,例如,需要用户重新登录和/或以其他方式进行认证以便重新建立连接。

发明内容

本文中所描述的是一种用于在虚拟执行系统中将第一虚拟机的连接性迁移到第二虚拟机的系统,包括:计算机,包括处理器和其上存储有计算机可执行指令的存储器,计算机可执行指令在由处理器执行时,使计算机:在第二虚拟机处:接收应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态、以及与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的经捕获的连接性状态;至少部分地基于经捕获的连接性状态,在第二虚拟机和一个或多个客户端设备之间建立多个运行连接的连接性;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的客户操作系统的第二实例的状态;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的应用的第二实例的状态;以及将应用的第二实例的状态与操作系统的第二实例的状态同步。

提供本发明内容以简化形式介绍一些概念,这些概念将在下面的具体实施方式中进一步被描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

附图说明

图1是图示用于虚拟执行系统中的连接性迁移的系统的功能框图。

图2是图示用于虚拟执行系统中的连接性迁移的系统的功能框图。

图3和图4是图示虚拟执行系统中的连接性迁移的方法的流程图。

图5是图示在虚拟执行系统中从第一虚拟机到第二虚拟机的连接性迁移的方法的流程图。

图6是图示在虚拟执行系统中从第一虚拟机到第二虚拟机的连接性迁移的方法的流程图。

图7是图示示例性计算系统的功能框图。

具体实施方式

现在参考附图来描述与正在执行的虚拟应用和/或客户操作系统的连接性迁移有关的各种技术,其中贯穿全文,相同的附图标记用于指代相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对一个或多个方面的透彻理解。然而,明显的是,可以在没有这些具体细节的情况下实践这些方面。在其他实例中,以框图形式示出了公知的结构和设备,以便于描述一个或多个方面。此外,应当理解的是,被描述为由某些系统组件实施的功能可以由多个组件执行。类似地,例如,组件可以被配置为执行被描述为由多个组件执行的功能。

本主题公开支持各种产品和过程,其执行或被配置为执行关于正在执行的虚拟应用和/或客户操作系统的连接性迁移的各种行动。以下是一个或多个示例性系统和方法。

本主题公开的方面涉及迁移正在执行的虚拟应用和/或客户操作系统的连接性信息的技术问题。与解决该问题相关联的技术特征涉及:捕获在第一虚拟机上执行的应用的第一实例的状态;捕获在第一虚拟机上执行的客户操作系统的第一实例的状态;捕获与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的连接性状态;将应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态、以及经捕获的连接性状态提供给第二虚拟机;至少部分地基于经捕获的连接性状态,建立第二虚拟机和一个或多个客户端设备之间的多个运行连接的连接性;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的客户操作系统的第二实例的状态;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的应用的第二实例的状态;以及将应用的第二实例的状态与操作系统的第二实例的状态同步。因此,这些技术特征的方面表现出以下技术效果:更高效和有效地迁移正在执行的虚拟应用和/或客户操作系统的连接性信息以保留现有连接,例如,减少计算机资源(例如,处理时间)和/或带宽消耗。

此外,术语“或”旨在意指包含性“或”而不是排他性“或”。即,除非另外指定或根据上下文清楚得知,否则短语“X采用A或B”旨在意指任何自然的包含性排列。即,以下任何一种情况都满足短语“X采用A或B”:X采用A;X采用B;或者X采用A和B两者。此外,本申请和所附权利要求中所使用的冠词“一”和“一个”通常应该被解释为意指“一个或多个”,除非另外指定或根据上下文清楚得知指向单数形式。

如本文中所使用的,术语“组件”和“系统”以及其各种形式(例如,组件、系统、子系统等)旨在指代计算机相关实体,或者是硬件、或者是硬件和软件的组合、或者是软件、或者是执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、实例、可执行文件、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以被本地化在一个计算机上和/或分布在两个以上的计算机之间。此外,如本文中所使用的,术语“示例性”旨在意指用作某物的说明或示例,而并非旨在表示偏好。

终止虚拟机的应用和/或客户操作系统的执行来执行应用和/或客户操作系统的更新/补丁可能使有状态连接被终止。这可能对用户造成显著的负面影响,例如,需要用户重新登录和/或以其他方式进行认证以便重新建立连接。

本文中所描述的是一种用于在虚拟执行系统中将第一虚拟机的连接性迁移到第二虚拟机的系统和方法(例如,虚拟应用、客户操作系统和/或运行连接的实时迁移)。可以执行连接性迁移以便促进在第一虚拟机(VM)上执行的虚拟应用和/或客户操作系统的更新和/或打补丁。响应于迁移请求,应用和/或客户操作系统负责捕获在第二虚拟机上重新建立应用和/或客户操作系统所需的状态(如果有的话)。该捕获状态可以被提供给第二虚拟机的应用或客户操作系统,来重新建立应用和/或客户操作系统。

第一虚拟机还捕获关于与虚拟应用和/或客户操作系统相关联的连接性状态(例如,所建立的运行/实时连接)的信息。然后,经捕获的连接性状态被提供给第二虚拟机,以在第二虚拟机上无缝地重新建立应用和/或客户操作系统的流连接。

出于解释而非限制的目的,本文中所描述的系统和方法在虚拟机迁移的上下文中被讨论。然而,在一些实施例中,可以利用本文中所描述的系统和方法来迁移本地系统。

参考图1,图示了用于在虚拟执行系统100中从第一虚拟机到第二虚拟机的连接性迁移的系统。系统100可以执行连接性迁移以便允许在第一虚拟机112上执行的应用104和/或客户操作系统108的更新和/或打补丁。

例如,若干场景可能需要从一个虚拟机到另一虚拟机的连接性迁移(例如,传输控制协议(TCP)信息)。这包括在主动-被动模式或n-主动模式下操作的网络虚拟应用(NVA),并且当实例中的一个实例故障时,NVA期望将连接迁移到另一个实例。类似地,SQL数据仓库(SQL-DW)可以具有用于长时间运行查询的长寿命TCP连接,并且可以将TCP连接从一个实例迁移到另一个实例,例如,当VM中的一个VM需要被更新(例如,客户操作系统更新和/或推出更新的应用)和/或故障时。系统100有助于运行/实时连接(例如,TCP/IP)在基础设施水平的迁移。

在一些实施例中,迁移请求可以由应用104生成。例如,应用104可能需要被更新到新版本。在一些实施例中,迁移请求可以由客户操作系统108生成。例如,客户操作系统108可能需要被打补丁。在一些实施例中,迁移请求可以由第一虚拟机112(例如,主机操作系统)生成。例如,第一虚拟机112可能希望更新应用104和/或客户操作系统108。

响应于迁移请求,应用104和/或客户操作系统108可以负责捕获在第二虚拟机124上分别将应用104(例如,SQL会话状态)和/或客户操作系统108重新建立为应用116和客户操作系统120所需的状态(如果有的话)。以该方式,捕获状态可以被提供给第二虚拟机124的应用120和/或客户操作系统124,以在第二虚拟机124上重新建立(第一虚拟机112的)应用104和/或客户操作系统108。第一虚拟机112和第二虚拟机124可以使用网络128(例如,因特网)通信地连接到一个或多个客户端设备126。

在一些实施例中,应用116和应用104是应用的相同版本的实例。在一些实施例中,应用116和应用104是应用的不同版本的实例。在一些实施例中,客户操作系统120和客户操作系统108是客户操作系统的相同版本的实例。在一些实施例中,客户操作系统120和客户操作系统108是客户操作系统的不同版本的实例。

第一虚拟机112还可以包括连接性组件130,其管理包括应用104和/或客户操作系统108的第一虚拟机112的连接性。在一些实施例中,连接性组件130采用分层模型,如下所述。第一虚拟机112的连接性状态捕获组件132进一步捕获与应用104和/或客户操作系统108相关联的连接性状态。然后,经捕获的连接性状态被提供给第二虚拟机124的连接性状态恢复组件136,以经由连接性组件140在第二虚拟机116上无缝地重新建立应用和/或客户操作系统的流连接。

在一些实施例中,应用104、客户操作系统108和连接性状态捕获组件132基本同时接收迁移请求。以该方式,可以基本同时捕获应用104的状态、客户操作系统108的状态和连接性状态。在一些实施例中,可以基本并行地捕获应用104的状态、客户操作系统108的状态和/或连接性状态。在一些实施例中,可以顺序地捕获应用104的状态、客户操作系统108的状态和/或连接性状态。在一些实施例中,一旦已接收到迁移请求和/或已做出迁移可以被安全执行的确定,应用116、客户操作系统120和/或连接性组件130就进行非迁移处理。

在一些实施例中,迁移请求首先被提供给应用104和/或客户操作系统108。例如,由应用104和/或客户操作系统108执行的事务可以完成和/或被置于预期状态(例如,挂起、失败),以允许应用104和/或客户操作系统108被无缝地迁移到第二虚拟机116(例如,不会显著中断由用户体验的应用104的执行)。一旦应用104和/或客户操作系统108确定可以安全执行迁移(例如,应用104和/或客户操作系统108处于稳定状态)。一旦确定可以执行迁移,就向第一虚拟机112提供迁移请求,并且应用104和/或客户操作系统108就捕获状态(如果有的话)。

在一些实施例中,第一虚拟机112的连接性可以被视为分层模型:

表1

在一些实施例中,应用104和/或客户操作系统108负责捕获与表1的分层模型的第5、6和/或7层相关联的状态(如果有的话)。连接性状态捕获组件132可以捕获与表1的分层模型的第2、3和/或4层相关联的连接性状态。

在一些实施例中,关于传输层(第4层),连接性状态包括关于防火墙状态、传输安全层(TLS)、加密和/或解密密钥的信息以及与应用104的连接性相关联的证书信息。在一些实施例中,关于网络层(第3层),连接性信息可以包括第一虚拟机112的因特网协议(IP)地址。

在一些实施例中,连接性组件130利用TCP来追踪关于第一虚拟机112的连接的信息。该信息中的至少一些信息可以被存储在传输控制块(TCB)中,传输控制块(TCB)是一种数据结构,其维持关于端点(IP和端口号)(例如,套接字句柄、连接的状态、关于正被交换的分组的运行数据)的信息和/或关于用于发送和接收数据的缓冲器的信息。TCB可以进一步管理发送和接收序列号。

响应于迁移请求,连接性状态捕获组件132可以保存与运行连接相关联的状态,包括连接建立状态和/或序列号。在一些实施例中,连接性状态捕获组件132可以保存存储在TCB中的一些或全部信息。在一些实施例中,连接性状态捕获组件132还可以存储第一虚拟机的IP地址,以用于将该IP地址迁移到第二虚拟机(例如,在没有负载平衡器的情况下)。

在一些实施例中,由应用104、客户操作系统108和/或连接性状态捕获组件132捕获的状态被分开提供给第二虚拟机124。在一些实施例中,由应用104、客户操作系统108和/或连接性状态捕获组件132捕获的状态被序列化成预定义的数据结构,并且被提供给第二虚拟机124(例如,安全地)。

第二虚拟机124利用由第一虚拟机112的应用104、客户操作系统108和/或连接性状态捕获组件132捕获的状态,来将应用和/或客户操作系统分别重新建立为第二虚拟机124上的应用116、客户操作系统120和/或连接性组件140。

在一些实施例中,第二虚拟机124的应用116、客户操作系统120和/或连接性组件140在接收到捕获状态之前正在执行。此后,捕获状态被分发到应用116、客户操作系统120和/或连接性组件140(例如,顺序地或基本并行地)来重新建立应用。

第二虚拟机124的连接性状态恢复组件136可以利用连接性状态捕获组件132捕获的状态,来重新建立第二虚拟机124上的连接(例如,所有运行连接从第一虚拟机112被迁移到第二虚拟机124)。在一些实施例中,连接可以被并行地重新建立,即,第2、3和4层基本被同时重新建立。在一些实施例中,连接可以被顺序地重新建立,首先是第2层,然后是第3层,然后是第4层。因此,与特定连接相关的防火墙规则和/或状态可以从第一虚拟机112被迁移到第二虚拟机124。

在一些实施例中,连接性状态恢复组件136可以在第二虚拟机124上写入或覆写连接性组件140的TCB。以该方式,被应用104利用的套接字句柄可以继续被应用116利用。

在一些实施例中,关于连接性组件140的TCB的套接字句柄的信息可以被提供给应用116。因此,可以更新被应用116利用的套接字句柄以反映当前值。

在一些实施例中,连接性组件140可以存储关于连接性组件130的TCB中的套接字句柄到连接性组件140的TCB中的套接字句柄的映射的信息。因此,应用116可以继续使用被应用104利用的套接字句柄,其中在利用套接字句柄进行通信之前,连接性组件140转换套接字句柄。

在一些实施例中,捕获状态、传送状态和恢复状态出现的经过时间小于预定义的TCP/IP超时时段(例如,九秒)。以该方式,一旦迁移被执行,由第一虚拟机112接收(并且未处理)的分组将被重新发送并且被第二虚拟机124处理。因此,虽然客户端可能遇到分组丢失和延时,但是重试将在对客户端影响最小的情况下恢复丢失(例如,不丢失连接)。

参考图2,用于虚拟执行系统200中的连接性迁移的系统被图示。系统200包括第一虚拟机112和第二虚拟机124,如上所述。系统200还包括作为客户端设备126和虚拟第一虚拟机112之间的中介的负载平衡器组件204。

负载平衡器组件204允许多个虚拟机与单个虚拟网络相关联。寻址到虚拟网络地址的网络消息被负载平衡器组件204接收,负载平衡器组件204判决多个虚拟机中的哪些虚拟机将处理网络消息。负载平衡器204然后将网络消息转发到特定虚拟机。

在连接性迁移期间,负载平衡器组件204从第一虚拟机112接收连接性迁移请求。在一些实施例中,应用104和/或客户操作系统108可以在负载平衡组件204上调用应用程序接口(API)。响应于迁移请求的接收,负载平衡器组件204暂时停止转发将被转发到第一虚拟机112的网络消息。

在一些实施例中,第一虚拟机112的IP地址不被迁移到第二虚拟机124。相反,负载平衡器组件204可以更新由负载平衡器组件204执行的映射,以将对第一虚拟机112的IP地址指定的流量重定向到第二虚拟机124的IP地址。

一旦应用104、客户操作系统108和/或连接性状态捕获组件132捕获的状态被提供给第二虚拟机124,就可以更新负载平衡器组件204,以重新开始将指向第一虚拟机112的网络消息转发到第二虚拟机124(例如,因为第二虚拟机124已经被重新分配了先前被分配给第一虚拟机112的IP地址)。

在一些实施例中,请求连接迁移的能力可由与在第一虚拟机112上执行的应用104相关联的管理员配置。

图3-图6图示了与虚拟执行系统中的连接性迁移有关的示例性方法。尽管方法被示为和描述为是以序列执行的一系列动作,但是应当理解和明白的是,方法不受序列的顺序的限制。例如,一些动作可以以与本文所述不同的顺序进行。此外,一个动作可以与另一个动作同时进行。此外,在一些情况下,实现本文描述的方法可能不需要所有动作。

此外,本文中所描述的动作可以是计算机可执行指令,该计算机可执行指令可以由一个或多个处理器实施和/或被存储在一个或多个计算机可读介质上。计算机可执行指令可以包括例程、子例程、程序、执行的线程等。更进一步地,方法的动作的结果可以被存储在计算机可读介质中、被显示在显示设备上,等等。

参考图3和图4,图示了虚拟执行系统300中的连接性迁移的方法。在一些实施例中,方法300由系统100和/或系统200执行。在一些实施例中,响应于接收到连接性迁移请求而执行方法300。

在304处,负载平衡器(例如,负载平衡器组件204)停止向第一虚拟机转发网络消息。在308处,捕获在第一虚拟机上执行的应用的第一实例的状态。在312处,捕获在第一虚拟机上执行的客户操作系统的第一实例的状态。在316处,捕获与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的连接性状态。在320处,应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态和/或经捕获的连接性状态被提供给第二虚拟机。

在324处,至少部分地基于经捕获的连接性状态,在第二虚拟机和一个或多个客户端设备之间建立多个运行连接的连接性。在328处,至少部分地基于客户操作系统的第一实例的捕获状态,来建立在第二虚拟机上执行的客户操作系统的第二实例的状态。在332处,至少部分地基于客户操作系统的第一实例的捕获状态,来建立在第二虚拟机上执行的应用的第二实例的状态。在336处,负载平衡器重新开始将指向第一虚拟机的网络消息转发到第二虚拟机。

转向图5,在虚拟执行系统500中从第一虚拟机到第二虚拟机的连接性迁移的方法被图示。在一些实施例中,方法400由第一虚拟机112执行。

在510处,捕获在第一虚拟机上执行的应用的第一实例的状态。在520处,捕获在第一虚拟机上执行的客户操作系统的第一实例的状态。在530处,捕获与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的连接性状态。在540处,应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态和/或经捕获的连接性状态被提供给第二虚拟机。

接下来,参考图6,图示了在虚拟执行系统600中从第一虚拟机到第二虚拟机的连接性迁移的方法。在一些实施例中,方法400由第二虚拟机124执行。

在610处,第二虚拟机接收应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态和/或第一虚拟机的经捕获的连接性状态。在620处,至少部分地基于经捕获的连接性状态,在第二虚拟机和一个或多个客户端设备之间建立多个运行连接的连接性。在630处,至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的客户操作系统的第二实例的状态。在640处,至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的应用的第二实例的状态。

在650处,应用的第二实例的状态与客户操作系统的第二实例的状态同步。在一些实施例中,可以向应用的第二实例提供关于第二虚拟机的TCB的套接字句柄的信息。因此,可以更新被应用的第二实例利用的套接字句柄,以反映当前值。

在一些实施例中,第二虚拟机可以存储关于第一虚拟机的TCB中的套接字句柄到第二虚拟机的TCB中的套接字句柄的映射的信息。因此,应用的第二实例可以继续使用被应用的第一实例利用的套接字句柄,其中在利用套接字句柄进行通信之前,第二虚拟机转换套接字句柄。

本文中所描述的是一种用于在虚拟执行系统中从第一虚拟机迁移到第二虚拟机的系统,包括:计算机,包括处理器和其上存储有计算机可执行指令的存储器,计算机可执行指令在由处理器执行时,使计算机:在第二虚拟机处:接收应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态、以及与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的经捕获的连接性状态;至少部分地基于经捕获的连接性状态,在第二虚拟机和一个或多个客户端设备之间建立多个运行连接的连接性;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的客户操作系统的第二实例的状态;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的应用的第二实例的状态;以及将应用的第二实例的状态与操作系统的第二实例的状态同步。

系统可以包括其上存储有的另外的计算机可执行指令的存储器,另外的计算机可执行指令在由处理器执行时,使计算机:在第一虚拟机处:捕获在第一虚拟机上执行的应用的第一实例的状态;捕获在第一虚拟机上执行的客户操作系统的第一实例的状态;捕获与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的连接性状态;以及向第二虚拟机提供应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态以及经捕获的连接性状态。

系统还可以包括:捕获连接性状态包括:存储关于与应用的第一实例的连接性相关联的防火墙状态的信息,以及存储关于与应用的第一实例的连接性相关联的传输安全层的信息。

系统还可以包括:捕获连接性状态包括:存储关于与应用的第一实例的连接性相关联的加密密钥或解密密钥中的至少一个的信息。系统还可以包括:捕获连接性状态包括:存储关于第一虚拟机的因特网协议(IP)地址的信息。系统还可以包括:其中捕获连接性状态包括:存储关于与第一虚拟机的运行连接相关联的传输控制块的信息。

系统还可以包括:其中传输控制块维持关于端点的信息、运行连接的状态、关于正被交换的分组的数据以及关于用于发送和接收数据的缓冲器的信息。系统还可以包括:其中应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态以及经捕获的连接性状态被序列化成预定义的数据结构。系统还可以包括:其中在应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态以及经捕获的连接性状态被提供之前,正在执行的客户操作系统的第二实例和应用的第二实例正在第二虚拟机上执行。

系统可以包括其上存储有的另外的计算机可执行指令的存储器,另外的计算机可执行指令在由处理器执行时,使计算机:响应连接性迁移请求,由负载均衡器停止向第一虚拟机转发网络消息;以及在第二虚拟机上执行的应用的第二实例的状态被建立之后,重新开始将指向第一虚拟机的网络消息转发到第二虚拟机。系统还可以包括:其中应用的第一实例是与应用的第二实例不同的应用版本。

本文中所描述的是一种在虚拟执行系统中从第一虚拟机迁移到第二虚拟机的方法,包括:在第二虚拟机处:接收应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态、以及与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的经捕获的连接性状态;至少部分地基于经捕获的连接性状态,建立第二虚拟机和一个或多个客户端设备之间的多个运行连接的连接性;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的客户操作系统的第二实例的状态;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的应用的第二实例的状态;以及将应用的第二实例的状态与操作系统的第二实例的状态同步。

方法还可以包括:捕获在第一虚拟机上执行的应用的第一实例的状态;捕获在第一虚拟机上执行的客户操作系统的第一实例的状态;捕获与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的连接性状态;向第二虚拟机提供应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态以及经捕获的连接性状态。

方法还可以包括:其中捕获连接性状态包括:存储关于与应用的第一实例的连接性相关联的防火墙状态的信息,以及存储关于与应用的第一实例的连接性相关联的传输安全层的信息。方法还可以包括:其中捕获连接性状态包括:存储关于与应用的第一实例的连接性相关联的加密密钥或解密密钥中的至少一个的信息。方法还可以包括:捕获连接性状态包括:存储关于第一虚拟机的因特网协议(IP)地址的信息。方法还可以包括:其中捕获连接性状态包括:存储关于与第一虚拟机的运行连接相关联的传输控制块的信息。

本文中所描述的是一种计算机存储介质,其存储计算机可读指令,计算机可读指令在被执行时,使计算设备:接收应用的第一实例的捕获状态、客户操作系统的第一实例的捕获状态,以及与第一虚拟机和一个或多个客户端设备之间的多个运行连接相关联的经捕获的连接性状态;至少部分地基于经捕获的连接性状态,在第二虚拟机和一个或多个客户端设备之间建立多个运行连接的连接性;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的客户操作系统的第二实例的状态;至少部分地基于客户操作系统的第一实例的捕获状态,建立在第二虚拟机上执行的应用的第二实例的状态;以及将应用的第二实例的状态与操作系统的第二实例的状态同步。

计算机存储介质可以存储另外的计算机可读指令,另外的计算机可读指令在被执行时,使计算设备:通过存储关于与应用的第一实例的连接性相关联的防火墙状态的信息,存储关于与应用的第一实例的连接性相关联的传输安全层的信息,以及存储关于与应用的第一实例的连接性相关联的加密密钥或解密密钥中的至少一个的信息,来捕获连接性状态。计算机存储介质可以存储另外的计算机可读指令,另外的计算机可读指令在被执行时,使计算设备:通过存储关于与第一虚拟机的运行连接相关联的传输控制块的信息来捕获连接性状态,并且传输控制块维持关于端点、正在运行的连接的状态、关于正被交换的分组的数据的信息,并且维持关于用于发送和接收数据的缓冲器的信息。

参考图7,所图示的是示例通用计算机或计算设备702(例如,移动电话、台式计算机、笔记本计算机、平板计算机、手表、服务器、手持设备、可编程消费者或工业电子设备、机顶盒、游戏系统、计算节点等)。例如,计算设备702可以在用于通过监控配置进程100的执行来检测恶意软件的系统和/或通过监控配置进程200的执行来检测恶意软件的系统中被使用。

计算机702包括一个或多个处理器720、存储器730、系统总线740、一个或多个大容量存储设备750和一个或多个接口组件770。系统总线740至少通信地耦合至少上述系统组成部分。然而,应当理解的是,在其最简单的形式中,计算机702可以包括耦合到存储器730的一个或多个处理器720,其执行存储在存储器730中的各种计算机可执行行动、指令和/或组件。例如,指令可以是用于实现被描述为由上述一个或多个组件实施的功能的指令或用于实现上述一种或多种方法的指令。

一个或多个处理器720可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件、或者被设计用于执行本文中所描述的功能的其任何组合来实现。通用处理器可以是微处理器,但是在备选方案中,处理器可以是任何处理器、控制器、微控制器或状态机。一个或多个处理器720还可以被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、一个或多个微处理器结合DSP核、或任何其他这种配置。在一个实施例中,一个或多个处理器可以是图形处理器。

计算机702可以包括或以其他方式与各种计算机可读介质交互,以支持计算机702的控制以实现所要求保护的主题的一个或多个方面。计算机可读介质可以是可以由计算机702访问的任何可用介质,并且包括易失性和非易失性介质以及可移除和不可移除介质。计算机可读介质可以包括两种不同的和相互排斥的类型,即计算机存储介质和通信介质。

计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括存储设备,诸如存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等)、磁存储设备(例如硬盘、软盘、磁盒、磁带等)、光盘(例如,光盘(CD)、数字通用盘(DVD)等)和固态设备(例如固态驱动器(SSD)、闪存驱动器、(例如卡、棒、密钥驱动器等)等)、或任何其他类似的介质,其与传输或通信相反,存储计算机702可访问的所需信息。因此,计算机存储介质排除调制数据信号以及相对于通信介质描述的内容。

通信介质实施计算机可读指令、数据结构、程序模块、或者诸如载波或其他传输机制的调制数据信号中的其他数据,并且包括任何信息传递介质。术语“调制数据信号”是指以其特征中的一个或多个以能够在信号中编码信息的方式来设置或更改的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质、以及诸如声学、RF、红外和其他无线介质的无线介质。

存储器730和大容量存储设备750是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器730可以是易失性的(例如,RAM)、非易失性(例如,ROM、闪存等)、或两者的某种组合。作为示例,基本输入/输出系统(BIOS)(包括在诸如启动期间在计算机702内的元件之间传送信息的基本例程)可以存储在非易失性存储器中,而易失性存储器可以用作外部高速缓存存储器,以支持一个或多个处理器720等的处理。

大容量存储设备750包括用于相对于存储器730存储大量数据的可移除/不可移除、易失性/非易失性计算机存储介质。例如,大容量存储设备750包括但不限于一个或多个设备,诸如磁盘或光盘驱动器、软盘驱动器、闪存、固态驱动器或记忆棒。

存储器730和大容量存储设备750可以包括或存储有操作系统760、一个或多个应用762、一个或多个程序模块764和数据766。操作系统760用于控制和分配计算机702的资源。应用762包括系统和应用软件中的一者或两者,并且可以通过程序模块764和存储在存储器730和/或一个或多个大容量存储设备750中的数据766来利用操作系统760对资源的管理以执行一个或多个行动。因此,应用762可以根据由此提供的逻辑将通用计算机702转换成专用机器。

所要求保护的主题的所有或部分可以使用标准编程和/或工程技术来实现,以产生软件、固件、硬件或其任何组合,以控制计算机来实现所公开的功能。作为示例而非限制,系统100或其部分可以是或形成应用762的一部分,并且包括存储在存储器和/或一个或多个大容量存储设备750中的一个或多个模块764和数据766,模块764和数据766的功能在由一个或多个处理器720执行时可以被实现。

在一些实施例中,一个或多个处理器720可以对应于片上系统(SOC)或类似的架构,在单个集成电路基板上包括或换言之集成硬件和软件。这里,一个或多个处理器720可以包括一个或多个处理器以及至少类似于一个或多个处理器720和存储器730的存储器等。传统处理器包括最少量的硬件和软件,并且广泛地依赖于外部硬件和软件。相比之下,处理器的SOC实现更加强大,因为其中嵌入有硬件和软件,其使得能够以最小或不依赖于外部硬件和软件来实现特定功能。例如,系统100和/或相关联的功能可以被嵌入在SOC架构中的硬件内。

计算机702还包括通信地耦合到系统总线740并且支持与计算机702的交互的一个或多个接口组件770。作为示例,接口组件770可以是端口(例如,串行、并行、PCMCIA、USB、FireWire等)或接口卡(例如,声音、视频等)等。在一个示例实现中,接口组件770可以被实现为用户输入/输出接口,以使得用户能够向计算机702中输入命令和信息,例如通过一个或多个手势或语音输入,通过一个或多个输入设备(例如,指示设备,诸如鼠标、轨迹球、触控笔、触摸板、键盘、麦克风、操纵杆、游戏垫、卫星天线、扫描仪、相机、其他计算机等)。在另一示例实现中,接口组件770可以被实施为输出外围接口,以向显示器(例如LCD、LED、等离子体等)、扬声器、打印机和/或其他计算机等提供输出。此外,接口组件770可以被实施为网络接口,以实现与其他计算设备(未示出)的通信,诸如通过有线或无线通信链路。

上面描述的内容包括所要求保护的主题的各个方面的示例。当然,为了描述所要求保护的主题的目的,不可能描述组件或方法的每个可想到的组合,但是本领域普通技术人员可以认识到,所公开的主题的很多另外的组合和排列是可能的。因此,所公开的主题旨在包含落在所附权利要求的精神和范围内的所有这种更改、修改和变化。此外,在具体实施方式或权利要求中使用术语“包括”的程度上,这种术语以与术语“包含”类似的方式旨在是包括性的,如“包含”在权利要求中被用作过渡词时被解释的那样。

相关技术
  • 虚拟执行系统中的连接性迁移
  • 虚拟机迁移中的用户数据报协议分组迁移方法和装置
技术分类

06120113686994