虚拟机的内存地址分配方法以及装置与流程

文档序号:11582549阅读:292来源:国知局
本申请涉及内存领域,特别是涉及一种虚拟机的内存地址分配方法以及装置。
背景技术
::在现有技术中,宿主机要为虚拟机有掉电保护需求的虚拟内存地址从有掉电保护的物理内存区域分配宿主机的物理内存地址,必须经过三次映射。首先,将有掉电保护的物理内存区域的物理内存地址映射为字符设备,然后,将字符设备再映射为外部设备互连总线(英文:peripheralcomponentinterconnect,简称:pci)设备,最后,将pci设备映射到虚拟机的虚拟内存地址。但是,在这种方式下,必须经过三次映射才能实现为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址,但分配效率低下。技术实现要素:本发明的目的在于提供了一种虚拟机的内存地址分配方法以及装置,能够提高为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址的效率。第一方面,当虚拟机产生缺页中断时,宿主机确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域,并从有掉电保护的物理内存区域为虚拟机的虚拟内存地址分配宿主机的物理内存地址。宿主机在确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域后,直接为虚拟机的虚拟内存地址从有掉电保护的物理内存区域分配宿主机的物理内存地址,提高了为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址的效率。结合第一方面,在第一方面的第一种可能的实施方式中,所述宿主机存储有所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,在虚拟机产生缺页中断时,宿主机根据产生缺页中断的虚拟内存地址查询所述信息,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域。结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,虚拟机的配置文件中存储有虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,在虚拟机产生缺页中断时,宿主机根据产生缺页中断的虚拟内存地址查询所述配置文件中的信息,确定所述虚拟内存地址属于所述有掉电保护的虚拟内存区域。结合第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述宿主机和虚拟机的共享文件中存储有虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,在虚拟机产生缺页中断时,宿主机根据产生缺页中断的虚拟内存地址查询所述共享文件中的信息,确定所述虚拟内存地址属于所述有掉电保护的虚拟内存区域。在本实施方式中,共享文件是宿主机和虚拟机均可以访问的,所以,在宿主机确定虚拟内存区域地址为有掉电保护的虚拟内存区域的信息之后,虚拟机还可以根据自己的实际情况对虚拟内存区域地址为有掉电保护的虚拟内存区域的信息进行修改。结合第一方面,在第一方面的第四种可能的实施方式中,宿主机预先存储所述有虚拟机中的进程需要访问的有掉电保护的虚拟内存地址的信息,在虚拟机产生缺页中断时,宿主机根据产生缺页中断的虚拟内存地址查询所述信息,确定所述虚拟内存地址属于所述有掉电保护的虚拟内存区域。结合第一方面至第四种可能的实施方式中的任意一种,在第一方面的第五种可能的实施方式中,所述宿主机从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址,具体包括:所述宿主机建立所述虚拟内存地址与所述宿主机的物理内存地址的映射关系。结合第一方面至第四种可能的实施方式中的任意一种,在第一方面的第六种可能的实施方式中,所述宿主机从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址,具体包括:所述宿主机建立所述虚拟机的物理内存地址与所述宿主机的物理内存地址的映射关系;其中,所述虚拟内存地址映射到所述虚拟机的物理内存地址。第二方面,本发明提供了一种宿主机,所述宿主机用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。其中一种实现方式,具体地,虚拟机运行在宿主机上,所述宿主机包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述宿主机包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。另一种实现方式,宿主机包括处理器和内存,虚拟机运行在所述宿主机上,所述宿主机的内存包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述处理器与所述内存通信,所述处理器用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。另一种实现方式,所述宿主机包括内存管理单元(英文:memorymanagementunit,简称:mmu)和内存,虚拟机运行在所述宿主机上,所述宿主机的内存包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述mmu与所述内存通信,所述mmu用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体的,本发明中的宿主机为服务器。第三方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。附图说明图1是本发明实施例的一种应用场景;图2是本发明实施例提供的一种虚拟机的内存地址分配方法的流程图;图3是本发明实施例提供的一种宿主机的结构示意图;图4是本发明实施例提供的另一种宿主机的结构示意图;图5是本发明实施例提供的又一种宿主机的结构示意图。具体实施方式下面结合附图和实施例对本发明进行详细描述。如图1所示,下面先对虚拟机的内存地址分配方法运行的环境进行描述。其中,虚拟机120运行在宿主机110上,宿主机110包括有掉电保护的物理内存区域111,虚拟机120包括有掉电保护的虚拟内存区域121。宿主机110可以是服务器、工作站、便携式电脑、台式电脑、平板电脑等。有掉电保护的物理内存区域111为宿主机110的物理内存中的部分或者全部,存储到有掉电保护的物理内存区域111的数据能够在在发生掉电时依然不丢失,具体可以通过备电设备将有掉电保护的物理内存区域111中的数据保存到非易失性设备中,或者本发明实施例中,有掉电保护的物理内存区域111是指提供该掉电保护的物理内存区域的内存设备为非易失性内存设备,发生掉电后该内存设备中的数据不丢失。有掉电保护的虚拟内存区域121为虚拟机120的虚拟内存中的部分或者全部,有掉电保护的虚拟内存区域121在分配宿主机110的物理内存地址时,将会分配有掉电保护的物理内存区域111的物理内存地址。如图2所示,在步骤210中:当虚拟机产生缺页中断时,宿主机确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域,如果属于有掉电保护的虚拟内存区域,进入步骤220:宿主机从有掉电保护的物理内存区域为虚拟机的虚拟内存地址分配宿主机的物理内存地址;如果不属于有掉电保护的虚拟内存区域,进入步骤230:宿主机为虚拟机的虚拟内存地址从没有掉电保护的物理内存区域分配宿主机的物理内存地址。本发明实施例中,宿主机在确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域后,直接为虚拟机的虚拟内存地址从有掉电保护的物理内存区域分配宿主机的物理内存地址,提高了为虚拟 机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址的效率。在本发明的一具体实施例中,虚拟内存区域地址为有掉电保护的虚拟内存区域的信息可以是:有掉电保护的虚拟内存区域的起始地址和长度。所以,宿主机可以根据有掉电保护的虚拟内存区域的起始地址和长度确定有掉电保护的虚拟内存区域的位置,并在虚拟机产生缺页中断时,宿主机将产生缺页中断的虚拟内存地址和有掉电保护的虚拟内存区域的位置进行比较,从而确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域。可以理解的是,虚拟内存区域地址为有掉电保护的虚拟内存区域的信息还可以是有掉电保护的虚拟内存区域的起始地址和结束地址,或者,有掉电保护的虚拟内存区域的结束地址和长度等等。在本发明的一具体实施例中,宿主机确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域的方法为:宿主机存储内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,当虚拟机产生缺页中断时,宿主机根据虚拟机申请的虚拟内存地址查询该信息,并根据该信息确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。在具体实现中,宿主机内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息可以是:在宿主机创建虚拟机时,宿主机在虚拟机的配置文件中存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息。其中,虚拟机的配置文件为记录虚拟机的重要参数,如中央处理器(英文:centerprocessingunit,简称:cpu)参数、内存参数、硬盘参数等等的文件。当虚拟机产生缺页中断时,宿主机可以根据虚拟机的虚拟内存地址查询虚拟机的配置文件,确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。在具体实现中,宿主机内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息还可以是:宿主机在共享文件中存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息。其中,共享文件为宿主机和虚 拟机均能访问的文件,可以是txt文件、word文件等等。当虚拟机产生缺页中断时,宿主机可以根据虚拟机的虚拟内存地址查询共享文件,确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。可以理解的是,由于共享文件是宿主机和虚拟机均可以访问的,所以,宿主机在共享文件中确定存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息之后,虚拟机还可以访问共享文件,并根据实际情况对共享文件中的虚拟内存区域地址为掉电保护的虚拟内存区域的信息进行修改。在本发明的一具体实施例中,宿主机确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域的方法为:宿主机存储所述有虚拟机中的进程需要访问的有掉电保护的虚拟内存地址的信息,当虚拟机产生缺页中断时,宿主机根据虚拟机申请的虚拟内存地址查询所述信息,确定虚拟机申请的虚拟内存地址为进程访问的虚拟内存地址。在本发明的一具体实施例中,宿主机从有掉电保护的物理内存区域为虚拟机的虚拟内存地址分配宿主机的物理内存地址,具体包括:宿主机通过影子页表的方式建立虚拟内存地址与宿主机的物理内存地址的映射关系,或者,宿主机通过有扩展页表(英文:extendedpagetable,简称:ept)的方式建立虚拟机的物理内存地址与宿主机的物理内存地址的映射关系,其中,虚拟内存地址映射到虚拟机的物理内存地址。参阅图3,图3是本发明实施例提供的一种宿主机的结构示意图,虚拟机运行在宿主机上,所述宿主机包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述宿主机包括确定单元310和分配单元320。其中,确定单元310,用于确定所述虚拟机产生缺页中断的虚拟内存地址属于所述有掉电保护的虚拟内存区域;分配单元320,用于从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址。本发明实施例中,确定单元310在确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域后,分配单元320直接为虚拟 机的虚拟内存地址从有掉电保护的物理内存区域分配宿主机的物理内存地址,提高了为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址的效率。在本发明的一具体实施例中,虚拟内存区域地址为有掉电保护的虚拟内存区域的信息可以是:有掉电保护的虚拟内存区域的起始地址和长度。所以,确定单元310可以根据有掉电保护的虚拟内存区域的起始地址和长度确定有掉电保护的虚拟内存区域的位置,并在虚拟机产生缺页中断时,确定单元310将产生缺页中断的虚拟内存地址和有掉电保护的虚拟内存区域的位置进行比较,从而确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域。可以理解的是,虚拟内存区域地址为有掉电保护的虚拟内存区域的信息还可以是有掉电保护的虚拟内存区域的起始地址和结束地址,或者,有掉电保护的虚拟内存区域的结束地址和长度等等。在本发明的一具体实施例中,确定单元310用于确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域为:宿主机存储内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,当虚拟机产生缺页中断时,确定单元310根据虚拟机申请的虚拟内存地址查询该信息,并根据该信息确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。在具体实现中,宿主机内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息可以是:在宿主机创建虚拟机时,宿主机在虚拟机的配置文件中存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息。其中,虚拟机的配置文件为记录虚拟机的重要参数,如中央处理器(英文:centerprocessingunit,简称:cpu)参数、内存参数、硬盘参数等等的文件。当虚拟机产生缺页中断时,确定单元310可以根据虚拟机的虚拟内存地址查询虚拟机的配置文件,确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。在具体实现中,宿主机内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息还可以是:宿主机在共享文件中存储有虚拟内存区域 地址为掉电保护的虚拟内存区域的信息。其中,共享文件为宿主机和虚拟机均能访问的文件,可以是txt文件、word文件等等。当虚拟机产生缺页中断时,确定单元310可以根据虚拟机的虚拟内存地址查询共享文件,确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。可以理解的是,由于共享文件是宿主机和虚拟机均可以访问的,所以,宿主机在共享文件中确定存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息之后,虚拟机还可以访问共享文件,并根据实际情况对共享文件中的虚拟内存区域地址为掉电保护的虚拟内存区域的信息进行修改。在本发明的一具体实施例中,确定单元310用于确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域为:宿主机存储所述有虚拟机中的进程需要访问的有掉电保护的虚拟内存地址的信息,当虚拟机产生缺页中断时,确定单元310根据虚拟机申请的虚拟内存地址查询所述信息,确定虚拟机申请的虚拟内存地址为进程访问的虚拟内存地址。在本发明的一具体实施例中,分配单元320用于从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址,具体包括:分配单元320通过影子页表的方式建立虚拟内存地址与宿主机的物理内存地址的映射关系,或者,分配单元320通过(英文:extendedpagetable,简称:ept)页表的方式建立虚拟机的物理内存地址与宿主机的物理内存地址的映射关系;其中,虚拟内存地址映射到虚拟机的物理内存地址。参阅图4,图4是本发明实施例提供的另一种宿主机的结构示意图,宿主机包括处理器410和内存420,虚拟机运行在所述宿主机上,所述宿主机的内存420包括有掉电保护的物理内存区域421,所述虚拟机包括有掉电保护的虚拟内存区域,所述处理器410与所述内存420通信,处理器410用于执行上述本发明实施例中的步骤。本领域技术人员可以理解,图4中示出的宿主机的结构并不构成对宿主机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。参阅图5,图5是本发明实施例提供的又一种宿主机的结构示意图,宿主机包括mmu510和内存520,虚拟机运行在所述宿主机上,所述宿主机的内存520包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域521,所述mmu510与所述内存520通信,mmu510用于执行上述本发明实施例中的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1