一种内存迁移方法及装置制造方法及图纸

技术编号:11677605 阅读:78 留言:0更新日期:2015-07-06 04:26
本发明专利技术公开了一种内存迁移方法及装置,属于数字数据处理领域,所述内存迁移方法包括:所述源虚拟机获取每个被修改的页内的偏移地址长度;将多个偏移地址长度累加,获得偏移地址总长度;将所述偏移地址总长度除以所述页的地址长度,将计算结果标记为脏页数量;判断所述脏页数量是否小于所述第一阈值,若是,停止修改所述内存中的数据,将所述内存中未被传输的数据发送至所述目的虚拟机。本发明专利技术实施例使每轮迭代的时间迅速减少,即迭代的敏捷度越来越快,从而每轮获取的工作集的大小迅速减小,能够更快的达到小于阀值条件。

【技术实现步骤摘要】

本专利技术涉及数字数据处理领域,具体而言,涉及一种内存迀移方法及装置。
技术介绍
虚拟机动态迀移是指在源虚拟机达到迀移条件后触发迀移流程,通过一系列步骤,源虚拟机将自己所有资源如磁盘、CPU、内存等通过网络迀移到目的虚拟机,迀移过程中要保证用户体验,即要求源虚拟机上服务的中断时间足够短。传统的虚拟机动态内存迀移机制流程可以分为五个阶段:迀移准备阶段,锁定目标资源阶段,预拷贝阶段,停机拷贝阶段和结束迀移阶段。其中,所述预拷贝阶段为:在迀移信号被发起后,源域的内存信息以页为粒度开始被收集和传输,通过迭代的方法传输两轮之间产生的新的脏页,第一轮将所有内存页传输到目的域,从第二轮开始把连续两轮都被更新过的内存定为这一轮要传输的工作集并将其传输到目标域。当某一轮传输页数少于阀值或者达到最大迭代次数等临界条件时,源域被宕机,对外服务暂时被中断,预拷贝阶段结束,进入停机拷贝阶段。专利技术人在研宄中发现,现有的虚拟机动态迀移机制中,当脏页(内存中被修改的页)数较多,脏页内的实际脏数据较少时,现有的迀移机制判断脏页数大于阈值,则需再次迭代,使所述预拷贝阶段的收敛速度过慢,从而降低了迀移效率。
技术实现思路
本专利技术的目的在于提供一种内存迀移方法及装置,以有效提高现有的虚拟机内存迀移机制的迀移效率。第一方面,本专利技术实施例提供的一种内存迀移方法,应用于虚拟机动态内存迀移系统,所述虚拟机动态内存迀移系统包括源虚拟机和目的虚拟机,所述源虚拟机的内存中的数据被划分为多个相同地址长度的页,所述源虚拟机内存储有第一阈值,所述方法包括:所述源虚拟机获取每个被修改的页内的偏移地址长度;所述源虚拟机将多个偏移地址长度累加,获得偏移地址总长度;所述源虚拟机将所述偏移地址总长度除以所述页的地址长度,将计算结果标记为脏页数量;所述源虚拟机判断所述脏页数量是否小于所述第一阈值,若否,将每个所述偏移地址长度对应的被修改的数据以及每个所述偏移地址长度对应的被修改的数据的身份信息发送至所述目的虚拟机,若是,停止修改所述内存中的数据,将所述内存中未被传输的所有数据发送至所述目的虚拟机。结合第一方面,本专利技术实施例还提供了第一方面的第一种可能实施方式,其中,所述源虚拟机内存储有第二阈值和预设有迭代次数,所述方法还包括:当所述源虚拟机判断所述脏页数量大于所述第一阈值,将被修改的页以及所述被修改的页的身份信息发送至所述目的虚拟机,之后,所述源虚拟机将所述迭代次数加一,所述源虚拟机判断所述迭代次数是否等于所述第二阈值,若是,停止修改所述内存中的数据,将所述内存中未被传输的数据发送至所述目的虚拟机。结合第一方面或第一方面的第一种可能实施方式,本专利技术实施例还提供了第一方面的第二种可能实施方式,其中,所述源虚拟机设有多个数据结构体;所述源虚拟机获取每个被修改的页内的偏移地址长度,包括:所述源虚拟机获取每个被修改的页的偏移起始地址和偏移结束地址,将每个被修改的页的偏移结束地址与偏移起始地址相减得到的差值标记为所述被修改的页内的偏移地址长度;所述源虚拟机将所述被修改的页的身份信息、偏移起始地址和偏移结束地址存储到所述数据结构体,建立所述被修改的页的身份信息与所述数据结构体的身份信息的对应表;所述将每个所述偏移地址长度对应的被修改的数据以及每个所述偏移地址长度对应的被修改的数据的身份信息发送至所述目的虚拟机,包括:将每个所述数据结构体内的页内的所述偏移起始地址和所述偏移结束地址之间的数据以及所述数据结构体发送至所述目的虚拟机。结合第一方面的第二种可能实施方式,本专利技术实施例还提供了第一方面的第三种可能实施方式,其中,所述方法还包括:当所述源虚拟机再次获取每个被修改的页的偏移起始地址和偏移结束地址时,所述源虚拟机判断所述对应表中是否存在与所述被修改的页的身份信息对应的数据结构体的身份信息,若是,更新与所述被修改的页的身份信息对应的数据结构体的偏移起始地址和偏移结束地址;若否,为所述被修改的页的身份信息分配新的数据结构体,存储所述被修改的页的偏移起始地址和偏移结束地址,更新所述对应表。结合第一方面,本专利技术实施例还提供了第一方面的第四种可能实施方式,其中,所述方法还包括:当所述源虚拟机判断所述脏页数量大于所述第一阈值时,在将每个所述偏移地址长度对应的被修改的数据以及每个所述偏移地址长度对应的被修改的数据的身份信息发送至所述目的虚拟机时,所述源虚拟机再次获取每个被修改的页内的偏移地址长度。第二方面,本专利技术实施例还提供了一种内存迀移装置,应用于虚拟机动态内存迀移系统,所述虚拟机动态内存迀移系统包括安装有所述内存迀移装置的源虚拟机和目的虚拟机,所述源虚拟机的内存中的数据被划分为多个相同地址长度的页,所述源虚拟机内存储有第一阈值,所述内存迀移装置,包括:获取单元,用于获取每个被修改的页内的偏移地址长度;累加单元,用于将多个偏移地址长度累加,获得偏移地址总长度;计算单元,用于将所述偏移地址总长度除以所述页的地址长度,将计算结果标记为脏页数量;第一判断单元,用于所述源虚拟机判断判断所述脏页数量是否小于所述第一阈值,若否,将每个所述偏移地址长度对应的被修改的数据以及每个所述偏移地址长度对应的被修改的数据的身份信息发送至所述目的虚拟机,若是,停止修改所述内存中的数据,将所述内存中未被传输的所有数据发送至所述目的虚拟机。结合第二方面,本专利技术实施例还提供了第二方面的第一种可能实施方式,其中,所述源虚拟机内存储有第二阈值和预设有迭代次数,所述内存迀移装置还包括:第二判断单元,用于当所述源虚拟机判断所述脏页数量大于所述第一阈值,将被修改的页以及所述被修改的页的身份信息发送至所述目的虚拟机,之后,所述源虚拟机将所述迭代次数加一,所述源虚拟机判断所述迭代次数是否等于所述第二阈值,若是,停止修改所述内存中的数据,将所述内存中未被传输的数据发送至所述目的虚拟机。结合第二方面或第二方面的第一种可能实施方式,本专利技术实施例还提供了第二方面的第二种可能实施方式,其中,所述源虚拟机设有多个数据结构体;所述获取单元包括:地址获取子单元,用于获取每个被修改的页的偏移起始地址和偏移结束地址,将每个被修改的页的偏移结束地址与偏移起始地址相减得到的差值标记为所述被修改的页内的偏移地址长度;存储子单元,用于将所述被修改的页的身份信息、偏移起始地址和偏移结束地址存储到所述数据结构体,建立所述被修改的页的身份信息与所述数据结构体的身份信息的对应表;所述第一判断单元包括:发送子单元,用于将每个所述数据结构体内的页内的所述偏移起始地址和所述偏移结束地址之间的数据以及所述数据结构体发送至所述目的虚拟机。结合第二方面的第二种可能实施方式,本专利技术实施例还提供了第二方面的第三种可能实施方式,其中,所述内存迀移装置还包括:分配单元,用于当所述迭代单元再次执行所述源虚拟机获取每个被修改的页内的偏移地址长度的步骤时,再次获取每个被修改的页的偏移起始地址和偏移结束地址,所述源虚拟机判断所述对应表中是否存在与所述被修改的页的身份信息对应的数据结构体的身份信息,若是,更新与所述被修改的页的身份信息对应的数据结构体的偏移起始地址和偏移结束地址;若否,为所述被修改的页的身份信息分配新的数据结构体,存储所述被修改的页的偏移起始地址和偏移结束地址,更新所述对本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/CN104750620.html" title="一种内存迁移方法及装置原文来自X技术">内存迁移方法及装置</a>

【技术保护点】
一种内存迁移方法,其特征在于,应用于虚拟机动态内存迁移系统,所述虚拟机动态内存迁移系统包括源虚拟机和目的虚拟机,所述源虚拟机的内存中的数据被划分为多个相同地址长度的页,所述源虚拟机内存储有第一阈值,所述方法包括:所述源虚拟机获取每个被修改的页内的偏移地址长度;所述源虚拟机将多个偏移地址长度累加,获得偏移地址总长度;所述源虚拟机将所述偏移地址总长度除以所述页的地址长度,将计算结果标记为脏页数量;所述源虚拟机判断所述脏页数量是否小于所述第一阈值,若否,将每个所述偏移地址长度对应的被修改的数据以及每个所述偏移地址长度对应的被修改的数据的身份信息发送至所述目的虚拟机,若是,停止修改所述内存中的数据,将所述内存中未被传输的所有数据发送至所述目的虚拟机。

【技术特征摘要】

【专利技术属性】
技术研发人员:谭良胡波程虹锡姚治菊
申请(专利权)人:四川师范大学
类型:发明
国别省市:四川;51

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

1