将虚拟机从第一计算设备迁移到第二计算设备的方法转让专利

申请号 : CN201480078704.9

文献号 : CN106464704B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐世杰李琦宋学锋

申请人 : 英派尔科技开发有限公司

摘要 :

总体上描述用于在计算设备之间迁移虚拟机的设备和方法的技术。可以识别用于访问在第一计算设备处的虚拟机的第一节点和第二节点。可以确定分别与第一节点和第二节点有关的第一向量和第二向量。第一向量和第二向量可以与参数的值有关。参数可以与节点和第一计算设备之间的通信有关。向量可以形成分布。可以确定向量的分布的特征。可以确定第一计算设备和特征之间的第一量级。可以确定第二计算设备和特征之间的第二量级。如果第二量级小于第一量级,那么可以将虚拟机从第一计算设备迁移到第二计算设备。

权利要求 :

1.一种将虚拟机从第一计算设备迁移到第二计算设备的方法,所述方法包括:识别第一节点,所述第一节点被配置为访问在所述第一计算设备处的所述虚拟机;

确定与所述第一节点有关的第一向量,其中所述第一向量与参数的第一值有关,并且其中所述参数与在所述第一节点和所述第一计算设备之间的通信有关;

识别第二节点,所述第二节点被配置为访问在所述第一计算设备处的所述虚拟机;

确定与所述第二节点有关的第二向量,其中所述第二向量与所述参数的第二值有关,其中所述参数还与在所述第二节点和所述第一计算设备之间的通信有关,以及进一步地,其中所述第一向量和所述第二向量形成分布;

确定所述第一向量和所述第二向量的所述分布的特征;

基于所述参数确定在所述第一计算设备和所述特征之间的第一量级;

基于所述参数确定在所述第二计算设备和所述特征之间的第二量级;以及响应于确定所述第二量级小于所述第一量级,将所述虚拟机从所述第一计算设备迁移到所述第二计算设备。

2.根据权利要求1所述的方法,其中所述第一向量还与在所述第一节点和所述第一计算设备之间的第一距离有关;以及其中所述第二向量还与在所述第二节点和所述第一计算设备之间的第二距离有关。

3.根据权利要求1所述的方法,其中所述第一量级与在所述第一计算设备和所述特征之间的第一距离有关;以及其中所述第二量级与在所述第二计算设备和所述特征之间的第二距离有关。

4.根据权利要求1所述的方法,其中将所述虚拟机从所述第一计算设备迁移到所述第二计算设备基于确定是否所述第二量级已经小于所述第一量级持续特定量的时间。

5.根据权利要求1所述的方法,其中所述参数包括地理坐标、电池功率、延迟、吞吐量、抖动、带宽和丢包中的至少一项。

6.根据权利要求1所述的方法,还包括:在所述迁移之前,在所述第一计算设备处保留所述虚拟机的备份映像。

7.根据权利要求1所述的方法,其中所述分布的所述特征是重心;以及其中所述方法还包括:对至少所述第一向量和所述第二向量进行平均以确定所述重心。

8.根据权利要求1所述的方法,其中将所述虚拟机从所述第一计算设备迁移到所述第二计算设备基于确定是否所述第二量级比所述第一量级小一阈值量。

9.一种将虚拟机从第一计算设备迁移到第二计算设备的方法,所述方法包括:识别第一节点,所述第一节点被配置为访问在所述第一计算设备处的所述虚拟机;

在第一时间处,确定与所述第一节点有关的第一向量,其中所述第一向量与参数的第一值有关,以及其中所述参数与在所述第一节点和所述第一计算设备之间的通信有关;

识别第二节点,所述第二节点被配置为访问在所述第一计算设备处的所述虚拟机;

在所述第一时间处,确定与所述第二节点有关的第二向量,其中所述第二向量与所述参数的第二值有关,其中所述参数还与所述第二节点和所述第一计算设备之间的通信有关,以及进一步地,其中所述第一向量和所述第二向量形成第一分布;

确定所述第一向量和所述第二向量的所述第一分布的第一特征;

基于所述第一特征的所述确定,控制所述虚拟机在所述第一计算设备处执行;

在第二时间处,确定与所述第一节点有关的第三向量,其中所述第三向量与所述参数的第三值有关;

在所述第二时间处,确定与所述第二节点有关的第四向量,其中所述第四向量与所述参数的第四值有关,以及进一步地,其中所述第三向量和所述第四向量形成第二分布;

