CN111580933A - 一种基于硬件加速的虚拟机在线迁移方法 - Google Patents

一种基于硬件加速的虚拟机在线迁移方法 Download PDF

Info

Publication number
CN111580933A
CN111580933A CN202010398980.0A CN202010398980A CN111580933A CN 111580933 A CN111580933 A CN 111580933A CN 202010398980 A CN202010398980 A CN 202010398980A CN 111580933 A CN111580933 A CN 111580933A
Authority
CN
China
Prior art keywords
memory
working set
virtual machine
disk
migration
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.)
Granted
Application number
CN202010398980.0A
Other languages
English (en)
Other versions
CN111580933B (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN202010398980.0A priority Critical patent/CN111580933B/zh
Publication of CN111580933A publication Critical patent/CN111580933A/zh
Application granted granted Critical
Publication of CN111580933B publication Critical patent/CN111580933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于硬件加速的虚拟机在线迁移方法,该方法包括:首先,分析不同负载对不同迁移模型的性能影响,利用得到的结论提出了对迁移性能进行优化的两个基本策略,即针对不同的负载使用不同的迁移模型的策略和负载感知的预拷贝迁移策略,在此之上提出了一套完整的高效的、能根据工作集负载类型自适应地选择有利的迁移模型的虚拟机迁移方法;其次,提出了在负载分析中使用硬件虚拟化扩展功能进行加速,实现更高效的内存写入访问序列跟踪;再次,提出了开销和性能更优的CLOCK+算法来预测内存写入工作集。本发明通过准确地感知并识别上层负载的工作集信息,并根据工作集负载类型,自适应地选择有利的迁移模型,从而尽可能地减少迁移中性能影响。

Description

一种基于硬件加速的虚拟机在线迁移方法
技术领域
本发明属于数据中心管理领域,特别涉及一种基于硬件加速的虚拟机在线迁移方法。
背景技术
虚拟机迁移技术主要指将虚拟机及其运行状态从一台计算节点传输到另一台计算节点,保证虚拟机在源计算节点因故障或维护而停机时可以在目的端继续提供服务。虚拟机迁移技术主要包含停机迁移和在线迁移两种技术,由于虚拟机停机迁移会导致长时间的服务中断,因此工业界和学术界主要采用虚拟机在线迁移机制。
在虚拟机在线迁移方面,基于预拷贝(pre-copy)的方法是目前是最主流的方案来实现在线迁移。该方法预先复制并传输虚拟机运行状态,并在将所有虚拟机状态复制并传输到目标主机时再切换至目标虚拟机运行。在状态传输过程中,由于原虚拟机还保持运行,所以已经传输至目的端的某些数据可能被更新(变脏,get dirty),从而导致源状态和目标状态之间的不一致。因此,该方法记录所有脏数据并重新传输。然而,传输脏数据时又将产生新的脏数据,于是该方法将一轮一轮迭代传输脏数据直到剩余的脏数据足够少。最后在脏数据足够少时,源端虚拟机停止运行并将剩余的脏数据复制到目的端然后在目的端启动虚拟机。
然而,正因为迭代拷贝需要不断传输上一阶段修改过的数据,所以在写密集型场景下,尤其是写页面的速度大于传输速度时,会导致脏页面的数量下降速度很慢甚至上升,使得迁移过程中的迭代传输时间过长甚至迁移失败。因此,如何优化在线迁移效率成为一个重要且具有挑战性的问题。
以下文献提供了可供参考的优化虚拟机在线迁移效率的技术解决方案:
文献1.虚拟机在线迁移方法、装置及系统-201610793779.6
文献2.虚拟机在线迁移方法与系统-201310571172.X
文献3.Sahni S,Varma V.A hybrid approach to live migration of virtualmachines[C].2012IEEE International Conference on Cloud Computing in EmergingMarkets(CCEM).IEEE,2012:1-5.
文献4.Mingsong S,Wenwen R.Improvement on dynamic migration technologyof virtual machine based on Xen[C].Ifost.IEEE,2013,2:124-127.
然而,上述方法存在许多不足之处:
1.以上全部方法,在迁移过程中跟踪内存历史访问时都未采用硬件加速(只有跟踪内存访问才能确保迁移过程中源端被修改的数据可以重新传输到目的端),未采用硬件加速将引入大量虚拟机退出事件(VM-exit),这将为客户虚拟机带来了大量开销。
2.文献1,文献2,只采用了预拷贝的方法,一方面将产生更多的无效传输和带宽消耗,另一方面将造成更长迁移时间,影响迁移可靠性。
3.在预拷贝方法中,文献1,文献2采用队列来维护系统访问热数据(工作集数据),一方面这种队列的运行时维护成本很高,将为客户虚拟机带来了大量开销;另一方面队列大小固定,无法弹性工作集的大小,限制了优化效果。
4.文献3提出了混合拷贝的技术,他们只进行一轮迭代预拷贝,之后便将虚拟机运行现场以及脏数据位图传输到目标主机并切换至目标虚拟机运行。当目的端虚拟机访问到脏数据时,便从源虚拟机中拉取数据,直到迁移结束。该方法虽然减少了脏数据重传,但该方法只简单混合了预拷贝技术与后拷贝技术,未考虑不同负载对不同拷贝方法体现的性能优劣势,因此在迁移后的初期从源主机大量请求数据,从而给虚拟机应用带来较高的延迟和严重性能下降。
5.文献4使用隐马尔可夫模型(HMM)来实时预测每个内存页面变脏的概率,然而实时训练HMM将引起大量额外开销。
发明内容
本发明提供了一种基于硬件加速的虚拟机在线迁移方法。首先,分析不同负载对不同迁移模型的性能影响,利用得到的结论提出了对迁移性能进行优化的两个基本策略,即针对不同的负载使用不同的迁移模型的策略和负载感知的预拷贝迁移策略,在此之上提出了一套完整的高效的、能根据工作集负载类型自适应地选择有利的迁移模型的虚拟机迁移方法;其次,提出了在负载分析中使用硬件虚拟化扩展功能进行加速,实现更高效的内存写入访问序列跟踪;再次,提出了开销和性能更优的CLOCK+算法来预测内存写入工作集。
为达到上述目的,本发明采取如下技术方案来实现的:
一种基于硬件加速的虚拟机在线迁移方法,包括以下步骤:
步骤1:负载分析;
系统进行在线负载分析,该步骤将跟踪虚拟机内存和磁盘访问序列,并根据获取的数据预测磁盘读取工作集和内存写入工作集的补集,即内存读取工作集和内存冷区域;
步骤2:拷贝磁盘读取工作集;
当磁盘读取访问序列跟踪和预测磁盘读取工作集完成后,系统便开始执行此步骤;在此步骤中,传输步骤1中得到的磁盘读取工作集里的磁盘块拷贝磁盘读取工作集;在整个虚拟机迁移过程中,该磁盘读取工作集可能会变脏,方法会在位图中记录这些脏块,但在此步骤中不重新传输它们,将在后拷贝阶段将它们与其他磁盘块一起传输;
步骤3:拷贝内存读取工作集和内存冷区域;
这一步骤将拷贝内存读取工作集和内存冷页面;此外,还记录在此拷贝过程中变脏的内存页面;
步骤4:拷贝内存写入工作集;
在步骤3拷贝完内存读取工作集和内存冷页面之后,将开始拷贝内存写入工作集并在此过程中记录脏内存页;此外,还记录在此拷贝过程中变脏的内存页面;
这之后返回将返回步骤3再次执行复制内存读取工作集和内存冷区域的脏页面,执行步骤4复制内存写入工作集的脏页面,不断迭代;步骤3、步骤4这样的迭代过程将不断进行,直到满足步骤4的停止条件时,跳到步骤5;当满足任意一个停止条件即停止本步骤的执行:
1)剩余的内存脏数据能够在30ms内迁移完成;
2)预留的最长迁移时间已用完;
3)脏数据产生率已经开始大于传输速率;
步骤5:停机迁移;
此步骤中,暂停源端运行的虚拟机并将虚拟机CPU状态和剩余内存脏页面传输至目的端;同时,将设置虚拟专用网络隧道和动态域名服务,以便将流量和新连接重定向到目标主机;为确保源和目标之间的数据一致性,将把未传输的以及脏的磁盘块的位图传输到目标主机;
步骤6:拉取虚拟机状态;
步骤5结束后,将在目的端启动虚拟机;此时虚拟机中某些数据是脏的并且某些数据仍未同步到目的端,因此本步骤中拉取虚拟机的剩余状态,这就包括了磁盘读取工作集中的脏块和磁盘的其余部分;该过程将由后台复制和按需拉取两个并发线程处理,后台复制线程在后台保持静默地复制剩余的虚拟机状态,而按需拉取线程在目标端虚拟机需要访问某些数据时,将从源主机调用最新内容并填充相应的块;本步骤结束后,整个迁移过程成功,此时目标主机通知源主机销毁源VM。
本发明进一步的改进在于,步骤1的具体实现方法如下:
步骤1.1:磁盘读取访问序列跟踪;
在虚拟机监控器的磁盘IO模拟程序中直接记录磁盘的读写访问序列;
步骤1.2:预测磁盘读取工作集;
根据时间和空间局部性原理预测磁盘读取工作集的方法;考虑到空间局部性,利用文件系统结构的关联特点,将与被读取磁盘块相关联的所有块都添加到工作集中;考虑到时间局部性,利用重用距离算法来预测磁盘读取工作集;
步骤1.3:内存写入访问序列跟踪;
跟踪虚拟机内存写入序列;利用硬件虚拟化扩展功能进行加速的内存写操作跟踪方法,每当出现虚拟机对某客户机物理地址GPA的写入时,处理器将会把该GPA对应的EPT条目中的脏页标志位置1;同时,处理器还将把该GPA记录到一块事先预留的4KB大小的内存区域,记录512个地址时,日志已满事件将触发虚拟机退出事件,实现硬件加速追踪的效果;
步骤1.4:CLOCK+算法预测内存写入工作集;
使用CLOCK+算法预测内存写入工作集的补集和内存写入工作集;CLOCK+算法将内存的页面分为“冷”、“暖”、“热”三种状态,每次执行都将更新页面状态;步骤1.3每次执行得到的内存写入访问序列也将实时更新页面状态。
与现有技术相比,本发明提出了一种基于硬件加速的虚拟机在线迁移方法,该技术创新点主要体现在:
1.研究了不同虚拟机迁移模型(即预拷贝和后拷贝)在虚拟机不同负载类型(如磁盘写入,磁盘读取,内存写入和内存读取)下的性能表现。通过准确地感知并识别上层负载的工作集信息,并根据工作集负载类型,自适应地选择有利的迁移模型,从而尽可能地减少迁移中性能影响。
2.提出了硬件加速功能来跟踪内存脏数据。通过此功能,本系统消除了频繁陷入虚拟机监控器所带来的大量时间消耗,从而减少了客户虚拟机开销。
3.识别负载内存工作集信息时,采用了修改的CLOCK算法,其开销和性能均优于文献1,2,4中的相关技术。
附图说明
图1为整体框架示意图。
图2为负载分析阶段流程示意图。
图3为基于重用距离的工作集选择算法中重用距离示意图。
图4为基于重用距离的工作集选择算法工作示意图。
图5为启用高效内存写操作跟踪的配置。
图6为CLOCK+工作集选择算法工作示意图。
具体实施方式
为了更清楚地说明本发明的技术方案,下面结合附图和具体实施例对本发明一种基于硬件加速的虚拟机在线迁移方法进行详细描述。
本发明提供的一种基于硬件加速的虚拟机在线迁移方法,包括:
首先,针对不同虚拟机迁移模型(即预拷贝和后拷贝)在虚拟机不同负载类型(如磁盘写入,磁盘读取,内存写入和内存读取)下具有不同的性能表现这一特点,提出了能通过准确地感知并识别上层负载的工作集信息,并根据工作集负载类型自适应地选择有利的迁移模型的虚拟机在线迁移方法;其次,提出了利用硬件加速功能来跟踪内存脏数据的内存写入访问序列跟踪方法,通过此功能,本方法消除了频繁陷入虚拟机监控器所带来的大量时间消耗,从而大大降低该过程对客户虚拟机的性能开销;再次,识别负载内存工作集信息时,采用了修改的CLOCK算法,其开销和性能均优于现有虚拟机迁移中用到的识别内存工作集的方法。
根据对虚拟机迁移的影响,虚拟机的负载可以分为以下四种类型:磁盘写入,磁盘读取,内存写入和内存读取。不同的类型直接影响了选择的虚拟机迁移策略以及对虚拟机内存、磁盘的不同部分的迁移顺序,因此,有必要对不同负载对不同迁移模型的性能影响进行分析。
对于后拷贝模型。一方面,通常情况下在后拷贝中按需从源端主机拉取数据的耗时是几十至一百毫秒级的。另一方面,虚拟机访问内存的响应时间非常快(大约100纳秒),并且访问内存主要以同步方式进行(这意味着访问内存操作开始后将阻止其他操作直到成功)。根据以上数据,可知在后拷贝过程中,当系统需要访问未同步的内存数据时,从源端拉取数据的操作将会使原本100纳秒数量级的时延扩大100倍以上,并且此时虚拟机只能处于忙等状态。因此,内存读取和内存写入负载会对后拷贝模型带来非常严重的性能影响。相反,虚拟机磁盘访问的响应时间相对慢(大约10毫秒),并且磁盘访问通常是以异步方式进行(在等待数据时系统可以保持运行)。所以,磁盘读取操作将只会对后拷贝产生中等影响(由异步10毫秒左右的响应时间变为异步数十毫秒的响应时间)。注意,磁盘写操作非常特殊:它分为在旧数据块上写和在新数据块上写两种情况。旧数据块中存储着数据,对它的写操作可能只是修改部分数据而不是完全替换,因此可能需要首先从磁盘读取旧数据,在内存中编辑它们,然后写入;新数据以前没有存储过数据,因此系统会将数据块内容从内存缓冲区直接复制到磁盘。根据的实验,68%的磁盘写操作都是针对新数据块。因此,后拷贝过程中磁盘写入操作将避免从源端大量拉取数据,因此磁盘写入只会带来一点性能影响。
对于预拷贝模型,磁盘和内存读取操作并不会造成源端与目的端的数据不一致,因此不会导致脏数据重传,因此它们也不会对性能产生影响。相反,磁盘和内存写入操作将破坏一致性,它们首先将会触发迁移工具记录脏数据的操作,另外还会导致脏数据重传,因此将对性能产生影响。
这样,将预拷贝迁移和后拷贝迁移中执行不同操作时的性能影响分析总结在表1中。
表1不同负载对不同迁移模型的性能影响汇总
Figure BDA0002488743660000051
Figure BDA0002488743660000061
根据上述分析结果,提出了优化迁移性能的基本策略:
1)针对不同的负载使用不同的迁移模型的策略:如表1所述,不同类型的负载在两种不同的虚拟机迁移模型中具有不同的性能影响。因此,的目标是识别不同负载对应的区域,并相应地使用更适合的迁移模型。更具体地说,首先将分析虚拟机磁盘和内存操作的空间特性,然后识别出工作集信息,将所有虚拟机数据分成四组:内存写入工作集,内存其余部分(内存读取工作集和内存冷区域),磁盘读取工作集,以及磁盘其余部分(磁盘写入工作集和磁盘冷区域)。最后,使用后拷贝方法迁移磁盘写入工作集和磁盘冷区域,同时对其他三个工作集使用预拷贝方法。通过这种方式,不经常被访问到的内容被安排在目的端虚拟机已经启动之后再传输,这将在不影响系统性能的前提下,有效减小迁移对虚拟机的性能影响,并同时减少总网络流量和迁移持续时间。
2)负载感知的预拷贝策略:上面讲到将用预拷贝模型迁移磁盘读取工作集和所有内存。在此基础上,还在预拷贝阶段更改迁移顺序以提高性能。首先,不将内存视为一个整体按默认顺序迁移它们,而是将它们分为内存写入工作集和其余内存并在最后阶段迁移内存写入工作集。其次,还将磁盘读取工作集的预拷贝安排在全部内存的预拷贝之前,因为内存页面通常比磁盘块更容易变脏。根据以上迁移次序,迁移中脏数据的总量和总迁移时间将大幅度减少。
基于以上的基本思路,发明了一种基于硬件加速的虚拟机在线迁移方法。该方法具体包括以下实现步骤:
步骤1:负载分析(Workload Profiling)
这一步是本机制中提高迁移效率的准备阶段,该步骤中获取的工作集信息将在后面的步骤中提供优化。注意,虽然这一步骤是整个迁移过程的第一步,但是在整体上该步骤是与步骤2、步骤3、步骤4并发执行的,只是开始和结束的时间稍有不同;它们在迁移中配合进行并可能为其他步骤发出触发信息。
当用户发起迁移请求后,系统将进入步骤1即启动在线负载分析,该步骤的作用是跟踪虚拟机内存和磁盘访问序列,并根据获取的数据预测(磁盘和内存的)工作集。步骤1具体分为4个小步骤,即磁盘读取访问序列跟踪(步骤1-01)、预测磁盘读取工作集(步骤1-02)、内存写入访问序列跟踪(步骤1-03)、预测内存写入工作集(步骤1-04)。首先,跟踪磁盘访问序列(步骤1-01),并立即预测磁盘读取工作集(步骤1-02)。此时系统将在保持步骤1的进程继续工作的同时,创建新的拷贝进程,启动步骤2(拷贝磁盘读取工作集)并根据刚刚得到的预测数据,进行磁盘读取工作集的拷贝。当步骤2完成时,将触发负载分析进程迭代地执行步骤1-03、步骤1-04以获得迁移前的初始工作集状态;在步骤2停止后,系统执行步骤1-03、步骤1-04、步骤3、步骤4的迭代,系统将跟踪内存写访问序列,并以此预测内存写工作集,预测得到的结果提供给步骤3和步骤4做内存的迁移。直到满足步骤4的停止条件时,整个步骤1随着步骤1-03和步骤1-04的迭代停止而结束,系统进入步骤5进行停机迁移。
具体步骤如下:
步骤1-01.磁盘读取访问序列跟踪
虚拟机的磁盘IO由虚拟机监控器模拟,因此虚拟机的磁盘读取和写入操作对于虚拟机监控器是可见的。所以,只需在虚拟机监控器的磁盘IO模拟程序中直接记录磁盘的读写访问序列即可。
步骤1-02.预测磁盘读取工作集
提出了根据时间和空间局部性原理预测磁盘读取工作集的方法。与现有方法不同的是,现有方法仅在磁盘块级别预测磁盘读取工作集。也就是说,现有方法认为一个磁盘块被访问时,它附近的磁盘块也有可能被访问,因此会把附近的块加入工作集中。但是,这些附近的磁盘块与被访问块可能并不属于同一个文件。因此,未考虑文件系统结构可能会对现有方法识别工作集的准确性产生不利影响。
相反,在磁盘读取工作集预测中考虑了文件系统结构,具体的:1)如果系统中某个磁盘块被读取,则可能在最近的将来再次读取;2)如果系统最近读取了一个文件中的磁盘块,那么该文件中的后续块也可能被读取;3)如果最近系统读取了一个小文件,那么也可能会读取同一文件目录中的其他小文件。例如,在工程编译等场景中,当访问一个.c文件时,同一目录中的其他.c文件也很可能被访问。因此,基于以上考虑,当发生磁盘读取操作时,将把从这三个方面与被读取磁盘块相关联的所有块都添加到工作集中。一旦工作集已满,则利用重用距离算法来淘汰一些块。此处的重用距离等于某磁盘块上次被访问和当前被访问的中间,系统访问的其他磁盘块的数量。如果块只被访问过一次,则重用距离是无限的。在传统重用距离算法中,重用距离大的块会被首先淘汰出工作集,即使它刚添加到工作集。为了解决这个问题,稍稍改进了重用距离算法。
具体的,使用一个队列来维护磁盘读取工作集。队列的前半部分被视为淘汰区(这里的块可以从工作集中淘汰);而队列的另一半是安全区。设置安全区和淘汰区的原因是为了确保新进入工作集的块有足够的时间来获得其实际的重用距离,而不至于在刚进入工作集后就因为重用距离为无穷大而被淘汰。维护队列并选择工作集的过程为:对于一个被读取的磁盘块或者一个与被读取的块相关联的块K,如果K已经在队列中,将K移动到队列的末尾并更新该块的重用距离,将其更新为队列中K的先前位置到队列的末尾的距离;如果K不在队列中,需要将K添加到队列的尾部,并将重用距离设置为最大;如果队列已满,则选择要从队列中删除的块。具体来说,选择淘汰区中具有最大重用距离的块。值得注意的是,如果某磁盘块之前的重用距离很小,那么即使它很长时间不再被未访问到,也会因为曾经的重用距离很小而无法被选中淘汰。因此,算法在淘汰某块时会将队列中处于该块前的所有块的重用距离加1。
算法中,工作集的最大大小(maxsize)可以由用户配置。如果迁移过程中用户希望虚拟机尽早在目标主机上运行,则应将maxsize设置得相对较小(此时预拷贝过程将缩短)。反之,则应该加大maxsize。在的设计中,将maxsize设置为总磁盘大小的十分之一。并且所有小于1MB的文件都被视为小文件。对于有些虚拟机应用,它们的磁盘使用率较低,所以磁盘读取工作集通常不会达到maxsize。在这种情况下,将有更多的磁盘块被放在后拷贝阶段复制,因为他们不会被读取产生按需拉取时间,所以并不会影响迁移性能。
步骤1-03.内存写入访问序列跟踪
传统的跟踪虚拟机内存写入序列的方式是在虚拟机监控器中将所有内存页面设置写保护,内存页面上的所有写操作都将触发页错误,从而导致虚拟机退出事件,该事件会将运行现场从虚拟机切换至虚拟机监控器,这时该方法便可以在虚拟机监控器中记录内存写入访问序列了。然而,由于引入大量的虚拟机退出事件,这种传统方式引入了很高的性能损失。的方法发明了一种高效内存写操作跟踪方法,它利用了硬件虚拟化扩展功能进行加速,使性能有了大幅提高。
具体来说,将虚拟机扩展页表指针(EPTP)的第6位置为1,同时将虚拟化控制单元VMCS的虚拟机执行控制字段(VM execution control)的第17位置为1来启用页面修改日志记录。这样一来,每当出现虚拟机对某客户机物理地址(GPA)的写入时,处理器(CPU)将会把该GPA对应的EPT条目中的脏页标志位置1;同时,处理器还将把该GPA记录到一块事先预留的4KB大小的内存区域(该区域地址可以在VMCS中的执行控制字段配置)。该内存区域最多记录512个地址时,日志已满事件(log-full event)将触发虚拟机退出事件。在虚拟机退出事件的处理程序中,将从这4KB内存区域获取内存写入序列的记录,然后清除所有EPT中的脏标志以及4KB的内存区域。通过这种方式,512次写访问仅触发一次虚拟机退出事件,因此与传统方法相比,可以显著提高性能,达到使用硬件加速追踪内存访问序列的目的。
步骤1-04.CLOCK+算法预测内存写入工作集
方法使用改进的CLOCK算法(改进后的算法被称为CLOCK+)来预测内存写入工作集。这种算法非常简单有效,而且还可以自动适应实际的工作集大小。据了解,是第一个提出改进CLOCK算法以实现优化虚拟机迁移工作的。
在CLOCK+算法中,所有的物理内存页面放在一起被视为一个圆型的循环队列,就像时钟的表盘;而顺序地不断地循环并扫描这些页面,就像时钟的指针。一次扫描循环过程中,任何被写的内存页面都将被标记为当前工作集的一部分。更具体地,根据被写入的频率,将每个内存页面标记为热页面(Hot Pages),暖页面(Warm Pages)或冷页面(ColdPages)。选取的工作集中包括热页面和暖页面,而冷页面则不包在内。CLOCK+算法令指针在页面循环队列中移动并检查每个页面的标签,如果页面被标记为冷,则它不在工作集内,便在迁移的本轮迭代中的步骤3(拷贝内存读取工作集和内存冷区域)拷贝该页面。否则,算法将更新该页面对应的状态(如果它是热页面,则将其更改为暖页面,如果是暖页面,则将其更改为冷页面)。之后,指针将移动到下一页,继续上述操作。同时,每次步骤1-03得到的内存写操作序列将用于更新页面的状态。当冷页面被写时,它将被提升为暖页面,当暖页面被写时,它将被提升为热页面。之前传输过的页面将被标记为冷页面,并会在后续的迁移中排除;若该已传输页面再次被写入,则被提升为暖页面,迁移系统恢复将其考虑在内。
步骤2:拷贝磁盘读取工作集(Copy disk read workingset)
从该步骤起,虚拟机进入真正的迁移阶段。当在步骤1中获得了足够的数据来预测磁盘读取工作集时,便开始执行此步骤。在此步骤中,将拷贝磁盘读取工作集。由于磁盘读取工作集可能与磁盘写入工作集重叠,所以它们也可能变脏。因此,在位图中记录脏块,但在此步骤中不重新传输它们,这些脏块将在后拷贝阶段传输(步骤6)。
步骤3:拷贝内存读取工作集和内存冷区域(Copy memory read workingset andcold memory pages)
在此步骤中,需要拷贝内存读取工作集和内存冷页面。此外,还应记录拷贝过程中变脏的内存页面。
步骤4:拷贝内存写入工作集(Copy memory write workingset)。
在拷贝完内存读取工作集和内存冷页面之后,将开始拷贝内存写入工作集并在此步骤中记录脏内存页。内存写入工作集拷贝完成后,将返回步骤3复制内存读取工作集和内存冷区域的脏页面,然后转到步骤4复制内存写入工作集的脏页面。该过程将迭代地重复进行,直到满足以下条件之一时,跳到步骤5
1.剩余的内存脏数据足够少(比如剩余的脏数据可以在30ms内迁移完);
2.预留的迁移时间已用完;
3.当前轮次中拷贝的数据大于前两轮(这意味着脏数据产生率大于传输速率,因此不大可能在有限时间内满足第一个条件)。
步骤5:停机迁移(Stop and migrate)
此步骤中,暂停源端运行的虚拟机并将虚拟机CPU状态和剩余内存脏页面传输至目的端。同时,将设置虚拟专用网络(VPN)隧道和动态域名服务(DNS),以便将流量和新连接重定向到目标主机。为确保源和目标之间的数据一致性,还将把未传输的以及脏磁盘块的位图传输到目标主机。
步骤6:拉取虚拟机状态(Pull VM state)
在此步骤中,在目的端启动虚拟机。此时虚拟机中某些数据是脏的并且某些数据仍未同步到目的端,因此本步骤中还需要拉取虚拟机的剩余状态,这里包括磁盘读取工作集中的脏块和磁盘的其余部分。后续过程由下面的两个并发线程处理。
1.后台复制(Background copying):使用一个后台线程悄悄地复制剩余的虚拟机状态。上文中所分析的那样,磁盘写入操作可能不需要触发影响性能的按需拉取事件而磁盘读取操作很可能触发。因此,为了避免大量的按需提取,在的设计中,该线程将首先复制磁盘读取工作集中的脏块,然后复制其余的磁盘块。
2.按需拉取(On-demand-fetching):在目标端虚拟机需要访问某些数据时,它们可能还并没有被后台复制线程同步到目的端。在这种情况下,将进行按需拉取。从源主机调用最新内容并填充相应的块。
当步骤6完成后,整个迁移过程成功。此时,目标主机通知源主机销毁源VM。
实施例
图1展示了本实例中基于负载感知的高效虚拟机迁移的流程,流程中主要包括6大步骤。在前四个步骤中,虚拟机在源端物理主机上运行,将这四个步骤统称为预拷贝阶段。在步骤5的短暂暂停之后,虚拟机将在目的端主机上运行。因此,将步骤6称为后拷贝阶段。一种基于硬件加速的虚拟机在线迁移方法包括以下几个步骤:
S101.负载分析(Workload Profiling)
在本实施例中,用户发起迁移请求,标志着迁移工作的开始。系统将进入步骤S101,进行负载分析,迁移系统在该步骤中跟踪虚拟机内存和磁盘访问序列,并根据获取的数据预测(磁盘和内存的)工作集。S101分为四部分,图2展示了S101的4个步骤:S201.磁盘读取访问序列跟踪,S202.预测磁盘读取工作集,S203.内存写入访问序列跟踪,S204.CLOCK+算法预测内存写入工作集。
正如发明内容所述,用户发出迁移开始命令后,系统进入S101负载分析,会首先执行S201、S202,即系统将会追踪磁盘读取访问序列,并预测磁盘工作集。S202结束后,负载分析进程阻塞,系统将创建新的拷贝进程,并在这个新的进程中利用S202得到的预测信息执行S102,开始拷贝磁盘读取工作集。S102快要结束时,系统将触发唤醒负载分析进程并迭代执行S203、S204数轮(此时S102并未结束,迭代执行的过程与S102并行),以获取内存工作集的初始状态信息;S102一旦执行结束,系统将迭代地执行S203、S204、S103、S104,直到达到S104的停止条件。此时,S104的结束意味着系统的预拷贝过程结束,不再需要负载分析进程来追踪和预测内存写工作集,因此系统销毁负载分析进程,步骤S101到此结束,系统进入S105继续执行停机迁移。
下面具体介绍每个步骤内部的执行过程:
S201.磁盘读取访问序列跟踪
由于虚拟机的磁盘读取和写入操作对于虚拟机监控器是可见的,因此,在这一步中,直接在虚拟机监控器的磁盘IO模拟程序中记录磁盘的读写访问序列,系统便能得到磁盘读取的访问序列。
S202.预测磁盘读取工作集
提出了根据时间和空间局部性原理预测磁盘读取工作集的方法。它在磁盘读取工作集预测中考虑了文件系统结构,当发生磁盘读取操作时,将把考虑了文件系统结构信息的与被读取磁盘块相关联的所有块都添加到工作集中。一旦工作集已满,则利用重用距离算法来淘汰一些块。这里改进了传统的重用距离算法,将工作集队列分为安全区和淘汰区,以确保新进入工作集的块有足够的时间来获得其实际的重用距离,而不至于在刚进入工作集后就因为重用距离为无穷大而被淘汰。图3维护的工作集队列的示意图,其中,队列的前半部分被视为淘汰区(这里的块可以从工作集中淘汰);而队列的另一半是安全区。图3中还演示了重用距离的计算方法,重用距离等于某磁盘块上次被访问和当前被访问的中间,系统访问的其他磁盘块的数量。如果块只被访问过一次,则重用距离是无限的,即为-1。比如,图3中的块K的重用距离为7。
根据之前描述的该算法,给出图4中的例子来演示算法的执行。为了简单起见,假设系统所预测的工作集的最大大小maxsize设置为4,则安全区的大小为2(maxsize的一半);并假设有历史磁盘访问序列ABCBDEECAPQRST(上述假设仅用于演示算法流程,实际上的访问序列长度和maxsize远大于该例)。首先,使用如图所示的一个队列来维护磁盘读取工作集;那么可以得出,安全区内的块为P、Q、R、S、T,淘汰区内的块A、B、C、D、E的重用距离分别为4、1、3、-1(MAX)、0。现在新来一个块F,由于F并不在队列中,且工作集的大小已经达到了maxsize,需要淘汰一个块。从淘汰区内的块内选出一个重用距离最大的块,根据此规则可得D就是要淘汰的块。将它从工作集中删除,并将F加入工作集队列的末尾,置F的重用距离为最大(-1),并将D之前的B的重用距离加1。维护工作集队列的过程如图4所示。
在实际的操作中,工作集的最大大小(maxsize)可以由用户配置。如果用户希望减少虚拟机的预拷贝时间,使虚拟机尽早在目标主机上运行,可以将maxsize调小;如果想要减少后拷贝的时间,则应该加大maxsize,此时虚拟机在目标主机上的开启时间会相应推迟一些。在的配置中,maxsize设置为总磁盘大小的十分之一。
S203.内存写入访问序列跟踪
方法使用硬件虚拟化扩展功能记录内存写入访问序列,这种基于的EPT技术的硬件记录方法避免了引入大量的虚拟机退出事件,从而从硬件上加速了内存访问序列跟踪的,显著提高了性能。图5展示了本实施例在KVM中实现高效的内存写操作跟踪的配置。首先配置处理器中的虚拟化控制单元VMCS:
1)虚拟机运行控制寄存器(VM-Execution controls)的第31位应设置为1,从而激活二号虚拟机运行控制寄存器(Secondary VM-Execution controls);
2)将二号虚拟机运行控制寄存器中的第17位置为1,从而激活PML地址;3)将扩展页表指针(EPTP)的A/D标志位(第6位)设置为1;
4)将预留的4KB内存区域地址存储在PML地址控制字段中(PML address controlfields)。
同时,为了在KVM获取内存跟踪数据,实现了一个处理日志已满事件(log-fullevent)的虚拟机退出处理程序。如果虚拟机退出原因是客户物理地址访问并且退出原因寄存器(exit qualification)第12为1,则认定为日志已满事件。系统将记录4KB内存区域里的所有512个内存页面页框号,就得到了内存写入访问序列。最后,将刷新4KB内存区域,将PML index归0,并清除每个内存页框对应的EPT页表项的脏位(第9位)。
S204.CLOCK+算法预测内存写入工作集
得到内存写入访问序列之后,迁移系统将使用提出的CLOCK+算法来预测内存写入工作集。这个改进后的CLOCK算法简单有效,且能自动适应实际的工作集大小,实现了对虚拟机迁移性能的优化。
图6展示了使用CLOCK+算法预测内存写工作集的一个实例。该实例演示的是磁盘读取工作集已经拷贝结束,此刻系统正处于内存迁移阶段时S204的一次执行。正如之前介绍的,所有的内存页面将被分为热页面、暖页面、或冷页面三种(在图6中用H、W、C表示),而本轮步骤执行后的所有的热页面和暖页面就构成了将要预测的写入工作集。左图中的圆盘示意了预测前的初始状态,右图演示了本步骤执行后的结果(注意,本示意图仅以指针从指向0扫描到指向8的过程为例进行讲解,目的仅仅是演示算法的执行过程,在实际的系统中该步骤会扫描源端剩余的所有内存页面并进行更新)。
本步骤将会循环扫描一遍所有内存页面,指针扫过时会将之前的暖页面变成冷页面,将之前的热页面变成暖页面。同时,扫描到的冷页将被随即加入到内存写入工作集的补集(内存读取工作集和内存冷区域)中,扫描一遍所有内存页面之后,就得到了内存写入工作集的补集,所有未被加入补集的页面构成了内存写入工作集。
另外,步骤S203(内存写入访问序列跟踪)从步骤S103开始后保持连续执行,每次追踪得到的结果将实时更新源端页面的状态,冷页面被写时将被提升为暖页面,暖页面被写时将被提升为热页面。已传输的内存页面标记为冷页面,并且标记为已传输状态,除非页面再次被追踪到写入而提升为暖页面,否则系统在后续迭代传输中将排除这类已传输页面。
在图6中,在时钟圆盘上循环扫描的指针从第0页移动到第8页,使得之前是暖页面的第0页和第2页在时钟指针扫描后成为冷页面,之前是热页面的第8页在扫描后成为暖页面。同时,由于有内存写入跟踪序列追踪到第3,6,13,16页面进行了写操作,按照上述更新规则,第16页成为了暖页面,第13页成为了热页面,而由于两个更新的叠加,第3页和第6页的状态则在步骤执行前后没有发生变化。在指针扫描的过程中,第1、4、5、7页被预测为冷页面并被迁移系统加入内存写入工作集的补集中,它们将在之后的S103中(先于S104拷贝内存写入工作集)被迁移进程复制到目的地。
每一次执行本步骤,源端所有的待传内存页面(未传输的或已传输但又写脏的页面)就经过一次与上述过程类似的扫描,得到内存写入工作集的补集和内存写入工作集的同时,更新了源端剩余内存页面(未传输的或已传输但又写脏的页面)的状态信息(冷、暖、热)。
S102.拷贝磁盘读取工作集
在这一步骤中,只传输在S202步骤中得到的磁盘读取工作集里的磁盘块;在整个虚拟机迁移过程中,该磁盘读取工作集可能会变脏。针对这一情况,在位图中记录脏块,但在此步骤中不重新传输它们,这些脏块将在后拷贝阶段将它们与其他磁盘块(磁盘写入工作集和磁盘冷区域)一起传输(步骤6)。
S103.拷贝内存读取工作集和内存冷区域
在S102执行完成后,系统将唤醒S101的负载分析进程,其中的S203将不断执行连续追踪内存写入页面直至停机迁移,而S204将在本步骤前执行一次以预测内存写入工作集的补集和内存写入工作集;得到这些信息后,系统将开始拷贝除了该内存写入工作集以外的其他内存区域(即内存读取工作集和内存冷区域)。
S104.拷贝内存写入工作集
在拷贝完内存读取工作集和内存冷页面之后,将开始拷贝内存写入工作集并继续保持追踪脏内存页。内存写入工作集拷贝完成后,将迭代S103和S104。该迭代过程依赖S101负载感知中的S203、S204的执行来获得下一轮迭代所需要的内存写入工作集和补集的信息。迭代的过程将重复进行,直到满足以下条件时,跳到S105开始停机迁移:
1)剩余的内存脏数据足够少,能够在30ms内迁移完成;
2)预留的最长迁移时间已用完,迁移系统不能再容忍更多的S103与S104的迭代;
3)当前轮次中拷贝的数据量大于前两轮的,也就是脏数据产生率已经开始大于传输速率。
S105.停机迁移
该步骤执行停机迁移,源端正在运行的虚拟机将暂停运行,系统将会把虚拟机CPU状态和剩余内存脏页面传输到目的端。为将流量和新连接重定向到目标主机,还将设置虚拟专用网络(VPN)隧道和动态域名服务(DNS)。同时,还将把未传输的以及脏的磁盘块的位图信息传输到目标主机,提供给之后的S106使用,以确保源和目标之间的数据一致性。
S106.拉取虚拟机状态
在此步骤中,系统将会在目的端开启刚刚暂停的虚拟机。当然,仅仅完成预拷贝的虚拟机中存在着迁移过程中变脏的数据,并且有些数据还未同步到该目的端,将在这一步骤中完成拉取虚拟机的剩余状态(包括磁盘读取工作集中的脏块和磁盘的其余部分)。具体的,该步骤将创建以下两个并发线程该工作:
1)后台复制(Background copying):使用这个线程在后台静默地复制还未完成迁移的虚拟机状态。由于磁盘写入操作可能不会触发较多按需拉取事件,而磁盘读取操作很可能触发。该线程按照首先复制磁盘读取工作集中的脏块、然后复制其余的磁盘块的顺序进行拷贝,以避免大量的按需提取导致的性能影响和额外的时间开销。
2)按需拉取(On-demand-fetching):目标端虚拟机在运行的过程中,访问的某些数据还没有被后台复制线程从已关机的源端同步到正在运行的该目的端。当访问到这些数据时,按需拉取线程将从源主机调用这些内容并以此填充目的端相应的磁盘块。
S106成功后,虚拟机迁移的过程已经完成。最后,目标主机只需要通知源主机销毁源端的虚拟机,此时使用的方法进行的整个虚拟机迁移过程成功完成。
本领域的技术人员容易理解,以上所述仅为本发明的方法实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于硬件加速的虚拟机在线迁移方法,其特征在于,包括以下步骤:
步骤1:负载分析;
系统进行在线负载分析,该步骤将跟踪虚拟机内存和磁盘访问序列,并根据获取的数据预测磁盘读取工作集和内存写入工作集的补集,即内存读取工作集和内存冷区域;
步骤2:拷贝磁盘读取工作集;
当磁盘读取访问序列跟踪和预测磁盘读取工作集完成后,系统便开始执行此步骤;在此步骤中,传输步骤1中得到的磁盘读取工作集里的磁盘块拷贝磁盘读取工作集;在整个虚拟机迁移过程中,该磁盘读取工作集可能会变脏,方法会在位图中记录这些脏块,但在此步骤中不重新传输它们,将在后拷贝阶段将它们与其他磁盘块一起传输;
步骤3:拷贝内存读取工作集和内存冷区域;
这一步骤将拷贝内存读取工作集和内存冷页面;此外,还记录在此拷贝过程中变脏的内存页面;
步骤4:拷贝内存写入工作集;
在步骤3拷贝完内存读取工作集和内存冷页面之后,将开始拷贝内存写入工作集并在此过程中记录脏内存页;此外,还记录在此拷贝过程中变脏的内存页面;
这之后返回将返回步骤3再次执行复制内存读取工作集和内存冷区域的脏页面,执行步骤4复制内存写入工作集的脏页面,不断迭代;步骤3、步骤4这样的迭代过程将不断进行,直到满足步骤4的停止条件时,跳到步骤5;当满足任意一个停止条件即停止本步骤的执行:
1)剩余的内存脏数据能够在30ms内迁移完成;
2)预留的最长迁移时间已用完;
3)脏数据产生率已经开始大于传输速率;
步骤5:停机迁移;
此步骤中,暂停源端运行的虚拟机并将虚拟机CPU状态和剩余内存脏页面传输至目的端;同时,将设置虚拟专用网络隧道和动态域名服务,以便将流量和新连接重定向到目标主机;为确保源和目标之间的数据一致性,将把未传输的以及脏的磁盘块的位图传输到目标主机;
步骤6:拉取虚拟机状态;
步骤5结束后,将在目的端启动虚拟机;此时虚拟机中某些数据是脏的并且某些数据仍未同步到目的端,因此本步骤中拉取虚拟机的剩余状态,这就包括了磁盘读取工作集中的脏块和磁盘的其余部分;该过程将由后台复制和按需拉取两个并发线程处理,后台复制线程在后台保持静默地复制剩余的虚拟机状态,而按需拉取线程在目标端虚拟机需要访问某些数据时,将从源主机调用最新内容并填充相应的块;本步骤结束后,整个迁移过程成功,此时目标主机通知源主机销毁源VM。
2.根据权利要求1所述的一种基于硬件加速的虚拟机在线迁移方法,其特征在于,步骤1的具体实现方法如下:
步骤1.1:磁盘读取访问序列跟踪;
在虚拟机监控器的磁盘IO模拟程序中直接记录磁盘的读写访问序列;
步骤1.2:预测磁盘读取工作集;
根据时间和空间局部性原理预测磁盘读取工作集的方法;考虑到空间局部性,利用文件系统结构的关联特点,将与被读取磁盘块相关联的所有块都添加到工作集中;考虑到时间局部性,利用重用距离算法来预测磁盘读取工作集;
步骤1.3:内存写入访问序列跟踪;
跟踪虚拟机内存写入序列;利用硬件虚拟化扩展功能进行加速的内存写操作跟踪方法,每当出现虚拟机对某客户机物理地址GPA的写入时,处理器将会把该GPA对应的EPT条目中的脏页标志位置1;同时,处理器还将把该GPA记录到一块事先预留的4KB大小的内存区域,记录512个地址时,日志已满事件将触发虚拟机退出事件,实现硬件加速追踪的效果;
步骤1.4:CLOCK+算法预测内存写入工作集;
使用CLOCK+算法预测内存写入工作集的补集和内存写入工作集;CLOCK+算法将内存的页面分为“冷”、“暖”、“热”三种状态,每次执行都将更新页面状态;步骤1.3每次执行得到的内存写入访问序列也将实时更新页面状态。
CN202010398980.0A 2020-05-12 2020-05-12 一种基于硬件加速的虚拟机在线迁移方法 Active CN111580933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010398980.0A CN111580933B (zh) 2020-05-12 2020-05-12 一种基于硬件加速的虚拟机在线迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010398980.0A CN111580933B (zh) 2020-05-12 2020-05-12 一种基于硬件加速的虚拟机在线迁移方法

