IP Library Granted Patent US 9,628,350
Granted Patent B2
US 9,628,350 · App. 14/534,097 · Granted Apr 18, 2017

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/0605G06F3/067G06F3/0631H04L43/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 9,628,350
App. No.
14/534,097
Granted
Apr 18, 2017
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 (65)

1. A system, comprising:

a plurality of compute nodes that implement a block-based storage service that maintains one or more respective storage volumes for a plurality of storage clients;

a plurality of storage nodes that provide storage to maintain the plurality of storage volumes;

at least some of the plurality of compute nodes that implement a control plane for the block-based storage service, the control plane configured to:

monitor the plurality of storage volumes;

based, at least in part, on the monitorship of the plurality of storage volumes, detect a scaling event for a storage volume of the plurality of storage volumes according to a specified scaling policy for the storage volume, wherein the storage volume is mounted at a storage client of the plurality of storage clients and is configured for a file system;

in response to the detection of the scaling event:

modify the storage allocated to the storage volume to dynamically scale the storage volume for the storage client according to the scaling policy; and

indicate the scaling event for the storage volume to the storage client such that the file system at the storage client is updated to utilize the scaled storage volume in the modified storage.

2. The system of claim 1 , wherein the specified scaling policy for the storage volume is received via an interface for the block-based storage service from the storage client.

3. The system of claim 1 , further comprising:

the storage client, configured to:

receive the indication of the scaling event for the storage volume;

update the file system according to the scaling event; and

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

4. The system of claim 1 , further comprising:

the storage client, configured to:

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

send the one or more performance metrics to the control plane; and

wherein the detection of the scaling event is further based on the one or more performance metrics collected at the storage client.

5. The system of claim 1 , wherein the block-based storage service is one of a plurality of network-based services implemented as part of a provider network, and wherein the storage client is implemented as part of one of the other network-based services in the provider network.

6. A method, comprising:

performing, by one or more computing devices:

maintaining a storage volume in storage implemented as part of a network-based data store for a storage client, wherein the storage volume is mounted at the storage client and configured for a file system;

detecting a scaling event for the storage volume according to a scaling policy specified for the storage volume;

in response to detecting the scaling event for the storage volume:

modifying the storage maintaining the storage volume to dynamically scale the storage volume for the storage client according to the scaling policy; and

indicating the scaling event for the storage volume to the storage client such that the file system at the storage client is updated to utilize the scaled storage volume in the modified storage.

7. The method of claim 6 , wherein the specified scaling policy for the storage volume is received via an interface for the network-based data store from the storage client.

8. The method of claim 6 , wherein the network-based data store is a multi-tenant, block-based storage service that maintains a plurality of storage volumes, including the storage volume, for a plurality of different storage clients, including the storage client, wherein the storage maintaining the storage volume is part of a collection of storage devices maintaining the plurality of storage volumes, and wherein detecting the scaling event for the storage volume is based, at least in part, monitoring the collection of storage devices maintaining the plurality of storage volumes.

9. The method of claim 6 , wherein the scaling event grows the storage volume, and wherein modifying the storage maintaining the storage volume comprises allocating additional storage space to the storage volume.

10. The method of claim 9 , further comprising:

receiving, at the storage client, the indication of the scaling event for the storage volume;

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

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

11. The method of claim 6 , wherein the maintaining, the detecting, the modifying, and the indicating are performed by the control plane for the network-based data store;

wherein the scaling event shrinks the storage volume;

wherein the method further comprises:

receiving, at the storage client, the indication of the scaling event for the storage volume;

updating, at the storage client, the file system to reclaim storage space allocated to the storage volume according to the scaling event;

sending, from the storage client, a scaling event response to the control plane for the network-based data store identifying the storage space to be reclaimed in the storage;

utilizing, at the storage client, the updated file system to access the scaled storage volume for subsequent file system input/output (I/O); and

wherein modifying the storage maintaining the storage volume comprises reclaiming the identified storage space of the storage.

12. The method of claim 6 , wherein the detecting, the modifying, and the indicating are performed without dismounting the storage volume.

13. The method of claim 6 , wherein the network-based data store is a multi-tenant, block-based storage service and wherein the storage client is one of a plurality of storage clients of the block-based storage service.

14. The method of claim 13 , wherein the block-based storage service is one of a plurality of network-based services implemented as part of a provider network, wherein at least one other one of the plurality of storage clients is implemented as part of one of the other network-based services in the provider network, and wherein the storage client is implemented external to the provider network.

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

monitoring a storage volume maintained in block-based storage implemented as part of a network-based data store for a storage client, wherein the storage volume is mounted at the storage client and configured for a file system;

based, at least in part, on the monitoring, detecting a scaling event for the storage volume according to a scaling policy specified for the storage volume;

in response to detecting the scaling event for the storage volume:

modifying the block-based storage maintaining the storage volume to dynamically scale the storage volume for the storage client according to the scaling policy; and

indicating the scaling event for the storage volume to the storage client such that the file system at the storage client is updated to utilize to the scaled storage volume in the modified block-based storage.

16. The non-transitory, computer-readable storage medium of claim 15 , wherein the specified scaling policy for the storage volume is received via an interface for the network-based data store from the storage client.

17. The non-transitory, computer-readable storage medium of claim 15 , wherein the scaling event shrinks the storage volume, and wherein, in modifying the storage maintaining the storage volume, the program instructions cause the one or more computing devices to implement reclaiming storage space of the storage allocated to the storage volume.

18. The non-transitory, computer-readable storage medium of claim 15 , wherein the scaling event grows the storage volume, and wherein, in modifying the storage maintaining the storage volume, the program instructions cause the one or more computing devices to implement allocating additional storage space to the storage volume.

19. The non-transitory, computer-readable storage medium of claim 15 , wherein the program instructions cause the one or more computing devices to further implement:

receiving, at the storage client, the indication of the scaling event for the storage volume;

updating, at the storage client, the file system according to the scaling event; and

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

20. The non-transitory, computer-readable storage medium of claim 15 , wherein the program instructions further cause the one or more computing devices to implement:

in response to detecting the scaling event, updating mapping information maintained at the network-based data store for servicing file system input/output (I/O) directed to the scaled storage volume according to the scaling event.

21. The non-transitory, computer-readable storage medium of claim 15 , wherein the updating of the mapping information is performed such that the file system at the storage client is updated without performing defragmentation for the scaled storage volume.

22. The non-transitory, computer-readable storage medium of claim 15 , wherein, in modifying the block-based storage maintaining the storage volume to dynamically scale the storage volume for the storage client, the program instructions further cause the one or more computing devices to implement:

performing one or more storage maintenance operations for the storage volume at the block-based storage maintaining the storage volume.

23. The non-transitory, computer-readable storage medium of claim 15 , 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 as part of a provider network, and wherein the storage client is implemented as part of one of the other network-based services in the provider network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2015
From: DIPPENAAR, ANDRIES PETRUS JOHANNES; BRAMHILL, GAVIN ALEXANDER
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 035604/0297 →
Continuity (1)
Related Publication 20160127200A1 · May 5, 2016