IP Library Granted Patent US 11,023,128
Granted Patent B2
US 11,023,128 · App. 15/923,258 · Granted Jun 1, 2021

On-demand elastic storage infrastructure

Inventor: Luis Pablo Pabon (Sturbridge, MA)
Assignee: Portworx, Inc.
G06F3/0604G06F3/067G06F3/0631G06F3/0665H04L67/1097
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 11,023,128
App. No.
15/923,258
Granted
Jun 1, 2021
Kind
B2
Abstract

A scalable storage infrastructure may be provided by dynamically adjusting the size of a storage volume implemented across one or more storage devices. When data is added to or removed from the storage volume, the system may compare the current amount of data stored on the volume to a threshold value. Then storage capacity may then be adjusted so as to accommodate future storage requests without maintaining an inefficiently large amount of reserved but unused storage space.

Claims (34)

1. A method comprising:

receiving a request to execute a storage volume event at a designated compute node, the designated compute node implemented on a computing device that includes a processor and memory, the storage volume event specifying an action to be performed on a virtual storage volume, the virtual storage volume providing data storage space distributed across a plurality of storage devices;

determining whether a current utilization parameter associated with the storage volume event requires adjusting the storage capacity of the virtual storage volume based on the following parameters: minimum capacity, maximum capacity, high utilization watermark, low utilization watermark, and a step parameter, wherein the step parameter specifies the amount of change to the storage capacity, wherein the determining occurs each time after receiving a request to execute a storage volume event;

executing the storage volume event by performing the specified action on the virtual storage volume; and

based on a determination as to whether the current utilization parameter associated with the storage volume event falls above or below a predetermined threshold, adjusting the storage capacity of the virtual storage volume to increase or decrease the storage capacity, wherein adjusting storage capacity can include moving the storage data from one storage device to another.

2. The method recited in claim 1 , wherein each of the storage devices are in communication with the designated compute node via a network.

3. The method recited in claim 2 , wherein each of the storage devices is located at a different network endpoint.

4. The method recited in claim 1 , wherein the designated compute node includes a container engine application executed by an operating system, the container engine application providing a standardized platform for the instantiation and execution of the containerized applications.

5. The method recited in claim 4 , wherein the one or more containerized applications includes a storage driver configured to create and manage the virtual storage volume.

6. The method recited in claim 1 , wherein the storage volume capacity threshold represents a low utilization watermark threshold, and wherein the determination evaluates whether the current storage capacity falls below the low utilization watermark threshold.

7. The method recited in claim 5 , wherein the storage capacity of the virtual storage volume is decreased when the current storage capacity falls below the low utilization watermark threshold.

8. The method recited in claim 1 , wherein the storage volume capacity threshold represents a high utilization watermark threshold, and wherein the determination evaluates whether the current storage capacity exceeds the low utilization watermark threshold.

9. The method recited in claim 7 , wherein the storage capacity of the virtual storage volume is increased when the current storage capacity exceeds the high utilization watermark threshold.

10. The method recited in claim 1 , wherein the designated compute node is one of a plurality of compute nodes, the plurality of compute nodes forming a distributed storage cluster.

11. A computing device comprising:

a communications interface configured to receive a request to execute a storage volume event, the storage volume event specifying an action to be performed on a virtual storage volume, the virtual storage volume providing data storage space distributed across a plurality of storage devices;

a processor operable to:

determine whether a current utilization parameter associated with the storage volume event requires adjusting the storage capacity of the virtual storage volume based on the following parameters: minimum capacity, maximum capacity, high utilization watermark, low utilization watermark, and a step parameter, wherein the step parameter specifies the amount of change to the storage capacity, wherein the determining occurs each time after receiving a request to execute a storage volume event;

execute the storage volume event by performing the specified action on the virtual storage volume, and

adjust the storage capacity of the virtual storage volume to increase or decrease the storage capacity based on a determination as to whether the current utilization parameter associated with the storage volume event falls above or below a predetermined threshold, wherein adjusting the storage capacity can include moving storage data from one storage device to another.

12. The computing device recited in claim 11 , wherein each of the storage devices are in communication with the computing device via a network, and wherein each of the storage devices is located at a different network endpoint.

13. The computing device recited in claim 11 , further comprising:

a container engine application executed by an operating system, the container engine application providing a standardized platform for the instantiation and execution of the containerized applications, and wherein the one or more containerized applications includes a storage driver configured to create and manage the virtual storage volume.

14. The computing device recited in claim 11 , wherein the storage volume capacity threshold represents a low utilization watermark threshold, and wherein the determination evaluates whether the current storage capacity falls below the low utilization watermark threshold.

15. The computing device recited in claim 14 , wherein the storage capacity of the virtual storage volume is decreased when the current storage capacity falls below the low utilization watermark threshold.

16. The computing device recited in claim 11 , wherein the storage volume capacity threshold represents a high utilization watermark threshold, and wherein the determination evaluates whether the current storage capacity exceeds the low utilization watermark threshold.

17. The computing device recited in claim 16 , wherein the storage capacity of the virtual storage volume is increased when the current storage capacity exceeds the high utilization watermark threshold.

18. The computing device recited in claim 11 , wherein the computing device is configured to communicate with a plurality of compute nodes, the plurality of compute nodes forming a distributed storage cluster.

19. One or more non-transitory machine readable media having instructions stored thereon for performing a method, the method comprising:

receiving a request to execute a storage volume event at a designated compute node, the designated compute node implemented on a computing device that includes a processor and memory, the storage volume event specifying an action to be performed on a virtual storage volume, the virtual storage volume providing data storage space distributed across a plurality of storage devices;

determining whether a current utilization parameter associated with the storage volume event requires adjusting the storage capacity of the virtual storage volume based on the following parameters: minimum capacity, maximum capacity, high utilization watermark, low utilization watermark, and a step parameter, wherein the step parameter specifies the amount of change to the storage capacity, wherein the determining occurs each time after receiving a request to execute a storage volume event;

executing the storage volume event by performing the specified action on the virtual storage volume; and

based on a determination as to whether the current utilization parameter associated with the storage volume event falls above or below a predetermined threshold, adjusting the storage capacity of the virtual storage volume to increase or decrease the storage capacity, wherein adjusting the storage capacity can include moving storage data from one storage device to another.

20. The one or more non-transitory machine readable media recited in claim 19 , wherein the designated compute node includes a container engine application executed by an operating system, the container engine application providing a standardized platform for the instantiation and execution of the containerized applications, and wherein the one or more containerized applications includes a storage driver configured to create and manage the virtual storage volume.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2022
From: PORTWORX, INC.
To: PURE STORAGE, INC., A DELAWARE CORPORATION
Reel/Frame 061033/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2018
From: PABON, LUIS PABLO
To: PORTWORX, INC.
Reel/Frame 045278/0982 →
Continuity (1)
Related Publication 20190286326A1 · Sep 19, 2019
Cited By (1)
US 12,422,984