实现远程内存交换的方法、装置及系统的制作方法

文档序号:6458967阅读:115来源:国知局
专利名称:实现远程内存交换的方法、装置及系统的制作方法
技术领域
本发明涉及计算机内存共享技术,尤其涉及一种实现虚拟机的远程内存交 换的方法、装置及系统。
背景技术
虚拟机技术源于上世纪60年代,其核心思想是在一台物理主机上虚拟出 多个虚拟计算机,其上能同时运行多个独立的操作系统,这些客户操作系统 Guest OS通过VMM (Virtual Machine Monitor,虚拟机管理器)访问实际的物理 资源。多机聚合虚拟化的目标是使得一个虚拟机能够利用多台物理主机的计算资 源,实现对虚拟机能力的提升和对物理主机资源的有效利用。在多机聚合虚拟 化中,如何使得一个虚拟机能够使用宿主物理主机以外的内存资源提高虚拟机 的性能,是一个很有意义的问题。目前,虚拟内存是解决系统峰值内存需求量大于主机物理内存的主要技术。 但把虚拟内存技术直接应用于虚拟机中时,会存在一些问题。首先,如果直接 在虚拟机内采用虚拟内存技术,由于虚拟机使用的硬盘为虚拟设备,在页面交 换上效率会比较低;其次,如果在VMM层次也采用虚拟内存技术,则因为VMM 不能获得虚拟机内部对内存使用的有效信息,使其对页面交换的决策存在无法 最优、重复交换、冗余回写等问题。在现有技术中,通过Ballooning技术,VMWare和Xen都实现了在虚拟机 之间暂时的转借内存,使得在同一台物理主机上的多个虚拟机可使用超出物理 主机内存总量的内存。Ballooning技术是通过在虚拟机的客户操作系统中安装专 用的驱动程序,通过驱动程序申请并锁定一定数量的内存并返还给虚拟机管理 器,这些返还的内存可,皮VMM通过其他虚拟才几的Ballooning驱动程序分配l吏 用。发明人在实施本发明的过程中,发现上述现有的虚拟机之间的转借内存技术具有如下缺点这种技术要求在客户操作系统中安装特定的驱动(修改客户操作系统)才 能实现,这对客户操作系统而言是非透明的;同时,它仍然依赖于客户操作系 统的虚拟内存页面交换机制,而向虚拟硬盘进行页面交换效率较低;如果每个 虚拟机同时需要大量内存时,其对内存需求的总量会超过物理内存限制,从而 无法得到满足一个物理主机上聚合多个虚拟机的需求。发明内容本发明实施例提供一种实现远程内存交换的方法、装置及系统,可提高物 理主机上虚拟才几的数量。为了解决上述技术问题,本发明实施例提供了 一种实现远程内存交换的方 法,包括从虚拟机的机器内存中释放机器页面,所述机器页面映射有物理页面; 将映射了所述机器页面的物理页面的内容传送到远程交换空间,其中,所述远程交换空间建立在远程物理主机上。相应地,本发明实施例还提供了一种实现远程内存交换的装置,包括 页面回收模块,用于从虚拟机的机器内存中释放机器页面,所述机器页面映射有物理页面;远程发送模块,用于将映射了所述页面回收模块所释放的机器页面的物理 页面的内容传送到远程交换空间。相应地,本发明实施例还提供了一种实现远程内存交换的系统,包括第一 物理主机和第二物理主才几;所述第一物理主机上创建有远程交换空间,用于存储所述第二物理主机上 的虚拟机的内存交换文件;所述第二物理主机上设有虚拟机,从虚拟机的机器内存中释放机器页面, 所述机器页面映射有物理页面,将映射了所述机器页面的物理页面的内容传送 到所述第 一物理主机的远程交换空间上。实施本发明实施例提供的实现远程内存交换的方法、装置及系统,具有以 下有益效果过高速网络将虚拟机的部分内存交换到所述远程物理主机的空闲内存上,提高 在一组物理主机上聚合虚拟机的数量和执行效率,使得在充分保证虚拟机页面 交换性能的前提下,实现对物理主机更高的利用率,降低总体拥有成本。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的实现远程内存交换的系统的组成示意图; 图2是本发明实施例提供的实现远程内存交换的装置的组成示意图; 图3是本发明实施例提供的页面回收模块的组成示意图; 图4是本发明实施例提供的页面状态转移示意图; 图5是本发明实施例提供的远程交换协议格式示意图; 图6是本发明实施例提供的实现远程内存交换的方法的流程示意图; 图7是本发明实施例提供的实现远程内存交换的系统的一个实施例的组成 示意图;图8是如图7所示系统实现远程内存交换实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅4又是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,是本发明实施例提供的实现远程内存交换的系统的组成示意图。 所述系统包括第 一物理主机和第二物理主机。虚拟机系统中存在着三个地址概念机器地址(MachineAddress),指真实硬件的物理地址,即地址总线上应该出 现的地址信号。物理地址(Guest Physical Address),指经过虚拟才几管理器VMM抽象的、虚拟机所看到的伪物理地址。虚拟地址(Guest Virtual Address),指客户操作系统Guest OS提拱给其应用程 序使用的线性地址空间。基于以上概念,在本发明实施例中,将虚拟机管理器管理的物理主机的实 际内存称为机器内存(以"页面"为单位),其中的页面称为机器页面;将虚拟 机中客户操作系统管理的内存称为物理内存(以"页面"为单位),其中的页面 称为物理页面。如图1所示,所述第一物理主机上创建有远程交换空间,用于存储所述第 二物理主机上的虚拟机的内存交换文件;所述远程交换空间的大小与虚拟机的 物理内存相等,以保证每一个物理页面都能交换到远程交换空间上;为了提高 内存交换的执行效率,将远程交换空间建立在第一物理主机的内存上。所述第二物理主机上部署有虚拟化环境,其上运行至少一个虚拟机。在创 建虚拟机时,为该虚拟机分配一定数量的机器内存。在初始化时,机器内存中 的页面不与任何物理页面绑定,只有在客户操作系统访问物理页面时,再为所 要访问的物理页面分配机器页面。在某一时刻,虚拟机上的客户操作系统访问物理页面时,虚拟机管理器确 定机器内存中的空闲页面是否足以分配给虚拟机所要访问的物理页面,即判断 空闲页面的数量是否大于所需页数;若所述空闲页面不足,则从机器内存的活 动页面(即已分配给物理页面的机器内存)中释放非活跃的(即最近没有访问 过的和/或暂时不用的)机器页面,并将映射了所述机器页面的物理页面的内 容传送到所述第一物理主机的远程交换空间上。其中,当机器页面被释放时, 所述机器页面成为空闲页面。所述第二物理主才几在确定机器内存中的空闲页面充净谷时,为虚拟才几所要访 问的物理页面分配机器页面,建立所述分配的机器页面与所要访问的物理页面 之间的映射关系,所述机器页面成为活动页面; 、进一步的,虚拟机管理器判断所要访问的物理页面的内容是否在所述第一 物理主机的远程交换空间上,若是,则从所述远程交换空间中读取所述物理页面的内容,并写入分配给所述物理页面的机器页面中。所述第二物理主机包括实现远程内存交换的装置,如图1中所示,实现远程内存交换的装置包括页面回收模块1和远程发送模块2,其中所述页面回收模块1用于从虚拟机的机器内存中释放机器页面,所述机器页面映射有物理页面;所述远程发送模块2用于将映射了所述页面回收模块1所释放的机器页面 的物理页面的内容传送到远程交换空间。进一步的,如图2所示,本发明的又一实施例中,所述实现远程内存交换 的装置还可以包括页面绑定模块3,用于从机器内存的空闲页面中,为虚拟机所要访问的物理 页面分配机器页面,建立所述分配的机器页面与所要访问的物理页面之间的映 射关系。页面内容确定模块4,用于确定虚拟机所要访问的物理页面的内容是否在远 程交换空间中;空间中时,从所述远程交换空间中读取所述物理页面的内容,并写入分配给所 述物理页面的;^几器页面中。本发明实施例提供的实现远程内存交换的系统,在高速网络的支持下,将 虚拟机的部分内存高效地交换到其它物理主机上,从而使得虚拟机上的操作系 统和应用软件能够透明地跨越物理主机4吏用内存资源,提高在一组物理主机上 聚合虚拟机的数量和执行效率,使得在充分保证虚拟机页面交换性能的前提下, 实现对物理资源更高的利用率,降低总体拥有成本。进一步的,参见图3,所述页面回收模块1包括活跃级别确定单元11,用于扫描虚拟机的机器内存中的活动页面,确定各 个活动页面的活跃级别;页面释放单元12,用于释放处于非活跃级别的机器页面,删除所述释放的 机器页面与对应的物理页面之间的映射关系;在远程内存交换的过程中,机器内存的空闲页面不足以分配给虚拟机所要 访问的物理页面时,所述页面回收模块1被激活,通过反复地扫描活动页面来 选出非活跃的机器页面,并交换到设置在其它物理主机上的远程交换空间上。 为了区分活动页面中页面的活跃程度,本发明实施例将活动页面区分为四种状 态,并采用Active才示志和Referenced才示志来表示,长口下状态①Active=l, Referenced=l,页面活跃且最近^皮访问过;状态②Active=l, Referenced=0,页面活i 天但最近没有访问过; 状态③Active=0, Referenced=l,页面非活跃^旦最近净皮访问过; 状态@: Active=0, Referenced=0,页面非活3夭且很久没有访问过。 如图4所示,是本发明实施例提供的页面状态转移示意图,页面的四种状态以及它们之间的转换关系如下一个机器页面刚刚成为活动页面时,它就进入"最活跃"的状态①;在每次扫描活动页面时,都会将Referenced标志清零,从而降低了页面的活跃级别 (从状态①到状态②,或从状态③到状态④)。当页面的活跃级别变为状态②时,就有可能将它置为"非活跃"的状态③,处于非活跃状态的页面是很有可能在不久的将来被换出的。出于性能考虑,并不会将扫描到的任何一个处于状态②的页面都置为状态③,例如,如果某个页面是客户操作系统Guest OS的页表,则它通常不应该被淘汰。页面回收模块1会反复地执行扫描,每次扫描时,都会重新确定各个活动页面的活跃级别,使得它们趋向"最不活跃"的状态④。最后,选择处于状态④的机器页面换出,当换出了足够多的机器页面后,整个过程就会停止。在高速网络的支持下,所述第一物理主机与第二物理主机之间通过远程交换协议进行内存交换。其中,如图5所示,所述远程交换协议的格式如下所述远程交换协议包括协议头和协议数据两部分,其中协议头指明了控制命令、需要交换的页面号、以及一些标志位;协议数据包含了被交换页面的内容。CMD表示控制命令,支持的控制命令有SENDPAGE,表示发送页面数据; GETPAGE,表示请求页面数据;CONFIRM,表示确认页面传送;当控制命令 为SENDPAGE时,所述远程交换协议将包含协i义tt据部分。Count表示需要交换的页面数,远程交换协议支持一次传送多个页面,Count 的值决定了后续VMID/GFN对的个数。VMID/GFN表示要交换的页面的虚拟机编号和物理页面号,这个二元组决 定了交换空间的位置。Flags表示额外的标志,支持的标志有S (Shared)标志,当控制命令为 SENDPAGE时,如果S标志位被设置,则表示本次命令中的所有VMID/GFN对 都只对应一个页面数据,因此协议数据部分将只包含一个页面的内容;如果S标志位没有设置,则表明本次命令中的每个VMID/GFN对分别对应 一个页面数 据,因此协议的数据部分将包括Count个页面的内容;L (Large)标志,当控制 命令为SENDPAGE时,如果该位被设置,则表明页面的大小是4MB,否则采 用普通的4KB页。
其中,第一物理主机上部署有交换服务进程,分配一定数量的内存页面作 为远程交换空间,当第一物理主机从远程交换协议中获悉第二物理主机需要将 内存页面交换到远程交换空间时,第一物理主机分配内存页面存放所述第二物 理主机的内存交换文件;当第二物理主机需要将内存交换文件读取回去时,第 一物理主机把页面内容通过高速网络传送回第二物理主机,同时释放存储所述 页面内容的页面,以用于进^f亍后续的内存交换。
本发明实施例提供的实现远程内存交换的装置及系统,在高速网络的支持 下,利用远程物理主机的内存资源作为内存交换文件的存储介质,比使用本地 磁盘作为交换空间的执行效率更高;且在虚拟机的物理内存配置一定时,只需 配置较少的机器内存给虚拟机,就能达到配置较多内存但使用本地磁盘作为交 换空间的性能。因此,在远程内存交换的支持下,可提高在一组物理主机上聚 合虚拟机的数量和执行效率。
参见图6,是本发明实施例提供的实现远程内存交换的方法的流程示意图。
SIOO,从虚拟机的机器内存中释放机器页面,所述机器页面映射有物理页面。
在创建虚拟机时,为该虚拟机分配一定数量的机器内存,在初始化时,机 器内存中的页面不与任何物理页面绑定,只有在客户操作系统访问物理页面时, 再为所要访问的物理页面分配机器页面。当虚拟机上的客户操作系统访问物理 页面时,需要确定机器内存中的空闲页面是否足以分配给所述虚拟机所要访问 的物理页面。在确定空闲页面不足时,从机器内存的活动页面(即已映射有物 理页面)中释放非活跃的机器页面。
进一步的,所述从机器内存的活动页面中释放非活跃的机器页面包括反 复扫描机器内存中的活动页面,并在每次扫描时重新确定各个活动的机器页面 的活跃级别;最后,将处于非活跃(即最近没有访问过的和/或暂时不用的) 级别的机器页面换出,删除所述换出的机器页面与对应的物理页面之间的映射 关系,所述^L器页面成为空闲页面。5101, 将映射了所述被释放的机器页面的物理页面的内容传送到远程交换 空间上。
其中,所述远程交换空间设置远程物理主机的内存上,用于存储本地物理 主机的虚拟机的内存交换文件,所述远程交换空间的大小与本地物理主机上的 虚拟机的物理内存相等,以保证每一个物理页面都能交换到远程主机的交换空 间上。。
当活动的机器页面被释放,成为空闲页面后,将映射了所述机器页面的物 理页面的内容传送到远程交换空间上,对所述物理页面的内容进行保护,可保 证在下一次对所述物理页面进行访问时,不影响虚拟机的正常运行。
5102, 从机器内存的空闲页面中,为虚拟机所要访问的物理页面分配机器 页面,建立所述分配的机器页面与所要访问的物理页面之间的映射关系,所述 才几器页面成为活动页面。
5103, 确定虚拟机所要访问的物理页面的内容是否在远程交换空间上,若 是,执行步骤S104;
S104,从远程交换空间中读取所述物理页面的内容,并将所述内容写入分 配给所述物理页面的才几器页面中。
本发明实施例提供的实现远程内存交换的方法,在高速网络的支持下,将 虚拟机的部分内存高效地交换到其它物理主机上,从而使得虚拟机上的操作系 统和应用软件能够透明地跨越物理主机使用内存资源,提高在一组物理主机上 聚合虚拟机的数量和执行效率,使得在充分保证虚拟机页面交换性能的前提下, 实现对物理资源更高的利用率,降^[氐总体拥有成本。
参见图7,是本发明实施例提供的远程内存交换系统的一个实施例的组成示 意图。
本发明实施例中,在一个高速网络上部署两台物理主才几71和72,其中物理 主机71作为本地主机,其上部署了支持动态内存映射的KVM (Kernel-based Virtual Machine,基于核心的虚拟机)虚拟化环境,还包括实现远程内存交换的 装置;物理主机72作为远程主机创建有远程交换空间,且其上部署一个交换服 务进程。
在本地主机71中,KVM部分功能主要由虚拟机引擎来实现,例如影子页 表的转换、远程调页及回收。影子页表建立了虚拟机物理内存到虚拟机管理器页面池中的机器内存的映 射关系。其中,可以采用一个大小为lpl的数组来表示所述映射关系,如
phys一mem[] (p为虚拟坤几所见的物理内存集合)。该it組的元素定义如下若 phys一mem[p]元素值为NULL时,表明一个物理页面还未和具体的机器页面绑 定,也就是还未分配具体的才几器页面给该物理页面;例如,若phys_mem[p] = m, 则phys—mem[p]指向机器页面m,表明物理页面p与机器页面m绑定。
进一步的,为了找到所有映射了某个机器页面的所有影子页表项,还釆用 了 "逆映射"数据结构。逆映射是一种能够快速获得映射原像的数据结构,当 虚拟机管理器更新影子页表时,同步更新对应的逆映射。
如图7中所示的页面池是用于维护虚拟机管理器VMM分配给某个虚拟机 的全部内存的数据结构,所述页面池包括空闲池和活动池。空闲池包含了当 前分配给该虚拟机、但未被虚拟机使用的所有机器页面,而活动池则包含了所 有已被虚拟机映射使用的机器页面。所述页面池包含以下操作
分配将一个页面乂人空闲池移入活动池,并且〗呆i正为该页面建立映射;
返还将一个页面从活动池放回空闲池,之前删除与该页面有关的所有内 存映射;
扩大将某些机器页面加入页面池的空闲池中,增大虚拟机所能使用的机 器内存;
收缩将某些机器页面从页面池的空闲池中删除,减小虚拟机所能使用的 机器内存。
上述页面池釆用两个双向《连表来实现,分别用于表示活动池和空闲池。当 一个机器页面的描述符被加到某个链表中时,就表示该页面已被加入对应的页 面池中。其中,所述机器页面池的描述符是用于表示机器页面的数据结构,包 含有以下信息对应的机器页面号、该页面被映射使用的次数以及该页面的使 用状态。
当物理主机71的机器内存不足时,所述实现远程内存交换的装置从页面池 的活动池中选择非活跃的机器页面,将它们放回空闲池中,并确保从影子页表 中删除对所述机器页面的映射。同时,所述实现远程内存交换的装置还将选中 的机器页面的内容通过远程交换协议传输到远程交换空间上;当物理主机71 需要访问远程交换空间中的内容时,实现远程内存交换的装置通过远程交换协议,向远程主才几72请求需要访问的物理页面的内容,/人空闲池中为所述页面
内容分配机器页面,并将所述机器页面放入活动池中,以供虚拟机使用。
其中,在机器内存的空闲页面不足时,页面淘汰算法被激活,通过反复扫 描活动页面,选出非活跃的机器页面交换到远程交换空间上。
在远程主机72上,分配一定数量的内存页面为本地主才几71上的每个虚拟 机创建一个交换空间,每个交换空间的大小与对应虚拟机上的客户操作系统管 理的物理内存相等。具体的做法是,利用Li皿x的mmap()方法,在交换服务进 程上创建一个虚拟地址空间,这个虚拟地址空间的大小和交换空间的大小是一 致的,而且和一个持久的文件相关联。当本地主机71需要把内存页面交换到远 程主机72时,从交换空间中分配页面存》文本地主机71的页面内容;当本地主 才几71请求4巴内存页面交换回去时,远程主机72通过网^各将所述页面内容传送 回本地主机71上,同时释放所述页面用于进行后续的内存交换。
图7中示出了两个虚拟机,两个虚拟机都能与远程交换空间进行远程内存 交换,为方便说明,仅以其中的一个虚拟机的远程内存交换的处理流程为例进 ^f亍说明。如图8所示,远程内存交换的处理流程如下
S200,虚拟机上的客户4喿作系统Guest OS访问虚拟地址v, KVM (Kernel-based Virtual Machine,基于核心的虚拟机)获知与虚拟地址v对应的 物理地址p未与机器页面绑定。
在创建虚拟机时,为该虚拟机分配一定数量的机器页面,并将所述机器页 面放入页面池的空闲池中,并置数组phys_mem[]的各个元素为NULL;在某个 时刻,虚拟机上的Guest OS访问了虚拟地址v,由于影子页表中没有关于v的 地址转换映射,虚拟机将发生页故障,并陷入KVM。
KVM根据被中断的虚拟CPU的页表指针寄存器(如x86处理器的CR3寄 存器),获得Guest OS的页目录指针,并模拟MMU ( Memory Management Unit, 存储器管理单元)逐级找到虛拟地址v所对应的页表项。在这里,假设该页表 项存在,而且没有权限错误。同时,KVM会根据每一级页表的物理地址,查询 影子页表的哈希表,获得与该页表对应的影子页表,如果该级页表没有对应的 影子页表,则分配新的影子页面,并与上一级影子页表相关联,最后,KVM得 到与v对应的影子页表项指针。
KVM从GuestOS的页表项中读出与虚拟地址v对应的物理地址p。在确认p是该虚拟机的合法物理地址后,KVM查询数组phys—mem[p],当发现其值为 NULL时,获知与虚拟地址v对应的物理地址p未与才几器页面绑定。
S201, KVM判断页面池中是否有足够多的空闲页面,若有,则转到步骤 S205;如果页面池中空闲页面的数量小于所需页数,则在此等待,执行步骤S202。 S202,从活动池中删除非活跃的机器页面,将所述机器页面加入空闲池中。 实现远程内存交换的装置根据特定的页面淘汰算法,从活动池中选择一组 页面,并将这些页面从活动池中删除;KVM依次查询所述从活动池中删除的页 面的逆映射链,找到所有映射了所述删除页面的影子页表项,先记录表项的"脏" 位,再将这些页表项置为空,同时也删除对应的逆映射;将所述删除了的非活 跃的机器页面加入空闲池中。最后,KVM刷新虚拟机的TLB(Translation Lookside Buffer,翻译后援存储器);所述"脏"位用于表示相应页面的内容是否已被改 写。
若是,执行步骤S204,若否,则转到步骤S205。
其中,可通过"脏"位来确定所述页面内容是否被改写,如果该页面是脏 的,即表明所述页面内容被改写过,需要对所述页面内容进行保护。
S204,将所述物理页面的内容传送到远程交换空间,同时标记所述物理页 面已被换出;
如果该页面是脏的,即所述页面^L改写过,则KVM通过高速网络,将所述 页面的物理页面号及页面内容通过远程交换协议传输到远程主机上;并在 phys—mem[]数组中,将与所述页面的物理页面号对应的数组元素置为NULL, 删除所述物理页面与机器页面的映射关系,同时标记所述物理页面已一皮换出。
S205,将^L器页面n^人空闲池中删除,并加入活动池,建立m与p的映射 关系。
从空闲池中选择机器页面m, KVM将机器页面m从空闲池中删除,并加 入活动池,分配机器页面给物理页面p,设置phys—mem[p] = m,物理页面p与 机器页面m建立映射关系。
S206,判断物理地址p对应的页面是否在之前被换出,若是,执行步骤S207, 则若,则转到步骤S208。其中,KVM根据物理地址p对应页面的标记来判断该 页面是否之前^皮换出。5207, 向远程主机请求物理地址p的页面内容,并将所述内容写入机器页 面m中。
通过远程交换协议,向远程主机请求物理地址p的页面内容,并将所述页 面内容写入才几器页面m中。
5208, KVM恢复虚拟机的执行。
将机器页面m的机器地址写入与导致故障的虚拟地址v对应的影子页表项, 并将这个页表项指针添加到机器页面m的逆映射链中。最后,KVM刷新虚拟机 的TLB,恢复虚拟机的执行。
需要说明的是,上述仅以KVM (Kernel-based Virtual Machine,基于核心的 虚拟机)虚拟化环境为例对虚拟机的远程内存交换进行说明,本发明实施例同 样可以应用到其它类型的虚拟化环境中。
本发明实施例提供的实现远程内存交换的系统,在高速网络的支持下,将 虚拟机的部分内存高效地交换到其它物理主机上,从而使得虚拟机上的操作系 统和应用软件能够透明地跨越物理主机使用内存资源,提高在一组物理主机上 聚合虚拟机的数量和执行效率,使得在充分保证虚拟机页面交换性能的前提下, 实现对物理资源更高的利用率,降低总体拥有成本。
本发明实施例提供的实现远程内存交换的方法、装置及系统,利用远程主 机的内存资源作为虚拟机的内存交换文件的存储介质,可提高内存交换的执行 效率;将本地主机不常用的内存页面交换到远程主机上,可实现利用单片几上有 限的物理内存资源,就能满足较多数量的虚拟机的内存需求,使得虚拟机在内
存需求达到物理内存峰值的情况下,仍能以较高的效率执行;由于远程内存交
换在虚拟机管理器层次实现,对上层虚拟机及其上的客户操作系统完全透明, 使得虚拟机上的客户操作系统和应不需要经过修改,就可以得到性能的提升。 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于 一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory, ROM)或随机存储记忆体(RandomAccess Memory, RAM)等。
以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此, 尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而 一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的 权利要求范围当中。
权利要求
1、一种实现远程内存交换的方法,其特征在于,包括从虚拟机的机器内存中释放机器页面,所述机器页面映射有物理页面;将映射了所述机器页面的物理页面的内容传送到远程交换空间,其中,所述远程交换空间建立在远程物理主机上。
2、如权利要求1所述的实现远程内存交换的方法,其特征在于,还包括 从机器内存的空闲页面中,为虚拟机所要访问的物理页面分配机器页面,建立
3、如权利要求2所述的实现远程内存交换的方法,其特征在于,还包括 确定所述虚拟机所要访问的物理页面的内容是否在远程交换空间中; 若是,从所述远程交换空间中读取所述物理页面的内容,并写入分配给所 述物理页面的^L器页面中。
4、 如权利要求1所述的实现远程内存交换的方法,其特征在于,所述从虚 拟机的机器内存中释放机器页面具体包括扫描虚拟机的机器内存中的活动页面,确定各个活动页面的活跃级别; 释放处于非活跃级别的机器页面,删除所述释放的机器页面与对应的物理 页面之间的映射关系。
5、 如权利要求1所述的实现远程内存交换的方法,其特征在于,所述远程 交换空间建立在所述远程物理主^L的内存上。
6、如权利要求1所述的实现远程内存交换的方法,其特征在于,所述远程 交换空间的大小与所述虚拟^/L的物理内存相等。
7、 一种实现远程内存交换的装置,其特征在于,包括页面回收模块,用于从虚拟机的机器内存中释放机器页面,所述机器页面映射有物理页面;远程发送模块,用于将映射了所述页面回收模块所释放的机器页面的物理 页面的内容传送到远程交换空间。
8、 如权利要求7所述的实现远程内存交换的装置,其特征在于,所述装置 还包括页面绑定模块,用于从机器内存的空闲页面中,为虚拟机所要访问的物理 页面分配^/L器页面,建立所述分配的才几器页面与所要访问的物理页面之间的映射关系。
9、 如权利要求7或8所述的实现远程内存交换的装置,其特征在于,所述 装置还包括页面内容确定模块,用于确定虚拟机所要访问的物理页面的内容是否在远 程交换空间中;远程读取模块,用于在确定虚拟机所要访问的物理页面的内容在远程交换 空间中时,从所述远程交换空间中读耳又所述物理页面的内容,并写入分配给所 述物理页面的才几器页面中。
10、 如权利要求7所述的实现远程内存交换的装置,其特征在于,所述页 面回收模块包括活跃级别确定单元,用于扫描虚拟机的机器内存中的活动页面,确定各个 活动页面的活跃级别;页面释放单元,用于释放处于非活跃级别的机器页面,删除所述释放的机 器页面与对应的物理页面之间的映射关系。
11、 一种实现远程内存交换的系统,其特征在于,包括第一物理主机和第 二物理主纟几;所述第一物理主机上创建有远程交换空间,用于存储所述第二物理主机上 的虚拟机的内存交换文件;所述第二物理主机上设有虚拟机,从虚拟机的机器内存中释放机器页面,所述机器页面映射有物理页面,将映射了所述机器页面的物理页面的内容传送 到所述第 一物理主机的远程交换空间上。
12、 如权利要求11所述的实现远程内存交换的系统,其特征在于,所述第二物理主机具体包括页面回收模块,用于从虚拟机的机器内存中释放机器页面,所述机器页面 映射有物理页面;远程发送模块,用于将映射了所述页面回收模块所释放的机器页面的物理 页面的内容传送到远程交换空间;页面绑定模块,用于从机器内存的空闲页面中,为虚拟机所要访问的物理 页面分配机器页面,建立所述分配的机器页面与所要访问的物理页面之间的映 射关系。
13、 如权利要求11或12所述的实现远程内存交换的系统,其特征在于, 所述第二物理主机还包括页面内容确定模块,用于确定虚拟机所要访问的物理页面的内容是否在远 程交换空间中;远程读取模块,用于在确定虚拟机所要访问的物理页面的内容在远程交换 空间中时,从所述远程交换空间中读取所述物理页面的内容,并写入分配给所 述物理页面的机器页面中。
14、 如权利要求11所述的实现远程内存交换的系统,其特征在于,所述远 程交换空间建立在所述第 一物理主机的内存上,所述远程交换空间的大小与所 述第二物理主机上的虛拟才几的物理内存相等。
全文摘要
本发明实施例公开了一种实现远程内存交换的方法、装置及系统,所述方法包括从虚拟机的机器内存中释放机器页面,所述机器页面映射有物理页面;将映射了所述机器页面的物理页面的内容传送到远程交换空间,其中,所述远程交换空间建立在远程物理主机上。本发明实施例公开的实现远程内存交换的装置包括页面回收模块及远程发送模块。采用本发明实施例,将虚拟机的部分内存交换到远程物理主机的空闲内存上,提高在一组物理主机上聚合虚拟机的数量和执行效率,使得在充分保证虚拟机页面交换性能的前提下,实现对物理主机更高的利用率,降低总体拥有成本。
文档编号G06F12/10GK101403992SQ20081002957
公开日2009年4月8日 申请日期2008年7月18日 优先权日2008年7月18日
发明者全小飞, 罗英伟 申请人:华为技术有限公司;北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1