IP Library › Granted Patent US 12,236,122
Granted Patent B2
US 12,236,122 · App. 18/216,421 · Granted Feb 25, 2025

Dynamic volume adjustment

Inventors: Ganesh Sangle (Sunnyvale, CA); Vinod Jayaraman (San Francisco, CA)
Assignee: Pure Storage, Inc.
G06F3/0644G06F3/0604G06F3/0665G06F3/067
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,236,122
App. No.
18/216,421
Filed
Jun 29, 2023
Granted
Feb 25, 2025
Kind
B2
Art Unit
2132
USPC
711/171
Abstract

A virtual storage volume may be implemented as one or more chunks stored on a set of storage nodes. The virtual storage volume may be dynamically adjusted by adjusting the one or more chunks that make up the virtual storage volume, without taking the virtual storage volume offline. Such dynamic volume adjustment may allow for increasing volume size without moving data unnecessarily. In addition or alternatively, such dynamic volume adjustment may free up storage space in a node with minimum movement of data.

Claims (39)

1. A method comprising:

storing a virtual storage volume across a plurality of storage nodes, wherein the virtual storage volume comprises one or more chunks stored on a set of storage nodes in the plurality of storage nodes; and

adjusting the one or more chunks that make up the virtual storage volume, without taking the virtual storage volume offline, wherein the adjusting comprises reducing a size of each of the one or more chunks to a reduced chunk size and adding one or more new chunks with the reduced chunk size.

2. The method of claim 1 , wherein the adjusting further comprises:

determining to move data of the virtual storage volume; and

moving only a portion of the data.

3. The method of claim 2 , wherein the moving only the portion of the data comprises moving only a new chunk of the one or more new chunks.

4. The method of claim 2 , wherein the moving only the portion of the data comprises moving only a chunk of the one or more chunks that were reduced to the reduced chunk size.

5. The method of claim 2 , wherein the moving only the portion of the data comprises moving a chunk with the reduced chunk size from a first storage node to a second storage node in the plurality of storage nodes.

6. The method of claim 1 , further comprising:

determining to increase the amount of storage space allocated for the virtual storage volume; and

adding an additional new chunk with the reduced chunk size to the virtual storage volume without moving data across storage nodes.

7. The method of claim 6 , wherein a new size of the virtual storage volume is a multiple of the reduced chunk size.

8. The method of claim 1 , wherein the virtual storage volume is striped across the set of storage nodes.

9. A system, comprising:

a memory storing instructions; and

a processor coupled to the memory and configured to execute the instructions to:

store a virtual storage volume across a plurality of storage nodes, wherein the virtual storage volume comprises one or more chunks stored on a set of storage nodes in the plurality of storage nodes; and

adjust the one or more chunks that make up the virtual storage volume, without taking the virtual storage volume offline, wherein the adjusting comprises reducing a size of each of the one or more chunks to a reduced chunk size and adding one or more new chunks with the reduced chunk size.

10. The system of claim 9 , wherein the adjusting further comprises:

determining to move data of the virtual storage volume; and

moving only a portion of the data.

11. The system of claim 10 , wherein the moving only the portion of the data comprises moving a new chunk of the one or more new chunks.

12. The system of claim 10 , wherein the moving only the portion of the data comprises moving a chunk of the one or more chunks that were reduced to the reduced chunk size.

13. The system of claim 10 , wherein the moving only the portion of the data comprises moving a chunk with the reduced chunk size from a first storage node to a second storage node in the plurality of storage nodes.

14. A computer program product embodied in a non-transitory tangible computer readable storage medium and comprising computer instructions for:

storing a virtual storage volume across a plurality of storage nodes, wherein the virtual storage volume comprises one or more chunks stored on a set of storage nodes in the plurality of storage nodes; and

adjusting the one or more chunks that make up the virtual storage volume, without taking the virtual storage volume offline, wherein the adjusting comprises reducing a size of each of the one or more chunks to a reduced chunk size and adding one or more new chunks with the reduced chunk size.

15. The computer program product of claim 14 , further comprising instructions for:

determining to move data of the virtual storage volume;

performing the adjusting in response to the determining to move data of the virtual storage volume; and

moving only a portion of the data.

16. The computer program product of claim 15 , wherein the moving only the portion of the data comprises moving a new chunk of the one or more new chunks.

17. The computer program product of claim 15 , wherein the moving only the portion of the data comprises moving a chunk of the one or more chunks that were reduced to the reduced chunk size.

18. The computer program product of claim 14 , wherein the adjusting is performed in response to a determination to move data of the virtual storage volume.

19. The computer program product of claim 14 , further comprising instructions for:

determining to increase the amount of storage space allocated for the virtual storage volume; and

adding an additional new chunk with the reduced chunk size to the virtual storage volume.

