CN109416644B - 用于虚拟机实时迁移的系统和方法 - Google Patents
用于虚拟机实时迁移的系统和方法 Download PDFInfo
- Publication number
- CN109416644B CN109416644B CN201780038965.1A CN201780038965A CN109416644B CN 109416644 B CN109416644 B CN 109416644B CN 201780038965 A CN201780038965 A CN 201780038965A CN 109416644 B CN109416644 B CN 109416644B
- Authority
- CN
- China
- Prior art keywords
- cache
- file
- application
- metadata
- host node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了用于VM在不同节点之间的实时迁移的系统和方法。该系统和方法利用热图和访问模式来确定从主机节点的高速缓存对文件和/或块的提取顺序以用于在目的地节点上重建高速缓存。该系统和方法能够跨崩溃保持主机节点的高速缓存,从而允许目的地节点从崩溃之后的主机节点上的高速缓存提取块和/或文件,而不是必须从原始源访问VM文件和/或块。因此,当与仅利用热图来确定提取顺序和/或不能够跨崩溃保持高速缓存的先前系统和方法相比较时,该系统和方法减少VM的迁移延时并在实时迁移期间释放网络带宽。
Description
背景技术
虚拟机(VM)实时迁移是使得运行中的VM(或正由一个或多个客户端设备利用的VM)能够在没有服务中断并且具有完全事务完整性的情况下在基于独立(存储)节点冗余阵列(RAIN)的架构中的不同主机或节点之间移动的技术。在VM实时迁移期间,VM的存储器首先通过网络连接被迁移或移动到不同节点,然后快速在原始主机或节点上挂起VM并且恢复VM在新节点上的使用。通常关键的是,保持迁移延时低以便保证在VM迁移期间的连续服务可用性。
正是关于这些和其他总体考虑做出了本文中公开的各方面。此外,尽管可以讨论相对具体的问题,但是应当理解,这些方面不应当限于解决在背景技术中或者在本公开内容中的其他地方标识的具体问题。
发明内容
总的来说,本公开总体上涉及用于VM在不同节点之间的实时迁移的系统和方法。更具体地,如本文所公开的系统和方法利用热图和访问模式来确定从主机节点的高速缓存对文件和/或块的提取顺序以用于在目的地节点上重建高速缓存。附加地,如本文所公开的系统和方法能够跨(across)崩溃保持主机节点的高速缓存,从而允许目的地节点从崩溃之后的主机节点上的高速缓存提取块和/或文件,而不是必须从原始源来访问VM文件和/或块。因此,当与仅利用热图来确定提取顺序和/或不能够跨崩溃保持高速缓存的先前系统和方法相比较时,如本文所公开的系统和方法减少实时迁移期间VM的迁移延时并在实时迁移期间释放网络带宽。
本公开的一个方面涉及一种用于在不同节点之间移动正在运行的VM的系统。该系统包括存储器和至少一个处理器。存储器编码计算机可执行指令,计算机可执行指令当由至少一个处理器执行时操作以:
从主机节点接收VM转移的指示;
从主机节点接收元数据;
确定元数据有效;
响应于确定元数据有效,分析所述热图并且分析访问模式;
利用文件路径从主机节点上的高速缓存提取文件;以及
用文件来重建高速缓存的至少部分。
元数据包括热图、到主机节点的文件路径、以及针对VM的访问模式。文件是基于热图鉴于访问模式而被提取的。另外,具有第一命中率的第一文件将基于访问模式在具有高于第一命中率的第二命中率的第二文件之前被提取。
本公开的另一方面涉及一种用于在不同节点之间移动正在运行的VM的方法。方法包括:
从主机节点接收VM转移的指示;
从主机节点接收元数据,其中元数据包括热图、到主机节点的文件路径、以及针对VM的访问模式;
确定元数据有效;
响应于确定元数据有效,分析热图并且分析访问模式;
利用文件路径从主机节点上的高速缓存提取块;以及
用块来重建高速缓存的至少部分。
块是基于热图和访问模式而被提取的。另外,具有第一命中率的第一块基于访问模式在具有高于第一命中率的第二命中率的第二块之前被提取。附加地,具有热的第三命中率的第三块基于访问模式不被提取。
本公开的又一方面涉及一种用于在不同节点之间移动正在运行的VM的系统。系统包括存储器和至少一个处理器。存储器编码计算机可执行指令,计算机可执行指令当由至少一个处理器执行时操作以:
从主机节点接收VM转移的指示;
从主机节点接收元数据,其中元数据包括热图、到主机节点的文件路径、以及针对VM的访问模式;
确定元数据是否有效;
响应于元数据无效的第一确定:
从原始源提取源文件;
响应于元数据有效的第二确定:
分析热图并且分析访问模式;
利用文件路径从主机节点上的高速缓存提取高速缓存文件;以及
用所提取的文件来重建高速缓存的至少部分。
另外,高速缓存文件的提取顺序是基于热图和访问模式的。附加地,具有第一命中率的第一高速缓存文件将基于访问模式在具有高于第一命中率的第二命中率的第二高速缓存文件之前被提取。
提供本发明内容从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本发明内容不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制要求保护的主题的范围。
附图说明
参考以下附图来描述非限制性且非穷举性实施例。
图1是图示根据本公开的方面的由客户端计算设备在基于RAIN的架构上对VM的使用的示意图。
图2是图示根据本公开的方面的在如图1所示的基于RAIN的架构上的VM的实时迁移的简化框图。
图3是图示根据本公开的方面的在如图2所示的实时迁移期间或之后由客户端计算设备从基于RAIN的架构上的不同节点对VM的使用的简化框图。
图4是图示根据本公开的方面的用于虚拟机在不同节点之间的实时迁移的方法的流程图。
图5是图示可以利用其来实践本公开的各个方面的计算设备的示例物理组件的框图。
图6A是可以利用其来实践本公开的各个方面的移动计算设备的简化框图。
图6B是可以利用其来实践本公开的各个方面的图6A中示出的移动计算设备的简化框图。
图7是可以利用其来实践本公开的各个方面的分布式计算系统的简化框图。
图8图示了可以利用其来实践本公开的各个方面的平板计算设备。
具体实施方式
在下文详细描述中,对附图进行引用,附图形成本文的一部分并且通过说明的方式在附图中示出了特定方面或示例。在不脱离本公开的精神或范围的情况下,这些方面可以被组合,其他方面可以被利用,并且可以做出结构改变。下面的详细描述因此不应在限制性的意义上来理解,并且本公开的范围由随附权利要求及其等价方案限定。
虚拟机(VM)实时迁移是使得运行中的VM能够在没有服务中断并且具有完全事务完整性的情况下在基于RAIN的架构中的不同主机或节点之间移动的技术。在VM实时迁移期间,VM的存储器首先通过网络连接被迁移或移动到新节点(本文中也称为目的地节点),然后快速在原始主机或节点上挂起VM并且恢复VM在新节点上的使用。通常关键的是,保持迁移延时低以便保证在VM迁移期间的连续服务可用性。
当前,响应于VM实时迁移,来自主机节点上的高速缓存的一组元数据被发送给目的地节点。该元数据指示VM的文件和/或块、文件和/或块的热图、和/或到主机节点的文件路径。基于该元数据,目的地节点可以提取这些块和文件并填充或重建针对VM的本地高速缓存。基本上,高速缓存的内容从主机节点被迁移到目的地节点。备选地,目的地节点可以从文件和/或块的原始源检索文件和/或块,原始源通常来自非易失性存储设备或介质。然而,数据从原始源的提取通常增加延时,从而损害VM的性能。另外,这些先前利用的用于实时迁移的系统和方法不能够在主机节点的崩溃中保持热节点的高速缓存。因此,在主机节点的崩溃后,整个高速缓存将必须利用来自原始源的文件和/或块来在目的地节点上被重建。
通过仅依赖于热图,目的地节点可以提取热的但当前不是目的地节点上的VM所需要的块或文件,从而增加延时并损害性能。另外,如果主机节点崩溃,则目的地节点上的整个高速缓存必须通过从原始源提取文件和/或块而被重建,从而增加了VM的迁移延时,损害VM性能。
如本文所公开的系统和方法涉及用于VM在不同节点之间的实时迁移的系统和方法。如本文所公开的系统和方法利用热图鉴于访问模式来确定文件和/或块从主机节点的提取顺序。附加地,如本文所公开的系统和方法能够跨崩溃保持主机节点的高速缓存,从而允许目的地节点从崩溃之后的主机节点上的高速缓存提取块和/或文件,而不是必须从原始源访问VM文件和/或块。因此,当与仅利用热图来确定提取顺序和/或不能够跨崩溃保持高速缓存的先前系统和方法相比较时,如本文所公开的系统和方法减少了实时迁移期间VM的迁移延时并在实时迁移期间释放了网络带宽。
本文所描述的系统和方法的减少迁移延时和网络带宽使用的能力改进虚拟机的性能,或者增加速度和/或改进由终端用户对虚拟机的使用。
图1-3图示了根据本公开的方面的由客户端计算设备104在基于RAIN的架构100上在实时迁移的不同阶段期间对VM的使用。在基本配置中,客户端计算设备104是具有输入元件和输出元件两者的计算机。客户端计算设备104可以是用于实现VM的任何合适的计算设备。例如,客户端计算设备104可以是移动电话、智能电话、平板计算机、平板电话、智能手表、可穿戴计算机、个人计算机、游戏系统、台式计算机、膝上型计算机、和/或等等。该列表仅是示例性的并且不应当被认为限制。用于运行VM的任何合适的客户端计算设备104可以被利用。客户端计算设备104由用户102利用。
在一些方面中,基于RAIN的架构100的节点114被实现在服务器计算设备上。服务器计算设备可以通过网络106将用于运行VM的数据传输到客户端计算设备104和/或从客户端计算设备104传输。在一些方面中,网络106是分布式计算网络,诸如互联网。在另外的方面中,基于RAIN的架构100的节点114被实现在多于一个的服务器计算设备(诸如多个服务器计算设备或者服务器计算设备的网络)上。
图1图示了根据本公开的方面的由客户端计算设备104从基于RAIN的架构100中的第一节点110对VM的使用。如在图1中提供的示例中所图示的第一节点110是正在托管或运行由客户端计算设备104利用的VM的主机节点。第一节点110通过利用存储于第一节点110上的VM高速缓存108中的文件和/或块来运行VM。VM高速缓存108在第一节点110上由第一高速缓存管理器112管理。响应于将VM实时转移到另一节点114的期望,第一节点110上的第一高速缓存管理器112将VM的实时转移的指示发送给第二节点120。附加地,第一节点110上的第一高速缓存管理器112将元数据发送给第二节点120。在一些方面中,第一高速缓存管理器112将元数据与实时转移的指示一起或者作为实时转移的指示的部分发送给第二节点120。在备选方面中,第一高速缓存管理器112在将VM的实时转移的指示发送给第二节点120之后将元数据发送给第二节点120。
因此,第二节点120变成目的地节点,因为第二节点120是用于VM的实时转移的目的地。图2图示了根据本公开的方面的在基于RAIN的架构100上VM从第一节点110(主机节点)向第二节点120(目的地节点)的实时迁移。第二节点120接收VM的实时转移的指示。第二节点120还从第一节点110接收元数据。
第二节点120包括第二高速缓存管理器122。第二高速缓存管理器122分析、读取和/或打开来自第一节点110的元数据。第二高速缓存管理器122确定元数据是否有效。在一些方面中,当元数据中的生成编号与第一节点110上的高速缓存生成编号匹配时,第二高速缓存管理器122确定元数据有效。在这些方面中,如果第二高速缓存管理器122确定元数据的生成编号与第一节点110上的高速缓存生成编号不匹配,则第二高速缓存管理器122确定元数据无效。
如果元数据由第二高速缓存管理器122确定为无效,则第二节点120从VM的原始源140提取文件和/或块。在一些方面中,VM的原始源140被存储于非易失性存储设备或介质上。在一些方面中,原始源140是节点114。在另外的方面中,原始源140是一个或多个服务器上的非易失性存储设备。在其他方面中,原始源140是一个或多个库或储存库103中的非易失性存储设备。
如果元数据由第二高速缓存管理器122确定为有效,则第二节点120上的第二高速缓存管理器122分析元数据和/或然后基于所分析的元数据从主机节点上的VM高速缓存108提取文件和/或块,主机节点在这方面是第一节点110。
如果第二高速缓存管理器122能够在主机节点停机的同时检测内容变化,则即使在主机节点上的崩溃之后,元数据也可以是有效的。例如,如果在崩溃期间文件或块由另一节点修改,则生成编号被取消(bump)以使在客户端处维持的高速缓存无效。在一些方面中,生成编号基于Oplock语义在对读数进行高速缓存之前在主机高速缓存上被标记。该高速缓存被保持在主机节点上的本地闪存中。如果文件或块不具有生成编号,则主机节点将存储新的生成编号。备选地,在这方面,主机节点将使用存储于文件或块中的生成编号。主机节点开始高速缓存,但是在处理第一次写入之前,生成编号将被改变(也更新第一节点110上的本地高速缓存)。跨崩溃保持VM高速缓存108帮助节省带宽并且还防止必须再一次从头重建高速缓存,其花费时间。如此,元数据与每个文件和/或块中的数据分离。
元数据包括到主机节点的文件路径、热图和针对VM的访问模式。文件路径向目的地节点上的高速缓存管理器提供用于到达主机节点上的VM高速缓存108的路径。
热图提供针对如在主机节点上利用的VM的每个文件或块的历史命中率。具有大量命中的块或文件被认为是热的,而具有很少命中的块或文件被认为是冷的。例如,具有5个或更少命中的文件或块可以被认为是冷的。然而,任何合适的命中阈值可以被用于确定块和/或文件是热的还是冷的,诸如20个命中、15个命中、10个命中、8个命中、7个命中、5个命中、4个命中、3个命中、2个命中、或1个命中或更少。每当文件或块由利用VM的客户端计算设备104访问或使用时,块或文件被给出命中,这些命中由主机节点监视并求和以生成所提供的热图。热图可以基于命中的数目来对文件和/或块进行排序。由此,在一些方面中,热图将命中优先级分配给文件和/或块中的每一个。因此,热图将较高命中优先级给予具有较高命中率的文件和/或块并且将较低命中优先级分配给具有较低命中率的文件和/或块。先前利用的用于VM的实时迁移的系统或方法通常将热图的优先级列表用作提取顺序。
如本文所利用的文件和/或块可以是一个或多个应用、应用的一个或多个文档、和/或由VM利用的任何其他组件。如本文所利用的文档是针对应用的任何保存的组件的通用术语,诸如针对文字处理应用的保存的文字文档、针对电子表格应用的保存的表、针对演示应用的保存的幻灯片等。尽管文件转移或块转移表示用于转移数据的两种不同的已知方式,但是如本文所利用的系统和方法可以利用文件转移和/或块转移来将数据转移到目的地节点。
访问模式提供什么文件和/或块当前正由运行于(一个或多个)客户端计算设备104上的VM利用的列表。附加地,访问模式基于当前利用的文件和/或块来提供什么文件和/或块可能接下来由运行于(一个或多个)客户端计算设备104上的VM利用的有序列表。如此,在一些方面中,访问模式将访问优先级分配给文件和/或块中的每一个。例如,如果VM当前正在访问文字处理应用,则文字处理应用的保存的文字文档更可能将要在电子表格应用和/或针对该电子表格应用的保存的表(或文档)之前被访问。换言之,访问模式提供处于当前使用中或者当前正由VM访问的文件和/或块的列表、以及基于当前使用的文件和/或块,哪些块和/或文件可能接下来由VM访问的有序列表。在另外的方面中,访问模式可以利用主机节点上的文件或块的过去使用或访问模式来帮助确定什么块或文件可能接下来由VM利用。例如,如果VM在运行在主机节点上时在访问电子表格应用时90%的时间访问了保存的电子表格A并且仅60%的时间访问了电子表格B,则当电子表格应用在目的地节点上的实时转移期间由VM利用时,该访问模式可以用于在访问列表上向电子表格A给予比电子表格B高的访问优先级。访问列表独立于热图。例如,电子表格应用,如在先前示例中利用的电子表格A和电子表格B可能均具有很低的命中率,但是因为电子表格应用当前由目的地节点上的VM机使用中,所以电子表格A和电子表格B在访问模式上被分配了很高的访问优先级。
第二高速缓存管理器122通过利用或者经由所提供的到主机节点(在这方面其是第一节点110)的文件路径来提取第一节点110上的VM高速缓存108上的文件和/或块。第二高速缓存管理器122基于热图鉴于访问模式来确定针对第一节点110上的VM高速缓存108上的文件和/或块的提取顺序。因此,第二高速缓存管理器122不是盲目地以最高命中率的顺序来提取文件和/或块,而是代替地利用热图和访问模式两者来确定针对块和/或文件的提取顺序。在一些方面中,提取顺序基于对由热图分配的命中优先级和由访问模式分配的访问优先级的分析来确定。附加地,在另外的方面中,第二高速缓存管理器122根据需要从存储于第一节点110上的VM高速缓存108提取文件或块。如此,在这些方面中,第二高速缓存管理器122可以不提取存储于第一节点110上的VM高速缓存108上的块和/或文件的全部。在备选的方面中,第二高速缓存管理器122可以提取存储于第一节点110上的VM高速缓存108上的块和/或文件的全部。
例如,具有第一命中率的第一文件或块可以基于访问模式在具有高于第一命中率的第二命中率的第二文件或块之前被提取。在该示例中,第一文件或块可以是针对当前正运行在VM上的第一应用的文档,并且第二文件可以是当前未正运行在VM上的第二应用。如此,第二高速缓存管理器122意识到相较于VM打开不同应用,VM更可能访问针对运行中的第一应用的保存的文档。在另一示例中,具有热的命中率的文件或块基于访问模式根本不被第二高速缓存管理器122提取。在该示例中,文件或块可能已经被访问了一百次,但是基于访问模式,第二高速缓存管理器122将意识到该热的文件或块在超过两年或另一显著时间内未被第一节点110上的客户端计算设备104访问或使用。如此,第二高速缓存管理器122将不提取该热的块或文件。因此,目的地节点的高速缓存管理器将基于在来自第一节点110的元数据中接收的热图和访问模式两者来确定文件和/或块的提取顺序。
除了热图之外对访问模式的使用允许目的地节点首先提取最相关的文件和/或节点,同时保留不太相关或不太需要的节点以用于稍后提取或根本不提取它们。当与不利用访问模式的先前实时迁移系统相比较时,该引导的提取顺序减少实时迁移延时并且改进VM性能。附加地,当与不利用访问模式的先前实时迁移系统相比较时,该引导的提取允许目的地节点的高速缓存管理器使用更少的带宽,因为主机文件和/或块中的全部不被立即提取或者根本不被提取。
目的地节点上的高速缓存管理器在目的地节点上重建VM高速缓存108的至少部分。在VM高速缓存108的至少部分已经在目的地节点上被重建或填充后,目的地节点上的高速缓存管理器就可以挂起在主机节点上对VM高速缓存108的使用。例如,图3图示了在第一节点110上的VM高速缓存108已经被挂起之后在第二节点120上对VM高速缓存108的使用。在这方面,第二高速缓存管理器122在第二节点120上重建VM高速缓存108的至少部分。在VM高速缓存108的至少部分已经在第二节点120上被重建或填充后,第二高速缓存管理器122就可以挂起第一节点110上对VM高速缓存108的使用。
尽管图1-图3图示了从第一节点110到第二节点120对VM的实时迁移,但是VM可以在基于RAIN的架构100上从任何主机节点被转移到具有其自身的高速缓存管理器(第N高速缓存管理器132)的任何其他节点(第N节点130)。如此,VM可以在基于RAIN的架构100上从第二节点120被实时迁移到另一第N节点130。在另外的实施例中,附加的VM可以如图1-图3中所图示的那样在基于RAIN的架构100上在第一节点110与第二节点120之间或者在任何节点114之间被实时迁移。
图4图示了概念性地图示用于在不同节点之间实时迁移虚拟机(VM)的方法400的一个示例的流程图。在一些方面中,方法400由如以上所描述的基于RAIN架构100的节点114执行。方法400提供用于实时迁移VM的方法,其基于所接收的热图和访问模式来确定针对文件或块的提取顺序。另外,方法400提供用于实时迁移VM的方法,其能够跨崩溃保持主机节点的VM高速缓存,从而允许目的地节点从崩溃之后的主机节点上的VM高速缓存提取块和/或文件,而不是必须从原始源访问文件和/或块。因此,当与仅利用热图来确定提取顺序和/或不能够跨崩溃保持高速缓存的先前方法相比较时,方法400减少在节点间的实时迁移期间VM的延时并使用更少的网络带宽。
在操作402处,从主机节点接收VM转移指示。在操作404处,从主机节点接收元数据。如以上所讨论的,元数据包括热图、到主机节点的文件路径、以及针对VM的访问模式。还如以上所讨论的,元数据可以是转移指示的一部分或者可以在转移指示之后被接收。
在操作406处,评价或分析元数据以确定元数据是否有效。如果操作406确定元数据有效,则执行操作408。如果操作406确定元数据无效,则执行操作412。在一些方面中,当元数据中的生成编号与主机节点上的高速缓存生成编号匹配时,操作406确定元数据有效。在这些方面中,如果操作406确定元数据的生成编号与主机节点上的高速缓存生成编号不匹配,则操作406确定元数据无效。
如果操作406能够在主机节点停机的同时检测内容变化,则即使在主机节点上的崩溃之后,元数据也可以是有效的。例如,如果文件或块由另一节点在崩溃期间修改,则生成编号被取消以使在客户端处维持的高速缓存无效。在一些方面中,生成编号基于Oplock语义(或其他类似的程序)在对读数进行高速缓存之前在主机高速缓存上被标记。该主机高速缓存被保持在主机节点上的本地闪存中。如果文件或块不具有生成编号,则主机节点将存储新的生成编号。备选地,在这方面中,主机节点将使用存储于文件或块中的生成编号。主机节点开始高速缓存,但是在处理第一次写入之前,生成编号将被改变(也更新第一节点上的本地高速缓存)。跨崩溃保持VM高速缓存帮助节省带宽并且还防止必须再一次从头重建高速缓存,其花费时间。如此,元数据与每个文件和/或块中的数据分离。
在操作412处,从原始源提取针对VM的文件或块。在一些方面中,VM的原始源被存储于非易失性存储设备上。在一些方面中,原始源上的块或文件被存储于一个或多个服务器上的非易失性存储设备中。在其他方面中,原始源140上的块和/或文件被存储于一个或多个库或储存库中的非易失性存储设备上。块和/或文件可以是以下中的一项或多项:应用、应用的一个或多个文档、或者可以由VM访问的任何其他合适的组件。
在操作408期间,分析热图和访问模式。基于在操作408处对访问模式和热图的分析来确定提取顺序。在一些方面中,提取顺序基于对由热图分配的命中优先级和由访问模式分配的访问优先级的分析来确定。提取顺序和访问模式可以在操作408处基于由运行中的VM针对文件或块的新访问请求而被更新。例如,访问模式可以响应于VM访问特定文件或块而被更新。访问模式的更新可以转而使提取顺序被相应地更新。
热图提供针对来自主机节点的VM的每个文件或块的历史命中率。具有大量命中的块或文件被认为是热的,而具有很少命中的块或文件被认为是冷的。如此,在一些方面中,热图将命中优先级分配给文件和/或块中的每一个或部分。因此,热图将较高命中优先级给予具有较高命中率的文件和/或块并且将较低命中优先级给予具有较低命中率的文件和/或块。
访问模式提供处于当前使用中或者当前正由VM访问的文件和/或块的列表、以及基于当前访问的文件和/或块哪些块和/或文件可能接下来由VM访问的有序列表。在另外的方面中,访问模式可以利用主机节点上的文件或块的过去访问模式来帮助确定什么块或文件可能接下来由VM访问。如此,在一些方面中,访问模式将访问优先级分配给文件和/或块中的每一个或部分。
在操作410处,利用文件路径从主机节点上的高速缓存提取文件或块。另外,在操作410处,基于热图鉴于访问模式或者换言之基于所确定的提取顺序来提取块。因为除了热图之外块或文件还基于访问路径被提取,所以在一些方面中,操作410可以基于访问模式在提取具有高于第一命中率的第二命中率的第二块之前提取具有第一命中率的第一块。例如,在这方面中,第一文件或块可以是针对当前正由VM访问的第一应用的文档,并且第二文件或块是当前未正由VM访问的第二应用。在附加的方面中,因为除了热图之外块或文件还基于访问路径被提取,所以操作410可以基于访问模式不提取具有热的第三命中率的第三块。在一些方面中,操作410根据需要来提取节点和/或块。如此,在一些方面中,操作410可以不从主机高速缓存提取块或文件的全部。
在操作414处,高速缓存的至少部分用提取的块或文件被重建或填充。另外,在操作414处,主机节点上的VM可以被挂起。
尽管以上描述的系统和方法关注于VM,但是所提出的热图和访问模式转移可以与其他应用(诸如结构化查询语言(SQL))一起利用。在VM的情况下,假定VM服务将会将高速缓存热图和访问模式转移到新机器。对于其他应用,应用可以转移高速缓存命中图和访问模式(诸如使用两个输入/输出控制:一个用于读取源上的热图和访问模式,并且另一个用于设置目的地上的热图和访问模式)。在备选的方面中,在故障转移由集群管理的情况下,集群可以获知什么文件属于该应用并且然后将热图和访问模式移动到新节点作为故障转移的部分。在另外的方面中,如以上所描述的、针对热图和访问模式的附加转移机制还可以由VM利用。
图5-图8和相关联的描述提供对本公开的方面可以被实践于其中的各种操作环境的讨论。然而,参考图5-图8而图示和讨论的设备和系统是为了示例和图示的目的,并不限制可以用于实践本文中描述的本公开的方面的大量计算设备配置。
图5是图示可以利用其来实施本公开内容的各方面的计算设备500的物理组件(例如,硬件)的框图。例如,高速缓存管理器501可以由计算设备500实现。在一些方面中,计算设备500是移动电话、智能电话、平板计算机、平板电话、智能手表、可穿戴计算机、个人计算机、台式计算机、游戏系统、膝上型计算机等。下面描述的计算设备组件可以包括针对高速缓存管理器501的计算机可执行指令,其可以被执行以采用如本文所公开的用于VM实时迁移的方法400。在一个基本配置中,计算设备500可以包括至少一个处理单元502和系统存储器504。取决于计算设备的配置和类型,系统存储器504可以包括但不限于易失性存储装置(例如,随机访问存储器)、非易失性存储装置(例如,只读存储器)、闪存或这样的存储器的任何组合。系统存储器504可以包括操作系统505和适合于运行软件应用520的一个或多个程序模块506。操作系统505例如可以适合于控制计算设备500的操作。另外,本公开的方面可以结合图形库、其他操作系统或任何其他应用程序来实践并且不限于任何特定应用或系统。该基本配置在图5中通过虚线508内的那些组件来图示。计算设备500可以具有附加的特征或功能。例如,计算设备500还可以包括附加的数据存储设备(可移除的和/或不可移除的),诸如,例如,磁盘、光盘或磁带。这样的附加存储在图5中通过可移除存储设备509和不可移除存储设备510图示。
如以上所阐述的,许多程序模块和数据文件可以被存储于系统存储器504中。当在处理单元502上运行时,程序模块506(例如,高速缓存管理器501)可以执行过程,包括但不限于执行如本文所描述的方法400。例如,处理单元502可以实现高速缓存管理器501。根据本公开的方面可以使用的并且具体地用于生成屏幕内容的其他程序模块可以包括数字助理应用、语音识别应用、电子邮件应用、社交联网应用、协同应用、企业管理应用、消息发送应用、文字处理应用、电子表格应用、数据库应用、演示应用、联系人应用、游戏应用、电子商务应用、电子商业应用、事务性应用、交换应用、设备控制应用、web接口应用、日历应用等。在一些方面中,高速缓存管理器501在实时迁移期间转移针对VM的以上提及的应用中的一个或多个。
另外,本公开的方面可以被实践于包括离散电子元件的电气电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中或者包含电子元件或微处理器的单个芯片上。例如,本公开的方面可以经由片上系统(SOC)来实践,其中图5中图示的组件中的每个组件或许多组件可以被集成到单个集成电路上。这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,其全部被集成(或“烧写”)到芯片衬底上作为单个集成电路。当经由SOC操作时,本文中参考客户端交换协议的能力描述的功能可以经由在单个集成电路(芯片)上与计算设备500的其他组件集成的专用逻辑操作。
本公开的方面还可以使用能够执行逻辑操作的其他技术来实践,逻辑操作诸如例如与(AND)、或(OR)和非(NOT),其他技术包括但不限于机械的、光学的、流体的以及量子的技术。另外,本公开的方面可以被实践于通用计算机内或者其他电路或系统中。
计算设备500还可以具有一个或多个输入设备512,诸如键盘、鼠标、笔、麦克风或者其他声音或语音输入设备、触摸或轻扫输入设备等。还可以包括(一个或多个)输出设备514,诸如显示器、扬声器、打印机等。前述设备是示例并且其他设备可以被使用。计算设备500可以包括允许与其他计算设备550的通信的一个或多个通信连接516。合适的通信连接516的示例包括但不限于RF发射器、接收器和/或收发器电路、通用串行总线(USB)、并行和/或串行端口。
如本文中所使用的术语计算机可读介质或存储介质可以包括计算机存储介质。计算机存储介质可以包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、或程序模块的信息的易失性介质和非易失性介质、可移除介质和不可移除介质。系统存储器504、可移除存储设备509、以及不可移除存储设备510均是计算机存储介质示例(例如,存储器存储)。计算机存储介质可以包括RAM、ROM、电可擦只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备、或者能够用于存储信息并且能够由计算设备500访问的任何其他制品。任何这样的计算机存储介质可以是计算设备500的部分。计算机存储介质不包括载波或者其他传播或经调制的数据信号。
通信介质可以由计算机可读介质、数据结构、程序模块或诸如载波或其他传输机制的经调制数据信号中的其他数据来实施并且包括任何信息递送介质。术语“经调制数据信号”可以描述具有以使得在信号中编码信息的方式设置或改变的一个或多个特性的信号。通过举例而非限制的方式,通信介质可以包括诸如有线网络或直接有线连接的有线介质以及诸如声学、射频(RF)、红外和其他无线介质的无线介质。
图6A和图6B图示了可以利用其来实践本公开的方面的移动计算设备600,例如移动电话、智能电话、平板计算机、平板电话、智能手表、可穿戴计算机、个人计算机、台式计算机、游戏系统、膝上型计算机等。参考图6A,图示了用于实现方面的移动计算设备600的一个方面。在一个基本配置中,移动计算设备600是具有输入元件和输出元件两者的手持计算机。移动计算设备600通常包括显示器605和允许用户将信息录入到移动计算设备600中的一个或多个输入按钮610。移动计算设备600的显示器605还可以用作输入设备(例如,触摸屏显示器)。
如果被包括,则可选的侧面输入元件615允许进一步的用户输入。侧面输入元件615可以是旋转开关、按钮或任何其他类型的手动输入元件。在备选方面中,移动计算设备600可以并入更多或更少的输入元件。例如,显示器605可以在一些方面中不是触摸屏。在又一备选方面中,移动计算设备600是便携式电话系统,诸如蜂窝电话。移动计算设备600还可以包括可选的小键盘635。可选的小键盘635可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。
除了与显示器605和/或小键盘635相关联的触摸屏输入设备之外或者代替与显示器605和/或小键盘635相关联的触摸屏输入设备,自然用户接口(NUI)可以被并入移动计算设备600中。如本文中所使用的,NUI包括使得用户能够与设备以“自然”的方式交互而不受由诸如鼠标、键盘、远程控件等的输入设备施加的人为约束的任何接口技术。NUI方法的示例包括依赖于语音识别、触摸和触笔识别、在屏幕上以及邻近屏幕的手势识别、空中手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势以及机器智能的那些。
在各种方面中,输出元件包括用于显示图形用户界面(GUI)的显示器605。在本文公开的方面中,各种用户信息的集合可以被显示在显示器605上。另外的输出元件可以包括视觉指示器620(例如,发光二极管)和/或音频换能器625(例如,扬声器)。在一些方面中,移动计算设备600并入用于向用户提供触觉反馈的振动换能器。在又一方面中,移动计算设备600并入用于将信号发送给外部设备或者从外部设备接收信号的输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、以及视频输出(例如,HDMI端口)。
图6B是图示了移动计算设备的一个方面的架构的框图。即,移动计算设备600可以并入系统(例如,架构)602以实现一些方面。在一个方面中,系统602被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息发送客户端、游戏、以及媒体客户端/播放器)的“智能电话”。在一些方面中,系统602被集成为计算设备,诸如集成个人数字助理(PDA)和无线电话。
一个或多个应用程序666和/或高速缓存管理器601运行在操作系统664上或者与操作系统664相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息发送程序等。在一些方面中,高速缓存管理器601在实时迁移期间转移这些其他程序。系统602还包括存储器662内的非易失性存储区域668。非易失性存储区域668可以用于在系统602关机的情况下存储不应当丢失的永久信息。应用程序666可以使用并存储非易失性存储区域668中的信息,诸如由电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)还驻存于系统602上并且被编程为与驻存于主机计算机上的对应同步应用交互,以保持存储于非易失性存储区域668中的信息与存储于主机计算机处的对应信息同步。如应当认识到的,其他应用可以被加载到存储器662中并且运行于移动计算设备600上。
系统602具有电源670,其可以被实现为一个或多个电池。电源670还可以包括外部功率源,诸如AC适配器或对电池进行补充或再充电的电力对接座。
系统602还可以包括执行发射和接收射频通信的功能的无线电672。无线电672支持经由通信载体或服务提供商在系统602与“外界”之间的无线连接性。到和来自无线电672的传输在操作系统664的控制下进行。换言之,由无线电672接收的通信可以经由操作系统664被散播到应用程序666,反之亦然。
视觉指示器620可以用于提供视觉通知,和/或音频接口674可以用于经由音频换能器625产生可听通知。在图示的方面中,视觉指示器620是发光二极管(LED),并且音频换能器625是扬声器。这些设备可以被直接地耦合到电源670,使得当被激活时,它们保持接通由通知机制指定的持续时间,即使处理器660和其他组件可能关闭以节省电池功率。LED可以被编程以无限期地保持接通直到用户采取动作来指示设备的接通状态。音频接口674用于将可听信号提供给用户并且从用户接收可听信号。例如,除了被耦合到音频换能器625之外,音频接口674还可以被耦合到麦克风以接收可听输入。系统602还可以包括使能板载相机630记录静态图像、视频流等的操作的视频接口676。
实现系统602的移动计算设备600可以具有附加的特征或功能。例如,移动计算设备600还可以包括附加的数据存储设备(可移除的和/或不可移除的),诸如磁盘、光盘或磁带。这样的附加存储在图6B中通过非易失性存储区域668图示。
由移动计算设备600生成或捕获并且经由系统602存储的数据/信息可以如以上所描述的那样被本地存储在移动计算设备600上,或者数据可以被存储在任何数量的存储介质上,存储介质可以由设备经由无线电672或经由移动计算设备600与关联于移动计算设备600的单独的计算设备(例如,在诸如互联网的分布式计算网络中的服务器计算机)之间的有线连接访问。如应当认识到的,这样的数据/信息可以经由移动计算设备600经由无线电672或者经由分布式计算网络来访问。类似地,这样的数据/信息可以根据公知的数据/信息转移和存储手段(包括电子邮件和协同数据/信息共享系统)容易地在计算设备之间转移以用于存储和使用。
图7图示了用于处理在计算系统处从远程源接收的数据的系统的架构的一个方面,远程源诸如通用计算设备704、平板计算机706或移动设备708,如以上所描述的。在服务器设备702处显示和/或利用的内容可以被存储于不同的通信信道中或以其他存储类型来存储。例如,各种文档可以使用目录服务722、web门户724、邮箱服务726、即时消息发送存储库728、和/或社交联网站点730来存储。在一些方面中,服务器702被配置为经由如图7中图示的网络715实现高速缓存管理器601。计算设备704的这些实施例中的任何可以从存储库716获得内容以在图形发源系统处被预处理、或者在接收计算系统处被后处理。
图8图示了可以执行本文中公开的一个或多个方面的示例性平板计算设备800。另外,本文中描述的方面和功能可以通过分布式系统(例如,基于云的计算系统)操作,其中应用功能、存储器、数据存储和检索以及各种处理功能可以通过诸如互联网或内联网的分布式计算网络而彼此远程地操作。用户接口和各种类型的信息可以经由板载计算设备显示器或经由与一个或多个计算设备相关联的远程显示单元而显示。例如,用户接口和各种类型的信息可以被显示在用户接口和各种类型的信息被投影到其上的墙壁表面上并且与之交互。与可以利用其来实践本发明的方面的许多计算设备的交互包括击键录入、触摸屏录入、语音或其他音频录入、手势录入等,在手势录入中相关联的计算设备被装备有用于捕获和解读用于控制计算设备的功能的用户手势的检测(例如,相机)功能。
在一些方面中,提供了一种用于在不同节点之间移动正在运行的VM的系统。系统包括存储器和至少一个处理器。存储器编码计算机可执行指令,计算机可执行指令当由至少一个处理器运行时操作以:
从主机节点接收VM转移的指示;
从主机节点接收元数据;
确定元数据有效;
响应于确定元数据有效,分析热图并且分析访问模式;
利用文件路径从主机节点上的高速缓存提取文件;以及
用文件来重建高速缓存的至少部分。
元数据包括热图、到主机节点的文件路径、以及针对VM的访问模式。文件是基于热图鉴于访问模式而被提取的。另外,具有第一命中率的第一文件将基于访问模式而在具有高于第一命中率的第二命中率的第二文件之前被提取。在一些方面中,具有热的第三命中率的第三文件基于访问模式不被提取。在其他的一些方面中,文件是应用或应用的文档。在附加的方面中,访问模式基于VM的当前文件使用来确定和将访问优先级分配给文件中的每个文件。在一些方面中,第一文件是针对当前正运行在VM上的第一应用的文档,并且第二文件是当前未运行在VM上的第二应用。热图可以提供针对来自主机节点的VM的每个文件的历史命中率,并且基于历史命中率来将命中优先级分配给文件中的每个文件。在其他的一些方面中,具有冷的命中率的第三文件可以被提取,同时具有热的命中率的第四文件不被提取。利用存储于元数据中的生成编号,高速缓存可以在主机节点的崩溃期间被保持并且可以被访问。在这些方面中,当生成编号与高速缓存生成编号匹配时,元数据有效。在另外的方面中,高速缓存从不被完全重建。系统可以是服务器和/或目的地节点。在一些方面中,文件是应用并且应用是:
数字助理应用;
语音识别应用;
电子邮件应用;
社交联网应用;
协同应用;
企业管理应用;
消息发送应用;
文字处理应用;
电子表格应用;
数据库应用;
演示应用;
联系人应用;
游戏应用;
电子商务应用;
电子商业应用;
事务性应用;
设备控制应用;
web接口应用;
交换应用;和/或
日历应用。
在其他的一些方面中,公开了一种用于在不同节点之间移动正在运行的VM的方法。方法包括:
从主机节点接收VM转移的指示;
从主机节点接收元数据,其中元数据包括热图、到主机节点的文件路径、以及针对VM的访问模式;
确定元数据有效;
响应于确定元数据有效,分析热图并且分析访问模式;
利用文件路径从主机节点上的高速缓存提取块;以及
用块来重建高速缓存的至少部分。
块是基于热图和访问模式而被提取的。另外,具有第一命中率的第一块基于访问模式而在具有高于第一命中率的第二命中率的第二块之前被提取。附加地,具有热的第三命中率的第三块基于访问模式不被提取。在一些方面中,块是应用、应用的文档、和/或文件。访问模式可以基于VM的当前文件使用来确定和将访问优先级分配给块中的每个块。热图可以提供针对来自主机节点的VM的每个块的历史命中率,并且基于历史命中率来将命中优先级分配给块中的每个块。在其他的一些方面中,具有冷的命中率的第四块被提取,同时具有热的命中率的第五块不被提取。利用存储于元数据中的生成编号,高速缓存可以在主机节点的崩溃期间被保持和访问。当元数据的生成编号与高速缓存生成编号匹配时,元数据可以有效。
在另外的方面中,公开了一种用于在不同节点之间移动正在运行的VM的系统。系统包括存储器和至少一个处理器。存储器编码计算机可执行指令,计算机可执行指令当由至少一个处理器执行时操作以:
从主机节点接收VM转移的指示;
从主机节点接收元数据,其中元数据包括热图、到主机节点的文件路径、以及针对VM的访问模式;
确定元数据是否有效;
响应于元数据无效的第一确定:
从原始源提取源文件;
响应于元数据有效的第二确定:
分析热图并且分析访问模式,
利用文件路径从主机节点上的高速缓存提取高速缓存文件;以及
用所提取的文件来重建高速缓存的至少部分。
另外,高速缓存文件的提取顺序基于热图和访问模式。附加地,具有第一命中率的第一高速缓存文件将基于访问模式而在具有高于第一命中率的第二命中率的第二高速缓存文件之前被提取。提取顺序可以基于通过热图而分配给每个文件的命中优先级和通过访问模式而分配给文件中的每个文件的访问优先级而被确定。利用存储于元数据中的生成编号,高速缓存可以在主机节点的崩溃期间被保持和访问。当生成编号与高速缓存生成编号匹配时,元数据可以有效。
例如,以上参考根据本公开的方面的方法、系统和计算机程序产品的框图和/或操作图示来描述本公开的实施例。在框中指出的功能/动作可以以与任何流程图中示出的不同的顺序来进行。例如,取决于涉及的功能/动作,连续示出的两个框实际上可以基本上同时地被执行,或者框可以有时以相反的顺序被执行。
本公开内容参考附图描述了本技术的一些实施例,其中描述了可能方面中的仅一些。然而,其他方面可以以许多不同形式来实施,并且本文中公开的具体实施例不应当被理解为限于本文中阐述的本公开内容的各种方面。相反,提供了这些示例性方面使得本公开内容将是透彻和完整的并且完整地将其他可能方面的范围传达给本领域技术人员。例如,本文中公开的各种实施例的方面可以被修改和/或组合而不偏离本公开内容的范围。
尽管在本文中描述了特定方面,但是本技术的范围不限于那些特定方面。本领域技术人员将意识到处于本技术的范围和精神内的其他方面或改进。因此,特定结构、动作或介质仅被公开为说明性方面。本技术的范围由随附权利要求及其中的任何等价方案限定。
Claims (20)
1.一种用于在不同节点之间移动运行的虚拟机(VM)的系统,所述系统包括:
至少一个处理器;以及
存储器,用于存储和编码计算机可执行指令,所述计算机可执行指令当由所述至少一个处理器执行时操作以:
在目的地节点处,从主机节点接收VM转移的指示;
在目的地节点处,从所述主机节点接收元数据,其中所述元数据包括热图、到所述主机节点的文件路径、以及针对所述VM的访问模式;
在所述主机节点停机的同时,确定所述元数据有效而无需访问所述VM的原始源;
响应于确定所述元数据有效,读取所述热图并且读取所述访问模式;
利用所述文件路径从所述主机节点上的高速缓存提取文件,
其中所述文件是基于所述热图鉴于所述访问模式而被提取的,并且
其中具有第一命中率的第一文件将基于所述访问模式而在具有高于所述第一命中率的第二命中率的第二文件之前,由所述目的地节点从所述高速缓存提取;以及
在所述目的地节点上,用所述文件来重建所述高速缓存的至少部分。
2.根据权利要求1所述的系统,其中具有热的第三命中率的第三文件基于所述访问模式不被提取。
3.根据权利要求1所述的系统,其中文件是应用或所述应用的文档。
4.根据权利要求1所述的系统,其中所述访问模式基于所述VM的当前文件使用来确定访问优先级和将所述访问优先级分配给所述文件中的每个文件。
5.根据权利要求1所述的系统,其中所述第一文件是针对当前运行在所述VM上的第一应用的文档,并且所述第二文件是当前未运行在所述VM上的第二应用。
6.根据权利要求1所述的系统,其中所述热图提供针对来自所述主机节点的所述VM的每个文件的历史命中率,并且基于所述历史命中率来将命中优先级分配给所述文件中的每个文件。
7.根据权利要求1所述的系统,其中具有冷的命中率的第三文件被提取,同时具有热的命中率的第四文件不被提取。
8.根据权利要求1所述的系统,其中利用存储于所述元数据中的生成编号,所述高速缓存在所述主机节点的崩溃期间被保持和访问,并且
其中当所述生成编号与高速缓存生成编号匹配时,所述元数据有效。
9.根据权利要求1所述的系统,其中所述高速缓存从不被完全重建。
10.根据权利要求1所述的系统,其中文件是应用,并且其中所述应用是以下中的至少一项:
数字助理应用;
语音识别应用;
电子邮件应用;
社交联网应用;
协同应用;
企业管理应用;
消息发送应用;
文字处理应用;
电子表格应用;
数据库应用;
演示应用;
联系人应用;
游戏应用;
电子商务应用;
电子商业应用;
事务性应用;
设备控制应用
web接口应用;
交换应用;或者
日历应用。
11.根据权利要求1所述的系统,其中当没有内容已经改变时确定所述元数据有效包括:将第一生成编号与第二生成编号进行比较,以及确定所述第一生成编号和所述第二生成编号是相同的。
12.一种用于虚拟机(VM)在不同节点之间的实时迁移的方法,所述方法包括:
在目的地节点处,从主机节点接收VM转移的指示;
在目的地节点处,从所述主机节点接收元数据,其中所述元数据包括热图、到所述主机节点的文件路径、以及针对所述VM的访问模式;
在所述主机节点停机的同时,确定所述元数据有效而无需访问所述VM的原始源;
响应于确定所述元数据有效,读取所述热图并且读取所述访问模式;
由所述目的地节点,利用文件路径从所述主机节点上的高速缓存提取块,
其中所述块是基于所述热图和所述访问模式而被提取的,并且
其中具有第一命中率的第一块基于所述访问模式在具有高于所述第一命中率的第二命中率的第二块之前,由所述目的地节点从所述高速缓存提取,并且
其中具有热的第三命中率的第三块基于所述访问模式而未由所述目的地节点从所述高速缓存提取;以及
在所述目的地节点上,用所述块来重建所述高速缓存的至少部分。
13.根据权利要求12所述的方法,其中块是以下中的一项或多项:应用,所述应用的文档,或者文件。
14.根据权利要求12所述的方法,其中所述访问模式基于所述VM的当前文件使用来确定访问优先级和将所述访问优先级分配给所述块中的每个块。
15.根据权利要求14所述的方法,其中所述热图提供针对来自所述主机节点的所述VM的每个块的历史命中率,并且基于所述历史命中率来将命中优先级分配给所述块中的每个块。
16.根据权利要求12所述的方法,其中具有冷的命中率的第四块被提取,同时具有热的命中率的第五块不被提取。
17.根据权利要求12所述的方法,其中利用存储于所述元数据中的生成编号,所述高速缓存在所述主机节点的崩溃期间被保持和访问,并且
其中当所述元数据的所述生成编号与高速缓存生成编号匹配时,所述元数据有效。
18.一种用于虚拟机(VM)在不同节点之间的实时迁移的系统,所述系统包括:
至少一个处理器;以及
存储器,用于存储和编码计算机可执行指令,所述计算机可执行指令当由所述至少一个处理器执行时操作以:
在目的地节点处,从主机节点接收VM转移的指示;
在目的地节点处,从所述主机节点上的高速缓存接收元数据,其中所述元数据包括热图、到所述主机节点的文件路径、以及针对所述VM的访问模式;
确定所述元数据是否有效;
响应于基于在所述主机节点停机的同时检测到对所述高速缓存的内容变化的、来自所述高速缓存的所述元数据有效的第一确定:
由所述目的地节点读取所述热图并且读取所述访问模式;
由所述目的地节点,利用所述文件路径从所述主机节点上的高速缓存提取高速缓存文件,
其中所述高速缓存文件的提取顺序基于所述热图和所述访问模式,并且
其中具有第一命中率的第一高速缓存文件将基于所述访问模式而在具有高于所述第一命中率的第二命中率的第二高速缓存文件之前,由所述目的地节点从所述高速缓存提取;以及
在所述目的地节点处,用所提取的文件来重建所述高速缓存的至少部分。
19.根据权利要求18所述的系统,其中所述提取顺序基于通过所述热图而分配给每个文件的命中优先级和通过所述访问模式而分配给所述文件中的每个文件的访问优先级而被确定。
20.根据权利要求18所述的系统,其中利用存储于所述元数据中的生成编号,所述高速缓存在所述主机节点的崩溃期间被保持和访问,并且
其中当所述生成编号与高速缓存生成编号匹配时,所述元数据有效。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/199,228 US10678578B2 (en) | 2016-06-30 | 2016-06-30 | Systems and methods for live migration of a virtual machine based on heat map and access pattern |
US15/199,228 | 2016-06-30 | ||
PCT/US2017/039356 WO2018005400A1 (en) | 2016-06-30 | 2017-06-27 | Systems and methods for virtual machine live migration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109416644A CN109416644A (zh) | 2019-03-01 |
CN109416644B true CN109416644B (zh) | 2021-06-04 |
Family
ID=59276920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780038965.1A Active CN109416644B (zh) | 2016-06-30 | 2017-06-27 | 用于虚拟机实时迁移的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10678578B2 (zh) |
EP (1) | EP3479230A1 (zh) |
CN (1) | CN109416644B (zh) |
WO (1) | WO2018005400A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678603B2 (en) * | 2016-09-01 | 2020-06-09 | Microsoft Technology Licensing, Llc | Resource oversubscription based on utilization patterns in computing systems |
US11726979B2 (en) | 2016-09-13 | 2023-08-15 | Oracle International Corporation | Determining a chronological order of transactions executed in relation to an object stored in a storage system |
US10860534B2 (en) | 2016-10-27 | 2020-12-08 | Oracle International Corporation | Executing a conditional command on an object stored in a storage system |
US10956051B2 (en) * | 2016-10-31 | 2021-03-23 | Oracle International Corporation | Data-packed storage containers for streamlined access and migration |
CN108459821B (zh) * | 2017-02-21 | 2022-11-18 | 中兴通讯股份有限公司 | 一种数据缓存的方法及装置 |
US10795715B2 (en) * | 2018-06-28 | 2020-10-06 | At&T Intellectual Property I, L.P. | Cloud oversubscription system |
US10958958B2 (en) * | 2018-08-21 | 2021-03-23 | International Business Machines Corporation | Intelligent updating of media data in a computing environment |
US10503543B1 (en) | 2019-02-04 | 2019-12-10 | Cohesity, Inc. | Hosting virtual machines on a secondary storage system |
US11106482B2 (en) | 2019-05-31 | 2021-08-31 | Microsoft Technology Licensing, Llc | Connectivity migration in a virtual execution system |
US11734038B1 (en) * | 2019-11-21 | 2023-08-22 | Amazon Technologies, Inc | Multiple simultaneous volume attachments for live migration between cloud regions and edge locations |
US11403134B2 (en) * | 2020-01-31 | 2022-08-02 | Hewlett Packard Enterprise Development Lp | Prioritizing migration of data associated with a stateful application based on data access patterns |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761566A (zh) * | 2011-04-26 | 2012-10-31 | 国际商业机器公司 | 迁移虚拟机的方法和装置 |
US8805951B1 (en) * | 2011-02-08 | 2014-08-12 | Emc Corporation | Virtual machines and cloud storage caching for cloud computing applications |
CN104115121A (zh) * | 2012-03-26 | 2014-10-22 | 甲骨文国际公司 | 在中间件机器环境中对虚拟机迁移提供可扩展的信令机制的系统和方法 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484208B1 (en) * | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
US7975108B1 (en) * | 2004-03-25 | 2011-07-05 | Brian Holscher | Request tracking data prefetcher apparatus |
US8055745B2 (en) * | 2004-06-01 | 2011-11-08 | Inmage Systems, Inc. | Methods and apparatus for accessing data from a primary data storage system for secondary storage |
US7434002B1 (en) * | 2006-04-24 | 2008-10-07 | Vmware, Inc. | Utilizing cache information to manage memory access and cache utilization |
US7500051B2 (en) | 2006-09-13 | 2009-03-03 | International Business Machines Corporation | Migration of partitioned persistent disk cache from one host to another |
US8599203B2 (en) * | 2007-12-20 | 2013-12-03 | Yahoo! Inc. | Systems and methods for presenting visualizations of media access patterns |
US8543998B2 (en) * | 2008-05-30 | 2013-09-24 | Oracle International Corporation | System and method for building virtual appliances using a repository metadata server and a dependency resolution service |
US8032707B2 (en) * | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US8185566B2 (en) | 2009-01-15 | 2012-05-22 | Microsoft Corporation | Client-based caching of remote files |
US8386731B2 (en) | 2009-09-14 | 2013-02-26 | Vmware, Inc. | Method and system for optimizing live migration of persistent data of virtual machine using disk I/O heuristics |
US9158788B2 (en) * | 2009-12-16 | 2015-10-13 | International Business Machines Corporation | Scalable caching of remote file data in a cluster file system |
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 |
US20110191522A1 (en) * | 2010-02-02 | 2011-08-04 | Condict Michael N | Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory |
US9613064B1 (en) * | 2010-05-03 | 2017-04-04 | Panzura, Inc. | Facilitating the recovery of a virtual machine using a distributed filesystem |
US8306950B2 (en) | 2010-08-26 | 2012-11-06 | International Business Machines Corporation | Managing data access requests after persistent snapshots |
US8468289B2 (en) * | 2010-10-22 | 2013-06-18 | International Business Machines Corporation | Dynamic memory affinity reallocation after partition migration |
US20120179874A1 (en) * | 2011-01-07 | 2012-07-12 | International Business Machines Corporation | Scalable cloud storage architecture |
US8495019B2 (en) * | 2011-03-08 | 2013-07-23 | Ca, Inc. | System and method for providing assured recovery and replication |
US10289684B2 (en) | 2011-05-03 | 2019-05-14 | Vmware, Inc. | Live migration of virtual machine persistent data using mirrored input-output operations |
US9075813B2 (en) | 2011-09-15 | 2015-07-07 | Red Hat, Inc. | Saving a snapshot of free space of a file system on persistent storage |
US9164676B2 (en) * | 2011-11-30 | 2015-10-20 | International Business Machines Corporation | Storing multi-stream non-linear access patterns in a flash based file-system |
US8930947B1 (en) | 2011-12-30 | 2015-01-06 | Emc Corporation | System and method for live migration of a virtual machine with dedicated cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
WO2013149343A1 (en) * | 2012-04-03 | 2013-10-10 | Gridcentric Inc. | Method and system for memory oversubscription for virtual machines |
US9690822B2 (en) * | 2012-05-09 | 2017-06-27 | Salesforce.Com, Inc. | System and method for metadata level validation of custom setup objects |
US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US10430391B2 (en) * | 2012-09-28 | 2019-10-01 | Oracle International Corporation | Techniques for activity tracking, data classification, and in database archiving |
US9977596B2 (en) * | 2012-12-27 | 2018-05-22 | Dropbox, Inc. | Predictive models of file access patterns by application and file type |
US9158673B2 (en) * | 2013-01-22 | 2015-10-13 | International Business Machines Corporation | Use of differing granularity heat maps for caching and migration |
US9274958B1 (en) | 2013-02-01 | 2016-03-01 | Parallels IP Holdings GmbH | System and method for cache management in systems that interface to cloud storage |
US9055119B2 (en) * | 2013-03-26 | 2015-06-09 | Vmware, Inc. | Method and system for VM-granular SSD/FLASH cache live migration |
US9213706B2 (en) * | 2013-06-13 | 2015-12-15 | DataGravity, Inc. | Live restore for a data intelligent storage system |
US9223706B2 (en) * | 2013-07-02 | 2015-12-29 | Infinidat Ltd. | System, method and a non-transitory computer readable medium for a pre-fetch operation |
JP6142727B2 (ja) * | 2013-08-12 | 2017-06-07 | 富士通株式会社 | データアクセス分析プログラム、データアクセス分析方法、及びデータアクセス分析装置 |
US9465669B2 (en) * | 2013-08-13 | 2016-10-11 | Vmware, Inc. | NUMA scheduling using inter-vCPU memory access estimation |
US20150058520A1 (en) * | 2013-08-22 | 2015-02-26 | International Business Machines Corporation | Detection of hot pages for partition migration |
WO2015045046A1 (ja) * | 2013-09-26 | 2015-04-02 | 株式会社日立製作所 | 計算機システムおよび計算機システムのメモリ割当調整方法 |
US9489389B2 (en) * | 2013-12-09 | 2016-11-08 | PernixData, Inc. | System and method for maintaining cache coherency |
US9354918B2 (en) * | 2014-02-10 | 2016-05-31 | International Business Machines Corporation | Migrating local cache state with a virtual machine |
US9285994B2 (en) * | 2014-06-05 | 2016-03-15 | International Business Machines Corporation | Block-level predictive data migration |
US20150363319A1 (en) * | 2014-06-12 | 2015-12-17 | Netapp, Inc. | Fast warm-up of host flash cache after node failover |
US9612964B2 (en) * | 2014-07-08 | 2017-04-04 | International Business Machines Corporation | Multi-tier file storage management using file access and cache profile information |
US9489239B2 (en) * | 2014-08-08 | 2016-11-08 | PernixData, Inc. | Systems and methods to manage tiered cache data storage |
US10318325B2 (en) * | 2015-01-07 | 2019-06-11 | International Business Machines Corporation | Host-side cache migration |
EP3262815B1 (en) * | 2015-02-24 | 2020-10-14 | Cisco Technology, Inc. | System and method for securing an enterprise computing environment |
US10397368B2 (en) * | 2015-06-25 | 2019-08-27 | International Business Machines Corporation | Data prefetching for large data systems |
US9904805B2 (en) * | 2015-09-23 | 2018-02-27 | Intel Corporation | Cryptographic cache lines for a trusted execution environment |
US20180089088A1 (en) * | 2016-09-27 | 2018-03-29 | Intel Corporation | Apparatus and method for persisting blocks of data and metadata in a non-volatile memory (nvm) cache |
-
2016
- 2016-06-30 US US15/199,228 patent/US10678578B2/en active Active
-
2017
- 2017-06-27 WO PCT/US2017/039356 patent/WO2018005400A1/en unknown
- 2017-06-27 CN CN201780038965.1A patent/CN109416644B/zh active Active
- 2017-06-27 EP EP17735361.2A patent/EP3479230A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805951B1 (en) * | 2011-02-08 | 2014-08-12 | Emc Corporation | Virtual machines and cloud storage caching for cloud computing applications |
CN102761566A (zh) * | 2011-04-26 | 2012-10-31 | 国际商业机器公司 | 迁移虚拟机的方法和装置 |
CN104115121A (zh) * | 2012-03-26 | 2014-10-22 | 甲骨文国际公司 | 在中间件机器环境中对虚拟机迁移提供可扩展的信令机制的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2018005400A1 (en) | 2018-01-04 |
EP3479230A1 (en) | 2019-05-08 |
US10678578B2 (en) | 2020-06-09 |
CN109416644A (zh) | 2019-03-01 |
US20180004560A1 (en) | 2018-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109416644B (zh) | 用于虚拟机实时迁移的系统和方法 | |
Abolfazli et al. | Rich mobile applications: genesis, taxonomy, and open issues | |
CN109219824B (zh) | 利用用户访问权限来自动共享文档 | |
US20180203839A1 (en) | Fast page loading in hybrid applications | |
CN109597568A (zh) | 一种数据存储方法、装置、终端设备及存储介质 | |
US10318618B2 (en) | Consistent views of partitioned data in eventually consistent systems | |
US20140365918A1 (en) | Incorporating external dynamic content into a whiteboard | |
KR20160127810A (ko) | 온스크린 아이템 선택 및 명확화를 위한 모델 기반 방식 | |
WO2017040436A1 (en) | Distributed server system for language understanding | |
JP2016520919A (ja) | プレースホルダを用いるファイル管理 | |
TW201502803A (zh) | 網路檔案存取協定上有效率的編程性記憶體存取 | |
TWI709862B (zh) | 用於預測性檔案快取及同步之技術 | |
WO2018044695A1 (en) | Document sharing via logical tagging | |
JP2016506564A (ja) | スワイプストローク入力及び連続的な手書き | |
WO2019099333A1 (en) | Optimized search result placement based on gestures with intent | |
CN111108487B (zh) | 管理程序直接存储器访问 | |
WO2019074587A1 (en) | SUGGESTED CONTEXTUAL AND HIERARCHICAL RESEARCH | |
KR102471319B1 (ko) | 입력 방식 편집기의 외부화된 실행 | |
US10133514B2 (en) | Flushless transactional layer | |
US9390076B2 (en) | Multi-part and single response image protocol | |
US11893205B2 (en) | Real-time gestures in shared electronic canvases | |
US11650748B1 (en) | Method of delayed execution of eBPF function in computational storage | |
CN114159797A (zh) | 一种文本处理方法、装置、计算机设备及存储介质 | |
CN118120212A (zh) | 一种文件去重方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |