虚拟机批量在线迁移的制作方法

文档序号:11620424阅读:380来源:国知局
虚拟机批量在线迁移的制造方法与工艺

本公开一般涉及虚拟机的迁移。



背景技术:

虚拟机(“vm”)是具体操作环境的仿真。虚拟机基于真实或假设计算机的计算机架构和功能操作,并且实现可涉及专用硬件、软件或二者。虚拟机可基于在虚拟机内实现目标真实机的功能性的程度进行分类。系统虚拟机提供了目标真实机的完全替代,以及支持完全操作系统的执行所需的某个水平的功能性。过程虚拟机被设计成通过提供抽象的且平台无关的平台执行环境来执行单个应用。

虚拟机例如可在一个或多个主机装置(诸如一个或多个远程服务器系统)上本地或远程实现。偶尔,将若干虚拟机从第一远程主机装置迁移到第二远程主机装置,可能变得有必要。虚拟机的在线迁移跨物理主机重新定位虚拟机,同时虚拟机继续操作。虚拟机可跨物理主机迁移以改进服务可用性,增大资源利用,简化物理主机的管理,执行服务器维护,或者跨若干物理主机的载荷平衡。虚拟机的在线迁移是虚拟化数据中心中和基于云的操作系统诸如openstack中的关键技术。

随着硬件容量的增大,单个装置支持大量并置虚拟机的能力继续增大。随着并置的虚拟机数量的增大,任何数量的虚拟机同时迁移的可能性增大。类似地,所有虚拟机从第一物理主机到第二物理主机的迁移和/或迁移之间的交叠的可能性也将倾向于随着虚拟机数量的增大而增大。

作为备选,虚拟机可在顺序或调度的基础上单独迁移。然而,当多个虚拟机作为一组迁移时有好处:

·当虚拟机包含vm间通信信道时,虚拟机应该并行迁移,并且在同一时间在目的地物理主机中重新开始。当虚拟机在物理主机之间单独迁移时,此类虚拟机的顺序迁移可导致由于vm间通信信道的中断引起的故障。

·在公共物理主机上并置的虚拟机可共享大量存储页面,单独迁移此类虚拟机可导致大量重复存储页面的迁移。此类重复浪费了目的地物理主机上的存储容量以及跨网络用于迁移虚拟机的带宽。

·用容器vm情况(诸如因特尔的透明容器),在单个主机上可存在巨大量虚拟机。在此类实现中,虚拟机可能共享若干存储页面,并且还彼此通信——在此类条件下,虚拟机的批量迁移是有利的。

大多数已知虚拟机迁移解决方案仅传送单独虚拟机,或传送在源物理主机上实现的所有虚拟机。此类迁移制度是次优选的,因为通过标识在虚拟机之间总体或部分共享或重复的存储页面,单独虚拟机的迁移或所有虚拟机的迁移失去了显著降低在源物理主机与目的地物理主机之间传送的数据的机会。此外,此类解决方案在预先拷贝阶段可能受由于非汇聚变脏存储页面引起的迁移故障之苦。

附图说明

随着如下具体实施方式的继续,并参考附图,所要求权利的主题的特征和优点将变得显而易见,其中相似数字表示相似部分,并且附图中:

图1是按照本公开至少一个实施例的在线虚拟机迁移系统的示意图;

图2a是按照本公开的至少一个实施例其中在第一物理主机上实现的4个虚拟机共享存储在第一物理主机中相同存储位置的公共存储页面的说明性系统的示意;

图2b是按照本公开的至少一个实施例其中在第一物理主机上实现的4个虚拟机将数据传递到相应存储页面并且其中每一个存储页面都具有相同或类似数据的说明性系统的示意;

图3是按照本公开的至少一个实施例包含指示要迁移的每对虚拟机之间的存储页面共性的程度的数据的图表;

图4是按照本公开至少一个实施例的说明性在线虚拟机迁移方法的高级流程图;

图5是按照本公开的至少一个实施例基于相应虚拟机组的预测的迁移时间在第一物理主机与第二物理主机之间迁移虚拟机组的说明性方法的高级流程图;

图6是按照本公开至少一个实施例的另一说明性在线虚拟机迁移方法的高级流程图;以及

图7是按照本公开至少一个实施例的说明性虚拟机迁移控制器的框图。

尽管如下具体实施方式将继续参考说明性实施例,但它们的许多备选、修改和变形对本领域技术人员将是显而易见的。

具体实施方式

在物理主机之间迁移虚拟机的一方面是拷贝目标虚拟机的改变的存储器,同时虚拟仍从源主机向目的地运行。与虚拟机关联的存储页面表示数据传送的重要部分,并且传送存储页面的网络带宽可约束或以其他方式限制在物理主机之间迅速有效传送存储页面的能力。为了解决与迁移大量数据密集存储页面关联的问题,在线迁移虚拟机可通过如下方式执行:

·检查在逻辑上与存储在源物理主机的存储器中的要迁移的虚拟机关联的存储页面以标识共享存储页面。然后仅传送共享存储页面的一个实例。

·为了增大标识源物理主机内的共享或部分同等的存储页面的可能性,虚拟机在线迁移控制器以某个粒度级检查存储页面,以某个粒度级查找子页,并使用一个或多个数据指纹比对技术来加速共享的部分同等或完全同等的存储页面。

·由于每个虚拟机都保持通常一致的存储页面变脏速率,因此虚拟机在线迁移控制器使用变脏日志模式跟踪变脏的存储页面的数量来收集可写存储器工作集模式。虚拟机在线迁移控制器然后以给定网络带宽动态预测存储器工作集模式,包含迁移所花的迭代和持续时间和汇聚。基于预测的迁移时间,虚拟机在线迁移控制器选择以给定(或分配的)存储器带宽迁移的虚拟机组以成功完成批量迁移。

提供了一种将多个虚拟机从第一物理主机在线迁移到第二物理主机的系统。该系统可包含通信上耦合到第一物理主机和第二物理主机的至少一个网络接口以及通信上耦合到至少一个网络接口的至少一个电路。该系统可进一步包含通信上耦合到至少一个电路的至少一个存储装置,至少一个存储装置包含机器可读指令,所述指令当执行时使至少一部分电路提供虚拟机迁移控制器,虚拟机迁移控制器:对于在第一物理主机上托管的多个虚拟机中的每个虚拟机:确定指示在逻辑上与相应虚拟机关联的存储页面变脏速率的值,有选择地分组多个虚拟机中的至少一些虚拟机以提供若干虚拟机组,相应虚拟机组中的每个虚拟机都访问第一物理主机上的同等存储页面内容部分;以及至少部分基于如下项动态预测迁移相应虚拟机组的持续时间:由所述相应虚拟机组中的所述虚拟机访问的所述同等存储页面内容部分的单个迁移;将相应虚拟机组从第一物理主机迁移到第二物理主机的可用带宽;以及指示在逻辑上与包含在所述相应虚拟机组中的每一个所述虚拟机关联的所述存储页面变脏速率的值。

提供了另一种在线虚拟机迁移系统。所述系统可包含至少一个控制器电路以及通信上耦合到至少一个控制器电路的至少一个存储装置,至少一个存储装置包含机器可执行指令,所述指令当由至少一个控制器电路执行时使至少一个控制器电路提供虚拟机迁移控制器。虚拟机迁移控制器可确定驻留在第一主机系统上的多个虚拟机中每个虚拟机的页面变脏速率;有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问至少一个同等存储页面内容部分的虚拟机;以及至少部分基于所述至少一个同等存储页面内容部分、包含在相应组中的每一个所述虚拟机的所述页面变脏速率以及可用的网络带宽来确定所述若干虚拟机组中的每组从第一主机系统迁移到第二主机系统的计划迁移时间。

提供了一种在线虚拟机迁移方法。所述方法可包含:对于多个虚拟机中的每个虚拟机,确定指示在逻辑上与相应虚拟机关联的所述存储页面变脏速率的值,并且有选择地分组多个虚拟机中的虚拟机以提供若干虚拟机组的部件,相应虚拟机组中的每个虚拟机都访问同等存储页面内容部分。所述方法可进一步包含:对于每个虚拟机组,至少部分基于如下项动态预测迁移相应虚拟机组的持续时间:由所述相应虚拟机组中的所述虚拟机访问的所述同等存储页面内容部分的单个迁移;迁移相应虚拟机组的可用带宽;以及指示在逻辑上与包含在相应虚拟机组中的每一个虚拟机关联的存储页面变脏速率的值。

提供了另一种在线虚拟机迁移方法。所述方法可包含由虚拟机迁移控制器确定多个虚拟机中每个的页面变脏速率。所述方法可进一步包含由所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问至少一个同等存储页面内容部分的虚拟机。所述方法此外可包含由所述虚拟机迁移控制器至少部分基于所述至少一个同等存储页面内容部分、包含在相应组中的每一个所述虚拟机的所述页面变脏速率以及可用的网络带宽来确定所述若干虚拟机组中每组的计划迁移时间。

提供了另一种在线虚拟机迁移系统。所述系统可包含:对于多个虚拟机中的每个虚拟机,用于确定指示在逻辑上与相应虚拟机关联的所述存储页面变脏速率的值的部件。所述系统此外可包含用于有选择地分组所述多个虚拟机中的虚拟机以提供若干虚拟机组的部件,相应虚拟机组中的每个虚拟机都访问同等存储页面内容部分;所述系统此外可包含:对于每个虚拟机组,用于至少部分基于如下项动态预测迁移所述相应虚拟机组的持续时间的部件:由所述相应虚拟机组中的所述虚拟机访问的所述同等存储页面内容部分的单个迁移;迁移相应虚拟机组的可用带宽;以及指示在逻辑上与包含在相应虚拟机组中的每一个虚拟机关联的存储页面变脏速率的值。

提供了另一种在线虚拟机迁移系统。所述系统可包含用于确定在第一主机系统上实现的多个虚拟机中每个虚拟机的页面变脏速率的部件。所述系统可进一步包含用于有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的部件,虚拟机组中的每组都包含先前访问至少一个同等存储页面内容部分的虚拟机。所述系统此外可包含用于至少部分基于至少一个同等存储页面内容部分、包含在相应组中的每一个虚拟机的页面变脏速率以及可用的网络带宽来确定若干虚拟机组中每组的计划迁移时间的部件。

本文所使用的术语“上”和“下”打算提供对某个位置的相对而非绝对的参考。从而,反转如具有“上部分”和“下部分”所描述的对象可将“下部分”放在对象的上面而“上部分”放在对象的下面。此类配置应该被视为包含在此公开的范围内。

如本文所使用的术语“第一”、“第二”以及其它类似序数词意图区分若干类似或同等的对象,并不表示对象的具体或绝对次序。从而,“第一对象”和“第二对象”可按任何次序出现——包含第二对象在空间上或时间上出现在第一对象之前的次序。此类配置应该被视为包含在此公开的范围内。

图1是按照本公开的至少一个实施例的在线虚拟机迁移系统100的示意图,其中虚拟机迁移控制器102将若干虚拟机120a-120n(统称为“虚拟机120”)从第一物理主机110迁移140到第二物理主机150(经由网络160在通信上耦合)。在第一物理主机系统110上可实现任何数量的虚拟机120。例如,第一物理主机系统110可托管10个或更多虚拟机120;50个或更多虚拟机120;100个或更多虚拟机120;500个或更多虚拟机120;或者1000个或更多虚拟机120。每一个虚拟机120都可实现相同或不同的操作系统和/或应用。

第一物理主机系统110可包含一个或多个存储装置,诸如存储器122。其中一些或所有虚拟机120可被映射到存储或以其他方式保留在存储器122中的存储页面124a-124n(统称为“存储页面124”)和/或在逻辑上与之关联。每一个存储页面124都包含由映射到相应存储页面124的虚拟机120生成和/或使用的数据和/或信息。在实施例中,单个虚拟机120可被映射到任何数量的存储页面124。每个虚拟机120都可间歇、定期或非定期添加、改变或删除虚拟机120映射到的存储页面124上的数据和/或信息。具体虚拟机120可添加、改变或删除在存储页面124上包含的信息和/或数据的速率可被称为相应虚拟机120的“页面变脏速率”或简单地称为“变脏速率”。虚拟机120可具有类似的或不同的变脏速率。

在一些实现中,若干虚拟机120可被映射到单个存储页面124。在此类实现中,单个存储页面124可被视为在相应虚拟机120之间“共享”或由其共享。在一些实现中,映射到不同虚拟机120但不由它们共享的存储页面124的部分可包含类似的或同等的数据和/或信息。在一些实现中,映射到不同虚拟机120但不由它们共享的整个存储页面124可包含类似的或同等的数据和/或信息。从而,在一些实现中,包含在不同存储页面124上的信息和/或数据可以类似或同等,并且因此,在第一物理主机系统110的存储器122中可存在相当数量的冗余信息和/或数据。本文描述的系统和方法有益地能够标识映射到多个虚拟机120并在其间共享的存储页面124以及包含类似或同等信息和/或数据并映射到不同虚拟机120的存储页面124。

在实施例中,所有或部分存储器拷贝管理器112可被布置在第一物理主机系统110中,如图1中所描绘的。在其它实施例中,所有或部分存储器拷贝管理器112可被布置在虚拟机迁移控制器102中。不管存储器拷贝管理器112的位置如何,存储器拷贝管理器112都在通信上耦合到虚拟机控制器102。存储器拷贝管理器112可扫描或以其他方式分析其中一些或所有存储页面124以标识被映射到不同虚拟机120的重复存储页面124(即,包含相同信息和/或数据的不同存储页面124)。存储器拷贝管理器112可扫描或以其他方式分析其中一些或所有存储页面124以标识被映射到不同虚拟机120的部分重复存储页面124(即,包含至少一部分相同信息和/或数据的不同存储页面124)。

在一些实现中,存储器拷贝管理器112可分析映射到若干虚拟机120的至少一部分存储页面124以标识全部或部分包含重复信息和/或数据的那些存储页面124。在一些实现中,存储器拷贝管理器112可在时间的基础上分析存储页面124。例如,存储器拷贝管理器112可在规则、不规则或周期的基础上分析存储页面124。在一些实现中,存储器拷贝管理器112可在事件驱动的基础上分析存储页面124。例如,存储器拷贝管理器112可在接收到其中一些或所有虚拟机120从第一物理主机110到第二物理主机150的即将发生的迁移的一个或多个消息或指示符时分析存储页面124。在一些实施例中,虚拟机迁移控制器112可给存储器拷贝管理器112提供其中一些或所有虚拟机120从第一物理主机110到第二物理主机150的即将发生的迁移的消息或指示符。

存储器拷贝管理器112可使用任何当前或将来开发的分析技术来标识包含至少部分重复信息和/或数据的存储页面124。例如,存储器拷贝管理器112可生成并比较第一物理主机110上的其中一些或所有存储页面124的指纹。存储器拷贝管理器可使用任何当前或将来开发的指纹比对技术(诸如rabin算法)来执行此类指纹比对,这将每个存储页面124减小到相当短的数据字符串,其对包含在存储页面124上的内容是唯一的。在实施例中,存储器拷贝管理器112可比较每个存储页面124的指纹以标识候选存储页面匹配。为了确认候选匹配存储页面124的内容同等,存储器拷贝管理器112可在一个字节一个字节的基础上比较候选匹配存储页面124以确认候选匹配存储页面124确实同等。在实施例中,存储器拷贝管理器112可使用一个或多个散列函数来标识两个或更多存储页面124的同等部分。

虚拟机迁移控制器102可以是独立控制器,或者可实现为较大控制装置的一部分。在实施例中,虚拟机迁移控制器102可包含一个或多个通信上耦合的存储装置。在一些实现中,虚拟机迁移控制器102可包含能够执行一个或多个机器可执行指令集的一个或多个控制器电路。一个或多个机器可执行指令集可被全部或部分存储或以其他方式保留在一个或多个通信上耦合的存储装置中。在一些实现中,虚拟机迁移控制器102可全部或部分由第一物理主机系统110执行。在一些实现中,虚拟机迁移控制器102可全部或部分由第二物理主机系统150执行。在一些实现中,虚拟机迁移控制器102可由第一物理主机系统110和第二物理主机系统150外部的一个或多个装置执行。

虚拟机迁移控制器102控制虚拟机120从第一物理主机系统110到第二物理主机系统150的迁移140。在至少一些实现中,第一物理主机系统110可以硬连线耦合160(例如定位在公共机架中的另一刀片服务器上)到第二物理主机系统150。在此类实现中,虚拟机120的迁移140可全部或部分经由硬连线连接160发生。在一些实现中,第一物理主机系统110可经由一个或多个网络162通信上耦合到第二物理主机系统150。在此类实现中,虚拟机120的迁移140可经由网络连接162发生。