确定所述第三向量和所述第四向量的所述第二分布的第二特征;以及基于第一量级超过第二量级,将所述虚拟机从所述第一计算设备迁移到所述第二计算设备,其中所述第一量级与在所述第一计算设备和所述第二特征之间的距离有关,以及其中所述第二量级与在所述第二计算设备和所述第二特征之间的距离有关。

10.根据权利要求9所述的方法,其中将所述虚拟机从所述第一计算设备迁移到所述第二计算设备迁移基于所述第一量级超过所述第二量级持续特定量的时间。

11.根据权利要求9所述的方法,其中所述第一分布的所述第一特征包括所述第一分布的第一重心,以及其中所述第二分布的所述第二特征包括所述第二分布的第二重心。

12.根据权利要求9所述的方法,其中所述第一分布的所述第一特征位于向量空间内的位置。

13.根据权利要求9所述的方法,还包括:在所述迁移之前,在所述第一计算设备处保留所述虚拟机的备份映像。

14.根据权利要求9所述的方法,其中将所述虚拟机从所述第一计算设备迁移到所述第二计算设备迁移基于所述第一量级超过所述第二量级一阈值量。

15.一种第一计算设备,包括:

处理器;以及

存储器,被配置为与所述处理器通信,其中所述存储器用于:存储虚拟机的映像;以及

存储一条或多条指令;

其中所述处理器用于,根据所述指令,:

控制所述虚拟机的执行;

识别第一节点,所述第一节点被配置为访问在所述第一计算设备处的所述虚拟机;

确定与所述第一节点有关的第一向量,其中所述第一向量与参数的第一值有关,并且其中所述参数与在所述第一节点和所述第一计算设备之间的通信有关;

识别第二节点,所述第二节点被配置为访问在所述第一计算设备处的所述虚拟机;

确定与所述第二节点有关的第二向量,其中所述第二向量与所述参数的第二值有关,其中所述参数还与在所述第二节点和所述第一计算设备之间的通信有关,以及进一步地,其中所述第一向量和所述第二向量形成分布;

确定所述第一向量和所述第二向量的所述分布的特征;

基于所述参数确定在所述第一计算设备和所述特征之间的第一量级;

基于所述参数接收在第二计算设备和所述特征之间的第二量级;以及响应于确定所述第二量级小于所述第一量级,将所述虚拟机从所述第一计算设备迁移到所述第二计算设备。

16.根据权利要求15所述的第一计算设备,其中分布的所述特征是重心,以及其中所述处理器用于基于所述指令,计算至少所述第一向量和所述第二向量的平均值以确定所述重心。

17.根据权利要求15所述的第一计算设备,其中为了将所述虚拟机从所述第一计算设备迁移到所述第二计算设备,所述处理器还用于基于指令确定是否所述第二量级已经小于所述第一量级持续特定量的时间。

18.根据权利要求15所述的第一计算设备,其中所述第一量级与在所述第一计算设备和所述特征之间的第一距离有关;以及其中所述第二量级与在所述第二计算设备和所述特征之间的第二距离有关。

19.根据权利要求15所述的第一计算设备,其中所述参数包括地理坐标、延迟、吞吐量、抖动、带宽和丢包中的至少一项。

说明书 :

将虚拟机从第一计算设备迁移到第二计算设备的方法

背景技术

[0001] 除非本文中另外指示,在本部分中所描述的方法对于本申请中的权利要求不是现有技术,并且不因包括在本部分中而被承认为是现有技术。
[0002] 一个或多个虚拟机可以在主机计算设备上执行。主机计算设备可以用于执行超级管理器或虚拟机管理器软件。超级管理器或虚拟机管理器软件可以用于为客户虚拟机提供虚拟操作平台,并且可以管理客户虚拟机的执行。一个或多个客户端计算设备可以被配置为与主机计算设备通信以访问通过主机计算设备正在执行的计算业务。在一些示例中,客户端计算设备可以通过网络与主机计算设备通信。

发明内容

