推测性虚拟机执行制造技术

技术编号:19268193 阅读:18 留言:0更新日期:2018-10-27 05:01
一种方法包括将访客虚拟机(200)从迁移源主机(110,110a)复制后迁移到迁移目标主机(110,110b),在迁移目标主机上执行访客虚拟机的指令流,以及由迁移目标主机确定访客虚拟机何时遇到页面错误(240)。当访客虚拟机遇到页面错误时,该方法包括从迁移源主机请求非当前页面(230,230a)以在迁移目标主机上加载,并且在仿真器(250)上仿真访客虚拟机的指令流的继续执行。该方法还包括由仿真器从所仿真的指令流的继续执行识别对未来页面(230,230b)的未来页面引用(220),并且与未非当前页请求并行地,从迁移源主机请求未来页面。

【技术实现步骤摘要】
【国外来华专利技术】推测性虚拟机执行
本公开涉及推测性虚拟机执行。
技术介绍
Web服务可以在服务器上操作虚拟机。每个服务器可以托管存在并且操作为服务器内的独立机器的多个虚拟机。此外,每个虚拟机可以包含一个或多个虚拟中央处理单元(vCPU)。当服务器由于其他原因而需要维护或退化时,可以将虚拟机转移到不同的服务器。可以执行实时迁移以将虚拟机转移到不同的服务器。实时迁移通常静默或挂起当前服务器上的虚拟机,并且将虚拟机复制或转移到不同的服务器。然后,不同的服务器恢复虚拟机并且继续操作。实时迁移要求在进行复制或转移的同时,静默或挂起虚拟机的操作。由静默或挂起虚拟机而产生的延迟对于虚拟机操作是不可接受的。因此,期望快速且不停机地将虚拟机转移到另一个服务器。
技术实现思路
本公开的一个方面提供一种用于推测性VM执行的方法。该方法包括将访客虚拟机从迁移源主机复制后迁移到迁移目标主机。访客虚拟机具有指令的指令流。该方法进一步包括在迁移目标主机上执行访客虚拟机的指令流,以及迁移目标主机确定访客虚拟机何时遇到页面错误。当访客虚拟机遇到对非当前页面的指令流中的页面引用的页面错误时,访客虚拟机停止执行指令流。非当前页面驻留在迁移源主机上,而不是驻留在迁移目标主机上。当访客虚拟机遇到页面错误时,该方法包括由迁移目标主机从迁移源主机请求非当前页面,以在迁移目标主机上加载;以及在迁移目标主机上执行或与迁移目标主机通信的仿真器上仿真访客虚拟机的指令流的继续执行。该方法还包括由仿真器从所仿真的指令流的继续执行识别对未来页面的未来页面引用,以及与非当前页面请求并行地,由迁移目标主机从迁移源主机请求未来页面,以便在迁移目标主机上加载非当前页面同时,将未来页面预取到迁移目标主机。本公开的实施方式可以包括一个或多个下述可选特征。在一些实施方式中,该方法包括当识别未来页面引用时,从迁移源主机请求未来页面。在仿真访客虚拟机的指令流的继续执行的同时,该方法搁置取决于非当前页面的加载值的指令,允许仿真器识别除未来页面错误外的未来页面引用。迁移目标主机可以包括一个或多个计算设备;以及与一个或多个计算设备通信的一个或多个存储器主机。一个或多个存储器主机存储页面。该方法还可以包括基于未来页面引用和非当前页面之间的关系,识别未来页面引用。该关系可以包括父页面与一个或多个子页面之间的页面导航映射。在一些示例中,识别未来页面引用包括在与所识别的未来页面引用相关联的至少一个指令中,识别至少一个附加的未来页面引用。该方法还包括当非当前页面已经被递送到迁移目标主机时,由仿真器终止仿真指令流的继续执行。该方法进一步包括当非当前页面驻留在迁移目标主机上时,在迁移目标主机上继续执行访客虚拟机的指令流。从所仿真的对指令流的继续执行中识别未来页面引用进一步可以包括识别所识别的未来页面引用的未来页面地址。本公开的另一方面提供一种迁移目标主机,包括数据处理硬件,以及与数据处理硬件通信的存储器硬件。存储器硬件存储指令,指令当在数据处理硬件上被执行时,使得数据处理硬件执行操作。操作包括将访客虚拟机从迁移源主机复制后迁移到存储器硬件。访客虚拟机具有指令的指令流。操作进一步包括执行访客虚拟机的指令流以及确定访客虚拟机何时遇到页面错误。当访客虚拟机遇到对非当前页面的指令流中的页面引用的页面错误时,访客虚拟机停止执行指令流,非当前页面驻留在迁移源主机上,而不是驻留在迁移目标主机的存储器硬件上。当访客虚拟机遇到页面错误时,操作包括从迁移源主机请求非当前页面,以在迁移目标主机的存储器硬件上加载;以及在数据处理硬件上执行或与迁移目标主机通信的仿真器上仿真访客虚拟机的指令流的继续执行。操作还包括由仿真器从所仿真的指令流的继续执行识别对未来页面的未来页面引用,以及与非当前页面请求并行地,从迁移源主机请求未来页面,以便在迁移目标主机的存储器硬件上加载非当前页面同时,将未来页面预取到迁移目标主机的存储器硬件。该方法可以包括一个或多个下述可选特征。在一些实施方式中,操作包括当识别相应的未来页面引用时,从迁移源主机请求未来页面。操作还可以包括在仿真访客虚拟机的指令流的继续执行的同时,搁置取决于非当前页面的加载值的指令,允许仿真器识别除未来页面错误外的未来页面引用。存储器硬件可以进一步包括与数据处理硬件通信的一个或多个存储器主机,一个或多个存储器主机存储页面。在一些示例中,操作包括基于未来页面引用和非当前页面之间的关系,识别未来页面引用。该关系可以包括父页面与一个或多个子页面之间的页面导航映射。在一些实施方式中,识别未来页面引用的操作包括在与所识别的未来页面引用相关联的至少一个指令中,识别至少未来的一个页面引用。操作还可以包括当非当前页面已经被递送到迁移目标主机的存储器硬件时,仿真器终止仿真指令流的继续执行。操作可以进一步包括当非当前页面驻留在迁移目标主机的存储器硬件上时,继续执行访客虚拟机的指令流。从所仿真的指令流的继续执行中识别未来页面引用可以进一步包括识别所识别的未来页面引用的未来页面地址。在附图和下文的描述中阐述了本公开的一个或多个实施方式的细节。其他方面、特征和优点将从描述和附图以及权利要求书中变得显而易见。附图说明图1是具有存储器主机的分布式系统的示意图。图2A是从迁移源主机转移到迁移目标主机的虚拟机的示意图。图2B是在从迁移源主机转移到迁移目标主机的过程中的虚拟机的示意图。图2C是在从迁移源主机转移到迁移目标主机并且检索页面的过程中的虚拟机的示意图。图2D是在所请求的页面已经从迁移源主机转移到迁移目标主机之后的虚拟机的示意图。图3是用于推测性虚拟机执行的方法的操作的示例性方案。图4是可以为用于实现本文档中所述的系统和方法的主机的示例性计算设备的示意图。各附图中的相同附图标记表示相同的元件。具体实施方式在使用复制后迁移,将虚拟机(例如,访客vCPU)从迁移源主机迁移到迁移目标主机的同时,在访客vCPU静默时,仅物理静态和最小动态(例如,寄存器状态)转移。因此,当虚拟机在迁移目标主机上恢复时,访客页面引用会导致非当前错误(因为在该新主机-迁移目标主机上还未加载访客页面)。当访客vCPU遇到非当前页面错误时,访客vCPU停止执行指令流,同时从迁移源主机请求非当前页面并且等待迁移目标主机加载非当前页面。为了满足/补救该错误,迁移目标主机请求按需将页面从迁移源传送到迁移目标。当访客vCPU从非当前页面错误停止时,仿真器可以由访客vCPU继续执行指令流,以与非当前页面并行地,从指令流中提取未来页面引用,并且当被发现时,从迁移源主机请求所提取的未来页面引用——以便在迁移目标主机上加载非当前页面的同时,将所识别的页面引用预取到迁移目标主机。图1是具有服务器或主机110的分布式系统100的示意图。一个或多个服务器或主机110,110a,110b…110n中的每一个包括数据处理硬件112(例如,一个或多个计算机处理器)以及与数据处理硬件112通信的存储器硬件130。每个主机110包括被配置为与其他主机110或经由网络140(例如,经由互联网),与一个或多个客户端120通信的网络接口连接(NIC)116。在一些实施方式中,一个或多个主机110通过执行存储在相应的存储器硬件130中的相应的指令210,提供虚拟机200。指令210可以本文档来自技高网...

