IP Library › Granted Patent US 10,594,571
Granted Patent B2
US 10,594,571 · App. 15/489,537 · Granted Mar 17, 2020

Dynamic scaling of storage volumes for storage client file systems

Inventors: Andries Petrus Johannes Dippenaar (Western Cape, ZA); Gavin Alexander Bramhill (Western Cape, ZA)
Assignee: Amazon Technologies, Inc.
H04L41/5051G06F3/0604G06F3/0605G06F3/067G06F3/0631G06F16/11G06F16/183H04L41/5009H04L43/04H04L67/1097H04L67/16
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,594,571
App. No.
15/489,537
Granted
Mar 17, 2020
Kind
B2
Abstract

A network-based data store maintaining storage volumes for file systems at storage clients may implement dynamic storage volume scaling. A scaling event may be detected according to a specified scaling policy for a storage volume maintained at a network-based data store that is mounted at a storage client and configured for a file system. In a least some embodiments, the scaling policy for the storage volume may be received from the storage client. In response to detecting the storage event, storage maintaining the storage volume may be modified according to the scaling policy to scale the storage volume. An indication of the scaling event may be sent to the storage client in order to update the file system at the storage client so that the file system may utilize the scaled storage volume.

Claims (53)

1. A method, comprising:

performing, by a storage client implemented by one or more processors and associated memory:

maintaining a file system using a storage volume, wherein the storage volume is implemented at a network-based data store that is configured to scale the storage volume;

receiving, from the network-based data store, an indication of a scaling event for the storage volume that grows the storage volume;

updating the file system to include additional storage capacity for the storage volume according to the scaling event; and

utilizing the updated file system to access the storage volume for subsequent file system input/output (I/O).

2. The method of claim 1 , further comprising:

receiving another indication of another scaling event for the storage volume that shrinks the storage volume;

updating the file system to reclaim storage space allocated to the storage volume according to the other scaling event; and

sending a scaling event response to the network-based data store identifying the storage space to be reclaimed.

3. The method of claim 2 , further comprising reclaiming, by the network-based data store, the identified storage space from the storage volume in response to the scaling event response.

4. The method of claim 1 , further comprising:

collecting one or more performance metrics for the file system; and

sending the one or more performance metrics to the network-based data store; and

wherein the scaling event is determined based at least in part on the performance metrics.

5. The method of claim 1 , further comprising providing a scaling policy to the network-based data store via an interface for the network-based data store, wherein the scaling policy specifies the scaling event.

6. The method of claim 5 , further comprising sending a provision request to the network-based data store to provision the storage volume, wherein the provision request specifies the scaling policy.

7. A system, comprising:

a storage client implemented by one or more processors and associated memory, configured to:

maintain a file system on a storage volume mounted at the storage client, wherein the storage volume is implemented at a network-based data store that is configured to scale the storage volume;

receive, from the network-based data store, an indication of a scaling event for the storage volume that grows the storage volume;

update the file system to include additional storage capacity for the storage volume according to the scaling event; and

utilize the updated file system to access the storage volume for subsequent file system input/output (I/O).

8. The system of claim 7 , wherein the network-based data store is a multi-tenant, block-based storage service, wherein the block-based storage service is one of a plurality of network-based services implemented in a provider network.

9. The system of claim 8 , wherein the storage client is implemented as part of another network-based service in the provider network.

10. The system of claim 8 , wherein the storage client is implemented external to the provider network.

11. The system of claim 7 , wherein the network-based data store is configured to scale the storage volume without dismounting the storage volume at the storage client.

12. The system of claim 7 , wherein the storage client is further configured to:

receive another indication of another scaling event for the storage volume that shrinks the storage volume;

update the file system to reclaim storage space allocated to the storage volume according to the other scaling event; and

send a scaling event response to the network-based data store identifying the storage space to be reclaimed.

13. The system of claim 7 , wherein the storage client is further configured to:

collect one or more performance metrics for the file system; and

send the one or more performance metrics to the network-based data store, wherein the scaling event is determined based at least in part on the performance metrics.

14. The system of claim 7 , wherein the storage client is further configured to providing a scaling policy to the network-based data store via an interface for the network-based data store, wherein the scaling policy specifies the scaling event.

15. The system of claim 14 , wherein the scaling policy specifies an initial size of the storage volume.

16. The system of claim 14 , wherein the scaling policy specifies one or more scaling actions based on performance characteristics of the storage volume.

17. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more processors cause the one or more processors to:

perform, at a storage client:

maintain a file system on a storage volume mounted at the storage client, wherein the storage volume is implemented at a network-based data store that is configured to scale the storage volume;

receive, from the network-based data store, an indication of a scaling event for the storage volume that shrinks the storage volume;

updating the file system to reclaim storage space allocated to the storage volume according to the scaling event; and

sending a scaling event response to the network-based data store identifying the storage space to be reclaimed;

utilize the updated file system to access the storage volume for subsequent file system input/output (I/O).

18. The non-transitory, computer-readable storage medium of claim 17 , wherein the program instructions when executed by one or more processors cause the one or more processors to:

perform, at the storage client:

receive another indication of another scaling event for the storage volume that grows the storage volume; and

update the file system to include additional storage capacity for the storage volume according to the other scaling event.

19. The non-transitory, computer-readable storage medium of claim 17 , wherein the program instructions when executed by one or more processors cause the one or more processors to:

perform, at the storage client:

collect one or more performance metrics for the file system; and

send the one or more performance metrics to the network-based data store, wherein the scaling event is determined based at least in part on the performance metrics.

20. The non-transitory, computer-readable storage medium of claim 17 , wherein the program instructions when executed by one or more processors cause the one or more processors to provide, by the storage client, a scaling policy to the network-based data store via an interface for the network-based data store, wherein the scaling policy specifies the scaling event.

Continuity (2)
Continuation 14534097 · Nov 5, 2014
Related Publication 20170222890A1 · Aug 3, 2017
Cited By (3)
US 12,197,759 US 12,236,122 US 12,328,240