第一物理主机系统110可包含一个或多个网络带宽分配器114。网络带宽分配器114可向虚拟机迁移140划分、专用或以其他方式分配可用网络带宽。此类带宽分配可全部或部分基于当前在第一物理主机系统110上执行的其它过程的带宽要求。在一些实施例中,网络带宽分配器114可向虚拟机迁移控制器102传递对于虚拟机迁移140可用的带宽。

图2a是按照本公开的至少一个实施例在第一物理主机系统110上执行的多个虚拟机120a-120d映射(202a-202d)到公共存储页面124的说明性系统200的示意。在一些实现中,多个虚拟机120可映射到单个共享存储页面124*。共享存储页面124*可被存储或以其他方式保留在第一物理主机系统110的存储器122中。

在实施例中,存储器拷贝管理器112可将多个虚拟机120标识为映射202到公共或共享存储页面124*。在实施例中,虚拟机迁移控制器102可将多个虚拟机120标识为映射202到公共或共享存储页面124*。在此类实施例中,虚拟机迁移控制器102可至少部分基于公共或共享存储页面124*有选择地分组210多个虚拟机120以便迁移140到第二物理主机系统150。通过有选择地分组多个虚拟机120进行迁移,虚拟机迁移控制器102能够仅使用共享存储页面124*的单个实例完成迁移。相比之下,如果虚拟机迁移控制器102单独迁移多个虚拟机120中的每个,则对于包含在多个虚拟机120中的每一个虚拟机120将迁移一次共享存储页面124*。从而,通过分组共享公共存储页面124*的多个虚拟机120,带宽和迁移时间要求被有益地降低。

图2b是按照本公开的至少一个实施例在第一物理主机系统110上执行的多个虚拟机120a-120d映射(202a-202d)到不同存储页面124a-124d然而每一个存储页面124的至少一部分包含公共信息或数据220的说明性系统200的示意。在一些实现中,多个虚拟机120可映射到不同存储页面124,然而每一个不同存储页面124可包含同等信息或数据220。在此类实例中,存储页面124可被存储或以其他方式保留在第一物理主机系统110的存储器122中。

在实施例中,存储器拷贝管理器112可将多个虚拟机120标识为映射202到不同存储页面124,其每个都包含至少部分公共信息或数据220。在实施例中,其中一些或所有不同存储页面124可包含同等的信息或数据。在实施例中,存储器拷贝管理器112可生成每一个不同存储页面124的指纹。存储器拷贝管理器112可比较每一个不同存储页面124的指纹以确定可包含同等信息或数据的候选匹配存储页面124。在实施例中,存储器拷贝管理器112可在一个字节一个字节的基础上比较候选匹配存储页面124以确定候选匹配存储页面124实际上是否同等。

在实施例中,其中一些或所有不同存储页面124可包含公共或同等的信息或数据段、短文或部分220。在实施例中,存储器拷贝管理器112可使用一个或多个散列函数标识每一个不同存储页面124的公共部分220。

在此类实施例中,虚拟机迁移控制器102可至少部分基于在不同存储页面124上包含的公共或共享信息或数据有选择地分组210多个虚拟机120以便迁移140到第二物理主机系统150。通过有选择地分组多个虚拟机120进行迁移,虚拟机迁移控制器102能够通过仅迁移一次公共信息或数据而不是对于包含在组210中的每一个虚拟机120迁移一次来完成分组的虚拟机的迁移。从而,通过分组映射到包含公共或同等信息或数据部分220的存储页面124的多个虚拟机120,带宽和迁移时间要求可有利地降低。

图3是按照本公开的至少一个实施例包含指示每个虚拟机对210之间存储页面共性302的程度的数据的图表300。在一些实施例中,虚拟机迁移控制器102确定单个存储页面124被映射到不同虚拟机120(即由它们共享)的程度和/或虚拟机120被映射到包含同等或公共信息或数据的不同存储页面124的程度。在实施例中,虚拟机迁移控制器102可基于共享存储页面124和具有映射到相应虚拟机120的至少部分同等信息或数据的存储页面124生成诸如包含指示每对虚拟机120之间共性程度的数据的图表300或其它图形的输出。图表300从而用指示具体虚拟机对210共享第一物理主机系统110内的存储器122的存储空间的程度的值302填充。

图4是按照本公开至少一个实施例的说明性在线虚拟机迁移方法400的高级流程图。在方法400中,虚拟机迁移控制器102通过有选择地标识和分组具有高度存储页面共性的虚拟机而降低了迁移时间和网络带宽。此类有选择地标识和分组虚拟机通过最小化或消除在源物理主机与目的地物理主机之间冗余存储页面内容的传送和/或冗余存储页面的传送而减少了完成迁移所需的带宽和时间。通过跟踪包含在每个虚拟机组中的虚拟机的页面变脏时间,虚拟机迁移控制器102能够基于页面变脏速率、由每个虚拟机映射的存储页面之间共性的程度以及网络带宽来确定计划迁移持续时间。方法400在402开始。

在404,虚拟机迁移控制器102确定安排为从第一物理主机系统110迁移到第二物理主机系统150的每一个虚拟机120的页面变脏速率。页面变脏速率是虚拟机120改变、添加或删除映射到相应虚拟机的一个或多个存储页面124上的信息或数据的速率。在实施例中,给定虚拟机120的页面变脏速率可随时间相对稳定。从而,虚拟机迁移控制器102可以确定具体虚拟机120在定义的时间段(诸如每小时)的历史页面变脏速率。这个数据然后可用于预测每个虚拟机的变脏速率,并且确定传送映射到相应虚拟机120的存储页面124所需的网络带宽。

在实施例中,为了跟踪存储器工作集变脏速率,可使用在虚拟机迁移140的先前迭代期间跟踪变脏存储页面的虚拟机迁移过程中的虚拟机存储器日志变脏模式。当虚拟机向页面写时,日志变脏模式向虚拟机存储页面设置写保护,并设置位图以指示在故障时间(例如虚拟机退出系统虚拟化或者容器虚拟机中的页面故障)时存储页面的变脏状况。

在406,虚拟机迁移控制器102有选择地将虚拟机120分组成若干虚拟机组210。虚拟机迁移控制器102可至少部分基于包含在组210中的构成虚拟机120之间的共享存储页面124的存在来分组210虚拟机120。虚拟机迁移控制器102可至少部分基于映射到若干存储页面124的每一个构成虚拟机120来分组210虚拟机120,这些存储页面与包含在相应组210中的其它虚拟机120映射到的其它存储页面124共享包含在存储页面124上的至少部分内容。虚拟机迁移控制器102至少部分基于由包含在相应组中的虚拟机120共享的存储页面内容的共性的程度来分组210虚拟机120。增大包含在组210中的虚拟机120之间的存储页面内容的共性的程度降低了当在线迁移虚拟机120时迁移的数据量,由此有益地降低了完成迁移所需的时间和带宽。

在408,虚拟机迁移控制器102动态确定在406创建的每个虚拟机组的计划迁移时间。计划迁移时间可受如下因素影响,诸如:

1.包含在组210中的虚拟机120的页面变脏速率(较高的存储页面变脏速率倾向于增大迁移时间和带宽);

2.包含在组210中的虚拟机之间的存储页面124的共性程度(较大的存储页面共性倾向于减小迁移时间和带宽);以及

3.执行迁移的可用网络带宽。

基于变脏速率,可预测以给定网络传送速度的存储器变脏速率。在实施例中,确定给定存储器变脏速率的计划迁移时间可通过首先确定第一时间与第二时间之间变脏的存储页面量:

其中:m=变脏的存储器

d(t)=存储器变脏速率

以给定工作速度传送变脏的存储器的时间是:

其中:t=迁移所需的时间

s=网络速度

下一存储器拷贝迭代将使存储器变脏如下:

方法400在410结束。

图5是按照本公开的至少一个实施例基于相应虚拟机组的预测的迁移时间在第一物理主机系统110与第二物理主机系统150之间迁移虚拟机组210的说明性方法500的高级流程图。在至少一些实现中,虚拟机迁移控制器102可使虚拟机组至少部分基于计划或估计时间的迁移基于若干因素(诸如关于图4中的408详细描述的因素)完成迁移。方法500在502开始。

在504,虚拟机迁移控制器102至少部分基于对于每个相应虚拟机组210计算的计划迁移时间有选择地迁移虚拟机组210。在一些实现中,虚拟机迁移控制器102可基于计划迁移时间(即最短迁移时间到最长迁移时间)按递升次序迁移虚拟机组210。

