CN106462458B - 虚拟机迁移 - Google Patents

虚拟机迁移 Download PDF

Info

Publication number
CN106462458B
CN106462458B CN201480077888.7A CN201480077888A CN106462458B CN 106462458 B CN106462458 B CN 106462458B CN 201480077888 A CN201480077888 A CN 201480077888A CN 106462458 B CN106462458 B CN 106462458B
Authority
CN
China
Prior art keywords
migration
virtual machine
cloud
migrated
conventions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201480077888.7A
Other languages
English (en)
Other versions
CN106462458A (zh
Inventor
王兴元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian University of Technology
Original Assignee
Dalian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dalian University of Technology filed Critical Dalian University of Technology
Publication of CN106462458A publication Critical patent/CN106462458A/zh
Application granted granted Critical
Publication of CN106462458B publication Critical patent/CN106462458B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity

Abstract

在一些示例中,在源云将一个或多个虚拟机迁移到目的云之前,迁移控制器可以在客户端、源云的提供商以及目的云的提供商中的至少两个之间建立一个或多个迁移协约。迁移控制器可进一步基于使用频率对执行于源云上的虚拟机排序并且选择待迁移的虚拟机中的每一个的实例。

Description

虚拟机迁移
技术领域
本文所描述的技术一般但非排他地涉及虚拟机从源云到目的云的迁移。
背景技术
除非另外指出,否则在该部分中所描述的方法不因包含在该部分而视为本申请权利要求的现有技术且不认为是现有技术。
在基于云的计算系统(下文称为“云”)中,客户端可以租用在云的一个或多个物理节点上执行的一个或多个虚拟机以为客户端执行计算任务。随后,客户端可以将虚拟机的执行从前述云迁移到另一云。
发明概述
一般描述了用于虚拟机迁移的技术。本文所述的各种技术可以实现在各种设备、方法和/或系统中。
在一些示例中,各个实施例可实现为方法。一些方法可包括:建立一个或多个迁移协约,其中所述一个或多个迁移协约应用于客户端、源云和目的云中的两个或更多个,其中所述一个或多个迁移协约包括由所述客户端提供的、在所述一个或多个迁移协约的条件下待从源云迁移到目的云的一个或多个虚拟机的标识符,并且其中所述源云在相应的节点中维护待迁移的所述一个或多个虚拟机中的每个虚拟机的至少两个实例,所述至少两个实例包括每个相应的待迁移虚拟机以及每个相应的待迁移虚拟机的至少一个副本;对待迁移的所述一个或多个虚拟机的序列定序,其中所述定序基于待迁移的所述一个或多个虚拟机中的相应虚拟机的使用频率之一;基于所述相应的节点与所述目的云上的目的节点之间的接近度来标识待迁移的所述一个或多个虚拟机中的每个虚拟机的一个实例;以及指示所述源云在所述一个或多个迁移协约的条件下迁移待迁移的所述一个或多个虚拟机中的每个虚拟机的所标识的实例。
在一些示例中,各实施例可以实现为系统。一些系统可以包括:源云,其包括多个物理节点;多个虚拟机,其迁移到目的云,其中所述多个虚拟机在所述源云上执行,并且其中所述源云在所述多个物理节点中的相应的节点中维护所述多个虚拟机中的每个虚拟机的至少两个实例,所述至少两个实例包括每个相应的虚拟机以及每个相应的虚拟机的至少一个副本;以及迁移控制器,其被配置为:建立一个或多个迁移协约,其中所述一个或多个迁移协约应用于客户端、所述源云和所述目的云中的两个或更多个;对待迁移的所述多个虚拟机的序列进行定序,其中所述序列是基于待迁移的所述多个虚拟机中的相应的虚拟机的使用频率来定序的;基于所述相应的节点与所述目的云上的目的节点之间的接近度来标识待迁移的所述多个虚拟机中的每个虚拟机的至少两个实例中的一个实例;指示所述源云在所述一个或多个迁移协约的条件下根据所述序列将待迁移的所述多个虚拟机中的每个虚拟机的所标识的实例迁移到所述目的云;以及根据所述一个或多个迁移协约来奖励或惩罚所述源云的提供商。
在一些示例中,各个实施例可实现为计算机可读介质,其中存储有可执行指令。一些计算机可读介质可以存储有指令,当所述指令被执行时,使得一个或多个处理器执行操作,所述操作包括:建立一个或多个迁移协约,其中所述一个或多个迁移协约应用于客户端、源云和目的云中的两个或更多个,其中所述一个或多个迁移协约包括由所述客户端提供的在所述一个或多个迁移协约的条件下待从所述源云迁移到所述目的云的所述多个虚拟机的标识符,并且其中所述源云在所述相应的节点中维护待迁移的所述多个虚拟机中的每个虚拟机的至少两个实例,所述至少两个实例包括待迁移的每个相应的虚拟机以及待迁移的每个相应的虚拟机的至少一个副本;对待迁移的所述多个虚拟机的序列进行定序,其中所述定序基于由所述源云的另一客户端控制的相应的相邻虚拟机的数量;基于所述相应的节点与所述目的云上的目的节点之间的接近度来标识待迁移的所述多个虚拟机中的每个虚拟机的一个实例;以及指示所述源云在所述一个或多个迁移协约的条件下迁移待迁移的所述多个虚拟机中的每个虚拟机的所标识的实例。
前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性的方案、实施例和特征之外,另外的方案、实施例和特征将变得清晰可见。
附图说明
在下面的详细说明中,实施例被描述为示例,这是因为根据下面的详述各种改变和变型对于本领域技术人员而言将变得显而易见。在不同的图中使用相同的附图标记来指示相似的或相同的项。在附图中:
图1示出了可以迁移虚拟机的示例系统;
图2示出了可以从其中迁移虚拟机的示例源云;
图3示出了可用来迁移虚拟机的示例迁移控制器;
图4示出了可用来迁移虚拟机的操作的处理流的示例构造;
图5示出了可用来迁移虚拟机的操作的子处理流的示例构造;以及
图6示出了例示布置成迁移虚拟机的示例计算设备的框图,
全部依照本文所描述的至少一些实施例来布置。
发明详述
在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。此外,除非特别指出,否则每个连续图的描述可以参考之前的一个或多个图的特征以提供当前示例实施例的更清楚的背景和更实质性的解释。此外,在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以各种不同配置来布置、替代、组合、分离和设计,所有这些都在本文中明确地构思出。
简言之,第一云(例如,下文称为“源云”)中的一个或多个虚拟机可以迁移到第二云(例如,下文称为“目的云”)以便执行。在迁移之前,可以在已经租用了虚拟机的客户端、源云和目的云之间形成协约。协约可以指定在迁移期间三方应当遵守的条件和条款。此外,迁移可以基于包括虚拟机的实例的使用频率和地理位置的一个或多个因素。
图1示出了依照本文所描述的至少一些实施例布置的可以迁移虚拟机的示例系统100。如所描绘的,系统100可以至少包括源云102、目的云104、迁移控制器108以及一个或多个连接10A和110B。一个或多个虚拟机(下文称为“VM”)106A,106B,…,106N可以托管在源云102上。为了简化,图1示出了虚拟机106A,106B,…,106N,本领域技术人员将意识到在虚拟机迁移中可以涉及不同数量的虚拟机。绝不是以此方式来限制虚拟机迁移的各个实施例中的VM的数量。此外,除非上下文要求,否则在下面的说明中可以统一称为“虚拟机106”或单数形式可称为“一个虚拟机106”。
源云102可以是指基于云的计算系统,其包括通过诸如因特网的通信网络可通信或可操作地连接的一个或多个物理节点。如本文提到的,物理节点可以是指位于诸如实验室、服务中心、研究机构等一个或多个地理位置处的一个或多个计算设备,例如计算机、平板设备、膝上型设备、蜂窝电话等。源云102中的物理节点可被配置为统一地或者独立地执行程序或应用。在至少一些示例中,源云102中的每个物理节点可以托管一个或多个虚拟机以为客户端执行计算任务。在至少一些示例中,客户端可以是指诸如公司、大学、研究机构等个人或实体。
一般地,虚拟机可以是指具有作为真实物理计算设备的可被配置为执行软件程序的物理计算设备或计算机系统的全部功能的硬件系统的一个或多个软件仿真。因此,关于图1,每个虚拟机106的一个或多个实例可以在源云102中执行或存储在源云102中。如本文提到的,实例可以是指托管在源云102上的物理节点上的虚拟机或者存储在源云102上的其它物理节点上的虚拟机的一个或多个副本中的一个。如本文提到的,虚拟机的副本可以是指与虚拟机相关联的全部数据的复制。VM 106可被配置成为源云102上的客户端执行计算任务。在至少一些示例中,源云102可由诸如公司、大学、研究机构等实体来提供。实体可以在此称为“源云提供商”。
目的云104可以是指基于云的计算系统,其包括通过诸如因特网的通信网络可通信或可操作地连接的一个或多个物理节点。如本文提到的,目的云104中的物理节点可以是指位于例如实验室、服务中心、研究机构等一个或多个地理位置中的一个或多个计算设备,例如计算机、平板设备、膝上型设备、蜂窝电话等。目的云104中的物理节点可被配置为同时统一地或者独立地执行程序或应用。在至少一些示例中,目的云104中的每个物理节点可供用于执行一个或多个虚拟机以为客户端执行一个或多个计算任务。关于每个物理节点,一个或多个计算资源(例如存储器空间、网络带宽等)可供用于执行虚拟机以从源云102迁移。目的云104可类似地由可在本文称为“目的云提供商”的实体来提供。
VM 106可以是指被配置为在源云102的一个或多个物理节点上执行以为客户端执行计算任务的虚拟机。客户端可以是指指示或命令VM 106以执行计算任务并且可以为该执行的完成而提交支付(例如,付费)的人或实体。在至少一些示例中,客户端可因诸如比源云102更廉价的维护成本等某原因而决定将VM 106迁移到目的云104。如本文提到的,“迁移(migrate)”、“迁移(migrating)”和/或“迁移(migration)”可以是指与源云102上的VM 106相关联的数据正在被拷贝到目的云104的一个或多个物理节点上,使得VM 106可继续在目的云104中工作。
迁移控制器108可以是指被配置为在客户端控制的物理计算设备上实行或者与在客户端控制的物理计算设备集成的组件,其可被配置为管理一个或多个VM 106从源云102到目的云104的迁移。迁移控制器108可实现为软件、固件、硬件或其任意组合。物理计算设备可独立于源云102和目的云104;可替代地,物理计算设备可以是指源云102或目的云104的任一者中所包含的物理节点。例如,迁移控制器108可以被配置为在受客户端控制的计算设备(例如客户端的膝上型计算机)上执行。可替代地,迁移控制器108可以是指被配置为在源云102(或目的云104)的物理节点上执行的虚拟机,该虚拟机由客户端控制以从客户端接收输入以及向客户端呈现反馈。在至少一些示例中,迁移控制器108可被配置为经由连接110A和110B来管理迁移。
连接110A可以是指可以遵守至少一个已知通信协议来支持迁移控制器108与源云102之间的数据传输的数据链路。通信协议可以包括任何移动通信技术,例如,全球移动通信系统(GSM)、码分多址(CDMA)等,取决于特定的无线服务提供商所支持的技术。一个或多个通信链路可以利用非蜂窝技术来实现,诸如常规的模拟Wi-FiTM、无线局域网(WLAN)或IEEE 802.11、WiMAXTM(微波接入世界范围互操作)、BluetoothTM、硬接线连接,例如电缆、电话线以及其它模拟和数字无线语音和数据传输技术。
连接110B也可以是指迁移控制器108与目的云104之间的数据链路。该数据链路也可以遵守如上文关于连接110A所述的一个通信协议来支持迁移控制器108与目的云104之间的数据传输。
迁移控制器108可被配置为利于一个或多个迁移协约的创建或生成,在VM 106从源云102迁移到目的云104之前,该迁移协约可应用于客户端、源云提供商和目的云提供商中的两方或更多方。迁移协约的生成可以基于来自客户端、源云提供商和/或目的云提供商的输入。协约可以规定如下条件,如果各方遵照,则促进VM 106的安全且有效的迁移。通过示例的方式,安全且有效的迁移可以是指与VM 106相关联的数据不被第三方盗用或泄漏或者在协约规定的绝限前被拷贝。
在一些示例中,迁移控制器108可被配置为生成三方协约,其中客户端、源云提供商和目的云提供商是三方。在非限制实施例中,为了描述三方协约的生成,迁移控制器108可以生成包括以便客户端检查的一个或多个项和/或以便客户端完成的域的协约模板。例如,协约模板可以包括至少代表如下的项:VM 106的数量、完成迁移的绝限、在绝限前完成迁移的由客户端提供给源云提供商的奖励、对在绝限前未完成迁移的源云提供商、目的云提供商或两者的惩罚;以及待迁移虚拟机的序列。上述对三方协约的违反方的奖励和惩罚可以是财政上的。客户端可以检查协约模板中的项和/或输入值以完成域,例如,客户端计划迁移的VM的数量、绝限、奖励等。迁移控制器108随后可被配置为将完整的协约模板发送到源云提供商和目的云提供商以获得表明在三方之间约束的相互意图的三方协约的签署副本。
在一些其它示例中,迁移控制器108可被配置为生成客户端与源云提供商之间的第一迁移协约以及客户端与目的云提供商之间的第二迁移协约。迁移控制器108可以生成第一迁移协约模板和第二迁移协约模板,它们均包括客户端用来检查的一个或多个项和/或客户端用来输入值的域。通过检查项和/或输入值,客户端列出第一迁移协约和第二迁移协约的项。第一迁移协约可以包括诸如下述的条件或条款:VM 106的数量、完成迁移的绝限、因在绝限前完成迁移而由客户端提供给源云提供商的奖励;因在绝限前未完成迁移而对源云提供商的惩罚;以及待迁移的虚拟机的序列。第二迁移协约可以包括诸如下述的条件或条款:VM 106的数量、完成迁移的绝限;因在绝限前未完成迁移而对目的云提供商的惩罚;以及待迁移虚拟机的序列。
在迁移协约创建过程中,源云提供商或目的云提供商可以修改、规定或补充迁移协约的项。例如,源云提供商可以在迁移协约中规定,迁移仅能够发生在上午1点与上午3点之间。客户端可以接受由源云提供商或目的云提供商修改、规定或补充的条件。可替代地,客户端可以进一步修改迁移协约的协商后条件。
迁移协约可进一步包括其它条款,包括但不限于,从源云提供商到客户端的迁移与VM 106相关联的全部数据的约定或保证;从源云提供商到客户端的在迁移完成时破坏与VM 106相关联的全部数据的约定或保证;从源云提供商约定到客户端的在迁移之前对待迁移的与VM 106相关联的全部数据进行加密的约定或保证;从目的云提供商到客户端的查验数据以及判定数据是否完整和安全的保证;以及从目的云提供商到客户端的提供安全的计算环境的约定或保证,例如没有计算机病毒感染的计算环境,以便在迁移后执行VM 106,。
为了确定待迁移VM 106的序列,迁移控制器108可以被配置为以降序或升序基于使用频率对VM 106排序。如本文提到的,使用频率可以是指在客户端已经租用VM 106的期间客户端已经使用特定一个VM 106的次数。源云102中的至少一个组件,例如管理程序,可被配置为跟踪每个VM 106的使用频率。迁移控制器108可以基于从源云102接收到的使用频率对VM 106进行排序且将排序结果发送到源云102和/或目的云104。
目的云104可以从迁移控制器108或源云102接收按降序或升序的排序结果。目的云104可被配置为,在其迁移之前,随后预留用于VM 106的执行的计算资源。如本文提到的,预留的计算资源可以包括CPU时间、网络带宽、存储器空间等。当计算资源被预留时,目的云104可以随后通知源云102,目的云104准备好迁移。
当待迁移VM 106的序列已经被确定时,迁移控制器108可被配置为从VM 106的多个实例中选定一个实例并且将选定的实例移动到目的云104。如本文提到的,实例可以是指在物理节点上执行的虚拟机或者存储在另一物理节点上的虚拟机的一个或多个副本。虚拟机的副本可以是指与虚拟机相关联的全部数据的复制。VM 106的实例的选择将下文参考图2进行详细说明。迁移控制器108可以将选择结果经由连接110A发送到源云102。
此外,迁移控制器108可以指示源云102将选定实例迁移到目的云104。也即,迁移控制器108可以被配置为指示源云102将VM 106的选定实例压缩或转换成数据包。如本文所提到,数据包可以是指分解成类似数据结构以便传输的一组或多组数据。一组或多组数据可以包括与在目的云104上执行VM所需要的VM 106的每个选定实例有关的全部数据。对应于一个实例的数据包可以通过源云102传输到目的云104上的物理节点。物理节点在此可以称为“目的节点”。如果在传输期间发生错误,则目的云104可以提交关于错误或通知错误的反馈给源云102,并且源云102可以基于接收到的反馈来采取适当的动作。在VM 106从源云102迁移到目的云104的过程中可能发生的错误的非限制示例可以包括由于信道噪声引起的有瑕疵的数据包、存储器溢出等。在一个或多个数据包的错误传输的示例中,源云102可以将对应的替换数据包重新发送给目的云104。
当在三方协约阐明的绝限前已经完成了从源云102到目的云104的迁移时,客户端随后可以根据迁移协约来奖励源云提供商;否则,源云提供商可以根据迁移协约受惩罚。在一些实施例中,在迁移成功完成时,与源云102上的VM 106相关联的数据可以被源云102破坏。
在从源云102迁移到目的云104之后,VM 106可被配置为在目的云104中的一个或多个物理节点上执行以为客户端执行计算任务。
图2示出了依照本文所描述的至少一些实施例布置的可从其中迁移虚拟机的示例源云102。如所描绘的,源云102可以包括至少一个或多个物理节点202、204、206和208,它们可以位于不同位置处且通过通信网连接。一个或多个VM 202A,202B,…,202N;204A,204B,…,204N;206A,206B,…,206N;208A,208B,…,208N以及106B可以分别在一个或多个物理节点202、204、206中的一个上执行。VM 106B的一个或多个副本,副本210A,210B,…,210N,可以分别存储在物理节点204、206和208上。为简化起见,在图2中示出了物理节点的数量,在物理节点上实行的VM的数量,VM 106B的副本的数量,本领域技术人员将意识到,可以存在不同的数量。此外,除非上下文要求,否则可以在下面的说明书中统称为“VM 202”、“VM 204”、“VM 206”、“副本210”,或可以以单数形式称为“一个VM 202”、“一个VM 204”、“一个VM 206”、“一个副本210”。
物理节点202可以是指源云102中的物理计算设备。包括VM 106B和VM 202的一个或多个虚拟机可以在物理节点202上执行。根据图1的示例性实施例,VM 106B可以是指通过客户端请求或命令而从源云102迁移到目的云104的一个或多个虚拟机中的一个。VM 202可以在本文称为“相邻VM”,并且可以是指为除了请求迁移的客户端之外的客户端在物理节点202上执行的虚拟机。因此,在本示例性实施例中,VM 202不经过迁移。
类似于物理节点202,物理节点204可以是指可被配置为托管一个或多个虚拟机的源云102中的物理计算设备。包括VM 204的一个或多个虚拟机可以在物理节点204上执行。根据图1的示例性实施例,VM 204在本文还可以称为“相邻VM”,并且可以是指在物理节点204上执行以为除了请求迁移的客户端之外的客户端执行计算任务的虚拟机。类似于VM202,在本示例性实施例中,VM 204不经过迁移。
在至少一些示例中,为了在一个或多个副本意外地被移除或破坏的情况下的数据安全的担忧,源云102可以维护VM 106B的一个或多个副本,例如,如图所示的副本210。副本,包括存储在物理节点204上的副本210A,可以通过源云102的通信网与例如VM 106B的虚拟机周期性地同步。也即,通过VM 106B生成的数据将被复制到副本,并且由虚拟机删除的数据将从副本被去除。副本210A可以表示存储在与物理节点204相关联的一个或多个存储器设备中的VM 106B的副本。该存储器设备的非限制示例可以包括硬盘、闪存驱动器等。
类似于物理节点204,物理节点206可以是指源云102中的物理计算设备。包括VM206的一个或多个虚拟机可以在物理节点206上执行。VM 206在本文中可类似地称为“相邻VM”,并且可以是指在物理节点206上执行以为除了请求迁移的客户端之外的客户端执行计算任务的虚拟机。副本210B可以代表存储在与物理节点206相关联的存储器设备的一个或多个实施例中的VM 106B的副本。该存储器设备的非限制示例可以包括硬盘、闪存驱动器等。
类似于物理节点206,物理节点208可以是指源云102中的物理计算设备。包括VM208的一个或多个虚拟机可以在物理节点208上执行。VM 208在本文中可类似地称为“相邻VM”,并且可以是指在物理节点208上执行以为除了请求迁移的客户端之外的客户端执行计算任务的虚拟机。副本210C可以代表存储在与物理节点204相关联的存储器设备的一个或多个实施例中的VM 106B的副本。
在至少一些示例中,迁移控制器108可被配置为指示源云102基于使用频率来顺序地迁移虚拟机。也即,可以首先迁移最经常使用的虚拟机。关于待迁移的虚拟机之一,迁移控制器108可被配置为根据如下文所述的一个或多个方案或其任意组合,从虚拟机的实例中选定一个并且指示源云102将选定的实例移动到目的云104。
如上所述,由于物理节点202、204、206和208可以位于不同的地理位置,物理节点与目的节点之间的地理距离可从一个物理节点到另一物理节点不同。迁移控制器108可被配置为根据物理节点与目的节点之间的地理距离而从实例中选定一个实例。也即,如果实例被存储或执行于物理节点202、204、206和208中的地理上最靠近目的节点的物理节点上,则可选择该实例。
另外地或者可替代地,因为在与VM 106B的实例相同的物理节点上可能存在相邻VM,所以迁移控制器108可被配置为根据相邻VM的数量或其副本来从实例中选择一个实例。换言之,为了最小化迁移引起的对其它客户端的影响,迁移控制器108可以选择物理节点202、204、206和208中的对应于最少数量相邻VM的物理节点上的实例。
另外地或者仍可替代地,当在物理节点上存在为客户端实行的多个虚拟机时,在同一物理节点上为同一客户端执行的多个虚拟机可称为“姐妹VM”。例如,如果VM 106C的实例被存储或执行于物理节点202上,则VM 106C的实例可以称为VM 106B的“姐妹VM”。迁移控制器108可被配置为选择在物理节点202、204、206和208中的对应于最大数量姐妹VM的物理节点上执行的VM 106B的实例。
一旦实例被选定,迁移控制器108可被配置为将选择结果通知源云102。源云102随后可将选定实例连同同一物理节点上的全部姐妹VM一起压缩成一个或多个数据包。然后,数据包被迁移控制器108加密且发送到目的云104的目的节点。
图3示出了依照本文所述的至少一些实施例布置的可用来迁移虚拟机的示例迁移控制器108。如所描绘的,迁移控制器108可以至少包括迁移协约管理器304、VM排序器306、VM实例选择器308以及迁移管理器310。
迁移协约管理器304可以是指可被配置为在VM 106从源云102迁移到目的云104之前,生成客户端、源云提供商和目的云提供商之间的一个或多个迁移协约的组件。协约可以规定如下条件:如果各方遵照,则促进VM 106的安全且有效的迁移。通过举例的方式,安全且有效的迁移可以是指与VM 106相关联的数据不被第三方盗用或泄漏或者在协约中规定的绝限前被拷贝。在一些示例中,迁移控制器108可被配置为生成三方协约,其中客户端、源云提供商和目的云提供商是这三方。在用于描述三方协约的生成的非限制示例中,迁移控制器108可生成包括供客户端检查的一个或多个项和/或供客户端完成的域的协约模板。客户端可以检查协约模板中的项和/或输入值以完成域。迁移控制器108随后可以被配置为将完成的协约模板发送给源云提供商和目的云提供商以获得表明在三方之间约束的相互意图的三方协约的签名副本。根据各个示例性实施例,迁移协约管理器304可实现为硬件、软件、固件或其任意组合。
在至少一些示例中,迁移协约可以包括至少VM 106的数量、完成迁移的绝限、因在绝限前完成迁移而由客户端提供给源云提供商的奖励、因在绝限前未完成迁移而对源云提供商、目的云提供商或两者的惩罚、以及待迁移虚拟机的序列。对于迁移协约的违反方,奖励和惩罚可以是财政上的。迁移协约可进一步包括其它条款,包括但不限于,从源云提供商到客户端迁移与VM 106相关联的全部数据的保证;从源云提供商到客户端在迁移完成时破坏与VM 106相关联的全部数据的保证;以及源云提供商约定客户端在迁移前对与待迁移VM106相关联的全部数据加密的保证;以及从目的云提供商到客户端检查数据以及判定数据是否完整且安全的保证;以及从目的云提供商到客户端提供安全的计算环境(例如无计算机病毒感染的计算环境)以便在迁移后实行VM 106的的保证。
VM排序器306可是指可被配置为基于使用频率对VM 106排序以确定在从源云102迁移到目的云104的过程中的VM 106的序列的组件。如上文提到的,使用频率可以是指在客户端租用VM 106期间内客户端使用特定一个VM 106的发生的次数。在一些示例中,VM排序器306可以基于使用频率简单地指示源云102以对VM 106排序以及当排序完成时接收来自源云102的排序结果。根据各个示例性实施例,VM排序器306可以实现为硬件、软件、固件或其任意组合。
VM实例选择器308可是指可被配置为选择每个VM 106的实例的组件。在至少一些示例中,VM实例选择器308可以根据本文所述的一个或多个方案来选择实例并且将选择结果通知源云102。根据各个示例性实施例,VM实例选择器308可以实现为硬件、软件、固件或其任意组合。
如上所述,因为物理节点202,204,206和208可以位于不同的地理位置,所以物理节点与目的节点之间的地理距离可以从一个物理节点到另一物理节点而不同。根据每个物理节点与目的节点之间的地理距离,VM实例选择器308可被配置为选择VM 106B的实例。也即,如果在物理节点202、204、206和208中的地理上最靠近目的节点的物理节点上存储或执行实例,则可选择该实例。
另外地或者可替代地,因为在与VM 106B的实例相同的物理节点上可能存在相邻VM,所以VM实例选择器308可被配置为根据相邻VM的数量或其副本来选择实例。换言之,为了最小化由于迁移引起的对其它客户端的影响,VM实例选择器308可以选择在物理节点202、204、206和208中的对应于最少数量的相邻VM的物理节点上执行的VM 106B的实例。
另外地或者仍可替代地,当在物理节点上存在为客户端执行的多个虚拟机时,在同一物理节点上为同一客户端执行的多个虚拟机或其实例可以称为“姐妹VM”。VM实例选择器308可以被配置为选择在物理节点202、204、206和208中的对应于最大数量姐妹VM的物理节点上执行的VM 106B的实例。
迁移控制器310可以是指可被配置为指示源云102将VM 106从源云102迁移到目的云104的组件。也即,基于VM排序器306所确定的序列,迁移管理器310可以请求源云102根据使用频率来顺序地迁移VM 106。也即,关于每个VM 106,源云102可以将VM实例选择器308选定的实例连同同一物理节点上的姐妹VM的全部实例一起压缩成一个或多个数据包。此外,源云102可以对数据包进行加密且将数据包发送给目的云104。
图4示出了依照本文所描述的至少一些实施例布置的可以迁移虚拟机的操作的处理流的示例配置。如所描绘的,处理流400可以包括通过作为示例系统100的一部分的各组件执行的子处理。然而,处理流400不限于这些组件,可以通过对此处描述的两个或更多个子处理进行重定序、去除至少一个子处理,添加另外的子处理,替代组件或者甚至使得各组件承担与下面的描述中的其它组件一致的子处理角色来做出修改。处理流400可以包括如框402、404、406和/或408中的一个或多个图示的各种操作、功能或动作。处理从框402开始。
框402(生成迁移协约)可以是指迁移协约管理器304在从源云102迁移到目的云104之前生成客户端、源云提供商与目的云提供商之间的一个或多个迁移协约。生成迁移协约的处理将在下文根据图5进行详述。
在至少一些示例中,迁移协约可以至少包括VM 106的数量、完成迁移的绝限、因在绝限前完成迁移而由客户端提供给源云提供商的奖励,因在绝限前未完成迁移而对源云提供商、目的云提供商或两者的惩罚以及待迁移虚拟机的序列。对于迁移协约的违反方,奖励和惩罚可以是财政上的。迁移协约可进一步包括其它条款,包括但不限于,从源云提供商到客户端迁移与VM 106相关联的全部数据的约定或保证;从源云提供商到客户端在迁移完成时破坏与VM 106相关联的全部数据的约定或保证;以及源云提供商约定客户端在迁移前对与待迁移VM 106相关联的全部数据加密的约定或保证;以及从目的云提供商到客户端检查数据以及判定数据是否完整且安全的约定或保证;以及从目的云提供商到客户端提供安全的计算环境(例如无计算机病毒感染的计算环境)以便在迁移后实行VM 106的约定或保证,。框402之后可以是框404。
框404(对虚拟机排序)可以是指VM排序器306基于使用频率对VM 106排序以确定在从源云102迁移到目的云104的过程中VM 106的序列。如上所述,使用频率可以是指在客户端租用VM 106的期间内客户端使用特定一个VM 106的发生次数。在一些示例中,VM排序器306可以基于使用频率简单地指示源云102对VM 106排序且当排序完成时接收来自源云102的排序结果。框404之后可以是框406。
框406(选择实例)可以是指VM实例选择器308选择每个VM 106的实例。在至少一些示例中,VM实例选择器308可以根据上述的一个或多个方案来选择实例。
如上所述,VM实例选择器308可以被配置为选择VM 106B的实例,该实例存储在物理节点202、204、206和208中的地理上最靠近目的节点的物理节点上。另外地或者可替代地,VM实例选择器308可以选择在物理节点202、204、206和208中的对应于最少数量的相邻VM的物理节点上执行的VM 106B的实例。另外地或者仍可替代地,VM实例选择器308可被配置为选择在物理节点202、204、206和208中的对应于最大数量的姐妹VM的物理节点上执行的VM 106B的实例。
框408(迁移虚拟机)可以是指迁移管理器310指示源云102将VM 106从源云102迁移到目的云104。也即,基于由VM排序器306确定的序列,迁移管理器310可以请求源云102根据使用频率来顺序地迁移VM 106B、106B和106C。也即,可以首先迁移最频繁使用的虚拟机。关于VM 106B、106B和106C中的每个,源云102可以将VM实例选择器308所选定的实例连同同一物理节点上的姐妹VM的全部实例一起压缩成一个或多个数据包。此外,迁移管理器301可以对数据包加密且将数据包发送到目的云104。
本领域技术人员将意识到,对于本文公开的该处理和方法以及其它处理和方法,在处理和方法中执行的功能可以按不同的次序实现。此外,列出的步骤和操作仅提供作为示例,一些步骤和操作可以是任选的,组合成较少的步骤和操作,或者扩展成额外的步骤和操作,而不与公开的实施例的实质相悖。
图5示出了依照本文所描述的至少一些实施例布置的可以迁移虚拟机的操作的子处理流的示例配置。如所描绘的,处理流400可以包括由作为示例系统100的一部分的各组件执行的子处理。然而,处理流500不限于这些组件,并且通过对本文所描述的两个或多个子处理进行重定序、消除至少一个子处理、添加另外的子处理、替代组件或者甚至使得各组件承担与下面描述中的其它组件一致的子处理角色来做出修改。处理流500可以包括如框502、504、506和/或508中的一个或多个图示的各种操作、功能或动作。处理可开始于框502。
框502(生成模板)可以是指迁移协约管理器304生成用于客户端、源云提供商与目的云提供商之间的迁移协约的一个或多个协约模板。
在一些示例中,迁移控制器108可以被配置为生成三方协约的协约模板。协约模板可以包括供客户端检查的一个或多个项和/或供客户端完成的域。例如,协约模板可以包括至少代表如下的项:VM 106的数量、完成迁移的绝限、因在绝限前完成迁移而由客户端提供给源云提供商的奖励;因在绝限前未完成迁移而对源云提供商、目的云提供商或两者的惩罚、以及待迁移虚拟机的序列。
在一些其它示例中,迁移控制器108可以生成用于第一迁移协约的第一迁移协约模板和用于第二迁移协约的第二迁移协约模板。两个模板可以包括供客户端检查的一个或多个项和/或供客户端输入信息的域。框502之后可以是框504。
框504(完成模板)可以是指客户端通过检查模板上的项和/或输入到模板的值或其它信息来完成上述模板。例如,如果迁移在迁移协约中规定的绝限前完成,则客户端可以规定奖励。框504之后可以是框506。
框506(发送模板)可以是指迁移控制器108经由连接110A和110B将客户端完成的基于模板的协约发送给源云提供商和目的云提供商。框506之后可以是框508。
框508(接收副本)可以是指迁移控制器108从源云提供商或目的云提供商接收表明在三方之间约束的相互意图的迁移协约一个或多个签名副本。
图6是示出根据本公开的至少一些实施例布置的布置成用于迁移虚拟机的示例计算设备600的框图。在最基本配置602中,计算设备600通常包括一个或多个处理器604和系统存储器606。存储器总线608可用于处理器604与系统存储器606之间的通信。
根据所需的配置,处理器604可以是任意类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器604可以包括诸如一级超高速缓存610和二级超高速缓存612的一级或多级超高速缓存、处理器核614和寄存器616。示例处理器核614可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP Core)或其任意组合。示例存储器控制器618还可与处理器604一起使用,或者在一些实施方式中,存储器控制器618可以是处理器604的内部部件。
根据所需的配置,系统存储器606可以是任意类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或其任意组合。系统存储器606可以包括操作系统620、一个或多个应用622以及程序数据624。应用622可以包括被布置成执行如本文所述的包括结合图4的处理400描述的功能的虚拟机迁移算法626。程序数据624可以包括可用于如本文所描述的利用虚拟机迁移算法626的操作的虚拟机算法数据628。在一些实施例中,应用622可布置成在操作系统620上操作程序数据624,使得可以提供如本文所描述的虚拟机迁移算法的实现方式。在图6中通过内虚线内的这些部件图示出该描述的基本配置602。
计算设备600可具有附加的特征或功能以及附加的接口以便于基本配置602与任何所需的设备和接口之间的通信。例如,总线/接口控制器630可用于便于基本配置602与一个或多个数据存储设备632之间经由存储接口总线634的通信。数据存储设备632可以是可移除存储设备636、非可移除存储设备638或者其组合。可移除存储设备和非可移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器,仅列举了几个。示例计算机存储介质可以包括以用于信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的存储的任何方法或技术实现的易失性和非易失性的介质以及可移除和非可移除的介质。
系统存储器606、可移除存储设备636和非可移除存储设备938是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储设备、磁带盒、磁带、磁盘存储设备或其它磁存储设备、或者可用于存储所需信息并且可由计算设备600访问的任何其它介质。任意这样的计算机存储介质可以是计算设备600的一部分。
计算设备600还可以包括接口总线640,该接口总线用于方便从各个接口设备(例如,输出设备642、外围设备接口644和通信设备646)经由总线/接口控制器630到基本配置602的通信。示例输出设备642包括图形处理单元648和音频处理单元650,其可配置为经由一个或多个A/V端口652与诸如显示器或扬声器的各个外部设备通信。示例外围设备接口644包括串行接口控制器654或并行接口控制器656,其可配置为经由一个或多个I/O端口658与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其它外围设备(例如,打印机、扫描仪等)的外部设备通信。示例通信设备646包括网络控制器660,其可布置成利于经由一个或多个通信端口664通过网络通信链路与一个或多个计算设备662的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可通过计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制的调制数据信号中的其它数据来实施,并且可以包括任何信息输送介质。“调制数据信号”可以是使得其特性中的一个或多个以将信号中的信息进行编码的方式设定或改变的信号。通过举例而不是限制的方式,通信介质可以包括诸如有线网络或直接线连接的有线介质,以及诸如声波、射频(RF)、微波、红外(IR)和其它无线介质的无线介质。如本文所使用的术语计算机可读介质可以包括存储介质和通信介质两者。
计算设备600可实现为诸如蜂窝电话、个人数据助理(PDA)、个人媒体播放器设备、无线网页监视设备(wireless web-watch device)、个人头戴送受话器设备、专用设备或包括上述功能中的任一种的混合设备的小形状因子便携式(或移动)电子设备的一部分。计算设备600还可实现为包括膝上型计算机和非膝上型计算机配置两者的个人计算机。
本公开不限于本申请所描述的特定实施例,这些实施例意在作为各方案的示例。能够在不偏离其精神和范围的情况下做出多种改进和变型,这对于本领域技术人员而言是显而易见的。通过前面的说明,除了本文所列举的那些之外,在本公开的范围内的功能上等同的方法和装置对于本领域技术人员而言将是显而易见的。旨在使这些改进和变型落在所附权利要求书的范围内。本公开仅受所附权利要求书以及这些权利要是所给予权利的等同方案的整个范围所限制。应当理解的是,本公开不限于特定的方法、试剂、化合物、组合物或生物系统,当然这些会变化。还应理解的是,本文所使用的术语是仅仅是为了描述特定实施例的目的,而不意在限制。
在示例性的实施例中,本文所描述的任何的操作、处理等可以实现为存储在计算机可读介质上的计算机可读指令。计算机可读指令能够通过移动单元的处理器、网络元件和/或任何其他计算设备来执行。
在系统方案的硬件实现和软件实现之间存在极小的区别;硬件或软件的使用通常是(但并不总是,因为在一些背景下硬件和软件之间的选择会变得重要)表示成本相对于效率权衡的设计选择。存在各种可以实现本文所描述的处理和/或系统和/或其它技术的媒介物(例如,硬件、软件和/或固件),并且优选的媒介物将随着部署处理和/或系统和/或其它技术的背景而变化。例如,如果实施者判定速度和精度重要,则实施者可以选择主硬件和/或固件媒介物;如果灵活性重要,则实施者可以选择主软件实现;或者,另外可选地,实施者可以选择硬件、软件和/或固件的一些组合。
前面的详细说明已经通过框图、流程图和/或示例阐述了设备和/或处理的各个实施例。在这些框图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员将理解的是可以通过各种各样的硬件、软件、固件或几乎其任意组合来单独地和/或统一地实现这些框图、流程图或示例内的每个功能和/或操作。在一个实施例中,本文所描述的主题的多个部分可经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成格式来实现。然而,本领域技术人员将离解的是,在本文公开的实施例的一些方案可以整体地或部分地等同地实现为集成电路、在一个或多个计算机上运行的一个或多个计算机程序(例如,实现为在一个或多个计算机系统上运行的一个或多个程序)、在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序)、固件、或几乎任何组合,并且根据本公开,设计电路和/或编写用于软件和/或固件的代码将在本领域技术人员的技能范围内。另外,本领域技术人员将理解的是,本文所描述的主题的机制能够以各种形式分布为程序产品,并且本文所描述的主题的示例性实施例适用,无论实际上用于实施分布的特定类型的信号承载介质如何。信号承载介质的示例包括但不限于以下:可记录型介质(诸如软盘、硬盘驱动器、CD、DVD、数字带、计算机存储器等);以及传输型介质(诸如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。
本领域技术人员将理解的是,在本领域内常见的是以本文阐述的方式来描述设备和/或处理,此后利用工程实践将这些所描述的设备和/或处理集成到数据处理系统中。也即,本文所描述的设备和/或处理的至少一部分可以通过合理量的实验集成到数据处理系统中。本领域技术人员将理解的是,典型的数据处理系统通常包括如下中的一种或多种:系统单元壳体、视频显示设备、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理器的处理器、诸如操作系统的计算实体、驱动器、图形用户接口、和应用程序、诸如触摸板或触摸屏的一个或多个交互设备、和/或包括反馈环和控制电机(例如,用于感测位置和/或速度的反馈;用于移动和/或调整部件和/或量的控制电机)的控制系统。典型的数据处理系统可利用任何适合的商业上可用的部件来实现,诸如在数据计算/通信和/或网络计算/通信系统中常见的部件。
本文所描述的主题有时说明了包含在不同的其它部件内的不同部件或与不同的其它部件连接的不同部件。应理解的是,这些所描绘的体系结构仅是示例性的,并且实际上可以实施实现相同功能的许多其它体系结构。在概念意义上,实现相同功能的任何部件的布置有效地“关联”,使得实现期望功能。因此,在此处组合以实现特定功能的任何两个部件可视为彼此“关联”,使得实现期望功能,无论体系结构或中间部件如何。同样,任意两个如此关联的部件还可视为彼此“可操作地连接”、或“可操作地耦合”以实现期望的功能,并且能够如此关联的任意两个部件还可视为彼此“能够可操作地耦合”以实现期望功能。能够可操作耦合的具体示例包括但不限于能够物理上连接和/或物理交互的部件和/或能够无线交互和/或无线交互的部件和/或逻辑上交互和/或能够逻辑上交互的部件。
关于本文中基本上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中明确地阐明了各单数/复数的置换。
本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包括”应解释为“包括但不限于”,等等)。本领域技术人员还理解,如果意图表达引导性权利要求记述项的具体数量,该意图将明确地记述在权利要求中,并且在不存在这种记述的情况下,不存在这样的意图。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施例,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如不定冠词“一”或“一个”的(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“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”的可能性。
本领域技术人员将理解的是,为了任何以及全部的目的,诸如在提供所撰写的说明书方面,本文所公开的全部范围也涵盖了任何和全部的可能的子范围及其子范围的组合。能够容易地认识到任何所列范围都充分地描述了同一范围并且使同一范围分解成至少均等的一半、三分之一、四分之一、五分之一、十分之一等等。作为非限制示例,本文所论述的每个范围能够容易地分解成下三分之一、中三分之一和上三分之一,等等。本领域技术人员还将理解的是,诸如“多达”、“至少”等所有的语言包括所记述的数量并且是指如上文所论述的随后能够分解成子范围的范围。最后,本领域技术人员将理解的是,范围包括每个独立的成员。因此,例如,具有1-3个单元的组是指具有1个、2个或3个单元的组。类似地,具有1-5个单元的组是指具有1个、2个、3个、4个、或5个单元的组,等等。
通过前面的论述,将理解到本文已经为了示例的目的描述了本公开的各实施例,并且可以在不偏离本公开的范围和精神的情况下进行各种改进。因此,本文所公开的各个实施例不意在限制,真正的范围和精神是通过随附的权利要求表示的。

Claims (22)

1.一种虚拟机迁移方法,所述方法包括:
建立一个或多个迁移协约,
其中所述一个或多个迁移协约应用于客户端、源云和目的云中的两个或更多个,
其中所述一个或多个迁移协约包括由所述客户端提供的、在所述一个或多个迁移协约的条件下待从所述源云迁移到所述目的云的一个或多个虚拟机的标识符,以及
其中所述源云在相应的节点中维护待迁移的所述一个或多个虚拟机中的每个虚拟机的至少两个实例,所述至少两个实例包括每个相应的待迁移虚拟机以及每个相应的待迁移虚拟机的至少一个副本;
对待迁移的所述一个或多个虚拟机的序列进行定序,其中所述定序基于待迁移的所述一个或多个虚拟机中的相应虚拟机的使用频率;
基于所述相应的节点与所述目的云上的目的节点之间的接近度来标识待迁移的所述一个或多个虚拟机中的每个虚拟机的一个实例;以及
指示所述源云在所述一个或多个迁移协约的所述条件下迁移待迁移的所述一个或多个虚拟机中的每个虚拟机的所标识的实例。
2.如权利要求1所述的方法,其中所述一个或多个迁移协约包括如下至少之一:
待迁移的所述多个虚拟机的数量,
完成所述迁移的绝限,
在所述绝限前完成所述迁移的奖励,以及
在所述绝限前未完成所述迁移的惩罚。
3.如权利要求1所述的方法,进一步包括通知所述目的云预留一个或多个计算机资源来执行所标识的实例。
4.如权利要求1所述的方法,其中所述使用频率是基于所述一个或多个虚拟机中的每个虚拟机的使用的频率来生成的。
5.如权利要求1所述的方法,其中所述指示包括:通知所述源云将所述多个虚拟机中的每个虚拟机的所标识的实例压缩成数据包且将所述数据包发送到所述目的云。
6.如权利要求1所述的方法,其中所述指示还包括:
接收来自所述目的云的反馈,所述反馈标识一个或多个有瑕疵的数据包;以及
通知所述源云重新发送数据以替换所标识的有瑕疵的数据包。
7.如权利要求1所述的方法,其中所述定序是基于由所述源云的另一客户端控制的相应的相邻虚拟机的数量。
8.一种用于虚拟机迁移的系统,所述系统包括:
包括多个物理节点的源云;
待迁移到目的云的多个虚拟机,
其中所述多个虚拟机执行于所述源云上,以及
其中所述源云在所述多个物理节点中的相应节点中维护所述多个虚拟机中的每个虚拟机的至少两个实例,所述至少两个实例包括每个相应的虚拟机以及每个相应的虚拟机的至少一个副本;以及
迁移控制器,其被配置为:
建立一个或多个迁移协约,其中所述一个或多个迁移协约应用于客户端、所述源云和所述目的云中的两个或更多个;
对待迁移的所述多个虚拟机的序列进行定序,其中所述序列是基于待迁移的所述多个虚拟机中的相应虚拟机的使用频率来定序的;
基于所述相应的节点与所述目的云上的目的节点之间的接近度来标识待迁移的所述多个虚拟机中的每个虚拟机的所述至少两个实例中的一个;
指示所述源云在所述一个或多个迁移协约的条件下根据所述序列将待迁移的所述多个虚拟机中的每个虚拟机的所标识的实例迁移到所述目的云;以及
根据所述一个或多个迁移协约来奖励或惩罚所述源云的服务提供商。
9.如权利要求8所述的系统,其中所述一个或多个迁移协约包括如下至少之一:
待迁移的所述多个虚拟机的数量,
完成所述迁移的绝限,
在所述绝限前完成所述迁移的奖励,以及
在所述绝限前未完成所述迁移的惩罚。
10.如权利要求8所述的系统,其中所述迁移控制器被进一步配置为指示所述目的云预留一个或多个计算资源来执行所述多个虚拟机的所标识的实例。
11.如权利要求8所述的系统,其中所述迁移控制器被进一步配置为指示所述源云将所述多个虚拟机中的每个虚拟机的所标识的实例压缩成数据包,以及指示所述源云将所述数据包发送到所述目的云。
12.如权利要求8所述的系统,其中所述迁移控制器被进一步配置为:
接收来自所述目的云的反馈,所述反馈标识一个或多个有瑕疵的数据包;以及
指示所述源云重新发送数据以替换所述有瑕疵的数据包。
13.如权利要求8所述的系统,其中所述序列是基于由所述源云的另一客户端控制的相邻虚拟机的数量而被定序的。
14.如权利要求8所述的系统,其中所述使用频率是基于所述多个虚拟机中的每个虚拟机的使用的频率来生成的。
15.一种存储有可执行指令的计算机可读介质,所述可执行指令在被执行时使得一个或多个处理器执行用于虚拟机迁移的操作,所述操作包括:
建立一个或多个迁移协约,
其中所述一个或多个迁移协约应用于客户端、源云和目的云中的两个或更多个,
其中所述一个或多个迁移协约包括由所述客户端提供的、在所述一个或多个迁移协约的条件下待从所述源云迁移到所述目的云的多个虚拟机的标识符,以及
其中所述源云在相应的节点中维护待迁移的所述多个虚拟机中的每个虚拟机的至少两个实例,所述至少两个实例包括每个相应的待迁移虚拟机以及每个相应的待迁移虚拟机的至少一个副本;
对待迁移的所述多个虚拟机的序列进行定序,其中所述定序基于待迁移的所述多个虚拟机中的相应虚拟机的使用频率;
基于所述相应的节点与所述目的云上的目的节点之间的接近度来标识待迁移的所述多个虚拟机中的每个虚拟机的一个实例;以及
指示所述源云在所述一个或多个迁移协约的所述条件下迁移待迁移的所述多个虚拟机中的每个虚拟机的所标识的实例。
16.如权利要求15所述的计算机可读介质,其中所述一个或多个迁移协约包括如下至少之一:
待迁移的所述多个虚拟机的数量,
完成所述迁移的绝限,
在所述绝限前完成所述迁移的奖励,以及
在所述绝限前未完成所述迁移的惩罚。
17.如权利要求15所述的计算机可读介质,进一步包括:通知所述目的云预留一个或多个计算资源来执行所述多个虚拟机的所标识的实例。
18.如权利要求15所述的计算机可读介质,其中所述使用频率是基于所述多个虚拟机中的每个虚拟机的使用的频率来生成的。
19.如权利要求15所述的计算机可读介质,其中所述指令包括:
通知所述源云将所述多个虚拟机中的每个虚拟机的所标识的实例压缩成数据包且将所述数据包发送到所述目的云。
20.如权利要求15所述的计算机可读介质,其中所述指令还包括:
接收来自所述目的云的反馈,所述反馈标识一个或多个有瑕疵的数据包;以及
通知所述源云重新发送数据以替换所标识的有瑕疵的数据包。
21.如权利要求15所述的计算机可读介质,其中所述定序是基于所述相应的节点的地理位置。
22.如权利要求15所述的计算机可读介质,进一步包括:根据所述一个或多个迁移协约来惩罚或奖励所述源云的服务提供商。
CN201480077888.7A 2014-04-30 2014-04-30 虚拟机迁移 Expired - Fee Related CN106462458B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/076576 WO2015165060A1 (en) 2014-04-30 2014-04-30 Virtual machine migration

Publications (2)

Publication Number Publication Date
CN106462458A CN106462458A (zh) 2017-02-22
CN106462458B true CN106462458B (zh) 2019-08-30

Family

ID=54358019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480077888.7A Expired - Fee Related CN106462458B (zh) 2014-04-30 2014-04-30 虚拟机迁移

Country Status (3)

Country Link
US (1) US9727363B2 (zh)
CN (1) CN106462458B (zh)
WO (1) WO2015165060A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104391735B (zh) * 2014-11-14 2018-11-06 深信服网络科技(深圳)有限公司 虚拟化一体机集群中虚拟机调度方法及系统
US10887360B1 (en) * 2015-12-30 2021-01-05 iCloudPatent.com LTD. (a Caymans Islands company) Direct network connections using cloud instance for multipoint meeting service
CN107133087A (zh) 2016-02-29 2017-09-05 阿里巴巴集团控股有限公司 一种资源调度方法与设备
US11487566B2 (en) * 2016-06-28 2022-11-01 Vmware, Inc. Cross-cloud provider virtual machine migration
US10834226B2 (en) * 2016-07-15 2020-11-10 International Business Machines Corporation Live migration of containers based on geo-location
US10462030B2 (en) 2016-10-07 2019-10-29 Vmware, Inc. Method and system for managing network nodes that implement a logical multi-node application
US10678579B2 (en) * 2017-03-17 2020-06-09 Vmware, Inc. Policy based cross-cloud migration
US10827042B2 (en) 2017-04-10 2020-11-03 Vmware, Inc. Traffic optimization for multi-node applications
CN107426012B (zh) * 2017-05-27 2020-06-09 深信服科技股份有限公司 一种基于超融合架构的故障恢复方法及其装置
US10725810B2 (en) * 2017-06-01 2020-07-28 Vmware, Inc. Migrating virtualized computing instances that implement a logical multi-node application
US10534921B2 (en) 2017-08-23 2020-01-14 Red Hat, Inc. Copy and decrypt support for encrypted virtual machines
US10817323B2 (en) * 2018-01-31 2020-10-27 Nutanix, Inc. Systems and methods for organizing on-demand migration from private cluster to public cloud
US20210019172A1 (en) * 2018-06-28 2021-01-21 Intel Corporation Secure virtual machine migration using encrypted memory technologies
US11520621B2 (en) 2019-08-26 2022-12-06 Servicenow, Inc. Computational instance batching and automation orchestration based on resource usage and availability

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271814B2 (en) * 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle
CN103036919A (zh) * 2011-09-30 2013-04-10 上海贝尔股份有限公司 用于实现虚拟机在虚拟私有云内的迁移的方法和设备
CN103425529A (zh) * 2012-05-17 2013-12-04 国际商业机器公司 基于资源利用在网络计算环境间迁移虚拟机的系统及方法
CN103460191A (zh) * 2011-03-28 2013-12-18 日本电气株式会社 虚拟机管理系统和虚拟机管理方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145066A (en) 1997-11-14 2000-11-07 Amdahl Corporation Computer system with transparent data migration between storage volumes
US7415591B1 (en) 2003-04-23 2008-08-19 Emc Corporation Method and apparatus for migrating data and automatically provisioning a target for the migration
EP1654659A4 (en) 2003-08-05 2007-05-09 Sepaton Inc EMULATED STORAGE SYSTEM
US7975028B2 (en) 2004-06-07 2011-07-05 Apple Inc. Migration of data between computers
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20130047150A1 (en) 2006-08-29 2013-02-21 Adobe Systems Incorporated Software installation and process management support
US8572548B2 (en) 2008-10-08 2013-10-29 Accenture Global Services Gmbh Integrated design application
US8316125B2 (en) 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
US8429651B2 (en) 2010-01-20 2013-04-23 International Business Machines Corporation Enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks
ES2430362T3 (es) 2010-07-02 2013-11-20 Vodafone Ip Licensing Limited Gestión de recursos de radio basada en la predicción de la ubicación
US8359223B2 (en) 2010-07-20 2013-01-22 Nec Laboratories America, Inc. Intelligent management of virtualized resources for cloud database systems
US20120054731A1 (en) 2010-08-24 2012-03-01 International Business Machines Corporation Method, System and Computer Programs to Assist Migration to a Cloud Computing Environment
US8812806B2 (en) 2010-10-29 2014-08-19 Netapp, Inc. Method and system for non-disruptive migration
US8984269B2 (en) 2011-02-28 2015-03-17 Red Hat, Inc. Migrating data among cloud-based storage networks via a data distribution service
US9225791B2 (en) 2011-02-28 2015-12-29 Red Hat, Inc. Staged data migration between data sources and cloud-based storage network
US8533713B2 (en) 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
US9344484B2 (en) 2011-05-27 2016-05-17 Red Hat, Inc. Determining consistencies in staged replication data to improve data migration efficiency in cloud based networks
US8904384B2 (en) 2011-06-14 2014-12-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Reducing data transfer overhead during live migration of a virtual machine
US20130085959A1 (en) 2011-09-29 2013-04-04 Yokogawa Electric Corporation Apparatus for presenting task procedures of industrial plant assets
US9075811B2 (en) 2011-09-30 2015-07-07 Symantec Corporation Cloud information migration systems and methods
US20130091285A1 (en) 2011-10-11 2013-04-11 International Business Machines Corporation Discovery-based identification and migration of easily cloudifiable applications
US20130166504A1 (en) 2011-12-27 2013-06-27 RiverMeadow Software, Inc. Systems and methods for virtual machine migration
US20130198476A1 (en) 2012-01-26 2013-08-01 Hitachi, Ltd. Management system of information memory system and management method thereof
WO2013140522A1 (ja) 2012-03-19 2013-09-26 富士通株式会社 情報処理システム,情報処理方法,プログラム
US9311123B2 (en) 2013-07-02 2016-04-12 Hillstone Networks, Corp. Distributed virtual security appliance and flow-based forwarding system using virtual machines
US10776244B2 (en) 2013-07-09 2020-09-15 Oracle International Corporation Consolidation planning services for systems migration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271814B2 (en) * 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle
CN103460191A (zh) * 2011-03-28 2013-12-18 日本电气株式会社 虚拟机管理系统和虚拟机管理方法
CN103036919A (zh) * 2011-09-30 2013-04-10 上海贝尔股份有限公司 用于实现虚拟机在虚拟私有云内的迁移的方法和设备
CN103425529A (zh) * 2012-05-17 2013-12-04 国际商业机器公司 基于资源利用在网络计算环境间迁移虚拟机的系统及方法

Also Published As

Publication number Publication date
US20160266919A1 (en) 2016-09-15
WO2015165060A1 (en) 2015-11-05
US9727363B2 (en) 2017-08-08
CN106462458A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN106462458B (zh) 虚拟机迁移
Limasset et al. Read mapping on de Bruijn graphs
CN105378696B (zh) 跨各设备提供未看见消息计数
CN103916455B (zh) 用于数据复制的方法和系统
CN104346240B (zh) 用于在迁移操作期间利用多个存储器池的方法和装置
US20160063145A1 (en) Dynamic and collaborative workflow authoring with cloud-supported live feedback
CN108351806A (zh) 分布式基于流的数据库触发器
CN105843703A (zh) 将系统管理员动作提取到提供系统问题解决方案的工作流
CN104255011B (zh) 云计算安全数据存储
CN107637026A (zh) 在分布式计算环境中的虚拟机实例上执行命令
CN114731274A (zh) 分布式随机梯度下降的安全联合
US10691827B2 (en) Cognitive systems for allocating medical data access permissions using historical correlations
US20220043731A1 (en) Performance analysis
Mavrovouniotis et al. An ant colony optimization based memetic algorithm for the dynamic travelling salesman problem
WO2019064050A1 (en) METHOD AND SYSTEM FOR TROUBLESHOOTING A QUANTUM-CONNECTED MINIMAL CONNECTED DOMINANT SET FOR DISTANCE OPTIMIZATION AND USE THEREOF
Brorsen Reproducing global potential energy surfaces with continuous-filter convolutional neural networks
Saad-Roy et al. Immuno-epidemiology and the predictability of viral evolution
Feltus et al. The widening gulf between genomics data generation and consumption: A practical guide to big data transfer technology
CN112309565A (zh) 用于匹配药品信息和病症信息的方法、装置、电子设备和介质
CN109639876A (zh) 联系人管理方法、装置及存储介质
US20220343218A1 (en) Input-Encoding with Federated Learning
US20220413875A1 (en) Rack component detection and communication
US11563576B2 (en) Distributed anonymous scoring technique
US10594663B2 (en) System and method for computer based assessment distribution and printing
US11238955B2 (en) Single sample genetic classification via tensor motifs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190830

Termination date: 20200430