logo好方法网

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


技术摘要:
本发明公开了一种基于硬件加速的虚拟机在线迁移方法,该方法包括:首先,分析不同负载对不同迁移模型的性能影响,利用得到的结论提出了对迁移性能进行优化的两个基本策略,即针对不同的负载使用不同的迁移模型的策略和负载感知的预拷贝迁移策略,在此之上提出了一套完  全部
背景技术:
虚拟机迁移技术主要指将虚拟机及其运行状态从一台计算节点传输到另一台计 算节点,保证虚拟机在源计算节点因故障或维护而停机时可以在目的端继续提供服务。虚 拟机迁移技术主要包含停机迁移和在线迁移两种技术,由于虚拟机停机迁移会导致长时间 的服务中断,因此工业界和学术界主要采用虚拟机在线迁移机制。 在虚拟机在线迁移方面,基于预拷贝(pre-copy)的方法是目前是最主流的方案来 实现在线迁移。该方法预先复制并传输虚拟机运行状态,并在将所有虚拟机状态复制并传 输到目标主机时再切换至目标虚拟机运行。在状态传输过程中,由于原虚拟机还保持运行, 所以已经传输至目的端的某些数据可能被更新(变脏,get  dirty),从而导致源状态和目标 状态之间的不一致。因此,该方法记录所有脏数据并重新传输。然而,传输脏数据时又将产 生新的脏数据,于是该方法将一轮一轮迭代传输脏数据直到剩余的脏数据足够少。最后在 脏数据足够少时,源端虚拟机停止运行并将剩余的脏数据复制到目的端然后在目的端启动 虚拟机。 然而,正因为迭代拷贝需要不断传输上一阶段修改过的数据,所以在写密集型场 景下,尤其是写页面的速度大于传输速度时,会导致脏页面的数量下降速度很慢甚至上升, 使得迁移过程中的迭代传输时间过长甚至迁移失败。因此,如何优化在线迁移效率成为一 个重要且具有挑战性的问题。 以下文献提供了可供参考的优化虚拟机在线迁移效率的技术解决方案: 文献1.虚拟机在线迁移方法、装置及系统-201610793779.6 文献2.虚拟机在线迁移方法与系统-201310571172.X 文献3.Sahni  S,Varma  V.A  hybrid  approach  to  live  migration  of  virtual  machines[C].2012IEEE  International  Conference  on  Cloud  Computing  in  Emerging  Markets(CCEM) .IEEE,2012:1-5. 文献4.Mingsong  S,Wenwen  R.Improvement  on  dynamic  migration  technology  of  virtual  machine  based  on  Xen[C].Ifost.IEEE,2013,2:124-127. 然而,上述方法存在许多不足之处: 1 .以上全部方法,在迁移过程中跟踪内存历史访问时都未采用硬件加速(只有跟 踪内存访问才能确保迁移过程中源端被修改的数据可以重新传输到目的端),未采用硬件 加速将引入大量虚拟机退出事件(VM-exit),这将为客户虚拟机带来了大量开销。 2.文献1,文献2,只采用了预拷贝的方法,一方面将产生更多的无效传输和带宽消 耗,另一方面将造成更长迁移时间,影响迁移可靠性。 3.在预拷贝方法中,文献1,文献2采用队列来维护系统访问热数据(工作集数据), 4 CN 111580933 A 说 明 书 2/12 页 一方面这种队列的运行时维护成本很高,将为客户虚拟机带来了大量开销;另一方面队列 大小固定,无法弹性工作集的大小,限制了优化效果。 4.文献3提出了混合拷贝的技术,他们只进行一轮迭代预拷贝,之后便将虚拟机运 行现场以及脏数据位图传输到目标主机并切换至目标虚拟机运行。当目的端虚拟机访问到 脏数据时,便从源虚拟机中拉取数据,直到迁移结束。该方法虽然减少了脏数据重传,但该 方法只简单混合了预拷贝技术与后拷贝技术,未考虑不同负载对不同拷贝方法体现的性能 优劣势,因此在迁移后的初期从源主机大量请求数据,从而给虚拟机应用带来较高的延迟 和严重性能下降。 5.文献4使用隐马尔可夫模型(HMM)来实时预测每个内存页面变脏的概率,然而实 时训练HMM将引起大量额外开销。
技术实现要素:
本发明提供了一种基于硬件加速的虚拟机在线迁移方法。首先,分析不同负载对 不同迁移模型的性能影响,利用得到的结论提出了对迁移性能进行优化的两个基本策略, 即针对不同的负载使用不同的迁移模型的策略和负载感知的预拷贝迁移策略,在此之上提 出了一套完整的高效的、能根据工作集负载类型自适应地选择有利的迁移模型的虚拟机迁 移方法;其次,提出了在负载分析中使用硬件虚拟化扩展功能进行加速,实现更高效的内存 写入访问序列跟踪;再次,提出了开销和性能更优的CLOCK 算法来预测内存写入工作集。 为达到上述目的,本发明采取如下技术方案来实现的: 一种基于硬件加速的虚拟机在线迁移方法,包括以下步骤: 步骤1:负载分析; 系统进行在线负载分析,该步骤将跟踪虚拟机内存和磁盘访问序列,并根据获取 的数据预测磁盘读取工作集和内存写入工作集的补集,即内存读取工作集和内存冷区域; 步骤2:拷贝磁盘读取工作集; 当磁盘读取访问序列跟踪和预测磁盘读取工作集完成后,系统便开始执行此步 骤;在此步骤中,传输步骤1中得到的磁盘读取工作集里的磁盘块拷贝磁盘读取工作集;在 整个虚拟机迁移过程中,该磁盘读取工作集可能会变脏,方法会在位图中记录这些脏块,但 在此步骤中不重新传输它们,将在后拷贝阶段将它们与其他磁盘块一起传输; 步骤3:拷贝内存读取工作集和内存冷区域; 这一步骤将拷贝内存读取工作集和内存冷页面;此外,还记录在此拷贝过程中变 脏的内存页面; 步骤4:拷贝内存写入工作集; 在步骤3拷贝完内存读取工作集和内存冷页面之后,将开始拷贝内存写入工作集 并在此过程中记录脏内存页;此外,还记录在此拷贝过程中变脏的内存页面; 这之后返回将返回步骤3再次执行复制内存读取工作集和内存冷区域的脏页面, 执行步骤4复制内存写入工作集的脏页面,不断迭代;步骤3、步骤4这样的迭代过程将不断 进行,直到满足步骤4的停止条件时,跳到步骤5;当满足任意一个停止条件即停止本步骤的 执行: 1)剩余的内存脏数据能够在30ms内迁移完成; 5 CN 111580933 A 说 明 书 3/12 页 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算法,其开销和性能均优于文 6 CN 111580933 A 说 明 书 4/12 页 献1,2,4中的相关技术。 附图说明 图1为整体框架示意图。 图2为负载分析阶段流程示意图。 图3为基于重用距离的工作集选择算法中重用距离示意图。 图4为基于重用距离的工作集选择算法工作示意图。 图5为启用高效内存写操作跟踪的配置。 图6为CLOCK 工作集选择算法工作示意图。
下载此资料需消耗2积分,
分享到:
收藏