在实施例中,在虚拟机迁移控制器102迁移第一虚拟机组210之后,虚拟机迁移控制器102可再一次将剩余虚拟机120有选择地分组成若干虚拟机组210。虚拟机迁移控制器102可至少部分基于包含在组210中的构成虚拟机120之间的共享存储页面124的存在来分组210剩余虚拟机120。在有选择地将剩余虚拟机120分组成若干虚拟机组210之后,虚拟机迁移控制器102可再一次动态确定每个虚拟机组210的计划迁移时间。在动态确定每个虚拟机组210的计划迁移时间之后,虚拟机迁移控制器102可再一次至少部分基于对于每个相应虚拟机组210计算的计划迁移时间有选择地迁移虚拟机组210。虚拟机迁移控制器102可迭代地执行这种分组、计划迁移时间和迁移过程,直到所有虚拟机120都已经从第一物理主机系统110迁移到第二物理主机系统120。方法500在506结束。

图6是按照本公开至少一个实施例的说明性在线虚拟机迁移方法600的高级流程图。在方法600中,虚拟机迁移控制器102利用迭代过程,其中虚拟机120至少部分基于共享存储页面124被有选择地分派成虚拟机对,和/或映射到不同存储页面124上的同等内容。虚拟机迁移控制器102确定每一个虚拟机对的计划迁移时间。虚拟机迁移控制器102至少部分基于包含在相应虚拟机对中的每一个虚拟机120的存储页面变脏速率、包含在相应对中的虚拟机120之间的同等内容和共享存储页面的量以及可用的网络带宽来确定计划迁移时间。虚拟机迁移控制器102可基于计划迁移时间对虚拟机对进行排序,并且可迁移具有最少计划迁移时间的虚拟机对。在迁移具有最少计划迁移时间的虚拟机对之后,虚拟机迁移控制器102可将剩余虚拟机120重新分派成新的虚拟机对,并重复迁移过程。方法600在602开始。

在604,虚拟机迁移控制器102从每个虚拟机120收集存储器工作集变脏速率,并确定虚拟机120中的每个相应虚拟机的存储器行为模式。在实施例中,虚拟机迁移控制器102可使用每一个虚拟机的历史变脏速率来预测从第一物理主机系统110向第二物理主机系统150迁移映射到相应虚拟机120的存储页面124所需的网络带宽和/或迁移时间。

在606,虚拟机迁移控制器102初始化用于存储存储页面数据、虚拟机组数据、网络带宽数据以及在虚拟机批量在线迁移期间使用的类似数据的数据结构。

在608,虚拟机迁移控制器102将虚拟机120有选择地分组成若干虚拟机对,以评估每一个虚拟机120之间的存储页面共性。在实施例中,虚拟机迁移控制器102可生成指示由虚拟机120共享的存储页面内容的共性程度的一个或多个值。在实施例中,虚拟机迁移控制器102可生成一个或多个数据结构,诸如在图3中所描绘的数据结构,以评估各种虚拟机120之间的存储页面共性。

在610,虚拟机迁移控制器102至少部分基于由虚拟机120共享的存储页面内容的共性的程度将虚拟机120分组210成虚拟机对。在实施例中,虚拟机迁移控制器102可基于所确定的由虚拟机120共享的存储页面内容的共性程度对虚拟机对210进行排序。增大包含在虚拟机对210中的虚拟机120之间的存储页面内容的共性程度降低了当虚拟机对被在线批量迁移140时所迁移的数据量,由此有益地降低了完成迁移所需的时间和带宽。

在612,虚拟机迁移控制器102从网络带宽分配器114获取指示在第一物理主机系统110与第二物理主机系统150之间的给定存储器带宽的数据。在实施例中,虚拟机迁移控制器102可按在610确定的排序列表迭代虚拟机对120,以选择可基于如下准则一起成功迁移的虚拟机对210:

1.包含在该对中的虚拟机120的页面变脏速率(较高的存储页面变脏速率倾向于增大迁移时间和带宽);

2.要传送的总存储器量。在实施例中,对于虚拟机对210传送的存储器量可受包含在该对210中的虚拟机120之间的存储页面124的共性程度的影响(较大存储页面共性倾向于减小迁移时间和带宽);以及

3.机会性的虚拟机批量迁移。如果虚拟机迁移控制器102确定虚拟机工作载荷以存储器变脏速率呈现周期浮动,则当变脏速率接近最小值或在最小值时,虚拟机迁移控制器102可调度虚拟机对210的迁移。

基于变脏速率,虚拟机迁移控制器102可预测每个虚拟机对在给定网络传送速度的计划迁移时间。

在614,虚拟机迁移控制器102选择具有最短计划迁移时间的虚拟机对。

在616,虚拟机迁移控制器102至少部分基于在612执行的分析来确定是否可成功迁移任何虚拟机对210。如果虚拟机迁移控制器102不能够选择满足所有准则的虚拟机对210,则该方法在618继续。如果虚拟机迁移控制器102能够选择满足该准则的虚拟机对210,则该方法在620继续。

在618,响应于确定不可能成功迁移虚拟机对210,虚拟机迁移控制器102选择具有最小量存储页面共性的虚拟机120从第一物理主机装置110迁移到第二物理主机装置150。

在620,虚拟机迁移控制器102迁移具有最短计划迁移持续时间的虚拟机对。

在622,响应于成功迁移具有最短迁移持续时间的虚拟机对210,虚拟机迁移控制器102从在608生成的数据集中移除虚拟机对。

在624,虚拟机迁移控制器102确定是否已经移除了所有虚拟机120。如果未迁移所有虚拟机120,则方法600返回到608。如果已经迁移了所有虚拟机120,则方法600在626结束。

图7以及随后论述提供了形成说明性虚拟机批量在线迁移系统700的组件的简要、一般描述,其包含虚拟机迁移控制器102、第一物理主机系统110和第二物理主机系统150,在其中可实现各种图示的实施例。尽管不要求,但将在机器可读或计算机可执行指令集(诸如由虚拟机迁移控制器102执行的程序应用模块、对象或宏)的通用上下文中描述实施例的一些部分。本领域技术人员将认识到,所图示的实施例以及其它实施例可用其它基于电路的装置配置实施,包含便携式电子或手持电子装置,比如智能电话、便携式计算机、可穿戴计算机、基于微处理器的或可编程的消费电子产品、个人计算机(pc)、网络pc、小型计算机、大型计算机等等。实施例可在分布式计算环境中实施,其中任务或模块由通过通信网络链接的远程处理装置执行。在分布式计算环境中,程序模块可位于本地和远程存储器储存装置中。

虚拟机迁移控制器102可采取一个或多个电路的形式,包含部分或全部布置在pc、服务器或能够执行机器可读指令的其它计算系统中的电子和/或半导体组件。虚拟机迁移控制器102包含一个或多个电路712,并且有时可包含将包含系统存储器714的各种系统组件耦合到一个或多个电路712的通信链路716。虚拟机迁移控制器102有时在本文中将以单数提及,但这不意图将实施例局限于单个系统,因为在某些实施例中,将有多于一个虚拟机迁移控制器102或其它连网的电路或装置卷入。

电路712可包含任何数量、类型或分组的装置。有时,电路712可全部或部分以半导体装置诸如二极管、晶体管、电感器、电容器和电阻器的形式实现。此类实现可包含但不限于任何当前或将来开发的单核或多核处理器或微处理器,诸如:一个或多个片上系统(soc);中央处理单元(cpu);数字信号处理器(dsp);图形处理单元(gpu);专用集成电路(asic);现场可编程门阵列(fpga)等等。除非另有描述,否则在图7中示出的各种块的构造和操作属于常规设计。结果,此类块不必在本文中更详细描述,因为相关领域的技术人员将理解它们。互连示例虚拟机迁移控制器102的至少一些组件的通信链路716可采用任何已知的总线结构或架构。

系统存储器714可包含只读存储器("rom")718和随机存取存储器("ram")720。rom718的一部分可包含基本输入/输出系统("bios")722。bios722可向虚拟机迁移控制器102提供基本功能性,例如通过使控制器加载使一个或多个电路712提供并担任虚拟机迁移控制器102的机器可读指令集。虚拟机迁移控制器102可包含一个或多个通信上耦合的非易失性数据存储装置732。一个或多个数据存储装置732可包含任何当前或将来开发的非易失性存储装置。此类非易失性数据存储装置732的非限制示例可包含但不限于一个或多个磁存储装置、一个或多个光存储装置、一个或多个固态电磁存储装置、一个或多个固态电阻存储装置、一个或多个分子存储装置、一个或多个量子存储装置或它们的各种分组。

