IP Library Granted Patent US 10,637,793
Granted Patent B1
US 10,637,793 · App. 15/198,576 · Granted Apr 28, 2020

Capacity based licensing

Inventors: Derek M. Scott (Raleigh, NC); Gajanan S. Natu (Cary, NC); Michael L. Burriss (Raleigh, NC); Alexander Yurievich Burmak (Saint-Petersburg, RU); George Papadopoulos (Franklin, MA); Rahul D. Pradhan (Clinton, MA); Wai C. Yim (Merrimack, NH)
Assignee: EMC IP Holding Company LLC
H04L47/70H04L43/0876H04L67/10
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 10,637,793
App. No.
15/198,576
Granted
Apr 28, 2020
Kind
B1
Abstract

Described are licensing techniques that may include: receiving a license specifying a maximum limit of a resource where the maximum limit denotes a maximum allowable consumption amount of the resource; providing the maximum limit to one or more software components; and enforcing, by the one or more software components, consumption of the maximum limit of the resource whereby an actual amount of the resource consumed is not allowed to exceed the maximum limit. The maximum limit may be a maximum storage capacity limit in connection with a virtualized storage system or appliance as well as a non-virtualized storage system or appliance. Software components may enforce the maximum limit, or a dependent limit derived therefrom, on the control path and data path. Limits specified in the license, or a dependent limit determined therefrom, may denote a maximum or minimum limit.

Claims (42)

1. A method of licensing comprising:

receiving, using a processor, a license that is a capacity-based license specifying a maximum limit of storage capacity, said maximum limit denoting a maximum allowable consumption amount of provisioned non-volatile physical storage;

providing, using a processor, the maximum limit of storage capacity to one or more software components; and

enforcing, using a processor and by the one or more software components, consumption of the maximum limit of storage capacity, wherein an actual amount of provisioned physical storage in a data storage system or data storage appliance is not allowed to exceed the maximum limit of storage capacity, wherein the maximum limit is a first maximum limit of non-volatile physical storage at a first point in time and wherein, at the first point in time, there is a first amount of unused storage capacity, that is in addition to the first maximum limit, on at least one non-volatile physical storage device currently in the data storage system or the data storage appliance, and wherein, at the first point in time, the first amount of unused storage capacity on the at least one non-volatile physical storage device currently in the data storage system or the data storage appliance has a current state of unusable or invalidated and is not made available at the first point in time for provisioning in accordance with the first maximum limit of the license, and wherein the method further includes:

at a second point in time subsequent to the first point in time, upgrading, using a processor, the license to a second maximum limit larger than the first maximum limit, said second maximum limit denoting a revised maximum allowable consumption amount of provisioned physical storage; and

responsive to said upgrading, revalidating the first amount of unused storage capacity using a processor, wherein said revalidating includes updating the current state of the first amount of unused storage capacity of the at least one non-volatile physical storage device to usable or validated to indicate that the first amount is available for provisioning.

2. The method of claim 1 , wherein the data storage system or the data storage appliance is virtualized whereby code portions of a control path and a data path are executed in a context of a virtual machine, and wherein the provisioned physical storage having the maximum limit is included in, or accessible to, a system providing a virtualized environment including the virtual machine.

3. The method of claim 1 , wherein the method includes:

determining a set of one or more dependent limits, wherein each dependent limit of the set specifies an allowable amount for a physical entity or a logical entity, and said each dependent limit of the set is derived from the maximum limit of storage capacity;

communicating at least one of the maximum resource limit and a dependent limit from the set to at least a first of the one or more software components; and

enforcing, by the first software component, the at least one of the maximum resource limit and the dependent limit from the set.

4. The method of claim 3 , wherein the set of one or more dependent limits includes one or more maximum allowable amounts for one or more of: maximum size of a file system, maximum size of a logical device, maximum number of snapshots, maximum number of logical devices, maximum size of a storage pool, maximum size of a RAID group, maximum size of a physical storage device, and a maximum amount of one of a plurality of storage tiers.

5. The method of claim 3 , wherein the set of one or more dependent limits includes one or more minimum limits for one or more of: a minimum number of processors, a minimum amount of memory, and a minimum amount of one of a plurality of storage tiers.

6. The method of claim 3 , wherein the first software component is included in a control path and the at least one of the maximum resource limit and the dependent limit from the set are enforced by the first software component in connection with servicing data storage system management requests.

7. The method of claim 6 wherein the first software component is used in connection with performing one or more of: a provisioning operation to provision storage for a logical entity in a data storage system, a data replication operation, a snapshot operation, or a file system operation.

8. The method of claim 3 , wherein the first software component is included in a data path.

9. The method of claim 8 , wherein the first software component is a device driver and the method includes:

determining, by the device driver, a first non-volatile storage device currently having a first state that is invalidated or unusable, said first non-volatile storage device having an associated first capacity that is not allowed to be used in connection with storage provisioning operations;

determining, by the device driver, that the first non-volatile storage device has a revised state that is validated or usable in accordance with the dependent limit from the set; and

