分布式计算系统中的虚拟机的动态迁移技术方案

技术编号:26045214 阅读:41 留言:0更新日期:2020-10-23 21:25
本文公开了一种虚拟盘和相关联的方法,其用于促进分布式计算系统中的虚拟机的动态迁移。在一个实施例中,一种方法包括:在虚拟机的动态迁移期间,确定节点上的目的地虚拟盘是否包含与所迁移的虚拟机对应的数据块。该方法也可以包括:响应于确定目的地虚拟盘不包含该数据块,从所迁移的虚拟机的源虚拟盘取回该数据块,将所取回的数据块写入到目的地虚拟盘上的一个或多个空扇区,并且将包含该数据块的被写入的一个或多个扇区在目的地虚拟盘上标记为只读。

【技术实现步骤摘要】
【国外来华专利技术】分布式计算系统中的虚拟机的动态迁移
技术介绍
云计算允许多个用户通过计算机网络访问并共享可配置计算资源的池。这样的共享计算资源可以位于一个或多个数据中心或其他合适的分布式计算系统中。在这样的系统中,路由器、交换机、桥、负载平衡器、或其他网络设备将大量服务器、网络存储设备、以及其他计算设备相互连接。个体服务器可以托管被配置为将计算、通信、存储或其他合适类型的计算服务提供给用户的一个或多个虚拟机、虚拟交换机、或其他类型的虚拟化功能。所提供的计算服务通常被称为“云计算服务”或“云服务”。
技术实现思路
提供本
技术实现思路
从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本
技术实现思路
不旨在确定要求保护的主题的关键特征或必要特征,也不旨在用于限制要求保护的主题的范围。在计算中,虚拟机一般是指物理计算系统的模拟。虚拟机可以基于某些计算机体系结构(例如,x86)并提供物理计算机的功能。在一些分布式计算系统中,虚拟机的实例化涉及将计算(例如,服务器或处理器)、网络存储(例如,永久数据存储)以及其他合适类型的计算资源分配给虚拟机。实例化可以还涉及获得操作系统的数字文件或“镜像”、系统和/或用户应用、以及来自分布式计算系统中的镜像存储的其他合适数据。一个或多个被分配的服务器可以然后访问并执行所获得的镜像的指令以提供用于虚拟机的合适计算环境。在某些计算系统中,给虚拟机分配的网络存储可以在虚拟机上表现为“虚拟盘”或“虚拟驱动器”。虚拟盘和虚拟驱动器是模拟或“虚拟化”一个或多个实际盘存储设备(诸如光盘驱动器、软盘驱动器或硬盘驱动器)的软件组件。在一个实现中,虚拟盘可以被实现为被配置为包含只读的父镜像的基本盘和一个或多个差异盘,一个或多个差异盘被配置为包含与父镜像相关的一组经修改的数据块(被维持在被称为“子镜像”的单独的文件中)。差异盘可以允许操作撤销改变。例如,当启用时,对父镜像的所有改变被存储在一个或多个子镜像中。因此,选项可用于撤销对父镜像的一个或多个改变,或者将父镜像与子镜像永久合并。在操作期间,实例化的虚拟机可能由于工作负载平衡、服务器硬件/软件故障、系统维护、或其他合适的原因而需要从一个托管节点(例如,物理服务器)被移动或“迁移”到另一个。一种迁移技术(在本文被称为“动态迁移”)涉及在不同物理主机之间移动正在运行的虚拟机而无需将客户端(例如,用户或另一应用)与所迁移的虚拟机断开连接。在动态迁移期间,虚拟机的存储器、存储设备和网络连接性从源节点被转移到目的地节点。预拷贝和后拷贝迁移是用于动态迁移虚拟机的两种技术。根据预拷贝迁移,在虚拟机仍然正在源节点上运行的同时,所迁移的虚拟机的数据从源节点被拷贝到目的地节点。在完成拷贝数据后,虚拟机在目的地节点上被启动。然而,在该拷贝过程期间,如果某个数据由于在虚拟机处的应用处理或其他原因而被改变(即,变“脏”),则脏数据从源节点被重新拷贝到目的地节点。这样的重新拷贝可以在源节点上的虚拟机正在运行高性能计算工作负载(“HCP”,例如,计算化学工作负载)时存在困难,因为源节点处的虚拟机生成脏数据的速率可以超过将数据从源节点拷贝到目的地节点的速率。因此,在许多次迭代后,需要从源节点被拷贝到目的地节点的数据量可能不减少或甚至增加。因此,对应于主机和目的地节点上的所迁移的虚拟机的数据将不会收敛。后拷贝迁移可以比预拷贝迁移更适合于迁移运行这样的HPC工作负载的虚拟机。后拷贝迁移通过在源节点处挂起虚拟机来启动。在源节点处挂起虚拟机的情况下,虚拟机的运行状态的最小子集(例如,CPU状态、寄存器、不可分页存储器等)可以被转移到目的地节点。虚拟机然后在目的地节点处利用从源节点接收的运行状态的子集被重启(resume)。随后,源节点可以在被称为预分页的过程中将所迁移的虚拟机的剩余数据块主动推送到目的地节点。然而,预分页可能在虚拟机试图访问尚未被转移的许多数据块时降低在目的地节点上的虚拟机中运行的应用的性能。相反,源节点可能经由预分页推送虚拟机当前不需要的其他数据块。通过在目的地节点处实现基础高速缓存盘以使在后拷贝迁移期间对所迁移的虚拟机的数据块从源节点到目的地节点的转移流水线化,所公开的技术的若干实施例可以解决前述困难的某些方面。具体地,基础高速缓存盘可以被配置为根据需要代替或在除了预分页以外执行从源节点对一个或多个数据块的按需提取。在某些实施例中,基础高速缓存盘可以被实现为针对每个数据扇区可以被写入仅仅一次的虚拟盘。在第一次写入之后,基础高速缓存盘的写入扇区变成只读。在某些实现中,在所迁移的虚拟机在目的地节点上被启动之前,基础高速缓存盘(“目的地盘”)可以被创建,其是在源节点处的虚拟盘(“源盘”)上的虚拟机的数据块的父代。差异盘可以也被创建,其是基础高速缓存盘的父代以隔离由目的地节点上的虚拟机的写入。在操作时,对于不是从差异盘或目的地盘提供的所有读取,所请求的数据可以从源盘提供的。所请求的数据可以然后被保存在目的地盘中,并且对应扇区可以被标记为只读。随着后拷贝迁移进展,所迁移的虚拟机的附加数据块可以响应于虚拟机请求和/或经由在目的地节点处的后台处理被取回并写入到目的地盘的扇区。最终,目的地盘将包含来自源节点的虚拟机的数据块的完整拷贝。在完成将数据块的完整拷贝转移到目的地节点处的目的地盘后,源盘可以作为目的地盘的父代被移除。任选地,差异盘和目的地盘也可以在特定时间段之后或根据其他合适的准则被合并成目的地节点处的动态虚拟盘。所公开的技术的若干实施例可以因此通过使对所迁移的虚拟机的数据块从源节点到目的地节点的转移流水线化来改进后拷贝迁移的效率。代替或除了预分页以外,所迁移的虚拟机的数据块可以以按需方式而被提取。例如,当目的地节点上的所迁移的虚拟机请求一个或多个数据块用于处理时,所请求的数据块可以从源盘被转移到目的地盘。因此,虚拟机的动态迁移的效率可以被改善。附图说明图1是根据所公开的技术的实施例的被配置用于虚拟机的快速实例化的分布式计算系统的示意图。图2A和图2B是图示了根据所公开的技术的实施例的图1中的分布式计算系统的硬件/软件部件的示意图,其中基础高速缓存盘被利用于促进虚拟机的动态迁移。图3A-3G是图示了根据所公开的技术的实施例的利用基础高速缓存盘用于促进虚拟机的动态迁移的各种操作阶段的示意图。图4A-4C是图示了根据所公开的技术的实施例的利用基础高速缓存盘用于促进虚拟机的动态迁移的附加操作阶段的示意图。图5和图6是图示了根据所公开的技术的实施例的与分布式计算系统中的虚拟机的有效动态迁移相关的过程的流程图。图7是适合于图1中的分布式计算系统的某些部件的计算设备。具体实施方式下面描述了用于分布式计算系统中的虚拟机的有效动态迁移的计算系统、设备、组件、模块、例程以及过程的某些实施例。在以下描述中,组件的具体细节被包括以提供对所公开的技术的某些实施例的透彻理解。相关领域技术人员可以还理解,所公开的技术可以具有附加实施例,或者可以在没有下面参考图1-7描述的实施例的细节中的若干细节的情况下被实践。...