一个或多个存储装置732可包含在通信上将相应存储装置或系统耦合到通信链路716的接口或控制器(未示出),这是本领域技术人员已知的。一个或多个存储装置732可包含机器可读指令集、数据结构、程序模块以及对虚拟机迁移控制器102有用的其它数据。在一些实例中,一个或多个外部存储装置728可在通信上耦合到虚拟机迁移控制器102,例如经由一个或多个系留或无线网络。

机器可读指令集738和其它指令集740可被全部或部分存储在系统存储器714中。此类指令集可从一个或多个存储装置732和/或一个或多个外部存储装置728传送,并且当由虚拟机迁移控制器102执行时全部或部分存储在系统存储器714中。机器可读指令集738可包含能够提供本文描述的在线虚拟机迁移功能和能力的逻辑。

例如,一个或多个机器可读指令集738可使虚拟机迁移控制器102收集表示在第一物理主机系统110上托管的若干虚拟机120中的每个的存储器工作集变脏速率的数据。一个或多个机器可读指令集738可使虚拟机迁移控制器102分析表示若干虚拟机120中的每个的存储器工作集变脏速率的收集的数据以确定每一个虚拟机120的存储器变脏速率和/或存储器变脏速率模式。

一个或多个机器可读指令集738可使虚拟机迁移控制器102生成指示由多个虚拟机120共享的存储页面124的数据或信息。一个或多个机器可读指令集738可使虚拟机迁移控制器102生成指示映射到不同虚拟机120的存储页面124的同等部分的数据或信息中的至少一个。一个或多个机器可读指令集738可使虚拟机迁移控制器102生成指示多个不同虚拟机120之间存储页面124共性的一个或多个逻辑结构,诸如在图3中所描绘的表。

一个或多个机器可读指令集738可使虚拟机迁移控制器102收集表示将多个虚拟机120从第一物理主机系统110在线传送到第二物理主机系统150的可用带宽的数据。一个或多个机器可读指令集738可使虚拟机迁移控制器102迭代虚拟机组或对210以选择虚拟机组或对210进行迁移。

一个或多个机器可读指令集738可使虚拟机迁移控制器102至少部分基于每个虚拟机120的变脏速率、在一组或一对210中的虚拟机120之间共享的存储页面和可用网络带宽来预测虚拟机组或对210的迁移时间。

虚拟机迁移控制器102的用户可使用一个或多个通信上耦合的物理输入装置750诸如一个或多个文本录入装置751(例如键盘)、一个或多个指点装置752(例如鼠标、跟踪球、触摸屏)和/或一个或多个音频输入装置753向虚拟机迁移控制器102提供、输入或以其他方式提供命令(例如承认、选择、确认等)以及信息(例如主体标识信息、颜色参数)。其中一些或所有物理输入装置750可物理上或通信上耦合到虚拟机迁移控制器102。例如,示例虚拟机迁移控制器102可包含提供若干物理输入装置750的触摸屏用户接口,诸如触摸屏751。

虚拟机迁移控制器102的用户可经由一个或多个物理输出装置754生成输出。在至少一些实现中,物理输出装置754可包含但不限于一个或多个显示装置755、一个或多个触觉输出装置756、一个或多个音频输出装置757或它们的任何分组。一些或所有物理输入装置750和一些或所有物理输出装置754可经由一个或多个有线或无线接口在通信上耦合到虚拟机迁移控制器102。

为了方便起见,网络接口760、一个或多个电路712、系统存储器714、物理输入装置750和物理输出装置754被图示为经由通信链路716通信上彼此耦合,由此提供上面描述的组件之间的连接性。在备选实施例中,上面描述的组件可以与在图7中图示的不同方式在通信上耦合。例如,一个或多个上面描述的组件可直接耦合到其它组件,或者可经由一个或多个中间组件(未示出)彼此耦合。在一些实施例中,通信链路716被省略,并且组件使用适合的有线或无线连接彼此直接耦合。

第一物理主机装置110可包含能够执行一个或多个机器可执行指令集的一个或多个电路768a。有时,其中一些或所有机器可读指令集可被存储或以其他方式保留在第一物理主机装置110内的系统存储器769a中。系统存储器769a可包含只读存储器(rom)770a、随机存取存储器772a或它们的分组。第一物理主机装置bios771a可存储、保留或以其他方式占用至少一部分rom770a。

第一物理主机装置110还可包含一个或多个存储装置773a。有时,一个或多个存储装置773a可包含但不限于固态存储装置、旋转介质存储装置、静电存储装置、电阻存储装置或它们的分组,它们全部或部分布置在第一物理主机装置110中。有时,第一物理主机装置110可包含基于云的机架安装的服务器计算机系统。有时,一个或多个存储装置773a可包含一种或多种类型的可移动介质774a,例如一个或多个热插拔硬驱或类似存储电器。

第一物理主机装置110还可包含一个或多个用户接口775a。一个或多个用户接口775a可包含一个或多个用户输入装置776a。示例非限制用户输入装置776a可包含但不限于一个或多个指点器、一个或多个文本输入装置、一个或多个音频输入装置、一个或多个触摸屏输入装置或它们的任何分组。一个或多个用户接口775a备选地或附加地可包含一个或多个用户输出装置777a。示例非限制用户输出装置777a可包含但不限于一个或多个视觉输出装置、一个或多个触觉输出装置、一个或多个音频输出装置或它们的任何分组。

第一物理主机系统110可包含一个或多个网络接口778a。一个或多个网络接口778a可包含任何当前或将来系留接口(例如背板、以太网等)或无线网络接口(例如wifi、ieee802.11)。一个或多个网络接口778a可间或在通信上将第一物理主机系统110耦合到虚拟机迁移控制器102。

一个或多个电路768a可包含适合于执行一个或多个机器可读指令集的一个或多个单核或多核处理器或微处理器。一个或多个电路768a可包含一个或多个微处理器、精简指令集计算机(risc)、专用集成电路(asic)、数字信号处理器(dsp)、片上系统(soc)等。

系统存储器769a可存储所有或部分基本输入/输出系统(bios)、引导序列、固件、启动例程等。系统存储器769a可存储由一个或多个电路768a在初始给电时执行的所有或部分虚拟机迁移控制器102操作系统(例如ios®、android®、windows®phone、windows®10等)。

第二物理主机装置150可包含能够执行一个或多个机器可执行指令集的一个或多个电路768b。有时,其中一些或所有机器可读指令集可被存储或以其他方式保留在第二物理主机装置150内的系统存储器769b中。系统存储器769b可包含只读存储器(rom)770b、随机存取存储器772b或它们的分组。第二物理主机装置bios771b可存储、保留或以其他方式占用至少一部分rom770b。

第二物理主机装置150还可包含一个或多个存储装置773b。有时,一个或多个存储装置773b可包含但不限于固态存储装置、旋转介质存储装置、静电存储装置、电阻存储装置或它们的分组,它们全部或部分布置在第二物理主机装置150中。有时,第二物理主机装置150可包含基于云的机架安装的服务器计算机系统。有时,一个或多个存储装置773b可包含一种或多种类型的可移动介质774b,例如一个或多个热插拔硬驱或类似存储电器。

第二物理主机装置150还可包含一个或多个用户接口775b。一个或多个用户接口775b可包含一个或多个用户输入装置776b。示例非限制用户输入装置776b可包含但不限于一个或多个指点器、一个或多个文本输入装置、一个或多个音频输入装置、一个或多个触摸屏输入装置或它们的任何分组。一个或多个用户接口775b备选地或附加地可包含一个或多个用户输出装置777b。示例非限制用户输出装置777b可包含但不限于一个或多个视觉输出装置、一个或多个触觉输出装置、一个或多个音频输出装置或它们的任何分组。

第二物理主机装置150可包含一个或多个网络接口778b。一个或多个网络接口778b可包含任何当前或将来系留接口(例如背板、以太网等)或无线网络接口(例如wifi、ieee802.11)。一个或多个网络接口778b可间或在通信上将第二物理主机装置150耦合到虚拟机迁移控制器102。

一个或多个电路768b可包含适合于执行一个或多个机器可读指令集的一个或多个单核或多核处理器或微处理器。一个或多个电路768b可包含一个或多个微处理器、精简指令集计算机(risc)、专用集成电路(asic)、数字信号处理器(dsp)、片上系统(soc)等。