[0003] 在一些示例中,总体上描述用于将虚拟机从第一计算设备迁移到第二计算设备的方法。在一些示例中,方法可以包括:识别第一节点,其被配置为访问在第一计算设备处的虚拟机。在一些其他示例中,方法可以包括:确定与第一节点有关的第一向量。第一向量可以与参数的第一值有关,并且该参数可以与第一节点和第一计算设备之间的通信有关。在各个其他示例中,方法可以还包括:确定与第二节点有关的第二向量。第二向量可以与参数的第二值有关。在某些情况下,参数还与第二节点和第一计算设备之间的通信有关。第一向量和第二向量可以形成分布。该方法还可以包括:确定第一向量和第二向量的分布特征。在一些其他示例中,方法还可以包括:基于参数确定第一计算设备和特征之间的第一量级。在各个示例中,该方法还可以包括:基于参数确定第二计算设备和特征之间的第二量级。该方法还可以包括:响应于确定第二量级小于第一量级,将虚拟机从第一计算设备迁移到第二计算设备。
[0004] 在一些其他示例中,总体上描述用于将虚拟机从第一计算设备迁移到第二计算设备的方法。在各个示例中,该方法可以包括:识别第一节点,其被配置为访问在第一计算设备处的虚拟机。在其他示例中,该方法还可以包括:在第一时间确定与第一节点有关的第一向量。第一向量可以与参数的第一值有关。在一些其他示例中,参数可以与第一节点和第一计算设备之间的通信有关。在一些示例中,该方法还可以包括:识别第二节点,其被配置为访问在第一计算设备处的虚拟机。在各个其他示例中,该方法还可以包括:在第一时间确定与第二节点有关的第二向量。第二向量可以与参数的第二值有关。参数还可以与第二节点和第一计算设备之间的通信有关。在一些示例中,第一向量和第二向量可以形成第一分布。在某些情况下,该方法还可以包括确定第一向量和第二向量的第一分布的第一特征。在其他示例中,该方法还可以包括:基于第一特征的确定,控制虚拟机在第一计算设备处被执行。在一些其他示例中,该方法还可以包括:在第二时间确定与第一节点有关的第三向量。
第三向量可以与参数的第三值有关。该方法还可以包括:在第二时间确定与第二节点有关的第四向量。第四向量可以与参数的第四值有关。在某些情况下,第三向量和第四向量可以形成第二分布。在一些示例中,该方法还可以包括:确定第三向量和第四向量的第二分布的第二特征。在各个示例中,该方法还可以包括:响应于确定第二特征不等于第一特征,将虚拟机从第一计算设备迁移到第二计算设备。
[0005] 在一些示例中,总体上描述计算设备。在一些示例中,第一计算设备可以包括:处理器和存储器,存储器被配置为与处理器进行通信。存储器可以用于存储虚拟机的映像。在一些示例中,存储器还可以用于存储一条或多条指令。在各个情况下,处理器可以用于根据指令来控制虚拟机的执行。在一些示例中,处理器可以用于根据指令来识别用于访问在第一计算设备处的虚拟机的第一节点。在各种情况下,处理器还可以用于根据指令确定与第一节点有关的第一向量。第一向量可以与参数的第一值有关。参数可以与第一节点和第一计算设备之间的通信有关。在各种情况下,处理器还可以用于根据指令来识别被配置为访问第一计算设备处的虚拟机的第二节点。在某些其他情况下,处理器可以用于根据指令来确定与第二节点有关的第二向量。第二向量可以与参数的第二值有关。参数还可以与第二节点和第一计算设备之间的通信有关。第一和第二向量可以形成分布。在某些其他示例中,处理器可以用于根据指令来确定第一向量和第二向量的分布特征。在各种情况下,处理器可以用于根据指令来基于参数而确定第一计算设备和特征之间的第一量级。在其他情况下,处理器可以用于根据指令来基于参数而接收第二计算设备和特征之间的第二量级。在各种其他情况下,处理器可以用于根据指令来响应于确定第二量级小于第一量级,将虚拟机从第一计算设备迁移到第二计算设备。
[0006] 前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细描述,除了上文所描述的示例性的方面、实施例和特征之外,另外的方面、实施例和特征将变得明显。

附图说明

[0007] 本公开的前述和其他特征将从结合附图的下文中的描述和随附权利要求中变得更加充分地明显。应当理解,这些附图仅仅描绘了根据本公开的几个实施例,并且因此并不被认为是限制它的范围,本公开将通过使用附图利用附加特性和细节而被描述,在附图中:
[0008] 图1图示可以被用于基于来自节点的通信来实现虚拟机迁移的示例系统;
[0009] 图2描绘图1中的具有与节点的向量模型有关的细节的示例系统;
[0010] 图3描绘用于基于来自节点的通信来实现虚拟机迁移的示例过程的流程图;
[0011] 图4图示示例计算机程序产品,其可以被用于基于来自节点的通信来实现虚拟机迁移;以及
[0012] 图5是图示被布置为基于来自节点的通信来实现虚拟机迁移的示例计算设备的框图。
[0013] 所有附图都根据本文所描述的至少一些实施例而被布置。