【技术保护点】
1.一种方法(300),包括:将访客虚拟机(200)从迁移源主机(110,110a)复制后迁移到迁移目标主机(110,110b),所述访客虚拟机(200)具有指令(210,212)的指令流;在所述迁移目标主机(110,110b)上执行所述访客虚拟机(200)的所述指令流,当所述访客虚拟机(200)遇到对非当前页面(230,230a)的所述指令流中的页面引用(220)的页面错误(240)时,所述访客虚拟机(200)停止所述指令流的执行,所述非当前页面(230,230a)驻留在所述迁移源主机(110,110a)上,而不是驻留在所述迁移目标主机(110,110b)上;由所述迁移目标主机(110,110b)确定所述访客虚拟机(200)何时遇到所述页面错误(240);以及当所述访客虚拟机(200)遇到所述页面错误(240)时:由所述迁移目标主机(110,110b)从所述迁移源主机(110,110a)请求所述非当前页面(230,230a),以在所述迁移目标主机(110,110b)上加载;于在所述迁移目标主机(110,110b)上执行或与所述迁移目标主机(110,110b)通信的仿真器(250)上仿真所述访客虚拟机(200)的所述指令流的继续执行;由所述仿真器(250)从所仿真的所述指令流的继续执行识别对未来页面(230,230b)的未来页面引用(220);以及与对所述非当前页面(230,230a)的所述非当前页面请求(242)并行地,由所述迁移目标主机(110,110b)从所述迁移源主机(110,110a)请求与所识别的未来页面引用(220)相对应的所述未来页面(230,230b),以便在所述迁移目标主机(110,110a)上加载所述非当前页面(230,230a)的同时,将所述未来页面(230,230b)预取到所述迁移目标主机(110,110b)。...