系统存储器769b可存储所有或部分基本输入/输出系统(bios)、引导序列、固件、启动例程等。系统存储器769b可存储由一个或多个电路768b在初始给电时执行的所有或部分虚拟机迁移控制器102操作系统(例如ios®、android®、windows®phone、windows®10等)。

如下示例涉及另外实施例。本公开的如下示例可包括诸如实现多个虚拟机120从第一物理主机系统110到第二物理主机系统150的在线迁移的装置、系统和方法的主题。

根据示例1,提供了一种将多个虚拟机从第一物理主机在线迁移到第二物理主机的系统。所述系统可包含通信上耦合到第一物理主机和第二物理主机的至少一个网络接口以及通信上耦合到至少一个网络接口的至少一个电路。所述系统可进一步包含通信上耦合到至少一个电路的至少一个存储装置,至少一个存储装置包含机器可读指令,所述指令当执行时使至少一部分电路提供虚拟机迁移控制器,所述虚拟机迁移控制器:对于在第一物理主机上托管的多个虚拟机中的每个虚拟机:确定指示在逻辑上与相应虚拟机关联的存储页面变脏速率的值;有选择地分组多个虚拟机中的至少一些虚拟机以提供若干虚拟机组,相应虚拟机组中的每个虚拟机都访问第一物理主机上的同等存储页面内容部分;以及至少部分基于如下项动态预测迁移相应虚拟机组的持续时间:由所述相应虚拟机组中的所述虚拟机访问的所述同等存储页面内容部分的单个迁移;将相应虚拟机组从第一物理主机迁移到第二物理主机的可用带宽;以及指示在逻辑上与包含在所述相应虚拟机组中的每一个所述虚拟机关联的所述存储页面变脏速率的值。

示例2可包含示例1的元件,其中所述机器可读指令可进一步使虚拟机迁移控制器:有选择地将若干虚拟机组中的每组从第一物理主机迁移到第二物理主机,虚拟机组迁移至少部分基于在可用带宽迁移相应虚拟机组的预测持续时间按次序执行。

示例3可包含示例1的元件,其中使虚拟机迁移控制器确定指示在逻辑上与相应虚拟机关联的存储页面变脏速率的值的机器可读指令可使虚拟机迁移控制器:确定指示在定义的历史时间间隔上每个相应虚拟机的存储页面变脏速率的值。

示例4可包含示例3的元件,其中使虚拟机迁移控制器确定指示指示在定义的历史时间间隔上每个相应虚拟机的存储页面变脏速率的值的机器可读指令可使虚拟机迁移控制器:确定指示在60分钟间隔上每个相应虚拟机的存储页面变脏速率的历史值。

示例5可包含示例1的元件,其中使虚拟机迁移控制机器有选择地分组多个虚拟机中虚拟机的机器可读指令可使虚拟机迁移控制器:有选择地将多个虚拟机中的虚拟机组对以提供若干虚拟机对,相应虚拟机对中的每个虚拟机访问至少一个同等存储页面内容部分。

示例6可包含示例1的元件,其中使虚拟机迁移控制机器有选择地分组多个虚拟机中虚拟机的机器可读指令可使虚拟机迁移控制器:有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机访问至少一个公共存储页面。

示例7可包含示例1的元件,其中使虚拟机迁移控制机器有选择地分组多个虚拟机中虚拟机的机器可读指令可使虚拟机迁移控制器:有选择地分组至少一些虚拟机使得相应虚拟机组中的每个虚拟机都访问多个存储页面中的至少一个,多个存储页面中的每个至少部分包含同等内容。

示例8可包含示例7的元件,其中使虚拟机迁移控制器有选择地分组至少一些虚拟机使得相应虚拟机组中的每个虚拟机都访问多个存储页面中的至少一个(多个存储页面中的每个至少部分包含同等内容)的机器可读指令可使虚拟机迁移控制器:至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的所述内容来确定散列值;检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面;以及对于所述检测的具有类似散列值的所述多个存储页面内的至少两个存储页面,标识包含在所述至少两个页面中每个页面上的所述同等内容。

示例9可包含示例1的元件,其中使虚拟机迁移控制器有选择地分组多个虚拟机中的至少一些虚拟机的机器可读指令可使虚拟机迁移控制器有选择地分组至少一些虚拟机使得相应虚拟机组中的每个虚拟机都访问多个存储页面中的至少一个,多个存储页面中的每个至少部分包含同等内容。

示例10可包含示例9的元件,其中使虚拟机迁移控制器有选择地分组至少一些虚拟机使得相应虚拟机组中的每个虚拟机都访问多个存储页面中的至少一个(多个存储页面中的每个至少部分包含同等内容)的机器可读指令可使虚拟机迁移控制器:至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的内容来确定指纹值;比较指纹值以标识多个存储页面中的至少两个候选同等存储页面;一个字节一个字节地比较至少两个候选同等存储页面中的每个;以及至少部分基于一个字节一个字节的比较来标识多个存储页面内具有同等内容的至少两个存储页面。

根据示例11,提供了一种在线虚拟机迁移系统。所述系统可包含至少一个控制器电路以及通信上耦合到至少一个控制器电路的至少一个存储装置,至少一个存储装置包含机器可执行指令,所述指令当由至少一个控制器电路执行时使至少一个控制器电路提供虚拟机迁移控制器。虚拟机迁移控制器可确定驻留在第一主机系统上的多个虚拟机中每个虚拟机的页面变脏速率;有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问至少一个同等存储页面内容部分的虚拟机;以及至少部分基于所述至少一个同等存储页面内容部分、包含在相应组中的每一个所述虚拟机的所述页面变脏速率以及可用的网络带宽来确定所述若干虚拟机组中的每组从第一主机系统迁移到第二主机系统的计划迁移时间。

示例12可包含示例11的元件,其中机器可执行指令可进一步使虚拟机迁移控制器由虚拟机迁移控制器确定若干虚拟机组中每组的迁移次序。

示例13可包含示例12的元件,其中使所述虚拟机迁移控制器确定所述若干虚拟机组中每组的迁移次序的所述机器可执行指令可进一步使所述虚拟机迁移控制器:至少部分基于所述若干虚拟机组中每个相应组的所述计划迁移时间来确定所述若干虚拟机组中每组的迁移次序。

示例14可包含示例12的元件,其中机器可执行指令可进一步使虚拟机迁移控制器:至少部分基于在所述可用带宽迁移所述相应虚拟机组的预测持续时间按次序有选择地将所述若干虚拟机组中的每组从第一主机系统迁移到第二主机系统。

示例15可包含示例11的元件,其中使所述虚拟机迁移控制器确定多个虚拟机中每个的页面变脏速率的所述机器可执行指令可进一步使所述虚拟机迁移控制器:基于所述虚拟机中的每个相应虚拟机在定义的时间间隔上的历史页面变脏来确定每一个所述虚拟机的页面变脏速率。

示例16可包含示例11的元件,其中使所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的所述机器可执行指令可进一步使所述虚拟机迁移控制器:有选择地将所述多个虚拟机中的每个分组成若干虚拟机对之一,相应虚拟机对中的每个虚拟机访问至少一个同等存储页面内容部分。

示例17可包含示例11至16中任一示例的元件,其中使所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的所述机器可执行指令可进一步使所述虚拟机迁移控制器:有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问至少一个公共存储页面的虚拟机。

示例17可包含示例11至16中任一示例的元件,其中使所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的所述机器可执行指令可进一步使所述虚拟机迁移控制器:有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问多个存储页面中至少一个的虚拟机,所述多个存储页面中的每个至少部分包含所述同等存储页面内容部分。

示例19可包含示例18的元件,其中使所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的所述机器可执行指令可进一步使所述虚拟机迁移控制器:至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的所述内容来确定散列值;检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面;以及

对于所述检测的具有类似散列值的所述多个存储页面内的至少两个存储页面,标识包含在所述至少两个页面中每个页面上的所述同等内容。

示例20可包含示例11至16中任一示例的元件,其中使所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的所述机器可执行指令可进一步使所述虚拟机迁移控制器:有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问多个存储页面中至少一个的虚拟机,所述多个存储页面中的每个都具有同等存储页面内容。

示例21可包含示例20的元件,其中使所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的所述机器可执行指令可进一步使所述虚拟机迁移控制器:至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的所述内容来确定散列值;检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面;以及

对于所述检测的具有类似散列值的所述多个存储页面内的至少两个存储页面,标识包含在所述至少两个页面中每个页面上的所述同等内容。

