分布式内存虚拟化技术的实现方法

文档序号:6471029阅读:298来源:国知局

专利名称::分布式内存虚拟化技术的实现方法
技术领域
:本发明采用最新的硬件和软件相结合的虚拟化技术,结合分布式共享存储算法将分布于多主机的内存资源进行虚拟化和整合.它涉及计算机虛拟化技术中的内存虚拟化领域以及分布式系统中的分布式共享存储领域。属于计算机
技术领域

背景技术
:早在上个世纪60年代末70年代初IBM公司就在大型机上实现了商用的虚拟机,诸多文献描述了IBM在OS360使用的虚拟机的实现以及经典的虚拟机体系结构并描述了利用虚拟机监控器实现虚拟化的方法。研究人员总结了第三代计算机可虚拟性(Virtualizability):指出可虚拟性主要依赖于计算机指令集中敏感指令集的存在方式。同时总结了可虚拟性的两个重要定理-定理一对于任何通常意义上的第三代计算机,如果该计算机敏感指令集是特权指令集的子集,就可以在此计算机上创建一个虚拟机监控器。定理二对于任何通常意义上的第三代计算机,如果该计算机的用户敏感指令集是特权指令集的子集,就可以在此计算机上创建一个混合式(hybrid)的虚拟机监控器。由于大多数计算机并不满足定理一的要求,所以一些文献放松了要求只要符合定理二的要求就可以利用陷入-模拟的方式(trap-and-emulate)完成虚拟化。可虚拟化的关键是对敏感的非特权指令的处理。对这种指令的不同处理方式引发了下面几种不同的虚拟化方式。1)基于二进制翻译的全虚拟化(FullVirtualizationwithBinaryTranslation)。这种方式动态的扫描二进制代码,将敏感指令替换为跳转到相应模拟例程。通过这种方式避免敏感指令的产生。VMware公司已经可以提供基于这种方式的商业化解决方案。这是目前唯一的在IA32/Intel64体系结构下不需要特殊硬件辅助实现全虚拟化的方式。但这种方案也存在明显的缺陷由于要动态的监控并即时翻译二进制码,性能上会有所损失。2)硬件辅助的虚拟化(HardwareAssistedVirtualization)。这禾中方式通过扩展指令集,通过硬件完成传统虚拟机监控器(VirtualMachineMonitor,VMM)所需要的陷入以及状态切换。通过这种方式可以极大地简化虚拟机的设计。但是由于硬件在状态切换的时候会保存整个处理器的状态并切换地址空间,由此带来的开销不可忽略,特别是在虚拟机与虚拟机监控器频繁切换的情况下。本发明专利采用的就是这种方式实现VMM。3)准虚拟化(Paraiirtualization)。这种方式通过静态的改写客户操作系统源代码,通过客户操作系统与虚拟机监控器显示协作的方式完成虛拟化策略。开放源代码的虚拟机监控器Xen就是基于这种技术。这种技术通过VM对VMM的感知,避免了传统陷入-模拟方式效率较低的问题,但需要对客户操作系统源代码进行修改。内存虚拟化内存虚拟化技术是虚拟化技术的分支,主要的作用是为虚拟机提供虚拟化的地址空间地址变换。主流的内存虚拟化技术有如下几种1)基于超级调用(Hypercall)的准虚拟化方式这种方式的特点是改写客户操作系统源代码,将所有MMU相关的操作都通过超级调用的方式请求VMM协助完成。这方面典型的代表为Xen支持的准虚拟化虚拟机。2)基于影子页表(ShadowPagetable,SPT)的全虚拟化方式这种方式的主要特点是硬件使用与客户页表对应的影子页表进行寻址。主要代表为Xen与Virtuallron。这种方式的优势在于在缺少硬件支持的情况下达到较高的性能。缺点是实现复杂,特别对于支持多种寻址方式的处理器。3)硬件辅助的内存虚拟化方式这种方式的原理是通过在传统的页表层次之下添加一个由V函维护的额外层次,处理器寻址时一次査询客户页表以及该额外页表层次,完成寻址。AMD公司的内嵌式分页(NestedPaging)以及Intel公司的扩展分页(ExtendedPaging)就是这种技术的代表。4)影子TLB方式(ShadowTLB):在软件可控TLB体系结构上,V丽可以通过捕获TLB缺失(TLBmiss),按照与影子页表类似的方式完成内存的虚拟化。在软件可控TLB的体系结构上实现的虚拟机大多采用这种方式。5)操作系统支持的内存映射方式采用这种MMU虚拟化方式的V國一般都是基于宿主操作系统的虚拟机。这些类型的虚拟机利用操作系统进程实现虚拟机的抽象。现代操作系统大都提供ramap系统调用来操纵进程对应的虚拟地址空间,从而为VMM利用mraap建立虚拟机寻址所需要的映射提供了便利。但由于进程地址空间的限制,这种虚拟化的方式通常会与准虚拟化技术结合实现。分布式共享存储技术分布式共享存储技术的本质是利用软件在内存分布的计算机系统中,通过软件模拟缓存一致性协议为应用提供一个共享内存的视图。分布式共享存储技术的核心是其一致性协议。KaiLi在其博士论文中提出了软件分布式存储(DistributedSharedMemory,DSM)的概念并描述了软件分布式共享存储的原型系统一IVY。以现在的观点考查,其提出的算法是基于虚拟内存的单写者多读者的软件分布式共享存储算法,该算法基于顺序一致性模型。该论文中提出了算法的多种实现方式,主要可以分为两类一种实现类似于当今的即MA(NonUniformMemoryAccess)体系结构;另一种实现类似COMA体系结构(CacheOnlyMachineArchitecture^自从分布式存储的概念提出以来,研究人员在这方面做出了大量的研究,主要集中在两个方面1)尽量减少由于DSM引发的通信,研究人员大都通过放松一致性达到这个目的。2)解决DSM中的伪共享问题,该问题是由于共享粒度与访问对象的粒度不一致造成的。目前的DSM实现大多集中于用户态,中间件或者操作系统中。本发明阐述的系统结合内存虚拟化技术与分布式共享存储技术,在操作系统之下的VMM中实现了分布式共享存储算法。
发明内容1目的本发明提供一种分布式内存虚拟化技术的实现方法,它主要采用最新的硬件和软件相结合的虚拟化技术,结合分布式共享存储算法将分布于多主机的内存资源进行虚拟化和整合,为上层客户操作系统提供一个共享的单一物理地址空间,实现客户操作系统对分布式内存管理和使用。2技术方案2.1方法概述本发明专利基于集群系统-一种通过外部互联网络连接的多计算机系统,其特点是内存以分布式的方式位于各个节点之间,集群中的计算机需要通过网络传递消息的方式进行合作。本发明专利的目标是在机群系统之上利用虚拟化技术提供具有对称式多处理器(SymmetricMulti-Processors,SMP)特性的虚拟机。SMP系统的特点是,多个处理器之间拥有共享的内存,处理器通过共享的内存进行协作。本发明专利通过在机群节点上部署VMM,在机群系统的物理结构上提供具有SMP特性的虚拟机。通过在VMM中实现分布式共享存储算法为虚拟机提供共享的物理地址空间,借助虚拟化技术提供具有SMP特性的虚拟机,使支持SMP结构的商业化的操作系统无需修改即可运行在该虚拟机中。从虚拟机中的客户操作系统看来,其认为自己运行于具有共享内存特性的SMP体系结构之上。VMM的内存虚拟化模块负责为客户操作系统提供一个客户物理地址空间,并且对虚拟机的寻址过程进行虚拟化,同时还负责判断远程映射页面并触发软件DSM算法。软件DSM模块负责模拟缓存一致性协议,使该客户操作系统看到一个缓存一致的共享地址空间,保证客户操作系统以及客户应用运行的正确性。2.2系统结构整个系统按功能可以分为5个模块■SPT模块用于为虚拟机提供一个共享客户物理地址空间。■P2M用于负责SPT与DSM模块的协作。■DSM用于实现软件DSM算法。■接口模块用为其它虚拟化模块提供访问共享内存的方法。■其它虚拟化模块包括实现处理器虚拟化,I/O虚拟化等完成整个虚拟化策略所必须的其它模块。与本发明相关的模块包括SPT(SPT)模块V醒利用SPT为虚拟机提供虚拟化的地址空间,地址变换以及相应的寻址寄存器。SPT中记录的是线性地址到机器物理地址的映射。VMM通过査询GPT可得到线性地址到客户物理地址的映射,通过查询P2M可得到客户物理地址到机器物理地址的映射,最终得到线性地址到机器物理地址的映射。一SPT模块通过维护虚拟的页表基址寄存器以及SPT实现内存虚拟化。虚拟机运行时,物理硬件使用V画维护的SPT进行寻址。SPT中的映射内容由GPT派生(同步)而来,其中保存由线性地址到机器地址的映射。该同步过程由VMM负责完成,每当VMM捕获虚拟机产生的缺页异常或者TLB刷新指令,SPT首先会资询GPT,之后会进行同步操作。当客户映射为本地映射时,将GPT中维护的线性地址到物理地址的映射转换6为SPT中的线性地址到机器地址的映射。当客户映射为非本地映射时,在SPT中标记相应的映射为缺页以触发缺页异常。每当客户操作系统更新页表基址寄存器,V丽相应地将硬件寻址使用的页表基址寄存器更换为对应的顶级SPT。由于硬件使用SPT进行寻址,所以硬件TLB中保存的是由线性地址到机器地址的映射。SPT的同步过程是由查询GPT以及P2M完成的。SPT映射项包含两个部分1)映射页面部分指明了线性地址到机器地址的映射,以及映射到具体的机器页面号。该机器页面号可由GPT以及P2M表获取。2)映射权限部分指明了允许访问的权限,访问权限并非根据GPT获得,而是由DSM控制的P2M映射权限得到,以满足DSM算法的要求。在虚拟机运行时,硬件使用SPT进行寻址。当SPT中存在有效映射项时,此次寻址请求可以直接完成;当SPT中的映射项或者寻址请求与映射权限冲突时产生的缺页异常会被VMl所捕获,触发内存虚拟化策略以及DSM算法。P2M模块P2M模块保存客户物理地址到机器地址的映射,用于实现DSM与SPT的协作。具体的映射内容包括1)本地的客户物理页面对应的机器页面号。2)映射权限读写权限以及是否有效。3)映射类型内存映射还是内存映射I/0映射。4)DSM元数据用于实现DSM策略的算法相关数据结构,DSM算法依据这些结构做出决策。P2M由DSM模块负责维护,供内存虚拟化模块査询并生成对应的SPT。P2M模块功能主要有1)SPT与GPT同步时产生SPT映射项当需要同步SPT与GPT时,VMM首先査询GPT得到线性地址到物理地址的映射,之后会查询P2M,得到物理地址到机器地址的映射。当映射为本地映射时,V醒合并上述两种映射,得到线性地址到机器地址的映射并保存在SPT中。2)保存DSM算法数据用于实现共享地址空间DSM算法的元数据同时保存在P2M中,DSM算法会查询并且变更P2M映射。当P2M映射被DSM算法改变后,P2M模块会通知SPT模块,对相应的SPT中的映射做出与P2M映射一致的更改。3)P2M中的映射类型指明了对应映射是内存映射I/O还是直接内存映射。对于映射到虚拟设备上的客户物理地址,P2M总是标记对应的映射无效。SPT在尝试同步该映射时,对应映射项也会被标记为无效。当客户指令尝试进行内存映射I/0的访问时,会产生缺页异常。SPT捕获该缺页异常,在查询P2M后得知该地址映射至虚拟设备。SPT因此并不启动DSM而是请求I/O虚拟化模块完成对内存映射I/O的模拟。分布式共享存储(DSM)模块分布式共享存储模块主要利用现有的分布式共享存储算法,在物理内存分布的基础上,提供共享内存。本发明专利结合了SPT与DSM,实现共享的客户物理内存。由于SPT映射内容由GPT与P2M得出,在P2M中的远程页面被同步到SPT时其映射是无效的。因此当客户指令尝试访问该页面时会产生缺页异常,并触发DSM算法从远程迁移该页面至本地。同样地,当DSM算法迁移对应的页面至本地后,会更新P2M映射并通知SPT相应映射的更新。待SPT同步后,该映射即为有效的映射,客户指令即可通过该SPT映射访问对应节点上的机器内存。由于整个页面迁移过程对客户操作系统透明,使客户操作系统认为自己可以对共享的地址空间进行寻址。客户操作系统通过SPT间接地借助DSM完成对整个共享地址空间的寻址。而其它的虚拟化模块需要直接的请求DSM:1)处理器虚拟化模块在模拟指令执行时的取指令与取操作数都必须请求DSM模块,因为对应的操作数与指令所在页面可能位于远程。2)I/O虚拟化模块在模拟DMA的时候,对应的客户操作系统主存访问也必须通过DSM。接口模块-为了实现单一地址空间,必须为其它的虚拟化模块如1/0虚拟化以及指令集虚拟化模块提供访问客户操作系统主存的方式。与SPT不同,接口模块就为这些模块提供了调用DSM模块的接口,其它的虚拟化模块需要主动的调用DSM算法,确保访问到正确的客户主存数据。2.3系统工作流程初始化阶段系统在初始化阶段区分两类节点系统中选取一个节点作为启动节点,其余节点作为非启动节点。P2M初始化P2M的初始化包含两部分,初始化P2M映射以及初始化DSM元数据。系统初始化时,在各自节点分配内存供客户操作系统使用,并初始化对应的P2M映射。对于启动节点,映射权限被设定为读写,而在非启动节点,映射权限被设定为缺页。DSM元数据按照对应DSM算法的要求进行初始化工作。SPT初始化SPT仅在客户操作系统开启分页后使用,当系统处于初始化阶段时,由于客户操作系统处于实模式,并未开启分页。所以此时并未使用SPT而是直接使用P2M表进行寻址。当客户操作系统开启分页时,V^l负责创建对应页表的SPT并利用之后的同步操作,不断的更新SPT的内容。客户操作系统的启动遵循SMP多处理器启动序列首先客户操作系统会在主节点的启动处理器(虚拟处理器)(BootstrappingProcessor,BSP)上启动,此时对应的虚拟处理器位于实模式,其直接使用P2M作为页表。当其完成页表初始化并开启分页后,对应的操作会被VMM捕获从而针对其使用页表创建相应的SPT,此时虚拟处理器对应的物理处理器使用SPT进行寻址。当BSP启动辅助处理器(AuxiliaryProcessor,AP)时,AP会根据BSP发来的消息从指定的地址启动。位于非启动节点的AP启动时由于指定地址对应的映射在P2M表中不存在从而引发缺页异常,该异常被V薩捕获触发DSM页面迁移。之后AP所需要的数据和指令都通过DSM从主节点迁移到从节点,这就确保了AP的启动和运行。当AP开启分页后,与BSP—样,V薩会为AP创建对应的SPT。当多处理器启动完毕后,整个系统进入正常工作模式。系统正常工作阶段系统中虚拟机的寻址过程由硬件与V画协作完成。寻址请求首先会尝试搜索TLB,如果TLB命中,处理器会直接利用其搜索结果对DRAM进行寻址。如果TLB未命中,处理器转而搜索SPT。当P2M中对应的映射位于本地并且SPT与GPT处于同步状态时,SPT中相应8映射为有效映射。当处理器访问权限同时满足映射要求,这次SPT的搜索成功,处理器会将该映射装入TLB,完成此次寻址。当SPT搜索失败时,处理器会产生缺页异常,该异常可由VMM捕获。下面的四种情况可能导致这种情况的产生1)GPT对应的映射项为无效由于SPT由GPT同步而来,由于客户操作系统本身的策略产生的缺页异常,应该向客户操作系统注入该异常并由客户操作系统处理。这种情况可以通过V醒遍历GPT得知当遍历过程中发现GPT的映射无效,VMM此时向客户操作系统注入这个缺页异常并返回客户指令流。2)GPT与SPT处于不同步状态由于SPT的映射项派生于GPT,所以当客户操作系统修改GPT后,两者可能处于不同步的状态。这种情况下,V丽通过遍历GPT以及P2M表,并且同步SPT中相应的映射后,返回客户指令流。客户操作系统即可以使用新建立的映射进行寻址。3)GPT与SPT处于同步状态,但客户映射的页面位于远程这种情况下产生缺页异常以后,VMM通过P2M中的无效映射得知该客户映射为远程映射,此时内存虚拟化模块请求DSM模块利用DSM算法从远程迁移对应的客户物理页面。当迁移完成后,内存虚拟化模块会在P2M表中建立相应的映射,并且利用该映射生成SPT中的映射,完成后返回客户指令流。客户操作系统即可使用此地址进行寻址。V画操作的过程对客户操作系统透明,从客户操作系统的观点看其认为自己可以寻址任意的客户物理地址空间。4)GPT与SPT处于同步状态并且客户映射位于本地,但是访问权限有冲突这种情况下,虚拟机试图进行的访问操作与SPT的权限有冲突。SPT相应的映射由GPT与P2M表计算得来,但SPT的映射权限仅仅由DSM维护的P2M表得到。当访问权限冲突时,需要启动DSM算法向页面的宿主节点请求获取相应的权限。当页面宿主节点授权了相应的访问后,DSM模块会修改P2M以及SPT中的映射权限。此时V廳返回客户指令流,虚拟机即可进行正确的寻址。MMU相关寄存器操作的捕获由于内存虚拟化策略的要求,需要为虚拟机提供虚拟化的MMU寄存器。客户操作系统对相关MMU寄存器的访问需要被V画捕获,VMM通过指令集虚拟化模块捕获相关操作,并对指令进行译码,译码后通知内存虚拟化模块做出相应的处理。主要的指令包含更换页表基址寄存器指令客户操作系统试图更换自己的页表基址,此时V躍要切换顶级的SPT与客户使用的新页表对应。刷新TLB指令客户操作系统刷新TLB证明GPT与SPT中存在不同步的项,VMM捕获该指令以后重新对相应的SPT与GPT进行同步。DSM模块的影响-DSM模块不但要向远程节点发出请求,还要处理远程节点对本节点的请求。当DSM算法引发P2M映射变更后,DSM模块会通知内存虚拟化模块相关的变动,内存虚拟化模块会对SPT相应的映射项进行改动以反映这种变动。与其它虚拟化模块的协作DSM模块同时负责为其它虚拟化模块提供一个访问主存的接口,确保其它虚拟化模块可以访问到正确的主存的数据。当其它虚拟化模块访问的页面位于远程时,DSM模块负责将其迁移到本地,并供其它的内存虚拟化模块访问。综上所述,本发明一种分布式内存虚拟化技术的实现方法,此方法具体实现步骤如下设虚拟机主存容量为M,步骤一、准备阶段1.各结点V廳分配P2M表与SPT表所需空间,并将SPT对应所有内容清零;2.各节点V薩分别分配M大小的内存供虚拟机使用,并按照1:1映射的方式初始化P2M表中客户物理页面到机器页面的映射关系;3.启动节点的V画标记其所有P2M映射无效;4.非启动节点V丽标记其所有P2M映射有效;5.各个节点将对应虚拟处理器的页表基址寄存器指向P2M表基址;6.当客户操作系统开启分页时,VM1将对应虚拟处理使用的页表机制更换为对应的SPT基址。步骤二、正常工作阶段当VMM捕获客户操作系统开启分页时1.将与对应虚拟处理器的SPT基址装入页表基址寄存器;当VMM捕获客户操作系统更改页表基址寄存器时1.遍历SPT,将所有SPT最后一级的页面映射标记为无效;当VMM捕获客户操作系统刷新TLB操作时1.获取要刷新TLB对应的线性地址;2.获得该线性地址对应各级页表查询的偏移量;3.根据页表偏移良遍历各级SPT,直至最低一级SPT映射项;4.并标记该映射项无效。当V^l捕获客户操作系统缺页异常时1.获得引发缺页的线性地址与引发缺页的原因(读/写);2.获得该线性地址对应各级页表查询的偏移量;3.取得客户页表基址;4.查询P2M表获得但前级别客户页表对应的机器地址a)若对应P2M映射无效,则启动DSM算法从远程获对应页面的只读复本;b)由页表査询偏移量查询与下一级页表对应的客户物理地址;c)若在査询客户页表的过程中,对应的客户页表映射为无效,则向客户操作系统注入缺页异常,由客户操作系统处理缺页;d)若在查询客户页表的过程中,若客户操作系统页表映射为只读,而引发缺页的原因是写操作,则向客户操作系统注入缺页异常,由客户操作系统处理缺页;5.重复过程5的客户页表查询过程,直至确定与该线性地址对应的客户物理页面;6.査询P2M表,确定与引发缺页的线性地址对应的机器页面a)若对应的映射无效,则启动DSM算法,按照引发缺页的原因(读/写),从远程获取与该客户物理页面对应的复本;b)若P2M映射权限为只读,而引发缺页的原因是写,则启动DSM算法从远程获取与客户物理页面对应的可写复本;c)若对应的映射有效而且P2M映射权限满足客户访问要求时,启动对应该线性地址对应的SPT与GPT同步过程;7.完成此次处理并返回客户指令流。步骤三、SPT与GPT同步过程丄获得要同步的线性地址;2.査询客户页表(过程同上),获取与线性地址对应的客户物理页面与客户访问权限;3.査询P2M表,获取与客户物理页面对应的机器页面,与P2M权限;4.将客户访问权限与P2M权限中最严格的权限做为SPT权限;5.获取与线性地址对应的各级页表查询偏移;6.利用各级哈寻偏移,遍历SPT直至最后一级SPT映射项;7.将机器页面与SPT访问权限填入对应映射项;8.完成SPT与GPT同步过程。步骤四、DSM处理本地请求过程1.获得请求客户物理页面与所需权限;2.启动DSM算法从远程按权限获取该客户物理页面对应复本;3.将P2M表中对应客户物理页面的权限更改为对应权限;4.完成本地处理过程。步骤五、DSM处理远程请求的过程1.获取远程请求页面号以及权限;2.启动DSM算法将请求页面内容发送给请求节点;3.根据DSM算法要求修改P2M表映射权限;4.査找映射至该客户物理页面的所有SPT映射项,并将这些映射项标记为无效;5.完成远程处理过程。(3)优点及效果通过结合内存虚拟化技术与分布式共享存储技术,本发明为分布式系统提供了紧耦合的共享内存视图,极大的提高了分布式系统中的可管理性以及可编程性。通过结合其它的虚拟化策略,同时可以使商业化的操作系统以及应用软件跨节点的运行于分布式的集群系统中,降低了软件移植带来的复杂度。本发明在现有的成熟技术基础上进行创新,实施不难,具有良好的使用和发展前景。图l系统整体结构示意图图2影子页表协作示意图图3GPT/SPT同步示意图图4寻址过程示意图图5影子页表组织方式示意图图6DSM内存组织示意图具体实施例方式见图l、图2、图3、图4、图5、图6所示,具体实施步骤如下:设虚拟机主存容量为M,步骤一、准备阶段111.各结点V画分配P2M表与SPT表所需空间,并将SPT对应所有内容清零;2.各节点VMM分别分配M大小的内存供虚拟机使用,并按照l:l映射的方式初始化P2M表中客户物理页面到机器页面的映射关系;3.启动节点的V薩标记其所有P2M映射无效;4.非启动节点V隨标记其所有P2M映射有效;5.各个节点将对应虚拟处理器的页表基址寄存器指向P2M表基址;6.当客户操作系统开启分页时,V應将对应虚拟处理使用的页表机制更换为对应的SPT基址。步骤二、正常工作阶段当V闘捕获客户操作系统开启分页时1.将与对应虚拟处理器的SPT基址装入页表基址寄存器;当V画捕获客户操作系统更改页表基址寄存器时1.遍历SPT,将所有SPT最后一级的页面映射标记为无效;当V画捕获客户操作系统刷新TLB操作时-1.获取要刷新TLB对应的线性地址;2.获得该线性地址对应各级页表查询的偏移量;3.根据页表偏移良遍历各级SPT,直至最低一级SPT映射项;4.并标记该映射项无效。当V薩捕获客户操作系统缺页异常时1.获得引发缺页的线性地址与引发缺页的原因(读/写);2.获得该线性地址对应各级页表査询的偏移量;3.取得客户页表基址4.查询P2M表获得但前级别客户页表对应的机器地址a)若对应P2M映射无效,则启动DSM算法从远程获对应页面的只读复本;b)由页表查询偏移量査询与下一级页表对应的客户物理地址;c)若在查询客户页表的过程中,对应的客户页表映射为无效,则向客户操作系统注入缺页异常,由客户操作系统处理缺页;d)若在査询客户页表的过程中,若客户操作系统页表映射为只读,而引发缺页的原因是写操作,则向客户操作系统注入缺页异常,由客户操作系统处理缺页;5.重复过程5的客户页表査询过程,直至确定与该线性地址对应的客户物理页面;6.查询P2M表,确定与引发缺页的线性地址对应的机器页面a)若对应的映射无效,则启动DSM算法,按照引发缺页的原因(读/写),从远程获取与该客户物理页面对应的复本;b)若P2M映射权限为只读,而引发缺页的原因是写,则启动DSM算法从远程获取与客户物理页面对应的可写复本;c)若对应的映射有效而且P2M映射权限满足客户访问要求时,启动对应该线性地址对应的SPT与GPT同步过程;7.完成此次处理并返回客户指令流。步骤三、SPT与GPT同步过程1.获得要同步的线性地址;2.查询客户页表(过程同上),获取与线性地址对应的客户物理页面与客户访问权限;123.查询P2M表,获取与客户物理页面对应的机器页面,与P2M权限;4.将客户访问权限与P2M权限中最严格的权限做为SPT权限;5.获取与线性地址对应的各级页表查询偏移;6.利用各级哈寻偏移,遍历SPT直至最后一级SPT映射项;7.将机器页面与SPT访问权限填入对应映射项;8.完成SPT与GPT同步过程。步骤四、DSM处理本地请求过程1.获得请求客户物理页面与所需权限;2.启动DSM算法从远程按权限获取该客户物理页面对应复本;3.将P2M表中对应客户物理页面的权限更改为对应权限;4.完成本地处理过程。步骤五、DSM处理远程请求的过程1.获取远程请求页面号以及权限;2.启动DSM算法将请求页面内容发送给请求节点;3.根据DSM算法要求修改P2M表映射权限;4.査找映射至该客户物理页面的所有SPT映射项,并将这些映射项标记为无效;5.完成远程处理过程。权利要求1、一种分布式内存虚拟化技术的实现方法,其特征在于该实现方法步骤如下设虚拟机主存容量为M,步骤一、准备阶段1.各结点VMM分配P2M表与SPT表所需空间,并将SPT对应所有内容清零;2.各节点VMM分别分配M大小的内存供虚拟机使用,并按照1∶1映射的方式初始化P2M表中客户物理页面到机器页面的映射关系;3.启动节点的VMM标记其所有P2M映射无效;4.非启动节点VMM标记其所有P2M映射有效;5.各个节点将对应虚拟处理器的页表基址寄存器指向P2M表基址;6.当客户操作系统开启分页时,VMM将对应虚拟处理使用的页表机制更换为对应的SPT基址;步骤二、正常工作阶段当VMM捕获客户操作系统开启分页时1.将与对应虚拟处理器的SPT基址装入页表基址寄存器;当VMM捕获客户操作系统更改页表基址寄存器时1.遍历SPT,将所有SPT最后一级的页面映射标记为无效;当VMM捕获客户操作系统刷新TLB操作时1.获取要刷新TLB对应的线性地址;2.获得该线性地址对应各级页表查询的偏移量;3.根据页表偏移良遍历各级SPT,直至最低一级SPT映射项;4.并标记该映射项无效;当VMM捕获客户操作系统缺页异常时1.获得引发缺页的线性地址与引发缺页的原因(读/写);2.获得该线性地址对应各级页表查询的偏移量;3.取得客户页表基址;4..查询P2M表获得但前级别客户页表对应的机器地址a)若对应P2M映射无效,则启动DSM算法从远程获对应页面的只读复本;b)由页表查询偏移量查询与下一级页表对应的客户物理地址;c)若在查询客户页表的过程中,对应的客户页表映射为无效,则向客户操作系统注入缺页异常,由客户操作系统处理缺页;d)若在查询客户页表的过程中,若客户操作系统页表映射为只读,而引发缺页的原因是写操作,则向客户操作系统注入缺页异常,由客户操作系统处理缺页;5.重复过程5的客户页表查询过程,直至确定与该线性地址对应的客户物理页面;6.查询P2M表,确定与引发缺页的线性地址对应的机器页面a)若对应的映射无效,则启动DSM算法,按照引发缺页的原因(读/写),从远程获取与该客户物理页面对应的复本;b)若P2M映射权限为只读,而引发缺页的原因是写,则启动DSM算法从远程获取与客户物理页面对应的可写复本;c)若对应的映射有效而且P2M映射权限满足客户访问要求时,启动对应该线性地址对应的SPT与GPT同步过程;7.完成此次处理并返回客户指令流;步骤三、SPT与GPT同步过程1.获得要同步的线性地址;2.查询客户页表(过程同上),获取与线性地址对应的客户物理页面与客户访问权限;3.查询P2M表,获取与客户物理页面对应的机器页面,与P2M权限;4.将客户访问权限与P2M权限中最严格的权限做为SPT权限;5.获取与线性地址对应的各级页表查询偏移;6.利用各级哈寻偏移,遍历SPT直至最后一级SPT映射项;7.将机器页面与SPT访问权限填入对应映射项;8.完成SPT与GPT同步过程;步骤四、DSM处理本地请求过程1.获得请求客户物理页面与所需权限;2.启动DSM算法从远程按权限获取该客户物理页面对应复本;3.将P2M表中对应客户物理页面的权限更改为对应权限;4.完成本地处理过程;步骤五、DSM处理远程请求的过程1.获取远程请求页面号以及权限;2.启动DSM算法将请求页面内容发送给请求节点;3.根据DSM算法要求修改P2M表映射权限;4.查找映射至该客户物理页面的所有SPT映射项,并将这些映射项标记为无效;5.完成远程处理过程。全文摘要本发明提供一种分布式内存虚拟化技术的实现方法,它主要采用最新的硬件和软件相结合的虚拟化技术,结合分布式共享存储算法将分布于多主机的内存资源进行虚拟化和整合,为上层客户操作系统提供一个共享的单一物理地址空间,实现客户操作系统对分布式内存的管理和使用。本发明在现有的成熟技术基础上进行创新,实施简便,具有良好的使用和发展前景。文档编号G06F12/08GK101477495SQ20081022508公开日2009年7月8日申请日期2008年10月28日优先权日2008年10月28日发明者刘忠麟,萧张,彭近兵,李响山,箫王,祝明发,肖利民申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1