【技术特征摘要】
【国外来华专利技术】2016.06.10 US 15/178,9371.一种方法(300),包括:将访客虚拟机(200)从迁移源主机(110,110a)复制后迁移到迁移目标主机(110,110b),所述访客虚拟机(200)具有指令(210,212)的指令流;在所述迁移目标主机(110,110b)上执行所述访客虚拟机(200)的所述指令流,当所述访客虚拟机(200)遇到对非当前页面(230,230a)的所述指令流中的页面引用(220)的页面错误(240)时,所述访客虚拟机(200)停止所述指令流的执行,所述非当前页面(230,230a)驻留在所述迁移源主机(110,110a)上,而不是驻留在所述迁移目标主机(110,110b)上;由所述迁移目标主机(110,110b)确定所述访客虚拟机(200)何时遇到所述页面错误(240);以及当所述访客虚拟机(200)遇到所述页面错误(240)时:由所述迁移目标主机(110,110b)从所述迁移源主机(110,110a)请求所述非当前页面(230,230a),以在所述迁移目标主机(110,110b)上加载;于在所述迁移目标主机(110,110b)上执行或与所述迁移目标主机(110,110b)通信的仿真器(250)上仿真所述访客虚拟机(200)的所述指令流的继续执行;由所述仿真器(250)从所仿真的所述指令流的继续执行识别对未来页面(230,230b)的未来页面引用(220);以及与对所述非当前页面(230,230a)的所述非当前页面请求(242)并行地,由所述迁移目标主机(110,110b)从所述迁移源主机(110,110a)请求与所识别的未来页面引用(220)相对应的所述未来页面(230,230b),以便在所述迁移目标主机(110,110a)上加载所述非当前页面(230,230a)的同时,将所述未来页面(230,230b)预取到所述迁移目标主机(110,110b)。2.如权利要求1所述的方法(300),进一步包括在所述未来页面引用(220)被识别时,从所述迁移源主机(110,110a)请求所述未来页面(230,230b)。3.如权利要求1或权利要求2所述的方法(300),进一步包括在仿真所述访客虚拟机(200)的所述指令流的所述继续执行的同时,搁置依赖于所述非当前页面(230,230a)的加载值的指令,允许所述仿真器(250)识别除未来页面错误(240)外的未来页面引用(220)。4.如权利要求1-3中任一项所述的方法(300),其中,所述迁移目标主机(110,110b)包括:一个或多个计算设备(400);以及与所述一个或多个计算设备(400)通信的一个或多个存储器主机,所述一个或多个存储器主机存储页面(230)。5.如权利要求1-4中任一项所述的方法(300),进一步包括基于所述未来页面引用(220)和所述非当前页面(230,230a)之间的关系,识别所述未来页面引用(220)。6.如权利要求5所述的方法(300),其中,所述关系包括父页面(230)与一个或多个子页面(230)之间的页面导航映射(260)。7.如权利要求1-6中任一项所述的方法(300),其中,识别所述未来页面引用(220)包括在与所识别的未来页面引用(220)相关联的至少一个指令(210,212)中,识别至少一个附加的未来页面引用(220)。8.如权利要求1-7中任一项所述的方法(300),进一步包括当所述非当前页面(230,230a)已经被递送到所述迁移目标主机(110,110b)时,由所述仿真器(250)终止所述指令流的所述继续执行的仿真。9.如权利要求8所述的方法(300),进一步包括当所述非当前页面(230,230a)驻留在所述迁移目标主机(110,110b)上时,在所述迁移目标主机(110,110b)上继续所述访客虚拟机(200)的所述指令流的执行。10.如权利要求1-9中任一项所述的方法(300),其中,从所仿真的所述指令流的继续执行中识别未来页面引用(220)进一步包括识别所识别的未来页面引用(220)的未来页面地址(232)。11.一种迁移目标主机(110,110b),包括:数据处理硬件(112);以及与所述数据处理硬件(112)通信的存储器硬件(130),所述存储器硬件(130)存储指令...

【专利技术属性】
技术研发人员:文卡特什·斯里尼瓦斯
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

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

1