20. The computer program product of claim 14 , wherein the virtual storage volume is striped across the set of storage nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2023
From: PORTWORX, INC.
To: PURE STORAGE, INC., A DELAWARE CORPORATION
Reel/Frame 064229/0559 →
Continuity (2)
Continuation 17185779 · Feb 25, 2021
Related Publication 20230342057A1 · Oct 26, 2023
References Cited (133)
US 6718427B1 · Carlson · 2004 [cited by applicant]
US 6816941B1 · Carlson · 2004 [cited by applicant]
US 7089395B2 · Jacobson · 2006 [cited by applicant]
US 7412583B2 · Burton · 2008 [cited by applicant]
US 7434017B2 · Maruyama · 2008 [cited by applicant]
US 7613878B2 · Mori · 2009 [cited by applicant]
US 7617371B2 · Fujimoto · 2009 [cited by applicant]
US 7734888B1 · Hamilton · 2010 [cited by applicant]
US 7809917B2 · Burton · 2010 [cited by applicant]
US 7873809B2 · Kano · 2011 [cited by applicant]
US 7945748B2 · Shibayama · 2011 [cited by applicant]
US 7975115B2 · Wayda et al. · 2011 [cited by applicant]
US 8055723B2 · Acedo · 2011 [cited by applicant]
US 8086808B2 · Ichikawa · 2011 [cited by applicant]
US 8225057B1 · Zheng · 2012 [cited by applicant]
US 8230069B2 · Korupolu · 2012 [cited by applicant]
US 8250327B2 · Fuji · 2012 [cited by applicant]
US 8291159B2 · Rajagopal · 2012 [cited by applicant]
US 8489845B2 · Ozaki · 2013 [cited by applicant]
US 8495331B2 · Matsumoto · 2013 [cited by applicant]
US 8495472B1 · Magerramov et al. · 2013 [cited by applicant]
US 8504797B2 · Mimatsu · 2013 [cited by applicant]
US 8516215B2 · Satoyama · 2013 [cited by applicant]
US 8539194B2 · Inoue · 2013 [cited by applicant]
US 8612679B2 · Schnapp · 2013 [cited by applicant]
US 8612776B2 · Hakamata · 2013 [cited by applicant]
US 8706914B2 · Duchesneau · 2014 [cited by applicant]
US 8745354B2 · Mori · 2014 [cited by applicant]
US 8769235B2 · Satoyama · 2014 [cited by applicant]
US 8775730B2 · Inoue · 2014 [cited by applicant]
US 8822155B2 · Sukumar et al. · 2014 [cited by applicant]
US 8862833B2 · Noll · 2014 [cited by applicant]
US 8863139B2 · Kakeda · 2014 [cited by applicant]
US 8880810B2 · Yamamoto · 2014 [cited by applicant]
US 8918478B2 · Ozzie et al. · 2014 [cited by applicant]
US 9182926B2 · Naganuma · 2015 [cited by applicant]
US 9201607B2 · Satoyama · 2015 [cited by applicant]
US 9229860B2 · Matsuzawa · 2016 [cited by applicant]
US 9237131B2 · Nahum · 2016 [cited by applicant]
US 9275063B1 · Natanzon · 2016 [cited by applicant]
US 9280678B2 · Redberg · 2016 [cited by applicant]
US 9294236B1 · Ward · 2016 [cited by applicant]
US 9395922B2 · Nishikido et al. · 2016 [cited by applicant]
US 9535629B1 · Desimone et al. · 2017 [cited by applicant]
US 9552299B2 · Stalzer · 2017 [cited by applicant]
US 9569245B2 · Iwamatsu · 2017 [cited by applicant]
US 9740403B2 · Storer et al. · 2017 [cited by applicant]
US 9747036B2 · Maki · 2017 [cited by applicant]
US 9760290B2 · Jayaraman · 2017 [cited by applicant]
US 9760294B2 · Miwa · 2017 [cited by applicant]
US 9864874B1 · Shanbhag et al. · 2018 [cited by applicant]
US 10025673B1 · Maccanti et al. · 2018 [cited by applicant]
US 10102356B1 · Sahin et al. · 2018 [cited by applicant]
US 10185495B2 · Katsuki · 2019 [cited by applicant]
US 10324639B2 · Seo · 2019 [cited by applicant]
US 10365980B1 · Bromling · 2019 [cited by applicant]
US 10452293B2 · Yamamoto · 2019 [cited by applicant]
US 10503441B2 · Israni et al. · 2019 [cited by applicant]
US 10564870B1 · Greenwood · 2020 [cited by applicant]
US 10567406B2 · Astigarraga et al. · 2020 [cited by applicant]
US 10594571B2 · Dippenaar · 2020 [cited by applicant]
US 10628088B2 · Matsushita · 2020 [cited by applicant]
US 10628200B2 · Hadas · 2020 [cited by applicant]
US 10664182B2 · Oohira · 2020 [cited by applicant]
US 10810088B1 · Gu et al. · 2020 [cited by applicant]
US 10846137B2 · Vallala et al. · 2020 [cited by applicant]
US 10877683B2 · Wu et al. · 2020 [cited by applicant]
US 10949125B2 · Liguori · 2021 [cited by applicant]
US 10956063B2 · Yamamoto · 2021 [cited by applicant]
US 11106810B2 · Natanzon et al. · 2021 [cited by applicant]
US 20020103889A1 · Markson · 2002 [cited by applicant]
US 20040068611A1 · Jacobson · 2004 [cited by applicant]
US 20060107016A1 · Murotani · 2006 [cited by applicant]
US 20060107017A1 · Serizawa · 2006 [cited by applicant]
US 20060282641A1 · Fujimoto · 2006 [cited by applicant]
US 20070233987A1 · Maruyama · 2007 [cited by applicant]
US 20070233992A1 · Sato · 2007 [cited by applicant]
US 20080028143A1 · Murase · 2008 [cited by applicant]
US 20080222376A1 · Burton · 2008 [cited by applicant]
US 20090150639A1 · Ohata · 2009 [cited by applicant]
US 20090228589A1 · Korupolu · 2009 [cited by applicant]
US 20090240880A1 · Kawaguchi · 2009 [cited by applicant]
US 20090254636A1 · Acedo · 2009 [cited by applicant]
US 20090327215A1 · Zhu et al. · 2009 [cited by applicant]
US 20100011185A1 · Inoue · 2010 [cited by applicant]
US 20100017577A1 · Fujimoto · 2010 [cited by applicant]
US 20100082900A1 · Murayama · 2010 [cited by applicant]
US 20100100604A1 · Fujiwara · 2010 [cited by applicant]
US 20100332882A1 · Nayak · 2010 [cited by applicant]
US 20110035540A1 · Fitzgerald et al. · 2011 [cited by applicant]
US 20110060885A1 · Satoyama · 2011 [cited by applicant]
US 20110066823A1 · Ando · 2011 [cited by applicant]
US 20110161406A1 · Kakeda · 2011 [cited by applicant]
US 20110185135A1 · Fuji · 2011 [cited by applicant]
US 20110185139A1 · Inoue · 2011 [cited by applicant]
US 20110191537A1 · Kawaguchi · 2011 [cited by applicant]
US 20110252214A1 · Naganuma · 2011 [cited by applicant]
US 20110264868A1 · Takata · 2011 [cited by applicant]
US 20110276772A1 · Ohata · 2011 [cited by applicant]
US 20120166751A1 · Matsumoto · 2012 [cited by applicant]
US 20120173838A1 · Noll · 2012 [cited by applicant]
US 20120226885A1 · Mori · 2012 [cited by applicant]
US 20120311260A1 · Yamagiwa · 2012 [cited by applicant]
US 20130117448A1 · Nahum · 2013 [cited by applicant]
US 20140006726A1 · Yamamoto · 2014 [cited by applicant]
US 20140281339A1 · Satoyama · 2014 [cited by applicant]
US 20140372723A1 · Bobroff · 2014 [cited by applicant]
US 20150134615A1 · Goodman et al. · 2015 [cited by applicant]
US 20150277955A1 · Iwamatsu · 2015 [cited by applicant]
US 20150331793A1 · Matsuzawa · 2015 [cited by applicant]
US 20160004476A1 · Emaru · 2016 [cited by applicant]
US 20160041787A1 · Nicolae · 2016 [cited by examiner]
US 20160092132A1 · Hildebrand · 2016 [cited by applicant]
US 20160094410A1 · Anwar · 2016 [cited by applicant]
US 20160253114A1 · Deguchi · 2016 [cited by applicant]
US 20170090774A1 · Dambal · 2017 [cited by applicant]
US 20170220282A1 · Dambal · 2017 [cited by applicant]
US 20170222890A1 · Dippenaar · 2017 [cited by applicant]
US 20170308316A1 · Yamamoto · 2017 [cited by applicant]
US 20170359221A1 · Hori · 2017 [cited by applicant]
US 20180004447A1 · Oohira · 2018 [cited by applicant]
US 20190114094A1 · Ki · 2019 [cited by examiner]
US 20190129740A1 · Hadas · 2019 [cited by applicant]
US 20190266022A1 · Israni et al. · 2019 [cited by applicant]
US 20190272222A1 · Wei · 2019 [cited by applicant]
US 20200042213A1 · Yamamoto · 2020 [cited by applicant]
US 20200073552A1 · Sangle · 2020 [cited by applicant]
US 20200104151A1 · Shibayama · 2020 [cited by applicant]
US 20200264956A1 · Thomas · 2020 [cited by applicant]
US 20200409600A1 · Liguori · 2020 [cited by applicant]
Hwang, et al., “RAID-x: A New Distributed Disk Array for I/O-Centric Cluster Computing”, Proceedings the Ninth International Symposium on High-Performance Distributed Computing, 2000, pp. 279-286. [cited by applicant]
Stalzer, “FlashBlades: System Architecture and Applications”, Proceedings of the 2nd Workshop on Architectures and Systems for Big Data, Association for Computing Machinery, New York, NY, 2012, pp. 10-14. [cited by applicant]
Storer, et al., “Pergamum: Replacing Tape with Energy Efficient, Reliable, Disc-Based Archival Storage”, FAST'08: Proceedings of the 6th USENIX Conference on File and Storage Technologies, Feb. 2008, Article No. 1, pp. … [cited by applicant]