【技术保护点】
1.一种分布式计算系统中虚拟机在经由计算机网络相互连接的节点上的动态迁移的方法,所述方法包括:/n在第一节点上挂起源虚拟机,在被挂起后,所述源虚拟机具有被包含于所述第一节点上的源虚拟盘中的多个数据块;/n在第二节点上实例化并启动目的地虚拟机;/n在所述第二节点处接收来自所启动的所述目的地虚拟机的请求,所述请求针对所述源虚拟机的所述多个数据块中的一个数据块;以及/n响应于接收到来自所启动的所述目的地虚拟机的所述请求,/n经由所述计算机网络,从所述第一节点的所述源虚拟盘取回所请求的所述数据块,所述源虚拟盘是所启动的所述目的地虚拟机的基础高速缓存盘的父代;/n将所取回的数据块写入到所述基础高速缓存盘的一个或多个空扇区;/n在完成写入所述所取回的数据块后,将包含所写入的数据块的一个或多个扇区在所述基础高速缓存盘上标记为只读;以及/n从所述基础高速缓存盘向所述目的地虚拟机提供所述所取回的数据块的拷贝,由此使能所述目的地虚拟机的操作而无需等待取回所述源虚拟机的其他数据块。/n

【技术特征摘要】
【国外来华专利技术】20180307 US 15/914,2041.一种分布式计算系统中虚拟机在经由计算机网络相互连接的节点上的动态迁移的方法,所述方法包括:
在第一节点上挂起源虚拟机,在被挂起后,所述源虚拟机具有被包含于所述第一节点上的源虚拟盘中的多个数据块;
在第二节点上实例化并启动目的地虚拟机;
在所述第二节点处接收来自所启动的所述目的地虚拟机的请求,所述请求针对所述源虚拟机的所述多个数据块中的一个数据块;以及
响应于接收到来自所启动的所述目的地虚拟机的所述请求,
经由所述计算机网络,从所述第一节点的所述源虚拟盘取回所请求的所述数据块,所述源虚拟盘是所启动的所述目的地虚拟机的基础高速缓存盘的父代;
将所取回的数据块写入到所述基础高速缓存盘的一个或多个空扇区;
在完成写入所述所取回的数据块后,将包含所写入的数据块的一个或多个扇区在所述基础高速缓存盘上标记为只读;以及
从所述基础高速缓存盘向所述目的地虚拟机提供所述所取回的数据块的拷贝,由此使能所述目的地虚拟机的操作而无需等待取回所述源虚拟机的其他数据块。


