CN107615255A - 利用持久存储器的计算装置和方法 - Google Patents

利用持久存储器的计算装置和方法 Download PDF

Info

Publication number
CN107615255A
CN107615255A CN201580080141.1A CN201580080141A CN107615255A CN 107615255 A CN107615255 A CN 107615255A CN 201580080141 A CN201580080141 A CN 201580080141A CN 107615255 A CN107615255 A CN 107615255A
Authority
CN
China
Prior art keywords
pages
physical memory
memory
page
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580080141.1A
Other languages
English (en)
Other versions
CN107615255B (zh
Inventor
董耀祖
K·田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN107615255A publication Critical patent/CN107615255A/zh
Application granted granted Critical
Publication of CN107615255B publication Critical patent/CN107615255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本文公开了与包括持久存储器的使用和备份在内的计算相关联的设备、方法和存储介质。在各实施例中,用于计算的设备可以包括用于托管一个或多个虚拟机的操作的一个或多个处理器以及持久存储器;以及存储多个映射的一个或多个页表,所述映射将该持久存储器的虚拟化中一个或多个虚拟机的多个虚拟存储器页映射到该持久存储器中被分配给所述一个或多个虚拟机的多个物理存储器页。所述设备还可以包括管理对该持久存储器的访问的存储器管理器,存储器管理器包括用于服务于对被映射到其被标记为只读的物理存储器页的虚拟存储器页进行寻址的写入指令的写入时复制机制。可描述其他实施例并且/或者要求它们的权利。

Description

利用持久存储器的计算装置和方法
技术领域
本公开涉及计算领域。具体而言,本公开涉及持久存储器的使用和备份。
背景
本文中所提供的背景描述用于概括地呈现本公开的上下文的目的。除非在本文中另有指示,本部分中描述的材料不是本申请中的权利要求的现有技术,并且不因为包含在本部分中而被承认为现有技术。
非易失性双列直插式存储器模块(NVDIMM)是一种具有一系列动态随机存取存储器集成电路的计算机可读存储器,该存储器是字节可寻址的并且即使当电源由于非预期的功率损失、系统崩溃或由于正常的系统关机而被移除时仍能保留数据。根据最近进展,期望NVDIMM将为计算平台提供大容量、高速、字节可寻址的非易失性存储器(此后被称为持久存储器(PMEM))。期望PMEM模块很快就可具有128千兆字节(GB)到512GB的容量,并且具有多个PMEM模块的平台可以合成几兆兆字节(TB)的非易失性存储器。这样,在将来的基于PMEM的虚拟化计算平台中,每个客虚拟机(VM)都可以具有计算平台的PMEM的大部分,例如1个TB。具有PMEM的虚拟化(vPMEM)的客VM可以具有大容量、非易失性的快速存取速度存储器,该存储器适用于性能关键性使用(例如数据库),或任务关键性使用(例如邮件服务器)。
然而,这样的基于PMEM的系统还可能遭受:1)包括NVDIMM故障在内的硬件故障,2)PMEM的耐久性可能在某一天失效,或3)病毒或恶意软件可能删除和/或盖写客VM具有的PMEM数据。因此,例如使用磁带和/或附加的硬盘对海量vPMEM数据进行定期的数据备份,并确保备份的可用性以在上述情形之一下将系统恢复到的先前快照对于减轻数据丢失对任务关键性使用的影响来说是重要的。而且,对于许多性能或任务关键性应用来说,备份需要是在应用保持可用的情况下的实况备份,因为完整的备份可能花费数小时或甚至更长。
现有的数据备份机制通常以基于块输入/输出(I/O)的盘设备为基础,和/或要求因应用而异的解决方案。通常,采用用于维持足够的知识以提供内部盘数据的集成快照,以使得备份数据可以被用于重建该系统的内置机制。例如,Exchange Server具有用于将其内部服务器盘数据输出到外部盘存储的内置机制。作为进一步的示例,卷影复制是被本机操作系统(OS)用于在该OS正在运行时拍摄其内部文件或卷的快照的另一种技术。它需要OS内置的特征。注意集成数据快照是重要的,因为备份过程可能花费数小时或甚至更长,并且数据在备份过程期间可变化很多,从而导致其中备份数据(打算要备份的那些数据(其是新的)加上磁带/盘中已经被备份的数据(其是旧的))形成无效组合的情况。一种替换的解决方案是使用(来自多个节点的)多个存储盘来形成廉价盘冗余阵列(RAID)系统,使得一个节点的故障可以基于该RAID系统使用的冗余度来恢复。然而,这些现有解决方案要么要求因应用而异的功能性支持(这种支持并非广泛可用),要么它们要求系统使用慢速盘,且中央处理单元(CPU)介入输入/输出(I/O)路径以构建该冗余度。它们都不是应用不可知的,也不是将来的高容量、高速、字节可寻址的基于PMEM系统所期望的。
附图简述
通过下列具体实施方式结合附图,将容易理解实施例。为了便于该描述,相同的附图标记指示相同的结构元件。在附图中,通过示例而非限制地说明实施例。
图1示出根据各实施例的具有本公开的持久存储器使用和备份技术的示例计算系统。
图2更加详细地示出根据各实施例的存储器管理器的写入时复制机制。
图3示出了根据各实施例的创建存储在持久存储器中的虚拟机的数据的备份快照的示例过程。
图4示出了根据各实施例的用于在备份快照已经开始之后对虚拟机对持久存储器的写入记载日志的示例过程。
图5示出根据各实施例的用于在记载日志达一时间段之后将重新映射的物理存储器页中的数据合并回原始物理存储器页的示例过程。
图6示出根据各实施例的适用于实施本公开的各方面的示例计算机系统。
图7示出根据各实施例的具有用于实施参考图1-5所述的方法的指令的存储介质。
详细描述
本文公开了与包括持久存储器的使用和备份在内的计算相关联的装置、方法和存储介质。在各实施例中,用于计算的装置可以包括用于托管一个或多个虚拟机的操作的一个或多个处理器以及持久存储器;以及存储多个映射的一个或多个页表,所述映射将持久存储器的虚拟化中该一个或多个虚拟机的多个虚拟存储器页映射到持久存储器中被分配给所述一个或多个虚拟机的多个物理存储器页。所述装置还可以包括管理持久存储器的访问的存储器管理器,所述存储器管理器包括用于服务于对被映射到标记为只读的物理存储器页的虚拟存储器页进行寻址的写入指令的写入时复制机制。
在各实施例中,所述装置还可以包括将存储在被分配给一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集中的数据备份到备份设备上的备份管理器,该备份管理器在将存储在物理存储器页的第一子集中的数据从物理存储器页的第一子集备份到备份设备的同时将物理存储器页的第一子集标记为只读。
在各实施例中,在完成备份被分配给第一虚拟机的物理存储器页的第一子集时,备份管理器还可以为存储在被分配给一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集的经修改的页的重新映射物理存储器页中的数据记载日志到备份设备上,在存储在重新映射物理存储器页中的数据正被记载日志到备份设备上的同时,备份管理器将重新映射物理存储器页标记为只读。
在各实施例中,在为存储在重新映射的物理存储器页中的数据记载日志达一时间段之后,备份管理器还可以将存储在重新映射的物理存储器页中的数据合并回物理存储器页的第一子集,在存储在重新映射的物理存储器页中的数据被合并回物理存储器页的第一子集中的同时,备份管理器将重新映射的物理存储器页标记为只读。
在以下详细描述中,参考形成本文一部分的附图,其中相同的标记指示全文中相同的部分,并且其中通过说明示出了可以实现的实施例。应理解,可利用其它实施例并作出结构或逻辑改变而不背离本公开的范围。因此,以下详细描述不旨在作为限制,并且实施例的范围由所附权利要求及其等效方案来限定。
所附说明书公开了公开的方面。可以设计本公开的替代实施例及其等效物而不背离本公开的精神或范围。应当注意,下文公开的相同的元件由附图中相同的附图标记指示。
可以按在理解要求保护的主题中最有帮助的方式轮流将各操作描述为多个分立动作或操作。然而,不应将描述的顺序解释为意味着这些操作必然取决于顺序。具体而言,可以不按照呈现的顺序执行这些操作。可以以不同于描述的实施例的顺序执行描述的操作。在附加的实施例中,可以执行各种附加操作和/或可以省略描述的操作。
对于本公开的目的,短语“A和/或B”意思是(A)、(B)或(A和B)。对于本公开的目的,短语“A、B和/或C”意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
说明书可使用短语“在一个实施例中”或“在多个实施例中”,其每一个可指代相同或不同实施例中的一个或多个。此外,相对于本公开的实施例使用的术语“包含”、“包括”、“具有”等同义。
如本文中所使用的那样,术语“模块”可以是指执行提供所描述功能的一个或多个软件或固件程序、组合逻辑电路和/或其他合适的组件的专用集成电路(ASIC)、电子电路、处理器(共享的、专用的或成组的)和/或存储器(共享的、专用的或成组的),或可以是上述各项的部分,或可包括上述各项。
现在参考图1,在其中示出根据各实施例的具有本公开的持久存储器使用和备份技术的示例计算系统。如所示,示例计算系统100可以包括一个或多个处理器101,每个处理器具有一个或多个处理器核,以及具有许多物理存储器页的PMEM102,该一个或多个处理器和PMEM被配置为托管一个或多个虚拟机106的操作。计算系统100还可以包括被配置为管理VM 106的操作的虚拟机管理器(VMM)104。在各实施例中,PMEM 102可以是字节可寻址的,并具有超过数百千兆字节的容量。
每个VM 106可以包括应用112和客OS 114。客OS 114可以包括被配置为允许应用112读取数据以及将数据写入到PMEM 102中的PMEM知晓文件系统116。在各实施例中,应用112和客OS 114可以以粒度字节可寻址的方式读取数据并将数据写入到PMEM 102。应用112可以是现有技术中公知的许多应用(包括例如性能或任务关键性应用)中的任意一个,例如数据库和/或邮件服务器。除了PMEM知晓文件系统116之外,客OS 114可以是现有技术中公知的许多OS中的任意一个,例如Linux OS。PMEM知晓文件系统116不是本公开的主题的部分,并且不是本公开的PMEM计算技术的必要元素,因此,不会进一步对其描述。
在各实施例中,VMM 104可以包括页表(PT)122,存储器管理器124和备份管理器126。页表122可以被配置为将vPMEM中VM 106的虚拟存储器页映射到PMEM 102的物理存储器页。在各实施例中,页表122可以包括将vPMEM中VM 106的虚拟存储器页直接映射到PMEM102的物理存储器页的多个多级映射,例如本领域公知的扩展页表(EPT)和嵌套页表(NPT)。在替换实施例中,页表122可以包括具有映射的多个表,所述映射例如使用卷影表将VM 106的虚拟地址直接映射到PMEM 102的物理存储器页。在各实施例中,页表122可以用硬件、软件或它们的组合来实现。页表122可以使用各种页大小的页表转换条目,例如在一些实施例中为4KB的页,和/或在其它实施例中为2MB的页。页表转换条目还可以以由硬件所支持的许多转换格式中的任意一种格式来实现。
出于易于理解的目的,本公开的剩余部分将主要在将vPMEM中VM 106的虚拟存储器页直接映射到PMEM 102的物理存储器页的上下文中进行描述,然而流水线化的描述不应被解释为对本公开进行限制。
存储器管理器124可以被配置为管理将PMEM 102的物理存储器页给VM 106的分配以及它们的访问,包括管理页表122。具体而言,存储器管理器124可以配置有写入时复制机制以服务写入指令,所述写入指令对(例如通过映射)被映射到被指定或标记为只读的PMEM102的物理存储器页的VM 106的vPMEM的虚拟存储器页进行写入。因此,备份管理器126可以利用存储器管理器124的在写入时复制的机制,并(归因于大的容量)在经扩展的时间段内将存储在PMEM 102中的VM 106的应用112和客OS 114的数据备份到备份设备(例如I/O设备103之一,例如磁带驱动器或盘驱动器)上,同时应用112和客OS 114基本上继续工作。这些和其它方面将另外参考图2-5在下面更加完整地描述。
备份管理器126,如在前述段落所提到的,可以被配置为利用存储器管理器124的写入时复制机制,并备份存储在PMEM 102中的VM 106的应用112和客OS114的数据,同时应用112和客OS 114基本上继续工作。在各实施例中,备份管理器126可以被配置为(不时,例如每晚、每周等等)拍摄存储在PMEM 102中的应用112和客OS 114的数据的完整快照。在其它实施例中,备份管理器126可以进一步被配置为在拍摄快照已经开始之后为对PMEM 102的“临时保持”物理存储器页中的备份数据的后续修改记载日志。而且,在另外的其它实施例中,备份管理器126可以被配置为在已经执行记载日志达一时间段之后,将来自PMEM 102的“临时保持”物理存储器页中的新数据合并回PMEM 102的“原始”物理存储器页(导致相对大量的重新映射和/或重-重新映射)。这些和其它方面也将在下面另外参考图2-5更加完整地描述。
在进一步描述本公开的PMEM计算技术之前,应该注意到出于易于理解的目的,页表122、存储器管理器124和备份管理器126全部被描述为VMM 104的部分。然而,所述描述不是要被解读为对本公开进行限制。在替换实施例中,页表122、存储器管理器124和备份管理器126中的一个或多个可以被设置在VMM 104之外。例如,在页表122的一些硬件实现中,页表122可以被认为在VMM 104之外。类似地,在一些实施例中,备份管理器126可以被实现在VMM 104之外的服务VM 106中。
而且,I/O设备103和PMEM 102可以位于同处或彼此远离定位。例如,在一些实施例中,I/O设备103中的一些(例如被用作备份设备的磁带驱动器和盘驱动器)可以远离PMEM102设置,并且通过I/O设备103的常驻网络接口经由一个或多个有线/无线私有和/或公共网络(包括例如因特网)被访问。
除了存储器管理器124的写入时复制机制以及备份管理器126利用存储器管理器124的写入时复制机制来备份存储在PMEM 102中的VM 106的应用112和客OS 114的数据以允许大容量、高速、字节可寻址的PMEM被用于在备份正被执行的同时基本上继续工作的性能和/或任务关键性应用的方式之外,计算系统100可以是许多本领域公知的多个已知计算系统中的任意一个,包括但不局限于许多桌面或服务器计算机中的任意一个。出于易于理解的目的,与反复指出的“存储在PMEM 102中的VM 106的应用112和客OS 114的数据”形成对照,本公开的剩余部分将主要在备份存储在PMEM 102的VM 106的应用112的数据的上下文中进行描述,然而应该理解所述描述意味着覆盖“存储在PMEM 102中的VM 106的应用112和客OS 114两者的数据”。”
现在参考图2,在其中示出根据各实施例的存储器管理器的写入时复制机制。如所示,VM 106的多个可读写虚拟存储器页(1到n)202可以被映射到PMEM 102的已经被临时指定或标记(通过它们的映射)为只读的对应的多个可读写物理存储器页(1到n)204。例如出于备份PMEM 102的物理存储器页(1到n)204的目的,临时的只读指定/标记可能已经被做出以超驰原始的读写访问许可。原始访问许可集可以被存储在工作中映射数据集(未示出),例如INITIAL_MAP_TABLE中,尽管访问许可被临时改变。
当VM 106的客应用112对这些虚拟存储器页202中的一个进行写入206时,在该时间段期间,存储器管理器124将分配临时的对应物理存储器页,将先前物理存储器页中的数据复制到该临时的对应物理存储器页,将映射更新为将虚拟存储器页映射到新分配的临时对应物理存储器页(并且原始的访问许可被接收),并代之以使得新数据被写入到该临时的对应物理存储器页中。
例如,当VM 106的客应用112写入206到虚拟存储器页202中的虚拟存储器页#3时,可以由于访问许可违反而发生错误,并且存储器管理器124被调用以进行写入时复制(COW)过程。在调用时,存储器管理器124可以分配临时的对应物理存储器页x1,将在物理存储器页204中的先前物理存储器页#3中的数据复制到该临时的对应物理存储器页x1,并将页表122中的映射212更新为将虚拟存储器页202中的虚拟存储器页#3映射到新分配的临时对应物理存储器页x1,并且有原始访问许可(即原始映射212的读写许可)。此后,存储器管理器124可以模拟写入指令以将新数据写入到该临时的对应物理存储器页x1中,使客VM的指令指针(IP)增加,并恢复客VM。或者,存储器管理器124可以在不使客VM的IP增加以使得客VM重新执行写入指令的情况下恢复客VM的执行。
作为另一个示例,当VM 106的客应用112对虚拟存储器页202中的虚拟存储器页#a进行写入206时,可同样由于访问许可违反而发生错误,并且存储器管理器124可以被调用以进行COW过程。在调用时,存储器管理器124可以分配临时的对应物理存储器页x2,将在物理存储器页204中的先前物理存储器页#a中的数据复制到该临时的对应物理存储器页x2中,并将页表122中的映射214更新为映射虚拟存储器页202中的虚拟存储器页#a,且有原始访问许可。此后,存储器管理器124可以模拟写入指令以将新数据写入到新分配的临时的对应物理存储器页x2,使客VM的IP增加,并恢复客VM。或者,存储器管理器124可以在不使客VM的IP增加以使得客VM重新执行写入指令的情况下恢复客VM的执行。
作为另一个示例,当VM 106的客应用112对虚拟存储器页202中的虚拟存储器页#b进行写入206时,可同样由于访问许可违反而发生错误,并且存储器管理器124可以被调用以进行COW过程。在调用时,存储器管理器124可以分配临时的对应物理存储器页x3,将在物理存储器页204中的先前物理存储器页#b中的数据复制到该临时的对应物理存储器页x3,并将页表122中的映射216更新为映射虚拟存储器页202中的虚拟存储器页#b,且有原始访问许可。此后,存储器管理器124可以模拟写入指令以将新数据写入到该新分配的临时对应物理存储器页x3中,使客VM的IP增加,并恢复客VM。或者,存储器管理器124可以在不使客VM的IP增加以使得客VM重新执行写入指令的情况下恢复客VM的执行。
注意,尽管出于易于理解的目的,临时的对应物理存储器页x1,x2,x3被示为具有与物理存储器页1到n 204相同的页大小,但由于PMEM是字节可寻址的,因此在替换实施例中,可以以更细粒度的方式执行重新映射,其中临时对应物理存储器页x1,x2,x3具有与物理存储器页1到n 204(例如2MB)不同的页大小(例如4KB)。或者,可以使用多个较小的临时对应物理存储器页y1..yn来代替原始的较大的物理存储器页。
现在参考图3,在其中示出了根据各实施例的用于创建存储在持久存储器中的VM的数据的备份快照的示例过程。如所示,用于创建存储在持久存储器中的VM的数据的备份快照的过程300可以包括在框302-352中执行的操作。在框302-316中的操作可以例如由备份管理器126执行,而在框342-352中的操作可以例如由存储器管理器124执行。在框322-330中的操作可以例如由VM 106执行。
过程300可以在框302处开始。在框302处,可以开始创建存储在PMEM中的VM的数据的快照的备份操作。接着,在框304处,可以停止VM的执行。在各实施例中,VM的执行可以通过中断VM的所有虚拟处理器来被停止。随后,在框306,在VM的执行被停止时,VM虚拟存储器页到PMEM的物理存储器页的当前映射可以被从页表复制并保存到工作中映射数据结构中(例如在系统存储器中的某些工作中存储中的INITIAL_MAP_TABLE)。接着,在框308,页表中的VM的vPMEM的虚拟存储器页到PMEM的物理存储器页的当前映射可以被标记以将这些物理存储器页指定为只读。此后,在框310处,可以恢复VM的执行。将理解,仅需要相对小的时间量来将当前映射从页表复制并保存到工作中映射数据结构中,并在此后标记这些映射以指示只读。对VM的应用的性能的影响将是可忽略的。实际上,VM的应用看上去继续工作。
从框310,过程300可行至框312。在框312,可将存储在PMEM中的VM的数据从PMEM复制到备份设备上,一次复制一页或多页。在框314,可以做出关于其中存储有VM的数据的所有物理存储器页是否已经被从PMEM复制到备份设备上的判定。如果具有VM的数据的所有物理存储器页还没有被复制,则在312处的操作可以被按需重复,直到具有VM的数据的所有物理存储器页已经被从PMEM复制到备份设备上。如先前所述,对于支持诸如数据库或邮件服务器之类的性能或任务关键性应用的大容量PMEM来说,对PMEM中具有VM的数据的所有物理存储器页的复制可能花费一些时间。
最终,在完成复制PMEM中具有VM的数据的所有物理存储器页时,过程300可以终止或在终止前首先行进至框316。注意,在这时,对于在备份期间由写入指令寻址到的那些备份物理存储器页,一些映射将把受影响的虚拟存储器页映射到“临时保持”物理存储器页,并且其原始访问许可已被恢复,如先前参考图2所述。对于在其中将实现记载日志(将参考图4描述)的实施例来说,过程300可以行进至终止,而使得PMEM中尚未被写入和重新映射的物理存储器页保持继续被指定/标记为只读。然而,对于其中将不实现记载日志的实施例来说,过程300可以行进至框316,在其中PMEM中尚未被写入和重新映射的物理存储器页的原始访问许可可以被恢复(使用保存在工作中映射数据结构中的映射信息)。
另外,对于其中不实现记载日志的实施例,或对于在其中实现记载日志,但在框314之后不实现合并的实施例来说,已经被重新映射的物理存储器页可以被回收用于重新分配以供其它使用(未示出)。
同时,如所示,初始地在框322处,VM的各应用(其在PMEM中的数据正在备份)正在执行。接着,响应于VM正被停止(框304),在框324处,VM的各应用的执行被临时停止。接着,在框326,响应于恢复(框310),在框326处,VM的各应用的执行被恢复。在框328,可以遇到对VM的虚拟存储器页的写入指令。作为响应,可以生成页错误,其中执行被陷获并转移例如到VMM和存储器管理器。
在框342,可以获得写入地址以及所涉及的虚拟和物理存储器页。接着,在框346,“临时保持”新物理存储器页可以被分配,如先前所述。随后,在348,在“原始”物理存储器页(例如图2的物理存储器页#3)中的内容可以被复制到正被分配的新的“临时保持”物理存储器页(例如图2的物理存储器页x1)中。在框350,所述映射可以被更新为将虚拟存储器页映射到新的“临时保持”物理存储器页,且有保持的初始访问许可。随后,在框352,存储器管理器可以模拟写入指令并恢复到VM的应用的下一个指令(框330),或者简单地使执行转移回到VM的应用的当前指令以重新执行即触发该页错误的写入指令(框328)。
任一情况即在框328(转移回)或框352(模拟)处,写入指令借助重新映射将新数据写入到“临时保持”物理存储器页(例如图2的x1,x2或x3)。在框328处的执行或框352处的执行模拟时,过程300可以行进至框330。在框330,下一指令可以被执行。此后,所述执行可以在有被重新映射到临时保持页的更多针对那些地址的非写入指令和/或写入指令,而没有引发附加的错误的情况下,再次在框330处继续,,或者当在备份仍然在进行中时(或甚至在完成之后,如果记载日志被实行的话)碰到并非被重新映射到临时保持页的另一写入指令时,再次在框328处继续。在其中在备份过程完成(框316)之后,仅以排定的间隔(每晚、每周等等)拍摄连续的完整快照,而最终不实行记载日志是可接受的各实施例中,所述执行可以仅在框330处继续,而不管下一指令是否是写入指令。
现在参考图4,在其中示出了根据各实施例的用于在备份快照已经开始之后为虚拟机对持久存储器的写入记载日志的示例过程。如所示,用于在备份快照已经进行之后为VM对持久存储器的写入记载日志的过程400可以包括在框402-452中执行的操作。类似于过程300,在框402-416中的操作可以由例如备份管理器126执行,而在框442-452中的操作可以由例如存储器管理器124执行。在框422-430处的操作可以例如由VM 106执行。
过程400可以在框402处开始。在框402处,可开始针对VM的使得存储在PMEM中的该VM的数据的快照被拍摄并被存储在外部备份存储中的记载日志操作在各实施例中,过程400可以在已经重新映射了被分配给正在备份的VM的物理存储器页的第一重新映射之后开始。接着,在框404处,可以停止VM的执行。在各实施例中,VM的执行可以类似地通过中断VM的所有虚拟处理器来被停止。随后,在框406,在VM的执行被停止时,VM虚拟存储器页到PMEM的“临时保持”物理存储器页的当前重新映射(由于完整备份快照的最后拍摄)可以被从页表复制并保存到另一个工作中数据结构中(例如在系统存储器中的某些工作中存储中)。页表中的VM的虚拟存储器页到PMEM的“临时保持”物理存储器页的当前重新映射可以通过检测该页表和先前描述的初始工作中数据结构(例如INITIAL_MAP_TABLE)之间的差异来识别。接着,在框408,页表中的VM的虚拟存储器页到PMEM的“临时保持”物理存储器页的当前重新映射可以被标记以将这些物理存储器页指定为只读。在标识时,PMEM的这些重新映射的物理存储器页可以被添加到记载日志备份页列表的列表。此后,在框410处,可以恢复VM的执行。将理解,仅需要相对小的时间量来从页表复制当前重新映射并对其进行保存,并且在此后标记该重新映射以指示只读。对VM的应用的性能的影响将是可忽略的。实际上,VM的应用看上去继续工作。
从框410,过程400可行至框412。在框412,(如由记载日志备份页列表所标识的)存储在PMEM的重新映射的存储器页中的VM的数据可以从PMEM被记载日志到备份设备上,一次为一个或多个重新映射的页记载日志。记载日志信息可以包含vPMEM页码和与vPMEM映射的PMEM的新内容。在框414,可以做出其中存储有(在记载日志备份页列表中所标识的)VM的数据的所有重新映射的物理存储器页是否已经从PMEM记载日志到备份设备上的判定。如果不是(在记载日志备份页列表中所标识的)具有VM的数据的所有物理存储器页都被记载日志,在412处的操作可以被按需重复,直到(在记载日志备份页列表中所标识的)具有VM的数据的所有重新映射的物理存储器页已经从PMEM被记载日志到备份设备上。
最终,在完成对(在记载日志备份页列表中所标识的)具有VM的数据的所有重新映射的物理存储器页的记载日志时,过程400可以终止或在终止前首先行进至框416。注意,在这时,对于在记载日志期间被写入指令寻址的那些备份的“临时保持”物理存储器页,一些重新映射将把受影响的虚拟存储器页再次重新映射到新的“临时保持”物理存储器页,并使得其原始访问许可已经被恢复,类似于对重新映射的先前描述。也就是说,在框442-452处的操作以及在框422-430处的操作与先前针对在框342-352处的操作以及在框322-330处的操作描述的操作相似,从而导致某些重新映射的物理存储器页可能已经在框416处被进一步重新映射。例如,在记载日志的过程中,尽管图2的虚拟存储器页#3到图2的“临时保持”物理存储器页x1的重新映射被标记为只读,但写入指令可以尝试对只读“临时保持”物理存储器页x1进行写入(框428)。如先前所述,尝试写入可以导致引起执行控制被转移的页错误(框442)。响应于页错误2,可以获得写入地址以及所涉及的物理存储器页(框444)。而且,另一个新“临时保持”物理存储器页y1可以被分配(框448),并且虚拟存储器页到“临时保持”物理存储器页x1的重新映射可以被更新(框450)以代之以将虚拟存储器页#3再次重新映射到“临时保持”物理存储器页y1。
对于在其中将继续实现记载日志的实施例来说,过程400可以行进至终止,使PMEM中尚未被写入和再次重新映射到的重新映射的物理存储器页保持继续被指定/标记为只读。然而,对于在其中记载日志可以停止(例如另一个完整的快照到期)的实施例来说,过程400可以行进至框416,在其中PMEM的还没有被写入和再次重新映射的重新映射物理存储器页的原始访问许可可以(使用保存在附加的工作中映射数据结构中的映射信息)被恢复。
另外,对于在其中记载日志可以停止(例如另一个完整的快照到期)的实施例来说,或对于在其中记载日志将继续,但在框414之后没有实现合并的实施例来说,已经被再次重新映射的重新映射物理存储器页可以被回收用于重新分配以供其它使用(未示出)。
现在参考图5,在其中示出根据各实施例的用于在记载日志已经执行了一时间段之后将重新映射的物理存储器页中的数据合并回原始物理存储器页的示例过程。如所示,在记载日志已经达一时间段之后将在重新映射物理存储器页中的数据合并到原始物理存储器页的过程500(导致大量的重新映射和再次重新映射)可以包括在框502-552处执行的操作。类似于过程300和400,在框502-516中的操作可以由例如备份管理器126执行,而在框542-552中的操作可以由例如存储器管理器124执行。在框522-530处的操作可以例如由VM106执行。
过程500可以在框502处开始。在框502,在记载日志操作执行了达一时间段后,针对VM的合并操作可以开始。接着,在框504处,可以停止VM的执行。在各实施例中,VM的执行可以类似地通过中断VM的所有虚拟处理器来被停止。接着,在框508,页表中的VM的虚拟存储器页到PMEM的“临时保持”物理存储器页的当前重新映射可以被标记以将这些物理存储器页指定为只读。此后,在框510处,可以恢复VM的执行。将理解,仅需要相对小的时间量来标记重新映射以指示只读。对VM的应用的性能的影响将是可忽略的。实际上,VM的应用看上去继续工作。
从框510,过程500可行至框512。在框512,存储在PMEM的重新映射存储器页中的VM的数据可以被从重新映射存储器页中复制并合并回原始物理存储器页,一次一个或多个重新映射存储器页。例如,存储在“临时保持”物理存储器页x1、x2和x3中的数据可以被分别复制并合并回原始物理存储器页#3、#a和#b。在框514,可以做出关于是否其中存储有VM的数据的基本上所有的重新映射物理存储器页已经被复制并合并回它们的原始物理存储器页(例如剩余的要被合并的重新映射物理存储器页的数目是否小于阈值)的判定。如果要被复制并合并回原始物理存储器页的具有VM的数据的重新映射物理存储器页的数目仍然很多,则过程500可以返回到框504,并且从此处行进,如先前所描述。如果要被复制并合并回原始物理存储器页的具有VM的数据的重新映射物理存储器页的数目并不多(例如低于阈值),则过程500可以行进到框516。在框516,在框504、512和510处的操作可以被重复,并且随后过程500可以结束。也就是说,在框516,VM可以被停止(504),在剩余的重新映射物理存储器页中的数据可以被复制并合并回原始物理存储器页,在页表中的映射被更新(包括恢复访问许可)并随后VM被恢复。
注意出于易于理解的目的,临时对应物理存储器页x1、x2、x3被示为具有与物理存储器页1到n 204相同的页大小,因为PMEM是字节可寻址的。
在其中重新映射以更细粒度的方式被执行的实施例中,其中临时的对应物理存储器页具有比原始物理存储器页(例如2MB)更小的页大小(例如4KB),在完成先前针对框516所述的操作时,过程500可以进一步包括将较小的物理存储器页的映射合并到较大物理存储器页的映射中的操作,以降低页表的复杂性和大小。
在框542-552处的操作和在框522-530处的操作分别与在先前针对在框342-352或442-452处的操作以及在框322-330或框422-430处的操作所述的各操作相似。
图6示出可以适用于实施本公开的所选方面的示例计算机系统。如所示,计算机600可包括一个或多个处理器或处理器核602以及系统存储器604。出于本申请(包括权利要求书)的目的,术语“处理器”指的是物理处理器,且术语“处理器”和“处理器核”可被认为是同义的,除非上下文另外清楚地作出要求。另外,计算机系统600可以包括大容量存储设备606,其中的至少一个是大容量的、字节可寻址的PMEM,如图1的PMEM 102。在各实施例中,大容量存储设备606可以包括其它存储设备,例如磁带驱动器、硬驱动器、紧致盘只读存储器(CD-ROM)等。而且,计算机系统600可以包括输入/输出设备608(诸如,显示器、键盘、光标控制器等)和通信接口610(诸如,网络接口卡、调制解调器等)。可经由系统总线612(其可表示一个或多个总线)将这些元件彼此耦合。在多个总线的情况下,可由一个或多个总线桥(未示出)来桥接它们。
这些元件中的每个可以执行其在本领域中公知的常规功能。具体而言,可采用系统存储器604和大容量存储设备606来存储编程指令的工作副本和永久副本,这些编程指令实现与先前所述的应用112、客OS 114、存储器管理器124和/或备份管理器126(被统称为计算逻辑622)相关联的操作。可由受处理器602支持的汇编指令或可编译成此类指令的诸如C之类的高级语言来实现各种元件。
取决于计算机系统600用作桌面计算机还是服务器,这些元件610-612的数量、能力和/或容量可能发生变化。否则,元件610-612的构成可以是已知的,并相应地将不进一步描述。
如本领域技术人员将理解的那样,本公开可以具体化为方法或计算机程序产品。因此,除了如先前所述被具体化在硬件中之外,本公开还可采取完全软件的实施例(包括固件、驻留软件、微代码等)或组合全部可被统称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本公开可采取计算机程序产品的形式,该计算机程序产品具体化在表达的任何有形的或非暂态介质中,该表达具有具体化在该介质中的计算机可用的程序代码。图7示出示例计算机可读的非暂态存储介质,其适用于存储指令,响应于由设备对这些指令的执行,这些指令使该设备实施本公开的所选择的多个方面。如所示出的那样,非暂态计算机可读存储介质702可包括多条编程指令704。编程指令704可配置成使设备(例如,计算机600)能够响应于对这些编程指令的执行而执行应用112、客OS 114、存储器管理器124和/或备份管理器126。在替代实施例中,相反可将这些编程指令704设置在多个计算机可读非暂态存储介质702上。在替代实施例中,可将编程指令704设置在诸如信号之类的计算机可读暂态存储介质702上。
可以利用一个或多个计算机可用或计算机可读介质的任意组合。计算机可用或计算机可读介质例如可以是但不限于,电子、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更加具体的示例(非穷举列表)将包括下述项:具有一条或多条线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、诸如支持因特网或内联网的传输介质的传输介质或磁存储设备。注意,计算机可用或计算机可读介质甚至可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而被电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并随后存储在计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合指令执行系统、装置或设备一起使用的任何介质。计算机可用介质可包括被传播的数据信号,随其体现在基带中或作为载波的一部分的计算机可用程序代码。可使用任何合适的介质来传送该计算机可用程序代码,包括但不限于无线、有线、光纤缆线、RF等。
用于执行本公开的操作的计算机程序代码可以一种或多种编程语言的任意组合来编写,包括面向对象编程语言(例如Java、Smalltalk、C++等等)以及常规程序化编程语言(诸如“C”编程语言或类似的编程语言)。该程序代码可作为部分地在用户的计算机上并且部分地在远程计算机上或完全地在远程计算机或服务器上的独立的软件包完全地在用户的计算机上、部分地在用户的计算机上执行。在后一场景中,可通过任意类型的网络(包括局域网(LAN)或广域网(WAN))将远程计算机连接至用户的计算机,或可作出至外部计算机的该连接(例如,通过使用因特网服务提供商的因特网)。
参照根据本公开的各实施例的流程图说明和/或方法、装置(系统)和计算机程序产品的框图描述了本公开。将会理解,可由计算机程序指令来实现流程图说明和/或框图的每一个框以及流程图说明和/或框图中的框的组合。可将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器来生产机器,使得经由计算机或其他可编程数据处理装置的处理器执行的这些指令创建用于实现流程图和/或框图的一个或多个框中所指定的功能/动作的装置。
也可将这些计算机程序指令存储在可指示计算机或其他可编程数据处理装置按特定方式运作的计算机可读介质中,使得存储在该计算机可读介质中的这些指令生产制品,该制品包括实现流程图和/或框图的一个或多个框中所指定的功能/动作的指令装置。
也可将这些计算机程序指令加载到计算机或其他可编程数据处理装置上以使一系列操作步骤在该计算机或其他可编程装置上执行来产生计算机实现的进程,使得在该计算机或其他可编程装置上执行的这些指令提供用于实现流程图和/或框图的一个或多个框中所指定的功能/动作的进程。
多个图中的流程图和框图示出根据本公开的各实施例的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。就这一点而言,流程图或框图中的每一个框可表示包括用于实现所指定的逻辑功能的一条或多条可执行指令的代码模块、代码段或代码部分。还应当注意,在一些替代实现中,框中所标注的多个功能可不按图中所标注的顺序发生。例如,取决于所涉及的功能,实际上可基本上同时执行连续地示出的两个框,或者有时可按相反的顺序来执行这些框。也将注意,可由执行所指定功能或动作的基于专用硬件的的系统或专用硬件和计算机指令的多种组合来实现框图和/或流程图说明中的每一个框和框图和/或流程图说明中的多个框的组合。
本文中所使用的术语仅用于描述特定实施例,并且并不旨在限制本公开。如本文中所使用的那样,单数形式的“一个”(“a”、“an”)和“该”(“the”)旨在也包括复数形式,除非上下文另外清楚地指示。还将理解,当在本说明书中使用术语“包括”(“comprise”和/或“comprising”)时,其指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除除此之外的一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组的存在。
可将多个实施例实现为诸如计算机可读介质的计算机程序产品之类的计算机进程、计算系统或制品。计算机程序产品可以是可由计算机系统读取的计算机存储介质以及用于执行计算机进程的编码计算机程序指令。
所附权利要求书中的所有装置或步骤以及功能元件的对应的结构、材料、动作及等效物旨在包括用于结合明确要求其权利的其他要求保护的元件来执行功能的任何结构、材料或动作。已出于说明和描述的目的呈现了本公开的描述,但是该描述不旨在是穷举性的,也不限于按所公开形式的本公开。许多修改和变型对本领域普通技术人员将是显而易见的,而不背离本公开的范围和精神。选择并描述实施例是为了最好地解释本公开的原理和实际应用,并且使其他本领域普通技术人员能够理解对具有各种修改的实施例的公开适用于所构想的特定使用。
参考回图6,对于一个实施例,至少一个处理器602可以与具有存储器管理器124和/或备份管理器126的存储器一起被封装。对于一个实施例,至少一个处理器602可以与具有存储器管理器124和/或备份管理器126的存储器一起被封装以形成系统级封装(SiP)。对于一个实施例,至少一个处理器602可以与具有存储器管理器124和/或备份管理器126的存储器一起被集成在同一管芯上。对于一个实施例,至少一个处理器602可以与具有存储器管理器124和/或备份管理器126的存储器一起被封装以形成片上系统(SoC)。对于至少一个实施例,SoC可被用在例如但不限于智能电话或计算平板中。
因此,已描述了本公开的各种示例实施例,它们包括但不限于:
示例1可以是一种用于计算的设备,包括:用于托管一个或多个虚拟机的操作的一个或多个处理器以及持久存储器;以及存储多个映射的一个或多个页表,所述映射用于将所述持久存储器的一个或多个虚拟化中所述一个或多个虚拟机的多个虚拟存储器页映射到所述持久存储器中被分配给所述一个或多个虚拟机的多个物理存储器页。所述设备还可以包括管理持久存储器的访问的存储器管理器,所述存储器管理器包括服务于对被映射到所述物理存储器页的虚拟存储器页进行寻址的写入指令的写入时复制机制,在一个或多个页表中所述映射被标记以将物理存储器页注释为只读。
示例2可以是示例1,其中所述存储器管理器可以接收被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的地址,所述物理存储器页被标记为只读并由写入指令从所述第一虚拟机的页错误处理程序寻址到被映射到所述物理存储器页的虚拟存储器页。
示例3可以是示例2,其中所述存储器管理器在接收到被分配给所述第一虚拟机的所述物理存储器页的所述地址时(所述物理存储器页被标记为只读并通过写入指令寻址到被映射到所述物理存储器页的虚拟存储器页),可以将另一个物理存储器页分配给所述第一虚拟机,并将所述一个或多个页表更新为将所述第一虚拟机的先前被映射到其地址已被接收到的所述物理存储器页的所述虚拟存储器页映射到新分配的物理存储器页,,并且将所述虚拟存储器页映射到其地址已被接收到的其中所述物理存储器页的原始映射的访问许可被接收。
示例4可以是示例3,其中所述存储器管理器在重新映射时,还可以模拟所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页,并且此后,将执行控制返回给所述第一虚拟机的下一条指令。
示例5可以是示例3,其中所述存储器管理器在重新映射时,可以将执行控制返回给所述第一虚拟机的所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页。
示例6可以是示例1,还包括将存储在被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集中的数据备份到备份设备上的备份管理器,所述备份管理器在存储在所述物理存储器页的第一子集中的数据正被从所述物理存储器页的第一子集备份到备份设备上的同时将所述物理存储器页的第一子集标记为只读。
示例7可以是示例6,其中所述备份管理器可以首先保存所述一个或多个表中的将所述第一虚拟机的虚拟存储器页映射到所述物理存储器页的当前映射,并在开始将存储在物理存储器页的第一子集中的数据备份到所述备份设备上之前标记所述一个或多个表中的所述当前映射以将所述物理存储器页注释为只读。
示例8可以是示例7,其中所述备份管理器在保存当前映射之前可以使得第一虚拟机的执行被停止,并在一个或多个页表中的所述当前映射已经被标记以将物理存储器页注释为只读之后使得第一虚拟机的执行被恢复。
示例9可以是示例8,其中在完成备份存储在被分配给第一虚拟机的物理存储器页的第一子集中的数据时,备份管理器可以至少部分基于所保存的映射恢复物理存储器页的第一子集的还未被重新映射到其先前标记状态的被标记的映射。
示例10可以是示例6,其中在开始备份被分配给第一虚拟机的物理存储器页的第一子集时,备份管理器还可以为被存储在被分配给一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集的经修改的页中的重新映射的物理存储器页中的数据记载日志在备份设备上,所述备份管理器在存储在重新映射物理存储器页中的数据正被记载日志到备份设备上的同时将重新映射物理存储器页标记为只读。
示例11可以是示例10,其中备份管理器可以首先由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而保存一个或多个表的当前映射,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页,并由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而标记一个或多个表中的当前重新映射,以在开始为存储在重新映射的物理存储器页的数据记载日志到所述备份设备上之前,将重新映射物理存储器页注释为只读,所述当前重新映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页。
示例12可以是示例11,其中备份管理器可以在由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而将当前映射保存在一个或多个表中之前,使得第一虚拟机的执行被停止,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页,并在由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而已对一个或多个页表中的当前映射进行标记以将重新映射的物理存储器页注释为只读之后,使得第一虚拟机的执行被恢复,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页。
示例13可以是示例12,其中在复制存储在重新映射的物理存储器页中的数据时,备份管理器可以至少部分基于对应的保存的重新映射将对应的标记的重新映射恢复到先前标记状态。示例14可以是示例12,其中在完成为存储在所有重新映射的物理存储器页中的数据记载日志时,备份管理器可以释放重新映射的物理存储器页以供重新分配。
示例15可以是示例10,其中在为存储在重新映射的物理存储器页中的数据记载日志达一时间段之后,备份管理器还可以将存储在重新映射的物理存储器页中的数据合并回物理存储器页的第一子集,所述备份管理器在存储在重新映射的物理存储器页中的数据正被合并回物理存储器页的第一子集中的同时将重新映射物理的存储器页标记为只读。
示例16可以是示例15,其中备份管理器可以在开始将存储在重新映射的物理存储器页中的数据合并回物理存储器页的第一子集之前,标记在一个或多个页表中的当前重新映射以将重新映射的物理存储器页注释为只读。
示例17可以是示例16,其中备份管理器可以在标记当前重新映射之前使得第一虚拟机的执行被停止,并在一个或多个页表中的当前重新映射已经被标记以将重新映射的物理存储器页注释为只读之后使得第一虚拟机的执行被恢复。
示例18可以是示例16,其中在将存储在重新映射物理存储器页中的数据复制回物理存储器页的第一子集时,备份管理器可以更新一个或多个表的映射以反映回到物理存储器页的第一子集中的合并。
示例19可以是示例6-18中的任一者,还包括用于管理虚拟机的托管的虚拟机管理器,其中虚拟机管理器包括备份管理器。
示例20可以是示例19,其中虚拟机管理器还包括一个或多个页表以及存储器管理器。
示例21可以是示例1-18中的任一者,还包括用于管理虚拟机的托管的虚拟机管理器,其中虚拟机管理器包括一个或多个页表以及备份管理器。
示例22可以是一种用于计算的方法,包括:由计算设备的一个或多个处理器以及持久存储器托管一个或多个虚拟机的操作;将多个映射存储在计算设备的一个或多个页表中,所述映射用于将所述持久存储器的虚拟化中所述一个或多个虚拟机的多个虚拟存储器页映射到所述持久存储中被分配给所述一个或多个虚拟机的多个物理存储器页;以及由计算设备的存储器管理器通过写入时复制过程来管理对所述持久存储器的访问,所述写入时复制过程服务于对被映射到所述物理存储器页的虚拟存储器页进行寻址的写入指令,在一个或多个页表中所述映射被标记将物理存储器页注释为只读。
示例23可以是示例22,还包括存储器管理器接收被分配给一个或多个虚拟机中的第一虚拟机的的物理存储器页的地址,所述物理存储器页被标记为只读并由写入指令从所述第一虚拟机的页错误处理程序寻址被映射到所述物理存储器页的虚拟存储器页。示例24可以是示例23,还包括所述存储器管理器在接收到被分配给所述第一虚拟机的所述物理存储器页的所述地址时(所述物理存储器页被标记为只读并通过写入指令寻址到被映射到所述物理存储器页的虚拟存储器页),将另一个物理存储器页分配给所述第一虚拟机,并将所述所述一个或多个页表更新为将所述第一虚拟机的先前被映射到其地址已被接收的所述物理存储器页的所述虚拟存储器页映射到新分配的物理存储器页,并且将所述虚拟存储器页映射到其地址已被接收的所述物理存储器页的原始映射的访问许可被接收。
示例25可以是示例24,还包括所述存储器管理器在重新映射时,模拟所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页,并且此后,将执行控制返回给所述第一虚拟机的下一指令。
示例26可以是示例24,还包括所述存储器管理器在重新映射时,将执行控制返回给所述第一虚拟机的所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页。示例27可以是示例22-26中的任一个,还包括由所述计算设备的备份管理器将存储在被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集中的数据备份到备份设备上,所述备份管理器在存储在所述物理存储器页的第一子集中的数据正被从所述物理存储器页的第一子集备份到备份设备上的同时将所述物理存储器页的第一子集标记为只读。
示例28可以是示例27,其中备份可以包括所述备份管理器首先保存所述一个或多个表中的将所述第一虚拟机的虚拟存储器页映射到所述物理存储器页的当前映射,并在开始将存储在物理存储器页的第一子集中的数据备份到所述备份设备上之前标记所述一个或多个表中的所述当前映射以将物理存储器页注释为只读。
示例29可以是示例28,其中备份还可以包括所述备份管理器在保存当前映射之前使得第一虚拟机的执行被停止,并且在一个或多个页表中的所述当前映射已经被标记为将物理存储器页注释为只读之后使得第一虚拟机的执行被恢复。示例30可以是示例29,其中备份还可以包括在完成备份存储在被分配给第一虚拟机的物理存储器页的第一子集中的数据时,备份管理器至少部分基于所保存的映射恢复物理存储器页的第一子集的还未被重新映射到其先前标记状态的被标记映射。示例31可以是示例27,还包括:在开始备份被分配给第一虚拟机的物理存储器页的第一子集时,备份管理器为被存储在被分配给一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集的经修改的页中的重新映射的物理存储器页中的数据的记载日志到备份设备上,所述备份管理器在存储在重新映射的物理存储器页中的数据正被记载日志到备份设备上的同时将重新映射物理存储器页标记为只读。示例32可以是示例31,其中备份管理器首先由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而保存一个或多个表的当前映射,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页,并且由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而标记一个或多个表中的当前重新映射,以在开始为存储在重新映射的物理存储器页的数据记载日志到所述备份设备上之前,将重新映射的物理存储器页注释为只读,所述当前重新映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页。示例33可以是示例32,其中记载日志可进一步包括备份管理器在由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而将当前映射保存在一个或多个表之前,使得第一虚拟机的执行被停止,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页,并在由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而对一个或多个页表中的当前映射进行标记以将重新映射的物理存储器页注释为只读之后,使得第一虚拟机的执行被恢复,所述当前映射将第一虚拟机的虚拟机存储器页映射到重新映射的物理存储器页。示例34可以是示例33,其中记载日志还可以包括在复制存储在重新映射的物理存储器页中的数据时,备份管理器至少部分基于对应的所保存的重新映射将对应的标记的重新映射恢复到先前标记状态。示例35可以是示例33,其中记载日志还可以包括在完成为存储在所有重新映射的物理存储器页中的数据记载日志时,备份管理器释放重新映射的物理存储器页以供重新分配。
示例36可以是示例31,还包括在为存储在重新映射的物理存储器页中的数据记载日志达一时间段之后,备份管理器将存储在重新映射的物理存储器页中的数据合并回物理存储器页的第一子集,所述备份管理器在存储在重新映射的物理存储器页中的数据正被合并回物理存储器页的第一子集中的同时将经重新映射的物理存储器页标记为只读。示例37可以是示例36,其中合并可以包括备份管理器在开始将存储在重新映射的物理存储器页中的数据合并回物理存储器页的第一子集之前,标记一个或多个表中的当前重新映射以将重新映射物理存储器页注释为只读。
示例38可以是示例37,其中所述合并可进一步包括所述备份管理器在标记当前重新映射之前使得第一虚拟机的执行被停止,并在一个或多个页表中的当前重新映射已经被标记以将重新映射的物理存储器页注释为只读之后使得第一虚拟机的执行被恢复。
示例39可以是示例37,其中所述合并可进一步包括在将存储在重新映射物理存储器页中的数据复制回物理存储器页的第一子集时,备份管理器可以更新一个或多个表的映射以反映回到物理存储器页的第一子集中的合并。
示例40可以是包括指令的一个或多个计算机可读介质,响应于具有持久存储器的计算设备的处理器对所述指令的执行使得所述计算设备:将多个映射存储在计算设备的一个或多个页表中,所述映射将所述持久存储器的虚拟化中由所述处理器和持久存储器托管的一个或多个虚拟机的多个虚拟存储器页映射到所述持久存储器中被分配给所述一个或多个虚拟机的多个物理存储器页;以及通过写入时复制过程来管理持久存储器的访问,所述写入时复制过程服务于对被映射到所述物理存储器页的虚拟存储器页进行寻址的写入指令,所述一个或多个页表中的所述映射被标记以将物理存储器页注释为只读。
示例41可以是示例40,其中还可以使得所述计算设备接收被分配给一个或多个虚拟机中的第一虚拟机的物理存储器页的地址,所述物理存储器页被标记为只读并通过写入指令从所述第一虚拟机的页错误处理程序寻址到被映射到所述物理存储器页的虚拟存储器页。
示例42可以是示例41,其中可以进一步使得计算设备在接收被分配给所述第一虚拟机的所述物理存储器页的所述地址时(所述物理存储器页被标记为只读并通过写入指令来寻址到被映射到所述物理存储器页的虚拟存储器页),将另一个物理存储器页分配给第一虚拟机,并将所述一个或多个页表更新为将所述第一虚拟机的先前被映射到其地址已被接收到的所述物理存储器页的所述虚拟存储器页映射到新分配的物理存储器页,并且将所述虚拟存储器页映射到其地址已被接收到的所述物理存储器页的原始映射的访问许可被接收。示例43可以是示例42,其中还可以使得计算设备在重新映射时模拟所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页,并且此后,将执行控制返回给所述第一虚拟机的下一指令。
示例44可以是示例42,其中还可以使得计算设备在重新映射时将执行控制返回给所述第一虚拟机的所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页中。
示例45可以是示例40,其中还可以使得计算设备将存储在被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集中的数据备份到备份设备上,所述备份管理器在存储在所述物理存储器页的第一子集中的数据正从物理存储器页的第一子集被备份到所述备份设备的同时将物理存储器页的第一子集标记为只读。
示例46可以是示例45,其中还可以使得计算设备首先保存所述一个或多个表的将所述第一虚拟机的虚拟存储器页映射到所述物理存储器页的当前映射,并在开始将存储在物理存储器页的第一子集中的数据备份到所述备份设备上之前标记所述一个或多个表中的所述当前映射以将所述物理存储器页注释为只读。示例47可以是示例46,其中还可以使得计算设备在保存当前重新映射之前使得第一虚拟机的执行被停止,并在一个或多个页表中的所述当前映射已经被标记以将注释物理存储器页注释为只读之后使得第一虚拟机的执行被恢复。
示例48可以是示例47,其中还可以使得计算设备在完成备份存储在被分配给第一虚拟机的物理存储器页的第一子集中的数据时,至少部分基于所保存的映射恢复物理存储器页的第一子集的还未被重新映射到先前标记状态的被标记的映射。
示例49可以是示例45,其中还可以使得计算设备在开始备份被分配给第一虚拟机的物理存储器页的第一子集时,为存储在被分配给一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集的经修改的页中的经重新映射的物理存储器页中的数据记载日志到备份设备上,所述备份管理器在存储在重新映射的物理存储器页中的数据正被记载日志到备份设备的同时将重新映射的物理存储器页标记为只读。示例50可以是示例49,其中还可以使得计算设备首先由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而保存一个或多个表的当前映射,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页,并由于被分配给第一虚拟机的物理存储器页的第一子集备份开始而标记一个或多个表中的当前映射,以在开始为存储在重新映射的物理存储器页的数据记载日志到所述备份设备上之前,将重新映射的物理存储器页为只读,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页。
示例51可以是示例50,其中还可以使得计算设备由于被分配给第一虚拟机的物理存储器页的第一子集备份开始而将当前映射保存在一个或多个表中之前,使得第一虚拟机的执行被停止,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页,并在由于被分配给第一虚拟机的物理存储器页的第一子集备份开始而已对在一个或多个表中的当前映射进行标记以将重新映射的物理存储器页注释为只读之后,使得第一虚拟机的执行被恢复,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页。
示例52可以是示例51,其中还可以使得计算设备在复制存储在重新映射的物理存储器页中的数据时,至少部分基于对应的所保存的重新映射将对应的标记重新映射恢复到先前标记状态。
示例53可以是示例51,其中还可以使得计算设备在完成为存储在所有重新映射的物理存储器页中的数据记载日志时,释放重新映射的物理存储器页以供重新分配。
示例54可以是示例49,其中还可以使得计算设备在为存储在重新映射的物理存储器页中的数据记载日志达一时间段之后,将存储在重新映射的物理存储器页中的数据合并回物理存储器页的第一子集,该计算设备在存储在重新映射的物理存储器页中的数据正被合并回物理存储器页的第一子集中的同时将重新映射物理存储器页标记为只读。示例55可以是示例54,其中还可以使得计算设备在开始将存储在重新映射的存储器页中的数据合并回物理存储器页的第一子集之前,标记在一个或多个表中的当前重新映射以将重新映射的物理存储器页注释为只读。示例56可以是示例55,其中还可以使得计算设备在标记当前重新映射之前使得第一虚拟机的执行被停止,并在一个或多个页表中的当前重新映射已经被标记以将重新映射的物理存储器页注释为只读之后,使得第一虚拟机的执行被恢复。
示例57可以是示例55,其中在将存储在重新映射的物理存储器页中的数据复制回物理存储器页的第一子集时,还可以使得计算设备更新一个或多个表的映射以反映回到物理存储器页的第一子集中的合并。示例58可以是一种用于计算的设备,包括:包括一个或多个处理器以及持久存储器在内的用于托管一个或多个虚拟机的操作的装置;用于存储具有多个映射的一个或多个页表的装置,所述映射将所述持久存储器的虚拟化的所述一个或多个虚拟机的多个虚拟存储器页映射到所述持久存储器中被分配给所述一个或多个虚拟机的多个物理存储器页;以及用于通过写入时复制过程来管理对所述持久存储器的访问的装置,所述写入时复制过程服务于对被映射到所述物理存储器页的虚拟存储器页进行寻址的写入指令,一个或多个页表中的所述映射被标记以将物理存储器页注释为只读。示例59可以是示例58,其中用于管理持久存储器的访问的装置可以包括用于接收被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的地址的装置,所述物理存储器页被标记为只读并通过写入指令从所述第一虚拟机的页错误处理程序被寻址到被映射到所述物理存储器页的虚拟存储器页。
示例60可以是示例59,其中用于管理对持久存储器的访问的装置还可以包括用于在接收被分配给所述第一虚拟机的所述物理存储器页的所述地址时(所述物理存储器页被标记为只读并通过写入指令被寻址到被映射到所述物理存储器页的虚拟存储器页),将另一个物理存储器页分配给第一虚拟机,并将所述一个或多个页表更新为将所述第一虚拟机的先前被映射到其地址已被接收到的所述物理存储器页的所述虚拟存储器页映射到新分配的物理存储器页的装置,并且将所述虚拟存储器页映射到其地址已被接收到的所述物理存储器页的原始映射的访问许可被接收。示例61可以是示例60,其中用于管理对持久存储器的访问的装置还可以包括用于在重新映射时模拟所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页,并且在此后将执行控制返回给所述第一虚拟机的下一指令的装置。
示例62可以是示例60,其中用于管理对持久存储器的访问的装置还可以包括用于在重新映射时将执行控制返回给所述第一虚拟机的所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页中的装置。示例63可以是示例58-62的任一示例,其中还可以包括用于将存储在被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集中的数据备份到备份设备上的装置,该装置在存储在物理存储器页的第一子集中的数据正被从所述物理存储器页的第一子集备份到备份设备的同时将所述物理存储器页的第一子集标记为只读。示例64可以是示例63,其中用于备份的装置可以包括用于首先保存所述一个或多个表的将所述第一虚拟机的虚拟存储器页映射到所述物理存储器页的当前映射的装置,以及用于在开始将存储在物理存储器页的第一子集中的数据备份到所述备份设备上之前标记所述一个或多个表中的所述当前映射以将物理存储器页注释为只读的装置。
示例65可以是示例64,其中用于备份的装置还可以包括用于在保存当前映射之前使得第一虚拟机的执行被停止,并在一个或多个页表中的所述当前映射已经被标记以将物理存储器页注释为只读之后使得第一虚拟机的执行被恢复的装置。
示例66可以是示例65,其中用于备份的装置还可以包括用于在完成备份存储在被分配给第一虚拟机的物理存储器页的第一子集中的数据时,至少部分基于所保存的映射恢复物理存储器页的第一子集的还未被重新映射到其先前标记状态的标记映射的装置。
示例67可以是示例63,其中用于备份的装置还可以包括用于在开始备份被分配给第一虚拟机的物理存储器页的第一子集时,将存储在被分配给一个或多个虚拟机中的第一虚拟机的物理存储器页的第一子集的经修改的页中的重新映射的物理存储器页中存储的数据记载日志到备份设备上的装置,该装置在存储在重新映射的物理存储器页中的数据正被记载日志到备份设备上的同时将重新映射物理存储器页标记为只读。
示例68可以是示例67,其中用于记载日志的装置包括用于首先由于被分配给第一虚拟机的物理存储器页的第一子集的备份开始而保存一个或多个表的当前映射的装置,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页,以及用于由于被分配给第一虚拟机的物理存储器页的第一子集备份开始而标记在一个或多个表中的当前重新映射,以在开始为存储在重新映射的物理存储器页的数据记载日志到所述备份设备上之前,将重新映射的物理存储器页注释为只读的装置,所述当前重新映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页。
示例69可以是示例68,其中用于记载日志的装置还可以包括用于由于被分配给第一虚拟机的物理存储器页的第一子集备份开始而将当前映射保存在一个或多个表中之前,使得第一虚拟机的执行被停止的装置,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页,以及用于在由于被分配给第一虚拟机的物理存储器页的第一子集备份开始而已对一个或多个表中的当前映射进行标记以将重新映射的物理存储器页注释为只读之后,使得第一虚拟机的执行被恢复的装置,所述当前映射将第一虚拟机的虚拟存储器页映射到重新映射的物理存储器页。
示例70可以是示例69,其中用于记载日志的装置还可以包括用于在复制存储在重新映射的物理存储器页中的数据时,至少部分基于对应的保存的重新映射将对应的标记的重新映射恢复到先前标记状态的装置。
示例71可以是示例69,其中用于记载日志的装置还可以包括用于在完成为存储在所有重新映射的物理存储器页中的数据的日志时,释放重新映射的物理存储器页以供重新分配的装置。示例72可以是示例67,其中用于备份的装置包括用于在为存储在重新映射的物理存储器页中的数据记载日志达一时间段之后,将存储在重新映射的物理存储器页中的数据合并回物理存储器页的第一子集的装置,该装置在存储在重新映射的物理存储器页中的数据正被合并回物理存储器页的第一子集中的同时将重新映射的物理存储器页标记为只读。
示例73可以是示例72,其中用于合并的装置包括用于在开始将存储在重新映射的存储器页中的数据合并回物理存储器页的第一子集之前,标记在一个或多个表中的当前重新映射以将重新映射的物理存储器页注释为只读的装置。
示例74可以是示例73,其中用于合并的装置还可以包括在标记当前重新映射之前使得第一虚拟机的执行被停止,并在一个或多个页表中的当前重新映射已经被标记以将重新映射的物理存储器页注释为只读之后使得第一虚拟机的执行被恢复的备份管理器。示例75可以是示例73,其中用于合并的装置还可以包括用于在将存储在重新映射的物理存储器页中的数据复制回物理存储器页的第一子集时,更新一个或多个表的映射以反映回到物理存储器页的第一子集中的合并的装置。对于本领域技术人员将是显而易见的是,可在所公开的设备和相关联的方法的所公开的实施例中作出各种修改和变型,而不背离本公开的精神和范围。因此,如果修改和变型落入任何权利要求及其等效方案的范围之内,则本公开旨在涵盖以上所公开的多个实施例的修改和变型。

Claims (25)

1.一种用于计算的装置,包括:
一个或多个处理器以及持久存储器,用于托管一个或多个虚拟机的操作;
一个或多个页表,用于存储多个映射,所述映射用于将所述持久存储器的一个或多个虚拟化中所述一个或多个虚拟机的多个虚拟存储器页映射到所述持久存储器中被分配给所述一个或多个虚拟机的多个物理存储器页;以及
存储器管理器,用于管理对所述持久存储器的访问,所述存储器管理器包括服务于对被映射到所述物理存储器页的虚拟存储器页进行寻址的写入指令的写入时复制机制,所述一个或多个页表中的所述映射被标记以将物理存储器页注释为只读。
2.如权利要求1所述的装置,其特征在于,所述存储器管理器用于接收被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的地址,所述物理存储器页被标记为只读并通过写入指令从所述第一虚拟机的页错误处理程序被寻址到被映射到所述物理存储器页的虚拟存储器页。
3.如权利要求2所述的装置,其特征在于,所述存储器管理器用于在接收到被分配给所述第一虚拟机的所述物理存储器页的所述地址时,将另一个物理存储器页分配给所述第一虚拟机,并将所述一个或多个页表更新为将所述第一虚拟机的先前被映射到其地址已被接收到的所述物理存储器页的所述虚拟存储器页映射到新分配的物理存储器页,并且将所述虚拟存储器页映射到其地址已被接收的所述物理存储器页的原始映射的访问许可被接收,所述物理存储器页被标记为只读并通过写入指令被寻址到被映射到所述物理存储器页的虚拟存储器页。
4.如权利要求3所述的装置,其特征在于,所述存储器管理器用于在重新映射时,进一步模拟所述写入命令以将写入指令的数据写入到所述新分配的物理存储器页,并且在此后,将执行控制返回给所述第一虚拟机的下一指令。
5.如权利要求3所述的装置,其特征在于,所述存储器管理器用于在重新映射时,将执行控制返回给所述第一虚拟机的所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页。
6.如权利要求1所述的装置,其特征在于,还包括备份管理器,所述备份管理器用于将存储在被分配给所述一个或多个虚拟机中的所述第一虚拟机的物理存储器页的第一子集中的数据备份到备份设备上,所述备份管理器在存储在所述物理存储器页的所述第一子集中的数据正被从所述物理存储器页的第一子集备份到所述备份设备上的同时将所述物理存储器页的第一子集标记为只读。
7.如权利要求6所述的装置,其特征在于,其中所述备份管理器用于首先保存所述一个或多个表的将所述第一虚拟机的所述虚拟存储器页映射到所述物理存储器页的当前映射,并在开始将存储在所述物理存储器页的第一子集中的数据备份到所述备份设备上之前标记所述一个或多个表中的所述当前映射以将所述物理存储器页注释为只读。
8.如权利要求7所述的装置,其特征在于,所述备份管理器用于在保存所述当前重新映射之前使得所述第一虚拟机的执行被停止,并在所述一个或多个页表中的所述当前映射已经被标记以将所述物理存储器页注释为只读之后使得所述第一虚拟机的执行被恢复。
9.如权利要求8所述的装置,其特征在于,在完成备份存储在被分配给所述第一虚拟机的所述物理存储器页的所述第一子集中的数据时,所述备份管理器用于至少部分基于所保存的映射来恢复所述物理存储器页的所述第一子集的还未被重新映射到其先前标记状态的标记映射。
10.如权利要求6所述的装置,其特征在于,在开始备份被分配给所述第一虚拟机的所述物理存储器页的第一子集时,所述备份管理器还用于将存储在被分配给所述一个或多个虚拟机中的所述第一虚拟机的所述物理存储器页的第一子集的经修改的页中的重新映射的物理存储器页中的数据记载日志到所述备份设备上,所述备份管理器在存储在所述重新映射的物理存储器页中的数据正被记载日志到所述备份设备上的同时将所述重新映射的物理存储器页标记为只读。
11.如权利要求10所述的装置,其特征在于,其中所述备份管理器用于首先由于被分配给所述第一虚拟机的所述物理存储器页的第一子集的备份开始而保存所述一个或多个表的当前映射,所述当前映射将所述第一虚拟机的所述虚拟存储器页映射到所述重新映射的物理存储器页,并且由于被分配给所述第一虚拟机的所述物理存储器页的第一子集的备份开始而标记所述一个或多个表中的所述当前重新映射,以在开始为存储在所述重新映射的物理存储器页的数据记载日志到所述备份设备上之前,将所述重新映射的物理存储器页注释为只读,所述当前重新映射将所述第一虚拟机的所述虚拟存储器页映射到所述重新映射的物理存储器页。
12.如权利要求11所述的装置,其特征在于,所述备份管理器用于在由于被分配给所述第一虚拟机的所述物理存储器页的第一子集的备份开始而将所述当前映射保存在所述一个或多个表中之前,使得所述第一虚拟机的执行被停止,所述当前映射将所述第一虚拟机的所述虚拟存储器页映射到所述重新映射的物理存储器页,并用于在由于被分配给所述第一虚拟机的所述物理存储器页的第一子集的备份开始而对所述一个或多个表中的所述当前映射进行标记以将所述重新映射物理存储器页注释为只读之后,使得所述第一虚拟机的执行被恢复,所述当前映射将所述第一虚拟机的所述虚拟存储器页映射到所述重新映射的物理存储器页。
13.如权利要求12所述的装置,其特征在于,在复制存储在所述重新映射的物理存储器页中的数据时,所述备份管理器用于至少部分基于对应的保存的重新映射将对应的标记的重新映射恢复到先前标记状态。
14.如权利要求12所述的装置,其特征在于,在完成为存储在所有重新映射的物理存储器页中的数据记载日志时,所述备份管理器用于释放所述重新映射的物理存储器页以供重新分配。
15.如权利要求10所述的装置,其特征在于,在为存储在所述重新映射的物理存储器页中的数据记载日志达一时间段之后,所述备份管理器还用于将存储在所述重新映射的物理存储器页中的数据合并回所述物理存储器页的第一子集,所述备份管理器在存储在所述重新映射的物理存储器页中的数据正被合并回所述物理存储器页的第一子集中的同时将所述重新映射的物理存储器页标记为只读。
16.如权利要求15所述的装置,其特征在于,所述备份管理器在开始将存储在所述重新映射的存储器页中的数据合并回所述物理存储器页的第一子集开始之前,用于标记在所述一个或多个页表中的当前重新映射以将所述重新映射物理存储器页注释为只读。
17.如权利要求16所述的装置,其特征在于,所述备份管理器用于在标记所述当前重新映射之前使得所述第一虚拟机的执行被停止,并用于在所述一个或多个页表中的所述当前重新映射已经被标记以将所述重新映射的物理存储器页注释为只读之后使得所述第一虚拟机的执行被恢复。
18.如权利要求16所述的装置,其特征在于,在将存储在所述重新映射的物理存储器页中的数据复制回所述物理存储器页的第一子集时,所述备份管理器用于更新所述一个或多个表的映射以反映回到所述物理存储器页的第一子集的合并。
19.如权利要求1-18中的任一项所述的装置,其特征在于,还包括用于管理所述虚拟机的托管的虚拟机管理器,其中所述虚拟机管理器包括所述一个或多个页表以及所述备份管理器。
20.一种用于计算的方法,包括:
由计算设备的一个或多个处理器和持久存储器托管一个或多个虚拟机的操作;
在所述计算设备的一个或多个页表中存储多个映射,所述映射将所述持久存储器的虚拟化中所述一个或多个虚拟机的多个虚拟存储器页映射到所述持久存储器中被分配给所述一个或多个虚拟机的多个物理存储器页;以及
由所述计算设备的存储器管理器通过写入时复制过程管理对所述持久存储器的访问,所述写入时复制过程服务于对被映射到所述物理存储器页的所述虚拟存储器页进行寻址的写入指令,一个或多个页表中的所述映射被标记以将物理存储器页注释为只读。
21.如权利要求20所述的方法,其特征在于,还包括所述存储器管理器接收被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的地址,所述物理存储器页被标记为只读并通过写入指令从所述第一虚拟机的页错误处理程序被寻址到被映射到所述物理存储器页的虚拟存储器页;
在接收到被分配给所述第一虚拟机的所述物理存储器页的所述地址时,将另一个物理存储器页分配给所述第一虚拟机,并将所述一个或多个页表更新为将所述第一虚拟机的先前被映射到其地址已被接收到的所述物理存储器页的所述虚拟存储器页映射到新分配的物理存储器页,并且将所述虚拟存储器页映射到其地址已被接收的所述物理存储器页的原始映射的访问许可被接收,所述物理存储器页被标记为只读并被写入指令寻址到被映射到所述物理存储器页的虚拟存储器页;以及
在重新映射时模拟所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页,并且在此后将执行控制返回给所述第一虚拟机的下一指令,或者将执行控制返回给所述第一虚拟机的所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页中。
22.包括指令的一个或多个计算机可读介质,响应于具有持久存储器的计算设备的处理器对所述指令的执行,使得所述计算设备实施权利要求20和21所述的方法中的任一项。
23.一种用于计算的设备,包括:
包括一个或多个处理器以及持久存储器在内的用于托管一个或多个虚拟机的操作的装置;
用于在所述计算设备的一个或多个页表中存储多个映射的装置,所述映射将所述持久存储器的虚拟化中所述一个或多个虚拟机的多个虚拟存储器页映射到所述持久存储器中被分配给所述一个或多个虚拟机的多个物理存储器页;以及
用于通过写入时复制过程管理对所述持久存储器的访问的装置,所述写入时复制过程服务于对被映射到所述物理存储器页的所述虚拟存储器页进行寻址的写入指令,所述一个或多个页表中的所述映射被标记以将所述物理存储器页注释为只读。
24.如权利要求23所述的设备,其特征在于,用于管理访问的装置包括用于接收被分配给所述一个或多个虚拟机中的第一虚拟机的物理存储器页的地址的装置,所述物理存储器页被标记为只读并通过写入指令从所述第一虚拟机的页错误处理程序被寻址到被映射到所述物理存储器页的虚拟存储器页;
用于在接收到被分配给所述第一虚拟机的所述物理存储器页的所述地址时,将另一个物理存储器页分配给所述第一虚拟机,并将所述一个或多个页表更新为将所述第一虚拟机的先前被映射到其地址已被接收到的所述物理存储器页的所述虚拟存储器页映射到新分配的物理存储器页的装置,并且将所述虚拟存储器页映射到其地址已被接收到的所述物理存储器页的原始映射的访问许可被接收,所述物理存储器页被标记为只读并通过写入指令寻址到被映射到所述物理存储器页的虚拟存储器页;以及
用于在重新映射时模拟所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页并且在此后将执行控制返回给所述第一虚拟机的下一指令,或者将执行控制返回给所述第一虚拟机的所述写入指令以将所述写入指令的数据写入到所述新分配的物理存储器页中的装置。
25.如权利要求23-24中的任一项所述的设备,其特征在于,还包括用于将存储在被分配给所述一个或多个虚拟机中的所述第一虚拟机的物理存储器页的第一子集中的数据备份到备份设备的装置,该装置在存储在所述物理存储器页的第一子集中的数据正从所述物理存储器页的第一子集被备份到所述备份设备的同时将所述物理存储器页的所述第一子集标记为只读;
其中用于备份的装置还包括用于在开始备份被分配给所述第一虚拟机的所述物理存储器页的第一子集时,为存储在被分配给所述一个或多个虚拟机中的所述第一虚拟机的所述物理存储器页的所述第一子集的经修改的页的重新映射的物理存储器页中的数据记载日志到所述备份设备上的装置,该装置在存储在所述重新映射的物理存储器页中的数据正被记载日志到所述备份设备的同时将所述重新映射的物理存储器页标记为只读;以及
其中用于备份的装置包括用于在为存储在所述重新映射的物理存储器页中的数据记载日志达一时间段之后,将存储在所述重新映射的物理存储器页中的数据合并回所述物理存储器页的第一子集的装置,该装置在将存储在所述重新映射的物理存储器页中的数据合并回所述物理存储器页的第一子集中的同时将所述重新映射的物理存储器页标记为只读。
CN201580080141.1A 2015-06-17 2015-06-17 利用持久存储器的计算装置和方法 Active CN107615255B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/000423 WO2016201589A1 (en) 2015-06-17 2015-06-17 Computing apparatus and method with persistent memory

Publications (2)

Publication Number Publication Date
CN107615255A true CN107615255A (zh) 2018-01-19
CN107615255B CN107615255B (zh) 2022-05-31

Family

ID=57544984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580080141.1A Active CN107615255B (zh) 2015-06-17 2015-06-17 利用持久存储器的计算装置和方法

Country Status (4)

Country Link
US (1) US10521354B2 (zh)
EP (1) EP3311286A4 (zh)
CN (1) CN107615255B (zh)
WO (1) WO2016201589A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018881A (zh) * 2019-03-28 2019-07-16 西安交通大学 一种虚拟机故障快速恢复方法及系统
WO2020061805A1 (en) * 2018-09-26 2020-04-02 Intel Corporation Power Off and Power On Method and Apparatus For an In-Vehicle System
CN113590049A (zh) * 2021-09-28 2021-11-02 苏州浪潮智能科技有限公司 一种存储卷跨节点克隆的方法、装置、设备及可读介质
CN114153567A (zh) * 2022-02-09 2022-03-08 苏州浪潮智能科技有限公司 一种内存快照管理方法、装置、设备及介质
CN114641757A (zh) * 2019-11-06 2022-06-17 微软技术许可有限责任公司 保存并还原应用内容的虚拟机状态和硬件状态

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452298B2 (en) 2017-05-09 2019-10-22 Microsoft Technology Licensing, Llc Portable file-backed virtual storage class memory
US10445009B2 (en) * 2017-06-30 2019-10-15 Intel Corporation Systems and methods of controlling memory footprint
US10693844B2 (en) * 2017-08-24 2020-06-23 Red Hat, Inc. Efficient migration for encrypted virtual machines by active page copying
JP6508382B1 (ja) * 2018-03-26 2019-05-08 日本電気株式会社 情報処理装置、情報処理方法、プログラム
CN108920639B (zh) * 2018-07-02 2022-01-18 北京百度网讯科技有限公司 基于语音交互的上下文获取方法及设备
US11341058B2 (en) * 2018-07-26 2022-05-24 Vmware Inc. Handling software page faults using data from hierarchical data structures
US11809888B2 (en) * 2019-04-29 2023-11-07 Red Hat, Inc. Virtual machine memory migration facilitated by persistent memory devices
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
US11614956B2 (en) 2019-12-06 2023-03-28 Red Hat, Inc. Multicast live migration for encrypted virtual machines
US11693722B2 (en) * 2020-03-23 2023-07-04 Red Hat, Inc. Fast memory mapped IO support by register switch

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831790A (zh) * 2005-03-08 2006-09-13 微软公司 虚拟机环境中的客机物理地址虚拟化方法和系统
CN101158924A (zh) * 2007-11-27 2008-04-09 北京大学 一种虚拟机管理器的动态内存映射方法
CN101276301A (zh) * 2007-03-27 2008-10-01 赛门铁克公司 在数据备份系统中的备份任务之间分配资源的方法和装置
US20090327575A1 (en) * 2008-06-30 2009-12-31 David Durham Copy equivalent protection using secure page flipping for software components within an execution environment
CN101706736A (zh) * 2009-12-22 2010-05-12 北京大学 一种高效的脏页获取方法
US8335899B1 (en) * 2008-03-31 2012-12-18 Emc Corporation Active/active remote synchronous mirroring
CN103098043A (zh) * 2010-09-10 2013-05-08 国际商业机器公司 随需虚拟机映像流式传输
US20140006734A1 (en) * 2012-06-28 2014-01-02 Industrial Technology Research Institute Method of cloning data in a memory for a virtual machine, product of computer programs and computer system therewith
US20140075127A1 (en) * 2010-03-23 2014-03-13 Vmware, Inc. Efficient readable ballooning of guest memory by backing balloon pages with a shared page
CN103678145A (zh) * 2012-09-06 2014-03-26 慧荣科技股份有限公司 数据储存装置与快闪存储器控制方法
US20140164722A1 (en) * 2012-12-10 2014-06-12 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
CN104133775A (zh) * 2013-05-02 2014-11-05 国际商业机器公司 一种用于管理存储器的方法和装置
CN104216801A (zh) * 2014-09-04 2014-12-17 北京联创信安科技有限公司 一种面向虚拟化环境的数据复制方法及系统
CN104410681A (zh) * 2014-11-21 2015-03-11 上海交通大学 基于远程直接内存访问的虚拟机动态迁移优化方法
CN104407933A (zh) * 2014-10-31 2015-03-11 华为技术有限公司 一种数据的备份方法及装置
US9015432B1 (en) * 2011-06-30 2015-04-21 Emc Corporation Establishing a mapping to a virtual disk

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
US8407518B2 (en) 2007-10-26 2013-03-26 Vmware, Inc. Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
CN101727331B (zh) 2008-10-24 2013-03-20 国际商业机器公司 升级活动虚拟机的客户操作系统的方法和设备
CN102306126B (zh) 2011-08-24 2014-06-04 华为技术有限公司 内存管理方法、装置和系统
US9304885B2 (en) * 2013-06-18 2016-04-05 International Business Machines Corporation Passive monitoring of virtual systems using agent-less, near-real-time indexing
US9552217B2 (en) * 2014-06-28 2017-01-24 Vmware, Inc. Using active/active asynchronous replicated storage for live migration

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831790A (zh) * 2005-03-08 2006-09-13 微软公司 虚拟机环境中的客机物理地址虚拟化方法和系统
CN101276301A (zh) * 2007-03-27 2008-10-01 赛门铁克公司 在数据备份系统中的备份任务之间分配资源的方法和装置
CN101158924A (zh) * 2007-11-27 2008-04-09 北京大学 一种虚拟机管理器的动态内存映射方法
US8335899B1 (en) * 2008-03-31 2012-12-18 Emc Corporation Active/active remote synchronous mirroring
US20090327575A1 (en) * 2008-06-30 2009-12-31 David Durham Copy equivalent protection using secure page flipping for software components within an execution environment
CN101706736A (zh) * 2009-12-22 2010-05-12 北京大学 一种高效的脏页获取方法
US20140075127A1 (en) * 2010-03-23 2014-03-13 Vmware, Inc. Efficient readable ballooning of guest memory by backing balloon pages with a shared page
CN103098043A (zh) * 2010-09-10 2013-05-08 国际商业机器公司 随需虚拟机映像流式传输
US9015432B1 (en) * 2011-06-30 2015-04-21 Emc Corporation Establishing a mapping to a virtual disk
US20140006734A1 (en) * 2012-06-28 2014-01-02 Industrial Technology Research Institute Method of cloning data in a memory for a virtual machine, product of computer programs and computer system therewith
CN103678145A (zh) * 2012-09-06 2014-03-26 慧荣科技股份有限公司 数据储存装置与快闪存储器控制方法
US20140164722A1 (en) * 2012-12-10 2014-06-12 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
CN104133775A (zh) * 2013-05-02 2014-11-05 国际商业机器公司 一种用于管理存储器的方法和装置
CN104216801A (zh) * 2014-09-04 2014-12-17 北京联创信安科技有限公司 一种面向虚拟化环境的数据复制方法及系统
CN104407933A (zh) * 2014-10-31 2015-03-11 华为技术有限公司 一种数据的备份方法及装置
CN104410681A (zh) * 2014-11-21 2015-03-11 上海交通大学 基于远程直接内存访问的虚拟机动态迁移优化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ADRIAN COLESA .ETC: "Fast creation of short-living virtual machines using copy-on-write RAM-disks", 《2014 IEEE INTERNATIONAL CONFERENCE ON AUTOMATION, QUALITY AND TESTING, ROBOTICS》 *
陈旧等: "基于内存混合复制方式的虚拟机在线迁移机制", 《计算机学报》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020061805A1 (en) * 2018-09-26 2020-04-02 Intel Corporation Power Off and Power On Method and Apparatus For an In-Vehicle System
CN110018881A (zh) * 2019-03-28 2019-07-16 西安交通大学 一种虚拟机故障快速恢复方法及系统
CN114641757A (zh) * 2019-11-06 2022-06-17 微软技术许可有限责任公司 保存并还原应用内容的虚拟机状态和硬件状态
CN114641757B (zh) * 2019-11-06 2024-03-26 微软技术许可有限责任公司 保存并还原应用内容的虚拟机状态和硬件状态
CN113590049A (zh) * 2021-09-28 2021-11-02 苏州浪潮智能科技有限公司 一种存储卷跨节点克隆的方法、装置、设备及可读介质
WO2023050665A1 (zh) * 2021-09-28 2023-04-06 苏州浪潮智能科技有限公司 一种存储卷跨节点克隆的方法、装置、设备及可读介质
CN114153567A (zh) * 2022-02-09 2022-03-08 苏州浪潮智能科技有限公司 一种内存快照管理方法、装置、设备及介质
CN114153567B (zh) * 2022-02-09 2022-05-10 苏州浪潮智能科技有限公司 一种内存快照管理方法、装置、设备及介质
WO2023151352A1 (zh) * 2022-02-09 2023-08-17 苏州浪潮智能科技有限公司 一种内存快照管理方法、装置、设备及介质

Also Published As

Publication number Publication date
US20180107605A1 (en) 2018-04-19
WO2016201589A1 (en) 2016-12-22
EP3311286A1 (en) 2018-04-25
EP3311286A4 (en) 2019-01-16
US10521354B2 (en) 2019-12-31
CN107615255B (zh) 2022-05-31

Similar Documents

Publication Publication Date Title
CN107615255A (zh) 利用持久存储器的计算装置和方法
CN103597451B (zh) 用于高可用性的存储器镜像和冗余生成
CN104572495B (zh) 使用细粒度级别的重映射的混合主存储器
US11481121B2 (en) Physical media aware spacially coupled journaling and replay
CN105339907B (zh) 非易失性存储器系统中的同步镜像
US9250823B1 (en) Online replacement of physical storage in a virtual storage system
CN102707900B (zh) 虚拟盘存储技术
CN103493027B (zh) 虚拟磁盘存储技术
US5239659A (en) Phantom duplex copy group apparatus for a disk drive array data storge subsystem
US8443160B2 (en) Computer system and data migration method
US8060703B1 (en) Techniques for allocating/reducing storage required for one or more virtual machines
JP2020526843A (ja) フォールトトレラントサーバにおけるダーティページ追跡および完全メモリミラーリング冗長性のための方法
US20090222496A1 (en) System and Method for Virtualizing Backup Images
CN105446826A (zh) 虚拟机备份、恢复的方法及设备
CN104050094A (zh) 管理高速缓存存储区的系统、方法和计算机可读介质
US8046552B2 (en) Tracking metadata changes during data copy in a storage system
CN101084481A (zh) 在群集存储环境中执行并行数据迁移的方法
CN106168920B (zh) 控制包括只读闪速数据存储设备的独立磁盘冗余阵列
CN106062742A (zh) 用于改进快照性能的系统和方法
CN109344090A (zh) 数据中心中kvm虚拟机的虚拟硬盘系统及数据中心
JP2003167689A (ja) ディスクアレイ装置及び同装置におけるパリティ処理方法
US9256373B1 (en) Invulnerable data movement for file system upgrade
KR20180002259A (ko) 계층적 플래시 변환 레이어 구조 및 그 설계 방법
CN103198088A (zh) 基于阴影分页的日志段目录
CN102012853A (zh) 一种零拷贝快照方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant