IP Library Granted Patent US 8,832,687
Granted Patent B2
US 8,832,687 · App. 13/091,056 · Granted Sep 9, 2014

Managing quotas in a distributed virtualization environment

Inventor: Ayal Baron (Kiryat Ono, IL)
Assignee: Red Hat Israel, Ltd.
G06F9/45558G06F2009/4557G06F9/5077Y02B60/142G06F9/5011
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,832,687
App. No.
13/091,056
Granted
Sep 9, 2014
Kind
B2
Abstract

A computing device assigns a quota to a entity, the quota specifying a total amount of a low level resource that the entity is permitted to use. The computing device divides the quota into quota portions, and assigns each of the quota portions to one of a plurality of high level resources assigned to the entity. Each of the plurality of high level resources may use low level resources of a plurality of targets. The computing device automatically adjusts quota portions for one or more of the plurality of high level resources in response to changes in utilization requirements of the plurality of high level resources.

Claims (74)

1. A computer-implemented method, comprising:

assigning a quota to an entity, the quota specifying a total amount of a low level resource that the entity is permitted to use for a plurality of targets;

dividing the quota into quota portions;

assigning, by a processing device, the quota portions to a plurality of high level resources assigned to the entity, wherein each of the plurality of high level resources uses low level resources of at least one of the plurality of targets, and wherein resource utilization for a high level resource of the plurality of high level resources is adjusted by a target of the plurality of targets up to a quota portion assigned to the high level resource without verification against the quota assigned to the entity; and

adjusting, without user input, the quota portions for one or more of the plurality of high level resources in response to changes in utilization requirements of the plurality of high level resources, wherein at least one quota portion of the plurality of quota portions is adjusted in view of historical low level resource usage data.

2. The method of claim 1 , further comprising:

receiving a command to start a specified high level resource of the plurality of high level resources;

determining whether to change a size of the specified high level resource's quota portion before starting the specified high level resource; and

responsive to determining to change the size of the specified high level resource's quota portion, determining a new size for the specified high level resource's quota portion, and setting the size of the specified high level resource's quota portion to the determined new size.

3. The method of claim 2 , wherein determining the new size for the specified-high level resource's quota portion comprises:

reviewing historical low level resource usage data for the specified high level resource;

determining that the specified high level resource's quota portion will be filled up based on the historical low level resource usage data; and

increasing the size of the specified high level resource's quota portion.

4. The method of claim 3 , wherein determining the new size for the specified high level resource's quota portion further comprises:

reviewing additional historical low level resource usage data for one or more additional high level resources of the plurality of high level resources;

identifying that the one or more additional high level resources have excess capacity based on the additional historical low level resource usage data; and

reassigning the excess capacity from the one or more additional high level resources to the specified high level resource.

5. The method of claim 1 , wherein adjusting a size of a specified high level resource's quota portion to a new size comprises:

calculating, for an unassigned portion of the quota, the unassigned portion's size, wherein the new size for the specified high level resource's quota portion is between an amount of the low level resource actually used by the specified high level resource and a combination of a previous size of the specified high level resource's quota portion plus the unassigned portion's size.

6. The method of claim 5 , wherein determining the new size for the specified high level resource's quota portion further comprises:

determining that the combination of the previous size of the specified high level resource's quota portion plus the unassigned portion's size is insufficient for the specified high level resource;

reducing quota portion sizes for one or more inactive high level resources of the plurality of high level resources; and

increasing the size of the specified high level resource's quota portion based on an amount that the quota portion sizes for the one or more inactive high level resources were reduced.

7. The method of claim 6 , further comprising:

determining that the increased size of the specified high level resource's quota portion is insufficient for the specified high level resource;

reducing quota portion sizes for one or more active high level resources of the plurality of high level resources; and

further increasing the size of the specified high level resource's quota portion based on an amount that the quota portion sizes for the one or more active high level resources were reduced.

8. The method of claim 1 , wherein the low level resource is storage, the quota is a storage quota, the plurality of quota portions are a plurality of storage quota portions, the plurality of targets are a plurality of storage targets, and the plurality of high level resources is a plurality of virtual machines.

9. A non-transitory computer readable medium including instructions that, when executed by a processing device, cause the processing device to perform operations comprising:

assigning a storage quota to an entity, the storage quota specifying a total amount of storage space that the entity is permitted to use for a plurality of storage targets;

dividing the storage quota into storage quota portions;

assigning, by the processing device, the storage quota portions to a plurality of high level resources assigned to the entity, wherein each of the plurality of high level resources has data stored in at least one of the plurality of storage targets, and wherein resource utilization for a high level resource of the plurality of high level resources is adjusted by a target of the plurality of targets up to a quota portion assigned to the high level resource without verification against the quota assigned to the entity; and

adjusting, without user input, storage quota portions for one or more of the plurality of high level resources in response to changes in utilization requirements of the plurality of high level resources, wherein at least one quota portion of the plurality of quota portions is adjusted in view of historical low level resource usage data.

