Methods and systems for concurrently taking snapshots of a plurality of virtual machines

US9778990B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9778990-B2
Application numberUS-201414509885-A
CountryUS
Kind codeB2
Filing dateOct 8, 2014
Priority dateOct 8, 2014
Publication dateOct 3, 2017
Grant dateOct 3, 2017

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.

Techniques are described herein which minimize the impact of virtual machine snapshots on the performance of virtual machines and hypervisors. In the context of a volume snapshot which may involve (i) taking virtual machine snapshots of all virtual machines associated with the volume, (ii) taking the volume snapshot, and (iii) removing all the virtual machine snapshots, multiple virtual machine snapshots may be created in parallel. In the process of creating virtual machine snapshots, a storage system may determine which snapshots to create in parallel. The storage system may also prioritize snapshots from certain hypervisors in order to avoid the problem of “starvation”, in which busy hypervisors prevent less busy hypervisors from creating snapshots. The techniques described herein, while mainly described in the context of snapshot creation, are readily applied to snapshot removal.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for creating snapshots of a plurality of virtual machines instantiated on one or more hosts, each of the virtual machines (i) managed by one of a plurality of hypervisors instantiated on the one or more hosts, and (ii) storing data on a storage system communicatively coupled to the one or more hosts, the method comprising: creating, by a storage controller of the storage system, a plurality of queues having a one-to-one mapping to the plurality of hypervisors; placing by the storage controller a request to create a snapshot of one of the virtual machines in the queue mapped to the hypervisor which manages the virtual machine; and concurrently executing by the storage controller one or more software threads, wherein the execution of the one or more software threads causes the storage controller to perform the following for each of the one or more software threads: (i) select one of the queues based on a queue preference order assigned to the software thread; (ii) retrieve one of the snapshot requests from the selected queue; and (iii) process the retrieved snapshot request, wherein at a first time instance, a first one of the one or more software threads is assigned to a first one of the queues, and at a second time instance, the first software thread is assigned to a second one of the queues based on the queue preference order assigned to the first software thread. 2. The method of claim 1 , wherein for each of the software threads, the queue preference order orders the plurality of queues from a most preferred queue to a least preferred queue. 3. The method of claim 2 , wherein a first one of the queues contains the most number of requests, and the first queue is the most preferred queue of at least two of the software threads. 4. The method of claim 1 , wherein the queue preference order for a first one of the threads is different from the queue preference order for a second one of the threads. 5. The method of claim 1 , wherein, as a result of the processing of the one or more snapshot requests, a snapshot of one or more of the virtual machines is created so as to capture a state of one or more of the virtual machines. 6. The method of claim 5 , further comprising, after snapshots have been created for all of the virtual machines, creating by the storage system a snapshot of a storage volume of the storage system so as to maintain a state of the storage volume, wherein the storage volume comprises the state of each one of the virtual machines. 7. The method of claim 6 , further comprising, after creating the storage volume snapshot, requesting one or more of the virtual machine snapshots to be removed. 8. A storage system, comprising: a storage volume storing data from a plurality of virtual machines which are instantiated on one or more hosts communicatively coupled to the storage system, each of the virtual machines being managed by one of a plurality of hypervisors instantiated on the one or more hosts; a main memory; a processor communicatively coupled to the storage volume and the main memory; and software instructions on the main memory that, when executed by the processor, cause the processor to: create a plurality of queues having a one-to-one mapping to the plurality of hypervisors; place a request to create a snapshot of one of the virtual machines in the queue mapped to the hypervisor which manages the virtual machine; and concurrently execute one or more software threads, wherein the execution of the one or more software threads causes the processor to perform the following for each of the one or more software threads: (i) select one of the queues based on a queue preference order assigned to the software thread; (ii) retrieve one of the snapshot requests from the selected queue; and (iii) process the retrieved snapshot request, wherein at a first time instance, a first one of the one or more software threads is assigned to a first one of the queues, and at a second time instance, the first software thread is assigned to a second one of the queues based on the queue preference order assigned to the first software thread. 9. The storage system of claim 8 , wherein for each of the software threads, the queue preference order orders the plurality of queues from a most preferred queue to a least preferred queue. 10. The storage system of claim 9 , wherein a first one of the queues contains the most number of requests, and the first queue is the most preferred queue of at least two of the software threads. 11. The storage system of claim 8 , wherein the queue preference order for a first one of the threads is different from the queue preference order for a second one of the threads. 12. The storage system of claim 8 , wherein, as a result of the processing of the one or more snapshot requests, a snapshot of one or more of the virtual machines is created so as to capture a state of one or more of the virtual machines. 13. The storage system of claim 12 , further comprising software instructions on the main memory that, when executed by the processor, cause the processor to, after snapshots have been created for all of the virtual machines, create a snapshot of the storage volume so as to maintain a state of the storage volume, wherein the storage volume comprises the state of each one of the virtual machines. 14. The storage system of claim 13 , further comprising software instructions on the main memory that, when executed by the processor, cause the processor to, after creating the storage volume snapshot, request one or more of the virtual machine snapshots to be removed. 15. A non-transitory machine-readable storage medium for a storage system having (i) a storage volume storing data from a plurality of virtual machines which are instantiated on one or more hosts communicatively coupled to the storage system, each of the virtual machines being managed by one of a plurality of hypervisors instantiated on the one or more hosts, (ii) a main memory, and (iii) a processor communicatively coupled to the storage volume and the main memory, the non-transitory machine-readable storage medium comprising software instructions that, when executed by the processor, cause the processor to: create a plurality of queues having a one-to-one mapping to the plurality of hypervisors; place a request to create a snapshot of one of the virtual machines in the queue mapped to the hypervisor which manages the virtual machine; and concurrently execute one or more software threads, wherein the execution of the one or more software threads causes the processor to perform the following for each of the one or more software threads: (i) select one of the queues based on a queue preference order assigned to the software thread; (ii) retrieve one of the snapshot requests from the selected queue; and (iii) process the retrieved snapshot request, wherein at a first time instance, a first one of the one or more software threads is assigned to a first one of the queues, and at a second time instance, the first software thread is assigned to a second one of the queues based on the queue preference order assigned to the first software thread. 16. The non-transitory machine-readable storage medium of claim 15 , wherein for each of the software threads, the queue preference order orders the plurality of queues from a most preferred queue to a least preferred queue. 17. The non-transitory machine-readable storage medium of claim 16 , wherein a first one of the queues contains the most number of requests, and the first queue is the most preferred q

Assignees

Inventors

Classifications

  • involving virtual machines · CPC title

  • Restarting or rejuvenating · CPC title

  • Management thereof · CPC title

  • Management specifically adapted to replicated file systems · CPC title

  • Access to data in other repository systems, e.g. legacy data or dynamic Web page generation · 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 US9778990B2 cover?
Techniques are described herein which minimize the impact of virtual machine snapshots on the performance of virtual machines and hypervisors. In the context of a volume snapshot which may involve (i) taking virtual machine snapshots of all virtual machines associated with the volume, (ii) taking the volume snapshot, and (iii) removing all the virtual machine snapshots, multiple virtual machine…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F11/1438. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 03 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).