具体实施方式

[0014] 在以下详细描述中,参考附图,所述附图形成详细描述的一部分。除非上下文另外指示,在附图中,相似的符号通常标识相似的部件。在具体实施方式、附图和权利要求中描述的说明性实施例并不旨在是限制性的。在不脱离本文所呈现的主题的精神或范围的前提下,可以利用其它实施例,以及可以进行其它改变。如本文一般地描述的,以及在附图中图示的,本公开的方面可以以广泛的各种不同的配置被布置、替代、组合、分割和设计。
[0015] 本公开总体上尤其关注涉及基于来自计算设备或节点的通信来进行虚拟机迁移的方法、装置、系统、设备和计算机程序产品。
[0016] 简单来说,总体上描述用于从第一计算设备向第二计算设备迁移虚拟机的系统、设备和方法的技术。在一些示例中,识别用于访问在第一计算设备处的虚拟机的第一节点。例如,第一节点可以用于通过第一服务器来访问在执行中的虚拟机。可以确定与第一节点有关的第一向量。例如,可以确定第一向量,其指定或包括在第一移动设备和第一服务器之间的距离以及在第一移动设备和第一服务器之间的角度的指示。第一向量可以与参数的第一值有关,该参数可以与在第一节点和第一计算设备之间的数据的通信有关。在示例中,当通过第一服务器将通信请求从第一节点传送到执行中的虚拟机时,参数可以是所经历的延迟。可以识别可被配置为访问在第一计算设备处的虚拟机的第二节点。例如,可以识别可被配置为访问由第一服务器正在执行中的虚拟机的第二移动设备。可以确定与第二节点有关的第二向量。例如,可以确定第二向量,其指定或包括在第二移动设备和第一服务器之间的距离以及在第二移动设备和第一服务器之间的角度的指示。第二向量可以与参数的第二值有关,该参数还可以与第二节点和第一计算设备之间的数据的通信有关。在示例中,当通过第一服务器将通信请求从第一节点传送到执行中的虚拟机时,参数可以是所经历的延迟。
第一向量和第二向量可以形成向量的分布,其与在第一计算设备与第一和第一节点之间的通信状态有关。分布可以是当前网络状况的数学表达式,比如在节点和执行虚拟机的服务器之间的数据通信的数学表达式。在示例中,可在第一和第二向量上执行一个或多个数学操作以将第一和第二向量特征化为分布。可以确定第一和第二向量的分布的特征。例如,可以确定分布的重心。可以基于参数确定第一计算设备和特征之间的第一量级。在当前示例中,可以确定第一服务器和重心之间的第一距离的第一量级。可以基于参数确定第二计算设备和特征之间的第二量级。在示例中,可以确定第二服务器和重心之间的第二距离的第二量级。响应于确定第二量级小于第一量级,可以将虚拟机从第一计算设备迁移到第二计算设备。例如,当第二服务器和重心之间的距离小于第一服务器和重心之间的距离时,可以将虚拟机从第一服务器迁移到第二服务器。
[0017] 图1图示根据本文所描述的至少一些实施例而布置的、可以被用于基于来自节点的通信而实现虚拟机迁移的示例系统100。系统100可以包括一个或多个数据中心(包括数据中心112和/或114)、两个或多个设备106(包括设备106a、106b、106c、106d、和/或106e),和两个或多个服务器(包括服务器102和/或104)。设备106可以是例如膝上型电脑、移动电话、平板电脑、传感器节点、和/或其他计算设备。数据中心112和数据中心114可以是例如,用于容纳计算设备、计算机存储系统、和/或远程通信系统的设施。服务器102和服务器104可以是被配置为能够执行一个或多个虚拟机的计算设备。尽管被描绘为单独的数据中心,但是在一些示例中,服务器102、104可以位于同样的数据中心中。例如,服务器102可以执行虚拟机110。虚拟机110可以被配置为将业务130部署到一个或多个设备106。一个或多个设备106通过一个或多个网络路径116(包括网络路径116a、116b、116c、116d、和/或116e)可访问虚拟机110。虚拟机110可以提供一个或多个业务130。虚拟机110的业务130的一些示例可以包括:客户操作系统的执行、一个或多个程序的执行、数据存储操作、一个或多个物理计算设备的硬件的仿真等。
[0018] 设备106可以是,例如一个或多个计算设备或节点,所述计算设备或节点可以被配置为访问虚拟机110。在一些示例中,虚拟机110可以执行设备106的一个或多个计算业务。服务器102和/或104可识别设备106和/或与其通信以确定网络状况。设备106可以收集数据
132(包括数据132a、132b、132c、132d、和/或132e)。数据132可以包括与延迟、地理距离、电池功率、吞吐量、抖动、带宽、丢包等有关的信息和/或参数。在一些示例中,数据132可以与在设备106和服务器102和/或104之间的网络通信有关。例如,数据132可以包括与特定设备
106和服务器102之间的地理距离有关的信息。数据132可以与设备106有关,和/或与被设备
106用于访问虚拟机110的网络路径116有关。网络路径116可以是例如,可以耦接两个或多个联网设备的通路。数据可以从发送设备通过网络路径116向接收设备传输。在示例中,数据132可以包括与特定设备106和服务器102之间的特定网络路径116的吞吐量有关的信息。
[0019] 如下面将更详细讨论的,服务器102和/或104可以被配置为基于虚拟机迁移指令150,确定是否将虚拟机110从第一计算设备(比如服务器102)迁移到第二计算设备(比如服务器104)。例如,虚拟机110在时间t0处可以最初在数据中心112的服务器102上执行。在稍后的时间t1处,服务器104可以基于数据132来确定服务器104会更有效地部署虚拟机110的业务130的至少一部分。因此,在时间t1处,服务器102可以将虚拟机110从服务器102迁移到服务器104。在一些示例中,迁移后,虚拟机110的备份映像可以被存储在服务器102处。在示例中,虚拟机110的备份映像可以包括存储在与服务器102相关联的存储器中的虚拟机110的映像。
[0020] 图2描绘描述根据本文所描述的至少一些实施例而布置的、图1中的具有与节点的向量建模有关的细节的示例系统。出于清楚和简洁的目的,将不再描述与图1中的部件相同标记的图2中的那些部件。
[0021] 服务器102和/或104可以用于通过基于虚拟机迁移指令150确定与设备106的参数值有关的向量208(包括向量208a、208b、208c、208d、和/或208e)来对系统100的网络进行建模。由向量208表示的系统100的模型可以与设备106和服务器102和/或104之间的网络通信状态有关。在示例中,向量208可以是与参数有关,参数可以依次与设备106和服务器102、104之间的网络通信有关。在一些示例中,参数可以包括地理坐标、距离、电池功率、延迟、吞吐量等。在示例中,向量208的参数可以与设备106和服务器102和/或104之间的网络通信的当前状态有关。向量208可以包括量级和方向。附加地,向量208可以基于系统100的网络状况而被加权。例如,向量208可以通过将各个乘数应用到向量208的量级来被加权。在一些示例中,乘数可以是基于比如延迟、地理距离、电池功率、吞吐量、抖动、带宽、丢包等这样的现象。在一些示例中,被选择来加权向量208的现象可以不同于向量208的所选择的参数。例如,如果向量208与参数“吞吐量”有关,那么向量208可以基于设备106和服务器102和/或
104之间的通信中所经历的抖动而被加权。在另一示例中,特定的设备106或许正在经历阈值之上的延迟。与特定设备106相关联的向量208可以基于超过阈值的延迟而乘以0.5。
[0022] 在示例中,向量208可以表示设备106和服务器102和/或104中的一个之间的地理距离和方向。在一些示例中,比如可以通过例如多元概率分布来确定向量208的分布。基于向量208,可以确定向量208的分布的特征。在一些示例中,向量208的分布的特征可以位于向量空间内的位置。向量空间可以是例如向量208的坐标平面。例如,特征可以是重心202,其可通过例如计算向量208的平均值以确定向量208的中心位置来确定。在各个示例中,重心202可以位于距离服务器102或服务器104的限定距离处。
[0023] 在示例中,服务器102可以确定距离204,该距离可表示向量空间中的重心202与服务器102之间的差的量级。例如,如果向量208表示服务器102和设备106之间的空间距离,以及如果重心202表示向量208的平均,那么距离204可以表示向量空间中的重心202和服务器102之间的空间距离。
[0024] 服务器104可以确定向量空间的距离206。距离206可以表示服务器104和重心202的差。例如,如果向量208表示设备106的延迟,以及如果重心202表示向量208的平均,那么距离206可以表示服务器104和重心202之间的延迟。在一些示例中,服务器102和/或104可以基于距离206和/或距离204来控制虚拟机110的执行。
[0025] 当距离206包括相对于距离204的量级更小或更少的量级时,服务器102可以将虚拟机110从服务器102迁移到服务器104,其中距离204和距离206均与向量有关,向量依次与同样的参数有关。当距离204包括相对于距离206的量级更小的量级时,服务器104可以将虚拟机110从服务器104迁移到服务器102。在示例中,服务器102和104可以基于虚拟机迁移指令150来在建模周期220中周期性地对系统100进行建模。在一些示例中,当距离206的量级小于距离204的量级持续多个连续建模周期220或特定量的时间时,服务器102可以将虚拟机110从服务器102迁移到服务器104。在其他示例中,当在一个时间周期内距离206的量级小于距离204持续超过阈值量的多个建模周期220时,服务器102可以将虚拟机110从服务器102迁移到服务器104。在各个其他示例中,在迁移后,服务器102可以存储虚拟机110的备份(和/或映像)。尽管图2中描绘和描述两个服务器,但是系统100可以使用任何数量的服务器来实现。例如,虚拟机110可以被迁移到系统100中的特定服务器,其包括特定服务器和重心
202之间的最小量级向量(相对于系统100中的其他服务器)。
[0026] 在其他潜在益处中,根据本公开,基于来自节点的通信的虚拟机迁移可以允许计算设备的更有效部署和/或供应。基于当前网络参数,虚拟机可以在服务器处执行。例如,转移设备的物理位置可以促进虚拟机迁移以允许更高的计算效率。为了优化特定的网络,虚拟机可以被放置在特定的网络节点附近。
[0027] 图3描绘根据本文所描述的至少一些实施例而被布置的、用于基于来自节点的通信而实现虚拟机迁移的示例过程的流程图。在一些示例中,图3中的过程可以使用上面所讨论的系统100来实现,并且可以被用于在计算设备之间迁移虚拟机。示例过程可以包括如块S2、S4、S6、S8、S10、S12、S14和/或S16中的一个或多个所图示的一个或多个操作、动作、或功能。尽管图示为分离的块,但是根据特定的实现方式,各个块可以被分成附加块、被组合成更少的块、或被消除。块可以用表示其他操作、动作、或功能的附加块来补充。如上所述,图3中的过程可以由被配置为与一个或多个设备(比如设备106)通信的服务器来使用。服务器102和/或104可以包括处理器和存储器。存储器可以被配置为存储一个或多个指令,其可以正在通过处理器执行以基于设备来实现虚拟机迁移。存储器还用于存储和/或保留虚拟机(比如虚拟机110)的一个或多个映像。
[0028] 处理可以在块S2处开始,“识别被配置为访问第一计算设备处的虚拟机的第一节点”。在块S2处,可以识别第一节点。第一节点可以被配置为访问第一计算设备处的虚拟机(例如,来自图1的虚拟机)。
[0029] 处理可以从块S2持续到块S4,“确定与第一节点有关的第一向量,第一向量可以与参数的第一值有关,并且参数可以与第一节点和第一计算设备之间的通信有关”。在块S4处,可以确定与第一节点有关的第一向量(例如,来自图2的向量208)。第一向量可以与第一参数值有关,并且该参数可以与第一节点和第一计算设备之间的通信有关。
[0030] 处理可以从块S4持续到块S6,“识别被配置为访问第一计算设备处的虚拟机的第二节点”。在块S6处,可以识别第二节点。第二节点可以被配置为访问第一计算设备处的虚拟机。
[0031] 处理可以从块S6持续到块S8,“确定与第二节点有关的第二向量,第二向量可以与第二参数值有关,该参数还可以与第二节点和第一计算设备之间的通信有关,并且进一步地第一向量和第二向量可以形成分布”。在块S8处,可以确定与第二节点有关的第二向量。第二向量可以与第二参数值有关。该参数还可以与第二节点和第一计算设备之间的通信有关。第一向量和第二向量可以形成分布。第一向量可以与第一节点和第一计算设备之间的第一距离有关。第二向量可以与第二节点和第一计算设备之间的第二距离有关。
[0032] 处理可以从块S8持续到块S10,“确定第一和第二向量的分布的特征”。在块S10处,可以确定第一和第二向量的分布特征。例如,来自图2的重心202可以被确定为分布的特征。可以通过至少平均第一向量和第二向量来确定重心。在一些其他示例中,分布的特征可以位于向量空间内的位置。
[0033] 处理可以从块S10持续到块S12,“基于参数确定第一计算设备和特征之间的第一量级”。在块S12处,可以基于参数确定第一计算设备和特征之间的第一量级。例如,距离204和/或206可以被确定为第一计算设备和重心202之间的第一量级。第一量级可以与第一计算设备和特征之间的第一距离有关。
[0034] 处理可以从块S10持续到块S12,“基于参数确定第二计算设备和特征之间的第二量级”。在块S14处,基于参数可以确定第二计算设备和特征之间的第二量级。第二量级可以与第二计算设备和特征之间的第二距离有关。参数可以包括地理坐标、电池功率、延迟、吞吐量、抖动、带宽、和/或丢包中的至少一项。
[0035] 处理可以从块S14持续到块S16,“响应于确定第二量级小于第一量级,将虚拟机从第一计算设备向第二计算设备迁移”。在块S16处,响应于确定第二向量小于第一向量,虚拟机(例如,来自图1的虚拟机110)可以从第一计算设备迁移到第二计算设备。从第一计算设备向第二计算设备迁移虚拟机可以进一步基于确定是否第二量级已经小于第一量级持续特定量的时间。在迁移之前,虚拟机(比如,例如虚拟机110)的备份映像可以被保留在第一计算设备处。从第一计算设备向第二计算设备迁移虚拟机可以进一步基于确定是否第二量级比第一量级小一阈值量。
[0036] 图4图示根据本文所描述的至少一些实施例而布置的、可以被用于基于来自节点的通信实现虚拟机迁移的示例计算机程序产品400。程序产品400可以包括信号承载介质402。信号承载介质402可以包括一个或多个指令404,其响应于通过例如处理器的执行,可以提供关于图1-3如上所描述的功能和特征。因此,例如,参考系统100,响应于通过介质402传输给系统100的指令404,服务器102和/或服务器104可以承担图4所示的块中的一个或多个。
[0037] 在一些实施方式中,信号承载介质402可以包含计算机可读介质406,比如但不限于硬盘驱动器、压缩盘(CD)、数字视频光盘(DVD)、数字带、存储器等。在一些实施方式中,信号承载介质402可以包括可记录介质408,比如但不限于存储器、读/写(R/W)CD、R/W DVD等。在一些实施方式中,信号承载介质402可以包括通信介质410,比如但不限于数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。因此,例如,程序产品
400可以通过RF信号承载介质402而被传输至系统100中的一个或多个模块,其中信号承载介质402通过无线通信介质410传输(例如,符合IEEE 802.11标准的无线通信介质)。
[0038] 图5是根据本文所描述的至少一些实施例而布置的、图示被配置为基于来自节点的通信而实现虚拟机迁移的示例计算设备500的框图。在非常基本的配置502中,计算设备500典型地包括一个或多个处理器504和系统存储器506。存储器总线508可以被用于处理器
504和系统存储器506之间的通信。
[0039] 根据期望的配置,处理器504可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器504可以包括一个多等级缓存(例如一级缓存510和二级缓存512)、处理器核514以及寄存器516。示例处理器核514可以包括运算逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任意组合。示例存储器控制器518也可以与处理器504一起被使用,或在一些实施方式中,存储控制器518可以是处理器504的内部部分。
[0040] 根据期望的配置,系统存储器506可以是任何类型,包括但不限于易失性存储器(例如RAM)、非易失性存储器(例如ROM、闪存等)或其任意组合。系统存储器506可以包括操作系统520、一个或多个应用522以及程序数据524。应用522可以包括虚拟机迁移算法526,其可以被配置为执行如本文所描述的功能和操作,包括关于与系统100有关的图1-4中描述的那些功能和操作。程序数据524可以包括虚拟机迁移数据528,其或许对于本文所描述的基于来自节点的通信而实现虚拟机迁移是有用的。在一些实施例中,应用522可以被布置以与操作系统520和/或程序数据524进行协作来操作,以便提供基于来自节点的通信的虚拟机迁移。所描述的基本配置502在图5中通过内部虚线内的那些部件图示出。
[0041] 计算设备500可以具有附加特征或功能、和附加接口,以促进基本配置502和任何需要的设备以及接口之间的通信。例如,总线/接口控制器530可以被用于促进经由存储接口总线534在基本配置502和一个或多个数据存储设备532之间的通信。数据存储设备532可以是可移除存储设备536、非可移除存储设备538或其组合。可移除存储和非可移除存储设备中的示例包括磁盘设备(例如软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(例如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器)、固态驱动器(SSD)以及磁带驱动器等等。示例计算机存储介质可以包括以任何方法或技术实现的用于信息(例如计算机可读指令、数据结构、程序模块或其他数据)存储的易失性和非易失性、可移除和非可移除介质。
[0042] 系统存储器506、可移除存储设备536和非可移除存储设备538是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他的光存储装置、磁带盘、录音带、磁盘存储或其他磁盘存储设备、或可被用于存储期望信息并且可被计算设备500访问的任何其他介质。任何这样的计算机存储介质可以是计算设备500的一部分。
[0043] 计算设备500也可以包括用于促进从各种接口设备(例如输出设备542、外围接口544和通信设备546)经由总线/接口控制器530到基本配置502的通信的接口总线540。示例输出设备542包括图形处理单元548和音频处理单元550,其可以被配置为经由一个或多个A/V端口552与各种外部设备(例如显示器或扬声器)通信。示例外围接口544包括串行接口控制器554或并行接口控制器556,其可以被配置为经由一个或多个I/O端口558与外部设备、比如输入设备(例如键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如打印机、扫描仪等)进行通信。示例通信设备546包括网络控制器560,其可以布置为促进经由一个或多个通信端口564在网络通信链路上与一个或多个其他计算设备562的通信。
[0044] 网络通信链路可以是通信介质的一个示例。通信介质可以典型地通过计算机可读指令、数据结构、程序模块或在已调制数据信号(例如载波或其他传输机制)中的其他数据进行实施,并且可以包括任何信息递送介质。“已调制数据信号”可以是这样的信号,其具有以信号中的编码信息那样的方式设置或改变的其特征中的一个或多个。举例而言但不做限制,通信介质可以包括有线介质(例如有线网或直接有线连接)、以及无线介质(例如声波、无线电频率(RF)、微波、红外(IR)和其他无线介质)。如本文所使用的术语计算机可读介质包括存储介质和通信介质它们两者。
[0045] 计算设备500可以被实施为小型体积便携式(或移动)电子设备(例如手机、个人数据助理(PDA)、个人媒体播放器设备、无线web查看设备、个人头戴式设备、应用特定设备或包括上面功能的任何功能的混合设备)的一部分。计算设备500也可被实施为包括膝上型计算机和非膝上型计算机配置的个人计算机。
[0046] 就本申请中所描述的特定实施例而言,本公开并不是限制性的,其意图作为各种方面的说明。在不脱离其精神和范围的前提下,可以进行许多修改和改变。除了本文列举的那些方法和装置,在本公开的范围内的功能上等同的方法和装置根据前文的描述将是明显的。这样的修改和改变意图落在随附权利要求的范围内。本公开仅通过随附权利要求的术语、连同这样的权利要求被赋予的等同物的完全范围而被限制。应当理解,本公开并不限制于特定的方法、试剂、化合物组合物或生物系统,其当然可以改变。还应当理解,本文所使用的术语仅仅是出于描述特定实施例的目的,并且并不意图是限制性的。
[0047] 关于本文中实质上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中可以明确地阐明了各种单数/复数置换。
[0048] 一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包含”应解释为“包含但不限于”,等等)。如果意图表达引导权利要求记述项的具体数量,则这样的意图应该明确地记载于权利要求中,如果没有这样的记载,则这样的意图不存在。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施例,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如不定冠词“一”或“一个”的(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,表示两个或多个备选术语的几乎任何转折词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。
[0049] 出于任何以及全部的目的,诸如在提供所撰写的说明书方面,本文所公开的全部范围也涵盖了任何和全部的可能的子范围及其子范围的组合。能够容易地认识到,任何所列范围都充分地描述了同一范围并且使同一范围分解成至少均等的两半、三份、四份、五份、十份等等。作为非限制示例,本文所论述的每个范围能够容易地分解成下三分之一、中三分之一和上三分之一,等等。本领域技术人员还将理解的是,诸如“多达”、“至少”等所有的言词包括所记述的数量并且是指如上文所论述的随后能够分解成子范围的范围。最后,范围包括每个独立的成员。因此,例如,具有1-3个单元的组是指具有1个、2个或3个单元的组。类似地,具有1-5个单元的组是指具有1个、2个、3个、4个、或5个单元的组,等等。
[0050] 虽然本文已经公开了各个方面和实施例,但是其它的方面和实施例对于本领域技术人员而言将是明显的。本文所公开的各个方面和实施例是为了示例的目的而不意在限制,其中真正的范围和精神是通过以下权利要求来指明。