IP Library › Granted Patent US 12,328,240
Granted Patent B2
US 12,328,240 · App. 18/341,515 · Granted Jun 10, 2025

Dynamic scaling of storage volumes for storage client file systems

Inventors: Andries Petrus Johannes Dippenaar (Cape Town, ZA); Gavin Alexander Bramhill (Cape Town, ZA)
Assignee: Amazon Technologies, Inc.
H04L41/5051G06F3/0604G06F3/0605G06F3/0631G06F3/067G06F16/11G06F16/183H04L41/5009H04L43/04H04L67/1097H04L67/51
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 12,328,240
App. No.
18/341,515
Granted
Jun 10, 2025
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 (41)

1. A method, comprising:

performing, by one or more computer devices in a network-accessible infrastructure provider network:

provisioning, by a storage service of the network-accessible infrastructure provider network, a block-based storage volume for a client, wherein the block-based storage volume includes a plurality of logical blocks stored at one or more storage nodes of the storage service;

hosting, by a virtual compute service of the network-accessible infrastructure provider network, a virtual machine instance on a physical host in the network-accessible infrastructure provider network, wherein the virtual machine attaches the block-based storage volume and implements a file system on the block-based storage volume; and

increasing, by the storage service, a storage capacity of the block-based storage volume, wherein the increase is performed while the block-based storage volume remains online and continues to accept read and write requests from the virtual machine instance.

2. The method of claim 1 , further comprising the storage service:

maintaining mapping information associated with the block-based storage volume that indicates respective locations of the logical blocks on the one or more storage nodes;

allocating one or more new logical blocks to the block-based storage volume to increase the storage capacity; and

updating the mapping information to indicate one or more new locations of the one or more new storage locations.

3. The method of claim 2 , further comprising the storage service:

decreasing the storage capacity of the block-based storage volume; and

updating the mapping information to reclaim storage space allocated to the block-based storage volume.

4. The method of claim 1 , further comprising:

automatically updating the file system to use additional storage capacity of the block-based storage volume in response to the increasing of the storage capacity.

5. The method of claim 1 , wherein the one or more storage nodes are configured to store data on one or more solid state drive (SSD) devices.

6. The method of claim 1 , wherein:

the increasing of the storage capacity of the block-based storage volume is caused by one or more service requests received via a programmatic interface of the storage service.

7. The method of claim 1 , wherein:

the increasing of the storage capacity of the block-based storage volume is caused by one or more service requests received via a user interface of the storage service.

8. The method of claim 7 , wherein the user interface is a graphical user interface.

9. The method of claim 7 , wherein the user interface is configured to receive user input to create, delete, and configure block-based storage volumes managed by the storage service.

10. The method of claim 1 , further comprising the storage service performing replication operations to maintain a mirror volume of the block-based storage volume.

11. A system, comprising:

one or more computer devices of a network-accessible infrastructure provider network, configured to:

provision, by a storage service of the network-accessible infrastructure provider network, a block-based storage volume for a client, wherein the block-based storage volume includes a plurality of logical blocks stored at one or more storage nodes of the storage service;

host, by a virtual compute service of the network-accessible infrastructure provider network, a virtual machine instance on a physical host in the network-accessible infrastructure provider network, wherein the virtual machine attaches the block-based storage volume and implements a file system on the block-based storage volume; and

increase, by the storage service, a storage capacity of the block-based storage volume, wherein the increase is performed while the block-based storage volume remains online and continues to accept read and write requests from the virtual machine instance.

12. The method of claim 1 , further comprising the storage service monitoring the health metrics of the block-based storage volume.

13. The method of claim 1 , wherein access requests to the block-based storage volume are received over an internal network of the network-accessible infrastructure provider network, according to an Internet small computer system interface (iSCSI) protocol.

14. The system of claim 11 , wherein the one or more storage nodes are configured to store data on one or more solid state drive (SSD) devices.

15. The system of claim 11 , wherein the storage service is configured to:

maintain mapping information associated with the block-based storage volume that indicates respective locations of the logical blocks on the one or more storage nodes;

allocate one or more new logical blocks to the block-based storage volume to increase the storage capacity; and

update the mapping information to indicate one or more new locations of the one or more new storage locations.

16. The system of claim 11 , wherein the storage service is configured to:

decrease the storage capacity of the block-based storage volume; and

update the mapping information to reclaim storage space allocated to the block-based storage volume.

17. The system of claim 11 , wherein the file system is automatically updated to use additional storage capacity of the block-based storage volume in response to the increase of the storage capacity.

18. The system of claim 11 , wherein the storage service implements a graphical user interface configured to receive user input to create, delete, and configure block-based storage volumes managed by the storage service.

19. The system of claim 11 , wherein the storage service is configured to perform replication operations to maintain a mirror volume of the block-based storage volume.

20. The system of claim 11 , wherein the storage service is configured to monitor the health metrics of the block-based storage volume.

