Ordering tasks scheduled for execution based on priority and event type triggering the task, selecting schedulers for tasks using a weight table and scheduler priority
US-9417912-B2 · Aug 16, 2016 · US
US9778990B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9778990-B2 |
| Application number | US-201414509885-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 8, 2014 |
| Priority date | Oct 8, 2014 |
| Publication date | Oct 3, 2017 |
| Grant date | Oct 3, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.