本发明专利技术公开了一种快速扫描全虚拟化虚拟机脏页位图的方法,包括以下步骤:标志位初始化阶段:在Xen的地址空间中为全虚拟化虚拟机的4GB内存空间分配一级标志位和二级标志位,同时将一级标志位和二级标志位初始化为零,一级标志位的数量为4GB/128MB=32个,二级标志位的数量为1个,标志位设置阶段:读取Xen第二级页表项中的地址,并根据地址来设置一级标志位和二级标志位的值,标志位扫描阶段:根据设置的一级标志位和二级标志位的值来扫描全虚拟化虚拟机的脏页位图,从而得到变脏页面号。本发明专利技术在虚拟机动态迁移或者Remus?HA系统中减少因扫描脏页位图而暂停虚拟机的时间,从而提高虚拟机的计算性能和服务质量。
【技术实现步骤摘要】
本专利技术属于计算系统虚拟化领域,更具体地,涉及。
技术介绍
系统虚拟化(System virtualization)是在单一的物理硬件上同时运行多个操作系统实例,这些操作系统实例共享底层的物理硬件资源,并且相互独立、互不干扰,实现 物理资源的共享,从而使得物理资源得到充分有效的利用。虚拟机(Virtual machine,简称 VM)的动态迁移(Live migration)作为系统虚拟化的一项重要特性,可以使得虚拟机在服务几乎不中断的情况下从一台物理计算机上迁移到另外一台物理计算机上,并且对虚拟机及用户透明,被广泛应用在数据中心的系统维护、负载均衡及容错灾备上。然而在进行虚拟机迁移时,需要事先预知,然后再执行相应的操作。它是在计算系统(包括物理机和虚拟机)正常运转的前提下进行的,无法应对计算系统出现的突然性软硬件故障,对高可用(high availability,简称HA)系统来说具有很大的局限性。目前各大虚拟化厂商针对高可用问题相继推出自己的容错(Fault-tolerant)方案,如Vmware的HA、 Xen的Remus等。Remus基于Pre-copy虚拟机动态迁移框架,在备份物理计算机上启动一个备份虚拟机,周期性(几十到几百毫秒)地同步主-从虚拟机状态,使得当主虚拟机发生故障时备份虚拟机能够实时接管并保证正确一致的运行状态,从而达到高可用的目的。不管是对于虚拟机动态迁移还是对于基于虚拟机动态迁移框架的Remus HA系统来说,每次同步虚拟机内存状态前,一个不可或缺的过程就是扫描保存在Xen内存空间中的目标虚拟机脏页位图(dirty bitmap),找出上一个周期中变脏的页面,然后以页面(大小为4096B)为单位将变脏页面发送到目标物理机上,从而保证双方虚拟机的内存状态一致。 但是该扫描过程是在暂停虚拟机运行的前提下进行的,通过逐位扫描脏页位图来获取变脏页面,造成扫描时间过长,进而影响虚拟机的计算性能和服务质量。另外,对于全虚拟化虚拟机来说,由于其对虚拟化平台Xen完全透明,因此在创建虚拟机时不管配置的是128MB 还是1024MB的内存大小,Xen内核都为该虚拟机配置4GB的脏页位图空间,一共1048576 (4GB/4KB)个脏页位。如图1所示,以全虚拟化虚拟机内存配置大小512MB为例,在测试的317856个周期中,只有两个周期有脏页面分布在高3. 5GB (pfn>131072)空间,其余所有周期的脏页面均分布在低512MB (pfn彡131072)空间。而用户空间的应用在扫描脏页位图时,仍要逐位扫描整个4GB (O ( pfn < 1048576)内存空间的脏页位图,扫描时间需要十毫秒左右,而且几乎无脏页分布的高3. 5GB空间的扫描时间要占到87. 5%左右。如果虚拟机的内存配置得更小些,那么这种无效的扫描时间所占的比例会更高。值得强调的是,在扫描脏页位图的过程中虚拟机是处于暂停状态的,对于Remus这种高频地(2HZ10HZ)进行虚拟机状态同步的应用来说,扫描脏页位图的时间开销对虚拟机的性能影响相当严重。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于针对全虚拟化虚拟机变脏页面号在脏页位图中的分布情况,提供,其能够在虚拟机动态迁移或者Remus HA系统中减少因扫描脏页位图而暂停虚拟机的时间,从而提高虚拟机的计算性能和服务质量。为实现上述目的,本专利技术提供了, 包括以下步骤(I)标志位初始化阶段在Xen的地址空间中为全虚拟化虚拟机的4GB内存空间分配一级标志位和二级标志位,同时将一级标志位和二级标志位初始化为零,一级标志位的数量为4GB/128MB=32个,二级标志位的数量为I个;(2)标志位设置阶段读取Xen第二级页表项中的地址,并根据地址来设置一级标志位和二级标志位的值,具体包括以下子步骤(2-1)读取Xen第二级页表的第O个页表项;(2-2)判断已读取页表项中的地址是否有效,若地址有效,则转入步骤(2-3),否则转入步骤(2-4);(2-3)设置该地址相应的一级标志位为1,并根据地址获取相应的脏页位图页面, 然后转入步骤(2-5);(2-4)获取全零的脏页位图页面,然后转入步骤(2-7);(2-5)判断该页表项是否为第Γ31号页表项,如果是,则转入步骤(2-6),否则转入步骤(2-7);(2-6)设置二级标志位为I ; (2-7)判断该页表项是否为第31个页表项,如果是,则转入步骤(2-8),否则转入步骤(2-9);(2-8)结束设置,将脏页位图和一级标志位及二级标志位返回给用户空间的应用;(2-9)读取下一个页表项,并返回步骤(2-2);(2-10)重复步骤(2-2)至(2-9),直到所有页表项都处理完毕为止;(3)标志位扫描阶段根据设置的一级标志位和二级标志位的值来扫描全虚拟化虚拟机的脏页位图,从而得到变脏页面号,具体包括以下子步骤(3-1)读取第O个一级标志位的值;(3-2)判断是否为第4个一级标志位,如果是,则转入步骤(3-6),否则转入步骤 (3-3);(3-3)判断该一级标志位的值是否为0,如果是,则转入步骤(3-5),否则转入步骤 (3-4);(3-4)逐位扫描该一级标志位对应的脏页位图页面,并将位值为I对应的页面号记录下来,然后转入步骤(3-4);(3-5)读取下一个一级标志位的值,并转入步骤(3-2);(3-6)判断二级标志位的值是否为零,如果是,则转入步骤(3-11),否则转入步骤 (3-7);(3-7)判断已读取的一级标志位是否为第31个一级标志位,如果是,则转入步骤 (3-11),否则转入步骤(3-8);(3-8)判断已读取的一级标志位的值是否为0,如果是,则转入步骤(3-10),否则转入步骤(3-9);(3-9)逐位扫描该一级标志位对应的脏页位图页面,并将位值为I对应的页面号记录下来,然后转入步骤(3-10);(3-10)读取下一个一级标志位,并返回步骤(3-7);(3-11)重复步骤(3-7)至(3-10),直到所有一级标志位都处理完毕为止,并得到变脏的页面号。步骤(I)具体为,分配的每个一级标志位对应于全虚拟化虚拟机的128MB虚拟地址空间,二级标志位是根据全虚拟化虚拟机的配置内存大小自适应地为全虚拟化虚拟机的高地址空间分配的,高地址空间是指大于全虚拟化虚拟机实际内存的地址空间。通过本专利技术所构思的以上技术方案,与现有技术相比,本专利技术具有以下的有益效果(I)方便性本专利技术完全由软件实现,以Xen补丁的形式存在,无需特殊的硬件支撑环境,易于安装使用;(2)灵活性本专利技术具有对不同配置虚拟机的实时适应性,灵活地根据虚拟实际内存配置为其高地址空间分配二级标志位,能够匹配虚拟机内存大小的各种配置情况;(3)透明性本专利技术在Xen内核及用户工具中实现,对目标虚拟机完全透明,无需对虚拟机上的客户操作系统做任何修改,适应目前流行的Windonws及Linux等类型虚拟机;(4)高效性本专利技术通过在脏页位图之上设立两级标志位的方法,可有效缩短脏页位图的扫描时间,减少在扫描脏页位图时的虚拟机暂停时间,从而提高虚拟机的计算性能和服务质量,实现虚拟平台整体性能的提升。附图说明图I是现有全虚拟化虚拟机脏页位图的分布情况。图2是本专利技术快速扫描全虚拟化虚拟本文档来自技高网...
【技术保护点】
一种快速扫描全虚拟化虚拟机脏页位图的方法,其特征在于,包括以下步骤:(1)标志位初始化阶段:在Xen的地址空间中为全虚拟化虚拟机的4GB内存空间分配一级标志位和二级标志位,同时将一级标志位和二级标志位初始化为零,一级标志位的数量为4GB/128MB=32个,二级标志位的数量为1个;(2)标志位设置阶段:读取Xen第二级页表项中的地址,并根据地址来设置一级标志位和二级标志位的值,具体包括以下子步骤:(2?1)读取Xen第二级页表的第0个页表项;(2?2)判断已读取页表项中的地址是否有效,若地址有效,则转入步骤(2?3),否则转入步骤(2?4);(2?3)设置该地址相应的一级标志位为1,并根据地址获取相应的脏页位图页面,然后转入步骤(2?5);(2?4)获取全零的脏页位图页面,然后转入步骤(2?7);(2?5)判断该页表项是否为第4~31号页表项,如果是,则转入步骤(2?6),否则转入步骤(2?7);(2?6)设置二级标志位为1;(2?7)判断该页表项是否为第31个页表项,如果是,则转入步骤(2?8),否则转入步骤(2?9);(2?8)结束设置,将脏页位图和一级标志位及二级标志位返回给用户空间的应用;(2?9)读取下一个页表项,并返回步骤(2?2);(2?10)重复步骤(2?2)至(2?9),直到所有页表项都处理完毕为止;(3)标志位扫描阶段:根据设置的一级标志位和二级标志位的值来扫 描全虚拟化虚拟机的脏页位图,从而得到变脏页面号,具体包括以下子步骤:(3?1)读取第0个一级标志位的值;(3?2)判断是否为第4个一级标志位,如果是,则转入步骤(3?6),否则转入步骤(3?3);(3?3)判断该一级标志位的值是否为0,如果是,则转入步骤(3?5),否则转入步骤(3?4);(3?4)逐位扫描该一级标志位对应的脏页位图页面,并将位值为1对应的页面号记录下来,然后转入步骤(3?4);(3?5)读取下一个一级标志位的值,并转入步骤(3?2);(3?6)判断二级标志位的值是否为零,如果是,则转入步骤(3?11),否则转入步骤(3?7);(3?7)判断已读取的一级标志位是否为第31个一级标志位,如果是,则转入步骤(3?11),否则转入步骤(3?8);(3?8)判断已读取的一级标志位的值是否为0,如果是,则转入步骤(3?10),否则转入步骤(3?9);(3?9)逐位扫描该一级标志位对应的脏页位图页面,并将位值为1对应的页面号记录下来,然后转入步骤(3?10);(3?10)读取下一个一级标志位,并返回步骤(3?7);(3?11)重复步骤(3?7)至(3?10),直到所有一级标志位都处理完毕为止,并得到变脏的页面号。...
【技术特征摘要】
【专利技术属性】
技术研发人员:吴松,石宜化,金海,杜云杰,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。