10. The non-transitory computer readable medium of claim 9 , the operations further comprising:

receiving a command to start a specified high level resource of the plurality of high level resources;

determining whether to change a size of the specified high level resource's storage quota portion before starting the specified high level resource; and

responsive to determining to change the size of the specified high level resource's storage quota portion, determining a new size for the specified high level resource's storage quota portion, and setting the size of the specified high level resource's storage quota portion to the determined size.

11. The non-transitory computer readable medium of claim 10 , wherein determining the new size for the specified high level resource's storage quota portion comprises:

reviewing historical storage usage data for the specified high level resource;

determining that the specified high level resource's storage quota portion will be filled up based on the historical storage usage data; and

increasing the size of the specified high level resource's storage quota portion.

12. The non-transitory computer readable medium of claim 9 , wherein adjusting a size of a specified high level resource's storage quota portion to a new size comprises:

calculating, for an unassigned portion of the storage quota, the unassigned portion's size, wherein the new size for the specified high level resource's storage quota portion is between an amount of storage space actually used by the specified high level resource and a combination of a previous size of the specified high level resource's storage quota portion plus the unassigned portion's size.

13. The non-transitory computer readable medium of claim 12 , wherein determining the new size for the specified high level resource's storage quota portion further comprises:

determining that the combination of the previous size of the specified high level resource's storage quota portion plus the unassigned portion's size is insufficient for the specified high level resource;

reducing storage quota portion sizes for one or more inactive high level resources of the plurality of high level resources; and

increasing the size of the specified high level resource's storage quota portion based on an amount that the storage quota portion sizes for the one or more inactive high level resources were reduced.

14. The non-transitory computer readable medium of claim 9 , wherein the plurality of high level resources is a plurality of virtual machines.

15. A computing device comprising:

a memory; and

a processing device connected to the memory, the processing device to:

assign a quota to an entity, the quota specifying a total amount of a low level resource that the entity is permitted to use for a plurality of targets;

divide the quota into quota portions;

assign the quota portions to a plurality of high level resources assigned to the entity, wherein each of the plurality of high level resources uses low level resources of at least one of the plurality of targets, and wherein resource utilization for a high level resource of the plurality of high level resources is adjusted by a target of the plurality of targets up to a quota portion assigned to the high level resource without verification against the quota assigned to the entity; and

adjust, without user input, quota portions for one or more of the plurality of high level resources in response to changes in utilization requirements of the plurality of high level resources, wherein at least one quota portion of the plurality of quota portions is adjusted in view of historical low level resource usage data.

16. The computing device of claim 15 , wherein the processing device is further to:

receive a command to start a specified high level resource of the plurality of high level resources;

determine whether to change a size of the specified high level resource's quota portion before starting the specified high level resource; and

responsive to determining to change the size of the specified high level resource's quota portion, determine a new size for the specified high level resource's quota portion, and set the size of the specified high level resource's quota portion to the determined new size.

17. The computing device of claim 16 , wherein determining the new size for the specified high level resource's quota portion comprises:

reviewing historical low level resource usage data for the specified high level resource;

determining that the specified high level resource's quota portion will be filled up based on the historical low level resource usage data; and

increasing the size of the specified high level resource's quota portion.

18. The computing device of claim 17 , wherein determining the new size for the specified high level resource's quota portion further comprises:

reviewing additional historical low level resource usage data for one or more additional high level resources of the plurality of high level resources;

identifying that the one or more additional high level resources have excess capacity based on the additional historical low level resource usage data; and

reassigning the excess capacity from the one or more additional high level resources to the specified high level resource.

19. The computing device of claim 15 , wherein adjusting a size of a specified high level resource's quota portion to a new size comprises:

calculating, for an unassigned portion of the quota, the unassigned portion's size, wherein the new size for the specified high level resource's quota portion is between an amount of the low level resource actually used by the specified high level resource and a combination of a previous size of the specified high level resource's quota portion plus the unassigned portion's size.

20. The computing device of claim 19 , wherein determining the new size for the specified high level resource's quota portion further comprises:

determining that the combination of the previous size of the specified high level resource's quota portion plus the unassigned portion s size is insufficient for the specified high level resource;

reducing quota portion sizes for one or more additional high level resources of the plurality of high level resources; and

increasing the size of the specified high level resource's quota portion based on an amount that the quota portion sizes for the one or more additional high level resources were reduced.

21. The computing device of claim 15 , wherein the low level resource is storage, the quota is a storage quota, the plurality of quota portions are a plurality of storage quota portions, the plurality of targets are a plurality of storage targets, and the plurality of high level resources is a plurality of virtual machines.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2011
From: BARON, AYAL
To: RED HAT ISRAEL, LTD.
Reel/Frame 026159/0073 →
Continuity (1)
Related Publication 20120272237A1 · Oct 25, 2012