Secure virtual machine memory allocation management via dedicated memory pools

US9323552B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9323552-B1
Application numberUS-201313830117-A
CountryUS
Kind codeB1
Filing dateMar 14, 2013
Priority dateMar 14, 2013
Publication dateApr 26, 2016
Grant dateApr 26, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments are disclosed for recycling memory from a memory pool dedicated to a virtual machine instance. For example, memory sub-pools can be pre-allocated to respective virtual machine instances. Memory scrubbing can be ordinarily performed to avoid data leakage between different customers. However, scrubbing can be inhibited when a given virtual machine reclaims memory previously released to the dedicated pool because the memory remains dedicated to the instance. Further features, such as partition and merge of sub-pools can be supported. Control of the features can be accomplished via API calls as part of a web service.

First claim

Opening claim text (preview).

What is claimed is: 1. One or more non-transitory computer-readable storage media comprising computer-executable instructions causing a computing system to perform a method comprising: managing a memory pool for allocation to virtual machine instances executing in a multi-customer hosting environment; assigning dedicated memory pools out of the memory pool for respective virtual machine instances executing in a multi-customer hosting environment; storing associations between the dedicated memory pools and respective of the virtual machine instances; within the memory pool, maintaining a memory pool for cross-virtual-machine-instance use; during deallocation of memory for a virtual machine instance, reclaiming the memory to the dedicated memory pool for the virtual machine instance; responsive to a ballooning memory allocation request from the virtual machine instance after the virtual machine instance is created, reallocating the memory that was deallocated and reclaimed to the dedicated memory pool to the virtual machine instance without scrubbing, wherein the memory that was deallocated is recycled within the dedicated memory pool and provided back to the virtual machine instance without scrubbing ordinarily performed before memory allocation; and before allocating memory reclaimed to the memory pool for cross-virtual-machine-instance use, scrubbing the memory reclaimed to the memory pool for cross-virtual-machine-instance use. 2. The one or more non-transitory computer-readable storage media of claim 1 , wherein the method further comprises: scrubbing a given dedicated memory pool after termination of a respective virtual machine instance associated with the given dedicated memory pool. 3. The one or more non-transitory computer-readable storage media of claim 1 , wherein the method further comprises: after reboot of the virtual machine instance, increasing a size of the dedicated memory pool for the virtual machine instance to a size of the virtual machine instance immediately before reboot. 4. A method comprising: managing a memory pool for allocation to virtual machine instances; assigning dedicated memory pools for respective of the virtual machine instances, wherein the assigning comprises assigning sub-pools within the memory pool to the respective virtual machine instances; storing associations between the dedicated memory pools and respective of the virtual machine instances; maintaining a memory pool for cross-virtual-machine-instance use; reallocating memory to a given virtual machine instance after reclamation to a dedicated memory pool for the given virtual machine instance without scrubbing, wherein the reallocating recycles memory within the dedicated memory pool and inhibits scrubbing ordinarily performed before allocating memory; and before reallocating memory reclaimed to the memory pool for cross-virtual-machine-instance use, scrubbing the memory reclaimed to the memory pool for cross-virtual-machine-instance use. 5. The method of claim 4 further comprising: for a virtual machine instance having a dedicated memory pool, upon termination of a virtual machine instance, scrubbing the dedicated memory pool. 6. The method of claim 4 wherein: the dedicated memory pools are isolated from each other. 7. The method of claim 4 further comprising: after reboot of the given virtual machine instance, increasing a size of the dedicated memory pool for the given virtual machine instance to size of the given virtual machine instance immediately before reboot. 8. The method of claim 4 further comprising: for a virtual machine instance having a dedicated memory pool, receiving a request to partition the dedicated memory pool; and responsive to the request, partitioning the dedicated memory pool into at least two partitions, wherein one of the partitions remains dedicated to the virtual machine instance. 9. The method of claim 8 further comprising: receiving an API call indicating that a dedicated memory pool is to be partitioned; and responsive to receiving the API call, performing the partitioning. 10. The method of claim 4 further comprising: for a virtual machine instance having a dedicated memory pool, receiving a request to merge the dedicated memory pool with another dedicated memory pool; and responsive to the request, merging the dedicated memory pool and the other dedicated memory pool. 11. The method of claim 10 further comprising: receiving an API call indicating that dedicated memory pools are to be merged; and responsive to receiving the API call, performing the merging. 12. A system comprising: a memory pool; a plurality of virtual machine instances; and a memory manager configured to allocate a plurality of memory sub-pools within the memory pool for respective of the virtual machine instances and track associations between the virtual machine instances and respective of the memory sub-pools; wherein the memory manager is further configured to scrub memory before allocating it to the virtual machine instances; wherein the memory manager is further configured to inhibit memory scrubbing when allocating memory from a memory sub-pool associated with a given virtual machine instance to the given virtual machine instance, thereby recycling memory within the memory sub-pool for the given virtual machine instance; and wherein the memory manager is further configured to maintain a memory cross pool allocable to any of the virtual machine instances; and the memory manager is further configured to scrub memory returned to the memory cross pool. 13. The system of claim 12 wherein: the memory manager is further configured to scrub a given memory sub-pool after termination of a respective virtual machine instance associated with the given memory sub-pool. 14. The system of claim 12 further comprising: a hypervisor managing the virtual machine instances; wherein the hypervisor comprises the memory manager. 15. The system of claim 12 further comprising: a plurality of stored relationships between the virtual machine instances and respective of the memory sub-pools. 16. The system of claim 12 further comprising: a control plane management interface configured to accept an API call that enables sub-pool creation for a virtual machine instance. 17. The system of claim 16 wherein: the API call comprises a parameter for specifying the virtual machine instance. 18. The system of claim 12 further comprising: a control plane management interface configured to accept an API call that indicates that at least two memory sub-pools are to be merged. 19. The system of claim 12 further comprising: a control plane management interface configured to accept an API call that indicates that a memory sub-pool is to be partitioned. 20. The system of claim 12 wherein: the memory pool is shared among virtual machine instances executing for different customers.

Assignees

Inventors

Classifications

  • Isolation or security of virtual machine instances · CPC title

  • Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity · CPC title

  • Memory management, e.g. access or allocation · CPC title

  • the resource being the memory · CPC title

  • Hypervisors; Virtual machine monitors · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9323552B1 cover?
Embodiments are disclosed for recycling memory from a memory pool dedicated to a virtual machine instance. For example, memory sub-pools can be pre-allocated to respective virtual machine instances. Memory scrubbing can be ordinarily performed to avoid data leakage between different customers. However, scrubbing can be inhibited when a given virtual machine reclaims memory previously released t…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45533. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 26 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).