Publications (2)

Publication Number Publication Date
CN111580933A true CN111580933A (zh) 2020-08-25
CN111580933B CN111580933B (zh) 2022-12-09

Family

ID=72122976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010398980.0A Active CN111580933B (zh) 2020-05-12 2020-05-12 一种基于硬件加速的虚拟机在线迁移方法

Country Status (1)

Country Link
CN (1) CN111580933B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115586943A (zh) * 2022-09-16 2023-01-10 杭州熠芯科技有限公司 一种智能网卡虚拟机脏页的硬件标记实现方法
CN116755847A (zh) * 2023-08-17 2023-09-15 北京遥感设备研究所 一种缓解锁冲突的日志预分析及事务管理方法
WO2023225990A1 (en) * 2022-05-27 2023-11-30 Intel Corporation Optimizing dirty page copying for a workload received during live migration that makes use of hardware accelerator virtualization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150378783A1 (en) * 2014-06-28 2015-12-31 Vmware, Inc. Live migration with pre-opened shared disks
CN106469085A (zh) * 2016-08-31 2017-03-01 北京航空航天大学 虚拟机在线迁移方法、装置及系统
CN107832119A (zh) * 2017-11-20 2018-03-23 浙江网新恒天软件有限公司 一种降低内存重复拷贝的kvm虚拟机热迁移优化方法
CN108595250A (zh) * 2018-05-02 2018-09-28 南京大学 一种面向IaaS云平台的资源调度效率优化方法及系统
US20200034175A1 (en) * 2018-07-27 2020-01-30 Vmware, Inc. Using cache coherent fpgas to accelerate live migration of virtual machines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150378783A1 (en) * 2014-06-28 2015-12-31 Vmware, Inc. Live migration with pre-opened shared disks
CN106469085A (zh) * 2016-08-31 2017-03-01 北京航空航天大学 虚拟机在线迁移方法、装置及系统
CN107832119A (zh) * 2017-11-20 2018-03-23 浙江网新恒天软件有限公司 一种降低内存重复拷贝的kvm虚拟机热迁移优化方法
CN108595250A (zh) * 2018-05-02 2018-09-28 南京大学 一种面向IaaS云平台的资源调度效率优化方法及系统
US20200034175A1 (en) * 2018-07-27 2020-01-30 Vmware, Inc. Using cache coherent fpgas to accelerate live migration of virtual machines

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
常德成等: "虚拟机动态迁移方法", 《计算机应用研究》 *
程虹锡等: "一种高效的虚拟机动态内存迁移方法", 《计算机科学》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023225990A1 (en) * 2022-05-27 2023-11-30 Intel Corporation Optimizing dirty page copying for a workload received during live migration that makes use of hardware accelerator virtualization
CN115586943A (zh) * 2022-09-16 2023-01-10 杭州熠芯科技有限公司 一种智能网卡虚拟机脏页的硬件标记实现方法
CN115586943B (zh) * 2022-09-16 2023-08-15 杭州熠芯科技有限公司 一种智能网卡虚拟机脏页的硬件标记实现方法
CN116755847A (zh) * 2023-08-17 2023-09-15 北京遥感设备研究所 一种缓解锁冲突的日志预分析及事务管理方法
CN116755847B (zh) * 2023-08-17 2023-11-14 北京遥感设备研究所 一种缓解锁冲突的日志预分析及事务管理方法

Also Published As

Publication number Publication date
CN111580933B (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
CN111580933B (zh) 一种基于硬件加速的虚拟机在线迁移方法
US8990531B2 (en) Multiple time granularity support for online classification of memory pages based on activity level
Luo et al. Live and incremental whole-system migration of virtual machines using block-bitmap
CN103250141B (zh) 联网的客户端-服务器体系结构中的预读处理
CN100489787C (zh) 一种虚拟机的外存在线迁移方法
US9372751B2 (en) Free space collection in log structured storage systems
JP6882662B2 (ja) マイグレーションプログラム、情報処理装置およびマイグレーション方法
CN110609730B (zh) 一种实现虚拟处理器间中断透传的方法及设备
JP5142995B2 (ja) メモリページ管理
CN103500146B (zh) 虚拟机磁盘存储数据迁移方法和系统
EP3764239A1 (en) Method and device for enhancing isolation between user space and kernel space
US20130232310A1 (en) Energy efficiency in a distributed storage system
CN106528438A (zh) 一种固态存储设备的分段式垃圾回收方法
CN103197899A (zh) 增强基于闪存的存储的寿命和性能
CN106919471B (zh) 用于快照建立的方法和系统
CN107479944B (zh) 混合云模式下的虚拟机内存自适应热迁移调度方法及系统
US9075731B2 (en) Using transaction entries to achieve crash consistency when performing write-behind caching using a flash storage-based cache
KR20090091746A (ko) 라이트백 캐시 유닛을 사용하여 데이터를 관리하는 시스템, 방법 및 컴퓨터 프로그램 제품
WO2012063334A1 (ja) 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ
Shi et al. Memory/disk operation aware lightweight vm live migration across data-centers with low performance impact
US10936369B2 (en) Maintenance of local and global lists of task control blocks in a processor-specific manner for allocation to tasks
Haris et al. Live migration of virtual machine memory content in networked systems
Kim et al. Guide-copy: fast and silent migration of virtual machine for datacenters
CN115033337A (zh) 虚拟机内存迁移方法、装置、设备及存储介质
CN110442382A (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