External memory for virtualization
Abstract
Methods and systems for providing a virtualization instance on an apparatus access to external primary memory, where the external primary memory is memory that is external to the apparatus but primary memory to the apparatus. Methods and systems to migrate a virtualization instance from a first client to a second client are provided in which memory of the virtualization instance is copied to from a first region to a second region without being copied to or from the first client or the second client. Methods and systems are provided for limiting local primary memory usage by a virtualization instance. After the flushing or the shooting down a translation lookaside buffer, a selected memory portion corresponding to a page table entry is marked dirty based on a portion-tracking data structure indicating that the page table entry for the selected memory portion was dirty when the selected memory portion was unmapped.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . An apparatus comprising: a processor configured to execute a memory map operation in which at least a portion of a file is mapped to a virtual address space in response to an invocation of a memory map application programming interface of an operating system, wherein the file is backed by external primary memory, wherein the external primary memory is accessible by a virtualization instance through the virtual address space as primary memory for the virtualization instance and at least a portion of the external primary memory is allocable within the virtualization instance.
2 . The apparatus of claim 1 , wherein the external primary memory is accessible, by the apparatus, over a network via client-side memory access in which a communication interface of a memory appliance is configured to access the external primary memory.
3 . The apparatus of claim 1 , wherein the portion of the external primary memory is allocable within the virtualization instance in response to a request to allocate memory.
4 . The apparatus of claim 1 , wherein the external primary memory includes volatile memory.
5 . The apparatus of claim 1 , wherein the external primary memory includes non-volatile memory.
6 . The apparatus of claim 1 , wherein the apparatus includes a server cluster comprising multiple physical servers.
7 . The apparatus of claim 1 , wherein the apparatus is one of a plurality of physical servers included in a server cluster, wherein the external primary memory accessible within the virtualization instance is larger than a total amount of local primary memory that is included in any single one of the physical servers.
8 . The apparatus of claim 1 , wherein the apparatus further includes a memory, and wherein the processor is further configured to provide access to the memory as a second external primary memory for a device that is external to the apparatus.
9 . A non-transitory computer readable storage medium comprising computer executable instructions, the computer executable instructions executable by a processor, the computer executable instructions comprising:
instructions executable to memory map at least a portion of a file to a virtual address space in response to an invocation of an application programming interface of an operating system, wherein a memory-mapped file is a segment of virtual memory assigned to the portion of the file by the invocation of the an application programming interface of an operating system, wherein the memory-mapped file is backed by a medium other than local primary memory and other than a swap file, wherein the segment of virtual memory is accessible by a virtualization instance through the virtual address space and is allocable within the virtualization instance.
10 . The computer readable storage medium of claim 9 , wherein the memory-mapped file is backed by external primary memory.
11 . The computer readable storage medium of claim 9 , wherein the file is backed by a solid-state storage device or any other non-volatile medium.
12 . The computer readable storage medium of claim 9 , wherein the virtualization instance includes an operating system and/or a kernel.
13 . The computer readable storage medium of claim 9 , wherein the an application programming interface of an operating system includes mmap( ).
14 . The computer readable storage medium of claim 9 further comprising instructions executable to copy data from the file to a local primary memory in response to a page fault.
15 . The computer readable storage medium of claim 9 further comprising instructions executable to reclaim a portion of a local primary memory in which the memory-mapped file is buffered, and to start a writeback of the portion of the local primary memory before the portion is reclaimed.
16 . The computer readable storage medium of claim 9 , wherein the segment of virtual memory is a primary memory for the virtualization instance, the virtualization instance executes in a first process, and the computer readable storage medium further comprises instructions executable to perform a snapshot of the primary memory of the virtualization instance by:
creating a forked process of the first process; and maintaining a first view of the primary memory of the virtualization instance for the first process and a second view of the primary memory of the virtualization instance for the forked process, wherein the snapshot of the primary memory of the virtualization instance is accessible through the first view of the primary memory or the second view of the primary memory.
17 . The computer readable storage medium of claim 9 further comprising instructions executable to perform a snapshot of the primary memory of the virtualization instance, wherein a snapshot of the file is triggered in performance of the snapshot.
18 . A method comprising:
memory mapping at least a portion of a file to a virtual address space in response to an invocation of an application programming interface of an operating system, the file being backed by external primary memory; and allocating, within a virtualization instance, at least a portion of the external primary memory, wherein the external primary memory is accessible within the virtualization instance through the virtual address space as primary memory for the virtualization instance.
19 . The method of claim 18 further comprising migrating the virtualization instance from a first physical machine to a second physical machine without copying data of the primary memory for the virtualization instance by accessing the data in the external primary memory within the virtualization instance from the second physical machine.
20 . The method of claim 18 , wherein the virtualization instance includes a virtual machine, a container, a jail, or a zone.
21 . The method of claim 18 , wherein data is encrypted upon being written to the external primary memoryCited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.