一种适用于虚拟机动态迁移的内存状态迁移方法

文档序号:6629468阅读:2434来源:国知局
一种适用于虚拟机动态迁移的内存状态迁移方法
【专利摘要】本发明提供一种适用于虚拟机动态迁移的内存状态迁移方法,包括以下步骤:步骤1,以一个固定的时间间隔定期收集源主机中内存脏页历史数据,记录每个页面被改写的次数以及最近N次的观察状态值;步骤2,识别源主机的空闲内存页,向选定的目标主机发送迁移请求;步骤3,迭代拷贝;步骤4,停机拷贝阶段。本发明提供的内存状态迁移方法,拷贝效率高、总迁移时间短、停机时间短、迁移数据量小。
【专利说明】一种适用于虚拟机动态迁移的内存状态迁移方法

【技术领域】
[0001] 本发明涉及虚拟机【技术领域】,尤其涉及适用于虚拟机动态迁移的内存状态迁移方 法。

【背景技术】
[0002] 随着云计算和数据中心的发展,虚拟机(VM)动态迁移已成为今年来的研究热点。 VM动态迁移是一种可以再没有断开客户端或应用程序连接的情况下,在不同的物理机器之 间移动正在运行的VM的技术。因此,在负载均衡、在线维护、主动容错等领域,VM动态迁移 被用作管理集群个云平台的一个强大工具。
[0003] 为了执行一台VM的动态迁移,VM运行状态时的物理内存、网络连接、VCPU以及其 他资源都必须从源主机迁移到目的主机,在迁移过程中,VM仍旧保持运行。最复杂的问题 就在于迁移物理内存,因为随着VM的运行,内存的内容是动态的,它是影响迁移性能的主 要因素。但是,在内存状态迁移方面,现有的动态迁移方法存在以下问题:(1)判断脏页是 否需要被发送到目的VM仅仅依赖于上一轮和当前一轮迭代,造成不必要的重复传送;(2) 迭代次数仅为三次,三轮迭代的历史脏页数据对于准确判断页面类型依旧缺乏可靠性;(3) 没有对内存页面详细划分,导致不必要的内存页面传送。


【发明内容】

[0004] 为解决现有技术存在的问题,本发明提供一种拷贝效率高、总迁移时间短、停机时 间短、迁移数据量小的适用于虚拟机动态迁移的内存状态迁移方法,包括以下步骤:
[0005] 步骤1,以一个固定的时间间隔定期收集源主机中内存脏页历史数据,记录每个页 面被改写的次数以及最近N次的观察状态值:
[0006] 步骤1. 1,定义存放内存页面状态信息的数据结构global_pfn_info,其中有三个 int类型的成员,分别是客户操作系统的物理页号pfn、页面类型type和被改写的页面数量 dirty-num ;
[0007] 步骤1. 2,设置一个固定的时间间隔,从预迁移阶段开始每一个时间间隔收集一次 数据,并将被改写的页面数量存入数据结构gl〇bal_pfn_info中,直到迭代拷贝阶段结束;
[0008] 步骤1. 3,用int类型数组global_pfn_info. dirty_num记录每个页面被改写的次 数,用int类型数组nearest_n记录最近N次页面的观察状态值;
[0009] 步骤1. 4,收集内存页面历史数据进程,并将收集的数据存入步骤1. 2和1. 3定义 的数据结构中。
[0010] 步骤2,识别源主机的空闲内存页,向选定的目标主机发送迁移请求:
[0011] 步骤2. 1,选定目标主机,向目标主机发送迁移请求,确保目标主机有足够的磁盘 空间、内存容量和资源容纳被迁移的VM,否则,迁移结束;
[0012] 步骤2. 2,识别迁移前源主机的空闲内存页,定义空闲内存页集合FS。
[0013] 步骤3,迭代拷贝:
[0014] 步骤3. 1,定义源主机内存页的不同类型,包括空闲内存页、工作内存页,工作内存 页又包括冷页内存页和脏页内存页,脏页内存页包括热工作内存页和温工作内存页;
[0015] 步骤3. 2,设定迭代拷贝终止条件,设定阈值Wdpr ;
[0016] 步骤3. 3,第一轮迭代拷贝,发送除了空闲内存页的其他所有页面至目的主机的 VM ;
[0017] 步骤3. 4,第二轮迭代拷贝,遍历每个内存页,执行工作集识别算法,区分冷页内存 页、热工作内存页、温工作内存页;
[0018] 步骤3. 5,剩余迭代期间,为每个温工作内存页页面的最近N次记录分配权重,并 按照权重大小降序排列并储存,计算每个页面的脏页率

【权利要求】
1. 一种适用于虚拟机动态迁移的内存状态迁移方法,包括以下步骤: 步骤1,以一个固定的时间间隔定期收集源主机中内存脏页历史数据,记录每个页面被 改写的次数以及最近N次的观察状态值; 步骤2,识别源主机的空闲内存页,向选定的目标主机发送迁移请求; 步骤3,迭代拷贝; 步骤4,停机拷贝阶段。
2. 根据权利要求1所述的适用于虚拟机动态迁移的内存状态迁移方法,其特征在于步 骤1的内存页面历史数据收集,步骤如下: 步骤1. 1,定义存放内存页面状态信息的数据结构gl〇bal_pfn_info,其中有三个int类型的成员,分别是客户操作系统的物理页号pfn、页面类型type和被改写的页面数量 dirty-num; 步骤1. 2,设置一个固定的时间间隔,从预迁移阶段开始每一个时间间隔收集一次数 据,并将被改写的页面数量存入数据结构gl〇bal_pfn_info中,直到迭代拷贝阶段结束; 步骤1. 3,用int类型数组global_pfn_info.dirty_num记录每个页面被改写的次数, 用int类型数组nearest_n记录最近N次页面的观察状态值; 步骤1. 4,收集内存页面历史数据进程,并将收集的数据存入步骤1. 2和1. 3定义的数 据结构中。
3. 根据权利要求1所述的适用于虚拟机动态迁移的内存状态迁移方法,其特征在于步 骤2的预迁移阶段,步骤如下: 步骤2. 1,选定目标主机,向目标主机发送迁移请求,确保目标主机有足够的磁盘空间、 内存容量和资源容纳被迁移的VM,否则,迁移结束; 步骤2. 2,识别迁移前源主机的空闲内存页,定义空闲内存页集合FS。
4. 根据权利要求1所述的适用于虚拟机动态迁移的内存状态迁移方法,其特征在于步 骤3的迭代拷贝过程,步骤如下: 步骤3. 1,定义源主机内存页的不同类型,包括空闲内存页、工作内存页,工作内存页又 包括冷页内存页和脏页内存页,脏页内存页包括热工作内存页和温工作内存页; 步骤3. 2,设定迭代拷贝终止条件,设定阈值Wdpr; 步骤3. 3,第一轮迭代拷贝,发送除了空闲内存页的其他所有页面至目的主机的VM; 步骤3. 4,第二轮迭代拷贝,遍历每个内存页,执行工作集识别算法,区分冷页内存页、 热工作内存页、温工作内存页; 步骤3. 5,剩余迭代期间,为每个温工作内存页页面的最近N次记录分配权重,并按照 权重大小降序排列并储存,计算每个页面的脏页率
若一 个温工作内存页面的dpr超过设定的阈值Wdpr,则步骤3. 4结束;若dpr未超过设定的阈值Wdpr,则将该页面加入待传送的缓冲区;当缓冲区放满之后,开始温工作内存页内存页的传 送; 步骤3. 6,重复步骤3. 5直至迭代拷贝终止条件达成。
5. 根据权利要求4所述的适用于虚拟机动态迁移的内存状态迁移方法,步骤3. 2迭代 拷贝终止条件是迭代拷贝次数达到预定数量或者工作集小到内存页面总数的10%以内。
6.根据权利要求1所述的适用于虚拟机动态迁移的内存状态迁移方法,其特征在于步 骤4的停机拷贝阶段,步骤如下: 步骤4. 1,传送剩余的内存页至目的主机,包括剩余迭代拷贝期间未被发送的温工作内 存页以及发送过后又被改写温工作内存页和全部热工作内存页; 步骤4. 2,保存各种寄存器状态和共享内存信息,并发送给目的主机。 步骤4. 3,目的主机向源主机发送内存已全部收到的信息,源主机确认后,销毁虚拟 机; 步骤4. 4,虚拟机在目的主机上恢复运行,内存迁移全部完成。
【文档编号】G06F9/455GK104268003SQ201410523490
【公开日】2015年1月7日 申请日期:2014年9月30日 优先权日:2014年9月30日
【发明者】徐建, 费薇, 李涛, 张琨, 张宏, 吴旺文, 李千目, 许福, 范志凯, 陈龙 申请人:南京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1