responsive to determining that the revised state of the first non-volatile storage device is validated or usable, permitting the first non-volatile storage device to be used in connection with storage provisioning operations.

10. The method of claim 1 , wherein the license is an upgrade license or a downgrade license with respect to a current license, the current license indicating a first maximum limit of storage capacity prior to the upgrade, wherein the first maximum limit is updated to the maximum limit of storage capacity as a revised maximum limit of storage capacity.

11. A system comprising:

one or more processors; and

one or more memories comprising code stored thereon that, when executed, performs a method of licensing comprising:

receiving, using a processor, a license that is a capacity-based license specifying a maximum limit of storage capacity, said maximum limit denoting a maximum allowable consumption amount of provisioned non-volatile physical storage;

providing, using a processor, the maximum limit of storage capacity to one or more software components; and

enforcing, using a processor and by the one or more software components, consumption of the maximum limit of storage capacity, wherein an actual amount of provisioned physical storage in a data storage system or data storage appliance is not allowed to exceed the maximum limit of storage capacity, wherein the maximum limit is a first maximum limit of non-volatile physical storage at a first point in time and wherein, at the first point in time, there is a first amount of unused storage capacity, that is in addition to the first maximum limit, on at least one non-volatile physical storage device currently in the data storage system or the data storage appliance, and wherein, at the first point in time, the first amount of unused storage capacity on the at least one non-volatile physical storage device currently in the data storage system or the data storage appliance has a current state of unusable or invalidated and is not made available at the first point in time for provisioning in accordance with the first maximum limit of the license, and wherein the method further includes:

at a second point in time subsequent to the first point in time, upgrading, using a processor, the license to a second maximum limit larger than the first maximum limit, said second maximum limit denoting a revised maximum allowable consumption amount of provisioned physical storage; and

responsive to said upgrading, revalidating the first amount of unused storage capacity using a processor, wherein said revalidating includes updating the current state of the first amount of unused storage capacity of the at least one non-volatile physical storage device to usable or validated to indicate that the first amount is available for provisioning.

12. A non-transitory computer readable medium comprising code stored thereon that, when executed performs a method of licensing comprising:

receiving, using a processor, a license that is a capacity-based license specifying a maximum limit of storage capacity, said maximum limit denoting a maximum allowable consumption amount of provisioned non-volatile physical storage;

providing, using a processor, the maximum limit of storage capacity to one or more software components; and

enforcing, using a processor and by the one or more software components, consumption of the maximum limit of storage capacity, wherein an actual amount of provisioned physical storage in a data storage system or data storage appliance is not allowed to exceed the maximum limit of storage capacity, wherein the maximum limit is a first maximum limit of non-volatile physical storage at a first point in time and wherein, at the first point in time, there is a first amount of unused storage capacity, that is in addition to the first maximum limit, on at least one non-volatile physical storage device currently in the data storage system or the data storage appliance, and wherein, at the first point in time, the first amount of unused storage capacity on the at least one non-volatile physical storage device currently in the data storage system or the data storage appliance has a current state of unusable or invalidated and is not made available at the first point in time for provisioning in accordance with the first maximum limit of the license, and wherein the method further includes:

at a second point in time subsequent to the first point in time, upgrading, using a processor, the license to a second maximum limit larger than the first maximum limit, said second maximum limit denoting a revised maximum allowable consumption amount of provisioned physical storage; and

responsive to said upgrading, revalidating the first amount of unused storage capacity using a processor, wherein said revalidating includes updating the current state of the first amount of unused storage capacity of the at least one non-volatile physical storage device to usable or validated to indicate that the first amount is available for provisioning.

13. The non-transitory computer readable medium of claim 12 , wherein the data storage system or the data storage appliance is virtualized whereby code portions of a control path and a data path are executed in a context of a virtual machine, and wherein the provisioned physical storage having the maximum limit is included in, or accessible to, a system providing a virtualized environment including the virtual machine.

14. The non-transitory computer readable medium of claim 12 , wherein the method includes:

determining a set of one or more dependent limits, wherein each dependent limit of the set specifies an allowable amount for a physical entity or a logical entity, and said each dependent limit of the set is derived from the maximum limit of storage capacity;

communicating at least one of the maximum resource limit and a dependent limit from the set to at least a first of the one or more software components; and

enforcing, by the first software component, the at least one of the maximum resource limit and the dependent limit from the set.

15. The non-transitory computer readable medium of claim 14 , wherein the first software component is included in a control path and the at least one of the maximum resource limit and the dependent limit from the set are enforced by the first software component in connection with servicing data storage system management requests.

16. The non-transitory computer readable medium of claim 14 , wherein the first software component is included in a data path.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2016
From: PRADHAN, RAHUL D.
To: EMC CORPORATION
Reel/Frame 039073/0985 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2016
From: SCOTT, DEREK M.; NATU, GAJANAN S.; BURRISS, MICHAEL L.; BURMAK, ALEXANDER YURIEVICH; PAPADOPOULOS, GEORGE; YIM, WAI C.
To: EMC CORPORATION
Reel/Frame 039056/0701 →