根据示例22,提供了一种在线虚拟机迁移方法。所述方法可包含:对于多个虚拟机中的每个虚拟机,确定在逻辑上与相应虚拟机关联的所述存储页面变脏速率的值;以及有选择地分组所述多个虚拟机中的虚拟机以提供若干虚拟机组的部件,相应虚拟机组中的每个虚拟机都访问同等存储页面内容部分。所述方法可进一步包含:对于每个虚拟机组,至少部分基于如下项动态预测迁移所述相应虚拟机组的持续时间:由所述相应虚拟机组中的所述虚拟机访问的所述同等存储页面内容部分的单个迁移;迁移所述相应虚拟机组的可用带宽;以及指示在逻辑上与包含在所述相应虚拟机组中的每一个所述虚拟机关联的所述存储页面变脏速率的值。

示例23可包含示例22的元件,并且所述方法此外可包含:至少部分基于以所述可用带宽迁移所述相应虚拟机组的预测的持续时间按次序有选择地迁移所述若干虚拟机组中每组。

示例24可包含示例22的元件,其中确定指示在逻辑上与相应虚拟机关联的存储页面变脏速率的值可包含:确定指示在定义的历史时间间隔上每个相应虚拟机的存储页面变脏速率的值。

示例25可包含示例24的元件,其中确定指示在定义的历史时间间隔上每个相应虚拟机的存储页面变脏速率的值可包含确定指示在60分钟间隔上每个相应虚拟机的存储页面变脏速率的历史值。

示例26可包含示例22的元件,其中有选择地分组所述多个虚拟机中的虚拟机以提供若干虚拟机组的部件,相应虚拟机组中的每个虚拟机都访问至少一个同等存储页面内容部分可包含:有选择地将多个虚拟机中的虚拟机组对以提供若干虚拟机对,相应虚拟机对中的每个虚拟机可访问至少一个同等存储页面内容部分。

示例27可包含示例22的元件,其中有选择地分组所述多个虚拟机中的虚拟机以提供若干虚拟机组的部件,相应虚拟机组中的每个虚拟机都访问至少一个同等存储页面内容部分可包含:有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机访问至少一个公共存储页面。

示例28可包含示例22的元件,其中有选择地分组所述多个虚拟机中的虚拟机以提供若干虚拟机组的部件,相应虚拟机组中的每个虚拟机都访问至少一个同等存储页面内容部分可包含:有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机访问具有同等存储页面内容的多个存储页面中的至少一个。

示例29可包含示例28的元件,其中有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机访问具有同等存储页面内容的多个存储页面中的至少一个可包含至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的所述内容来确定散列值;检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面;以及对于所述检测的具有类似散列值的所述多个存储页面内的至少两个存储页面,标识包含在所述至少两个页面中每个页面上的所述同等内容。

示例30可包含示例22的元件,其中有选择地分组所述多个虚拟机中的虚拟机以提供若干虚拟机组的部件,相应虚拟机组中的每个虚拟机都访问至少一个同等存储页面内容部分可包含:有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机都访问多个存储页面中的至少一个,多个存储页面中的每个至少部分可包含同等内容。

示例31可包含示例30的元件,其中有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机都访问多个存储页面中的至少一个(多个存储页面中的每个至少部分包含同等内容)可包含至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的内容来确定指纹值;比较指纹值以标识多个存储页面中的至少两个候选同等存储页面;一个字节一个字节地比较至少两个候选同等存储页面中的每个;以及至少部分基于一个字节一个字节的比较来标识多个存储页面内具有同等内容的至少两个存储页面。

根据示例32,提供了一种在线虚拟机迁移方法。所述方法可包含由虚拟机迁移控制器确定多个虚拟机中每个的页面变脏速率。所述方法可进一步包含由所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问至少一个同等存储页面内容部分的虚拟机。所述方法此外可包含由所述虚拟机迁移控制器至少部分基于所述至少一个同等存储页面内容部分、包含在相应组中的每一个所述虚拟机的所述页面变脏速率以及可用的网络带宽来确定所述若干虚拟机组中每组的计划迁移时间。

示例33可包含示例32的元件,并且所述方法此外可包含:由所述虚拟机迁移控制器确定所述若干虚拟机组中每组的迁移次序。

示例34可包含示例33的元件,其中确定若干虚拟机组中每组的迁移次序可包含由所述虚拟机迁移控制器至少部分基于所述若干虚拟机组中每个相应组的所述计划迁移时间来确定所述若干虚拟机组中每组的迁移次序。

示例35可包含示例33的元件,其中确定多个虚拟机中每个的页面变脏速率可包含由所述虚拟机迁移控制器基于所述虚拟机中的每个相应虚拟机在定义的时间间隔上的历史页面变脏来确定每一个所述虚拟机的页面变脏速率。

示例36可包含示例32的元件,其中有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组可包含由所述虚拟机迁移控制器有选择地将所述多个虚拟机中的每个分组成若干虚拟机对之一,相应虚拟机对中的每个虚拟机访问至少一个同等存储页面内容部分。

示例37可包含示例32至36中任一示例的元件,其中有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组可包含由所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问至少一个公共存储页面的虚拟机。

示例38可包含示例32至36中任一示例的元件,其中有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组可包含由所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问多个存储页面中至少一个的虚拟机,所述多个存储页面中的每个至少部分包含所述同等存储页面内容部分。

示例39可包含示例38的元件,其中有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组可包含至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的所述内容来确定散列值;检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面;以及对于所述检测的具有类似散列值的所述多个存储页面内的至少两个存储页面,标识包含在所述至少两个页面中每个页面上的所述同等内容。

示例40可包含示例32至36中任一示例的元件,其中有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组可包含由所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问多个存储页面中至少一个的虚拟机,所述多个存储页面中的每个都具有同等存储页面内容。

示例41可包含示例40的元件,其中有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组可包含至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的所述内容来确定散列值;检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面;以及对于所述检测的具有类似散列值的所述多个存储页面内的至少两个存储页面,标识包含在所述至少两个页面中每个页面上的所述同等内容。

根据示例42,提供了一种在线虚拟机迁移系统。所述系统可包含:对于多个虚拟机中的每个虚拟机,用于确定指示在逻辑上与相应虚拟机关联的所述存储页面变脏速率的值的部件。所述系统此外可包含用于有选择地分组所述多个虚拟机中的虚拟机以提供若干虚拟机组的部件,相应虚拟机组中的每个虚拟机都访问同等存储页面内容部分;所述系统此外可包含:对于每个虚拟机组,用于至少部分基于如下项动态预测迁移所述相应虚拟机组的持续时间的部件:由所述相应虚拟机组中的所述虚拟机访问的所述同等存储页面内容部分的单个迁移;迁移所述相应虚拟机组的可用带宽;以及指示在逻辑上与包含在所述相应虚拟机组中的每一个所述虚拟机关联的所述存储页面变脏速率的值。

示例43可包含示例42的元件,并且所述系统此外可包含:用于至少部分基于以所述可用带宽迁移所述相应虚拟机组的预测的持续时间按次序有选择地迁移所述若干虚拟机组中每组的部件。

示例44可包含示例42的元件,其中用于确定指示在逻辑上与相应虚拟机关联的存储页面变脏速率的值的部件可包含:用于确定指示在定义的历史时间间隔上每个相应虚拟机的存储页面变脏速率的值的部件。

示例45可包含示例44的元件,其中用于确定指示在定义的历史时间间隔上每个相应虚拟机的存储页面变脏速率的值的部件可包含用于确定指示在60分钟间隔上每个相应虚拟机的存储页面变脏速率的历史值的部件。

示例46可包含示例42的元件,其中用于有选择地分组多个虚拟机中的虚拟机的部件可包含用于有选择地将多个虚拟机中的虚拟机组对以提供若干虚拟机对的部件,相应虚拟机对中的每个虚拟机访问至少一个同等存储页面内容部分。

示例47可包含示例42的元件,其中用于有选择地分组多个虚拟机中的虚拟机的部件可包含用于有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机访问至少一个公共存储页面的部件。

示例48可包含示例42的元件,其中用于有选择地分组多个虚拟机中的虚拟机的部件可包含用于有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机都访问多个存储页面中的至少一个的部件,多个存储页面中的每个至少部分包含同等内容。