2.根据权利要求1所述的方法,其中所述目的地虚拟机包括虚拟盘,所述虚拟盘具有作为父代的所述基础高速缓存盘和作为所述基础高速缓存盘的子代的差异盘,并且其中所述方法还包括:
响应于接收到针对所述数据块的所述请求,
确定所述所请求的数据块在所述差异盘处是否可获得;以及
响应于确定所述所请求的数据块在所述差异盘处不可获得,确定所述第二节点上的所述基础高速缓存盘是否包含所述所请求的数据块;以及
响应于确定所述基础高速缓存盘不包含所述所请求的数据块,执行取回、写入和标记操作。


3.根据权利要求1所述的方法,其中所述目的地虚拟机包括虚拟盘,所述虚拟盘具有作为父代的所述基础高速缓存盘和作为所述基础高速缓存盘的子代的差异盘,并且其中所述方法还包括:
响应于接收到针对数据块的所述请求,
确定所述所请求的数据块在所述差异盘处是否可获得;以及
响应于确定所述所请求的数据块在所述差异盘处可获得,响应于所接收的所述请求而从所述差异盘提供所述数据块。


4.根据权利要求1所述的方法,其中所述目的地虚拟机包括虚拟盘,所述虚拟盘具有作为父代的所述基础高速缓存盘和作为所述基础高速缓存盘的子代的差异盘,并且其中所述方法还包括:
响应于接收到针对数据块的所述请求,
确定所述所请求的数据块在所述差异盘处是否可获得;
响应于确定所述所请求的数据块在所述差异盘处不可获得,确定所述第二节点上的所述基础高速缓存盘是否包含所述所请求的数据块;以及
响应于确定所述基础高速缓存盘包含所述所请求的数据块,响应于所接收的所述请求而从所述基础高速缓存盘提供所述数据块,而无需从所述第一节点的所述源虚拟盘取回所述数据块。


5.根据权利要求1所述的方法,其中所述目的地虚拟机包括虚拟盘,所述虚拟盘具有作为父代的所述基础高速缓存盘和作为所述基础高速缓存盘的子代的差异盘...

【专利技术属性】
技术研发人员:N·巴德S·库玛M·沃拉A·米塔尔
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1