Continuity (5)
Continuation 17515083 · Oct 29, 2021
Continuation 16818363 · Mar 13, 2020
Continuation 15489537 · Apr 17, 2017
Continuation 14534097 · Nov 5, 2014
Related Publication 20230344729A1 · Oct 26, 2023
References Cited (62)
US 6389432B1 · Pothapragada · 2002 [cited by examiner]
US 6609187B1 · Merrell et al. · 2003 [cited by applicant]
US 6829688B2 · Grubbs et al. · 2004 [cited by applicant]
US 7409523B2 · Pudipeddi et al. · 2008 [cited by applicant]
US 7509645B2 · Coates et al. · 2009 [cited by applicant]
US 8261295B1 · Risbood · 2012 [cited by examiner]
US 8479211B1 · Marshall · 2013 [cited by examiner]
US 8601134B1 · Sorenson, III · 2013 [cited by examiner]
US 9203900B2 · Rao · 2015 [cited by examiner]
US 9311194B1 · Cypher · 2016 [cited by examiner]
US 9628350B2 · Dippenaar et al. · 2017 [cited by applicant]
US 10216770B1 · Kulesza · 2019 [cited by examiner]
US 10594571B2 · Dippenaar et al. · 2020 [cited by applicant]
US 10606625B1 · Belianski · 2020 [cited by examiner]
US 11138028B1 · Belianski · 2021 [cited by examiner]
US 11165667B2 · Dippenaar et al. · 2021 [cited by applicant]
US 20040215749A1 · Tsao · 2004 [cited by examiner]
US 20050027938A1 · Burkey · 2005 [cited by applicant]
US 20050203910A1 · Taguchi · 2005 [cited by examiner]
US 20060095705A1 · Wichelman · 2006 [cited by examiner]
US 20060101204A1 · Bao · 2006 [cited by applicant]
US 20060282485A1 · Aggarwal · 2006 [cited by examiner]
US 20070043923A1 · Shue · 2007 [cited by examiner]
US 20070143563A1 · Pudipeddi et al. · 2007 [cited by applicant]
US 20080104589A1 · McCrory · 2008 [cited by examiner]
US 20080104590A1 · McCrory · 2008 [cited by examiner]
US 20080104591A1 · McCrory · 2008 [cited by examiner]
US 20080208932A1 · Tsuge et al. · 2008 [cited by applicant]
US 20090106255A1 · Lacapra et al. · 2009 [cited by applicant]
US 20090327798A1 · D'Amato et al. · 2009 [cited by applicant]
US 20100241673A1 · Wu et al. · 2010 [cited by applicant]
US 20110191485A1 · Umbehocker · 2011 [cited by applicant]
US 20120054197A1 · San Martin et al. · 2012 [cited by applicant]
US 20120150930A1 · Jin et al. · 2012 [cited by applicant]
US 20120210068A1 · Joshi · 2012 [cited by examiner]
US 20120304171A1 · Joshi · 2012 [cited by examiner]
US 20130227145A1 · Wright · 2013 [cited by examiner]
US 20130297869A1 · Mills · 2013 [cited by examiner]
US 20140095826A1 · Rajagopal · 2014 [cited by examiner]
US 20140149590A1 · Mallipeddi et al. · 2014 [cited by applicant]
US 20140164621A1 · Nakama · 2014 [cited by examiner]
US 20140181051A1 · Montulli et al. · 2014 [cited by applicant]
US 20140250155A1 · Chen · 2014 [cited by examiner]
US 20140279838A1 · Tsirogiannis et al. · 2014 [cited by applicant]
US 20140317681A1 · Shende · 2014 [cited by examiner]
US 20140359127A1 · Linares · 2014 [cited by examiner]
US 20140372832A1 · Cho et al. · 2014 [cited by applicant]
US 20160127200A1 · Dippenaar · 2016 [cited by examiner]
US 20160150047A1 · O'Hare · 2016 [cited by examiner]
US 20160162438A1 · Hussain · 2016 [cited by examiner]
US 20170039218A1 · Prahlad · 2017 [cited by examiner]
US 20170206107A1 · Guha · 2017 [cited by examiner]
US 20180018344A1 · Kilaru · 2018 [cited by examiner]
US 20220004411A1 · Belianski · 2022 [cited by examiner]
US 20220141100A1 · Dippenaar · 2022 [cited by applicant]
CN 103049574A · 2013 [cited by applicant]
CN 103561101A · 2014 [cited by applicant]
EP 2758888A1 · 2014 [cited by applicant]
International Search Report and Written Opinion from PCT/US/2015/059318, Date of mailing Feb. 11, 2016, Amazon Technologies, Inc., pp. 1-12. [cited by applicant]
Search Report and Written Opinion from Singapore Application No. 11201703728T, Dated Jan. 31, 2018, Amazon Technologies, Inc., pp. 1-11. [cited by applicant]
Extended European Search Report and Written Opinion mailed Nov. 2, 2022 in European Patent Application No. 22164322.4, Amazon Technologies, Inc. [cited by applicant]
Office Action mailed Jan. 20, 2023 in Chinese Patent Application No. 202010482704.2, Amazon Technologies, Inc., pp. 1-12 (including translation). [cited by applicant]