示例49可包含示例48的元件,其中用于有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机都访问多个存储页面中的至少一个(多个存储页面中的每个至少部分包含同等内容)的部件可包含用于至少部分基于包含在多个存储页面中每个页面的至少一部分中的内容来确定散列值的部件;用于检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面的部件;以及用于对于检测的具有类似散列值的多个存储页面内的至少两个存储页面标识包含在至少两个页面中每个页面上的同等内容的部件。

示例50可包含示例48的元件,其中用于有选择地分组多个虚拟机中的虚拟机的部件可包含用于有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机访问具有同等存储页面内容的多个存储页面中的至少一个的部件。

示例51可包含示例50的元件,其中用于有选择地分组虚拟机使得相应虚拟机组中的每个虚拟机访问具有同等存储页面内容的多个存储页面中的至少一个的部件可包含用于至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的内容来确定指纹值的部件;用于比较指纹值以标识多个存储页面中的至少两个候选同等存储页面的部件;用于一个字节一个字节地比较至少两个候选同等存储页面中的每个的部件;以及用于至少部分基于一个字节一个字节的比较来标识多个存储页面内具有同等内容的至少两个存储页面的部件。

根据示例52,提供了一种在线虚拟机迁移系统。所述系统可包含:用于确定在第一主机系统上实现的多个虚拟机中每个虚拟机的页面变脏速率的部件。所述系统可进一步包含:用于有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的部件,所述虚拟机组中的每组都包含先前访问至少一个同等存储页面内容部分的虚拟机。所述系统此外可包含:用于至少部分基于至少一个同等存储页面内容部分、包含在相应组中的每一个虚拟机的页面变脏速率以及可用的网络带宽来确定若干虚拟机组中每组的计划迁移时间的部件。

示例53可包含示例52的元件,并且所述系统此外可包含:用于由虚拟机迁移控制器确定若干虚拟机组中每组的迁移次序的部件。

示例54可包含示例53的元件,其中用于确定若干虚拟机组中每组的迁移次序的部件可包含用于至少部分基于所述若干虚拟机组中每个相应组的所述计划迁移时间来确定所述若干虚拟机组中每组的迁移次序的部件。

示例55可包含示例53的元件,其中用于确定多个虚拟机中每个的页面变脏速率的部件可包含用于基于虚拟机中的每个相应虚拟机在定义的时间间隔上的历史页面变脏来确定每一个虚拟机的页面变脏速率的部件。

示例56可包含示例52的元件,其中用于有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的部件可包含用于有选择地将所述多个虚拟机中的每个分组成若干虚拟机对之一的部件,相应虚拟机对中的每个虚拟机访问至少一个同等存储页面内容部分。

示例57可包含示例52至56中任一示例的元件,其中用于有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的部件可包含用于由虚拟机迁移控制器有选择地分组多个虚拟机中的至少一些以形成若干虚拟机组的部件,虚拟机组中的每组都包含先前访问至少一个公共存储页面的虚拟机。

示例58可包含示例52至56中任一示例的元件,其中用于有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的部件可包含用于由虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的部件,虚拟机组中的每组都包含先前访问多个存储页面中至少一个的虚拟机,多个存储页面中的每个至少部分包含所述同等存储页面内容部分。

示例59可包含示例58的元件,其中用于有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的部件可包含用于至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的内容来确定散列值的部件;用于检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面的部件;以及用于对于检测的具有类似散列值的多个存储页面内的至少两个存储页面标识包含在至少两个页面中每个页面上的同等内容的部件。

示例60可包含示例52至56中任一示例的元件,其中用于有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组的部件可包含由所述虚拟机迁移控制器有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问多个存储页面中至少一个的虚拟机,所述多个存储页面中的每个都具有同等存储页面内容。

示例61可包含示例60的元件,其中有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组可包含用于至少部分基于包含在所述多个存储页面中每个页面的至少一部分中的内容来确定散列值的部件;用于检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面的部件;以及用于对于检测的具有类似散列值的多个存储页面内的至少两个存储页面标识包含在至少两个页面中每个页面上的同等内容的部件。

根据示例62,提供了一种存储装置,其包含机器可读指令,所述指令当由电路执行时使电路提供虚拟机迁移控制器。虚拟机控制器可确定多个虚拟机中每个的页面变脏速率,有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问至少一个同等存储页面内容部分的虚拟机,以及至少部分基于至少一个同等存储页面内容部分、包含在相应组中的每一个虚拟机的页面变脏速率以及可用的网络带宽来确定若干虚拟机组中每组的计划迁移时间。

示例63可包含示例62的元件,并且此外可包含当由虚拟机迁移控制器执行时可使虚拟机迁移控制器确定若干虚拟机组中每组的迁移次序的机器可读指令。

示例64可包含示例63的元件,其中使虚拟机迁移控制器确定若干虚拟机组中每组的迁移次序的机器可读指令可进一步使虚拟机迁移控制器:至少部分基于所述若干虚拟机组中每个相应组的所述计划迁移时间来确定所述若干虚拟机组中每组的迁移次序。

示例65可包含示例63的元件,其中使虚拟机迁移控制器确定多个虚拟机中每个的页面变脏速率的机器可读指令可进一步使虚拟机迁移控制器:基于所述虚拟机中的每个相应虚拟机在定义的时间间隔上的历史页面变脏来确定每一个所述虚拟机的页面变脏速率。

示例66可包含示例62的元件,其中使虚拟机迁移控制器有选择地分组多个虚拟机中的至少一些以形成若干虚拟机组的机器可读指令可进一步使虚拟机迁移控制器:有选择地将所述多个虚拟机中的每个分组成若干虚拟机对之一,相应虚拟机对中的每个虚拟机访问至少一个同等存储页面内容部分。

示例67可包含示例62至66中任一示例的元件,其中使虚拟机迁移控制器有选择地分组多个虚拟机中的至少一些以形成若干虚拟机组的机器可读指令可进一步使虚拟机迁移控制器:有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问至少一个公共存储页面的虚拟机。

示例68可包含示例62至68中任一示例的元件,其中使虚拟机迁移控制器有选择地分组多个虚拟机中的至少一些以形成若干虚拟机组的机器可读指令可进一步使虚拟机迁移控制器:有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问多个存储页面中至少一个的虚拟机,所述多个存储页面中的每个至少部分包含所述同等存储页面内容部分。

示例69可包含示例68的元件,其中使虚拟机迁移控制器有选择地分组多个虚拟机中的至少一些以形成若干虚拟机组的机器可读指令可进一步使虚拟机迁移控制器:至少部分基于包含在多个存储页面中每个页面的至少一部分中的内容来确定散列值,检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面,以及

对于所述检测的具有类似散列值的所述多个存储页面内的至少两个存储页面,标识包含在所述至少两个页面中每个页面上的所述同等内容。

示例70可包含示例62至66中任一示例的元件,其中使虚拟机迁移控制器有选择地分组多个虚拟机中的至少一些以形成若干虚拟机组的机器可读指令可进一步使虚拟机迁移控制器:有选择地分组所述多个虚拟机中的至少一些以形成若干虚拟机组,所述虚拟机组中的每组都包含先前访问多个存储页面中至少一个的虚拟机,所述多个存储页面中的每个都具有同等存储页面内容。

示例71可包含示例70的元件,其中使虚拟机迁移控制器有选择地分组多个虚拟机中的至少一些以形成若干虚拟机组的机器可读指令可进一步使虚拟机迁移控制器:至少部分基于包含在多个存储页面中每个页面的至少一部分中的内容来确定散列值,检测具有类似散列值的所述多个存储页面内的所述至少两个存储页面,以及

对于所述检测的具有类似散列值的所述多个存储页面内的至少两个存储页面,标识包含在所述至少两个页面中每个页面上的所述同等内容。

根据示例72,提供了一种用于将多个虚拟机从第一主机系统迁移到第二主机系统的系统,所述系统布置成执行示例32至41中任一示例的方法。

根据示例73,提供了一种芯片集,其布置成执行如示例32至41中任一示例的方法。

根据示例74,提供了至少一个机器可读介质,包括多个指令,所述指令响应于在计算装置上的执行而使所述计算装置执行示例32至41中任一示例的方法。

根据示例75,提供了一种配置用于将多个虚拟机从第一主机系统迁移到第二主机系统的装置,所述装置布置成执行示例32至41中任一示例的方法。

本文已经采用的术语和表述被用作描述而非限制的说法,并且在使用此类术语和表述时没打算排除所示出和描述的特征的任何等同物(或其部分),并且要认识到,各种修改在权利要求书的范围内是可能的。因而,权利要求书打算覆盖所有此类等同物。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1