IP Library Granted Patent US 12,461,676
Granted Patent B2
US 12,461,676 · App. 17/937,380 · Granted Nov 4, 2025

Redirecting a data access request in a storage network

Inventors: Asimuddin Kazi (Naperville, IL); Andrew D. Baptist (Mt. Pleasant, WI); Wesley B. Leggette (Chicago, IL); Manish Motwani (Chicago, IL); Ilya Volvovski (Chicago, IL)
Assignee: Pure Storage, Inc.
G06F3/0647G06F3/0604G06F3/0644G06F3/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,461,676
App. No.
17/937,380
Granted
Nov 4, 2025
Kind
B2
Abstract

Methods and apparatus for redirecting data access requests in a storage network are disclosed. In an embodiment, a computing device associated with the storage network performs a method that includes identifying a (second) storage pool of the storage network to replace a first storage pool of the storage network. The method includes issuing a migration message to at least one of the first storage pool or the second storage pool. The migration message initiates a replication of data from the first storage pool to the second storage pool. The method further includes receiving a write data request for the first storage pool prior to completion of the replication of the data, and forwarding the write data request to the second storage pool for further processing.

Claims (59)

1 . A method comprises:

identifying, by one or more processing modules of a storage network, a second storage pool of the storage network to replace a first storage pool of the storage network;

issuing a migration message to at least one of the first storage pool or the second storage pool, wherein the migration message initiates a replication of data from the first storage pool to the second storage pool;

receiving, prior to completion of the replication of the data, a new data object write request for the first storage pool, wherein the new data object write request relates to at least a portion of a new data object to be stored in the storage network; and

prior to completion of the replication of the data, forwarding the new data object write request, by one or more storage units of the first storage pool, to one or more storage units of the second storage pool for processing.

2 . The method of claim 1 , further comprising:

detecting completion of the replication of the data; and

in response to detecting the completion of the replication of the data, disassociating at least one data identifier of the data from the first storage pool and associating the at least one data identifier with the second storage pool.

3 . The method of claim 2 , wherein associating the at least one data identifier with the second storage pool includes updating a directory of the storage network.

4 . The method of claim 1 , further comprising:

detecting completion of the replication of the data; and

in response to detecting the completion of the replication of the data, updating at least one of a hierarchical index or directory of the storage network to indicate that the first storage pool is no longer active.

5 . The method of claim 1 , wherein identifying a second storage pool of the storage network to replace a first storage pool of the storage network comprises detecting a new storage pool and selecting the new storage pool as the second storage pool.

6 . The method of claim 1 , wherein forwarding the new data object write request to the second storage pool includes:

determining a status of the replication of the data;

interpreting the status to indicate that the replication of data has not been completed; and

identifying the one or more storage units of the second storage pool for further processing of the new data object write request.

7 . The method of claim 1 , further comprising:

determining to replace the first storage pool of the storage network, including at least one of interpreting a replacement schedule or receiving a request.

8 . The method of claim 1 , wherein the migration message further indicates data associated with an address range of the storage network.

9 . The method of claim 1 , wherein the data includes a plurality of error encoded data slices.

10 . The method of claim 1 , wherein the first storage pool comprises a first set of storage units and a first managing unit and the second storage pool comprises a second set of storage units and a second managing unit.

11 . A computing device comprises:

at least one interface;

memory that stores operational instructions; and

a processing module operably coupled to the memory, wherein the processing module is configured to execute the operational instructions to:

identify a second storage pool of a storage network to replace a first storage pool of the storage network, wherein the first storage pool includes a first set of storage units and the second storage pool includes a second set of storage units;

issue, via the at least one interface, a migration message to at least one of the first storage pool or the second storage pool, wherein the migration message initiates a replication of data from the first storage pool to the second storage pool;

receive, prior to completion of the replication of the data, a new data object write request for the first storage pool, wherein the new data object write request relates to at least a portion of a new data object to be stored in the storage network; and

forward, prior to completion of the replication of the data, the new data object write request from the first storage pool to one or more storage units of the second set of storage units for further processing.

12 . The computing device of claim 11 , wherein the processing module is further configured to execute the operational instructions to:

detect completion of the replication of the data; and

in response to detecting the completion of the replication of the data, disassociate at least one data identifier of the data from the first storage pool and associate the at least one data identifier with the second storage pool.

13 . The computing device of claim 12 , wherein associating the at least one data identifier with the second storage pool includes updating a directory of the storage network.

14 . The computing device of claim 11 , wherein the processing module is further configured to execute the operational instructions to:

detect completion of the replication of the data; and

in response to detecting the completion of the replication of the data, update at least one of a hierarchical index or directory of the storage network to indicate that the first storage pool is no longer active.

15 . The computing device of claim 11 , wherein identifying a second storage pool of the storage network to replace a first storage pool of the storage network comprises:

identify a storage pool associated with an available capacity that is at least equal to the capacity of the first storage pool; and

select the identified storage pool as the second storage pool.

16 . The computing device of claim 11 , wherein forwarding the new data object write request to the second storage pool includes:

determine a status of the replication of the data;

interpret the status to indicate that the replication of data has not been completed; and

identify the one or more storage units of the second set of storage units for further processing of the new data object write request.

17 . A computer readable storage medium comprises:

at least one non-transitory memory section that stores operational instructions that, when executed by one or more processing modules of a computing device of a storage network, causes the computing device to:

identify a second storage pool of a storage network to replace a first storage pool of the storage network;

issue a migration message to at least one of the first storage pool or the second storage pool, wherein the migration message initiates a replication of data from the first storage pool to the second storage pool;

receive, prior to completion of the replication of the data, a new data object write request for the first storage pool, wherein the new data object write request relates to at least a portion of a new data object to be stored in the storage network; and

forward, prior to completion of the replication of the data, the new data object write request from the first storage pool to one or more storage units of the second storage pool for processing.

18 . The computer readable storage medium of claim 17 , wherein the operational instructions, when executed by one or more processing modules of a computing device of a storage network, further cause the computing device to:

detect completion of the replication of the data; and

in response to detecting the completion of the replication of the data, disassociate at least one data identifier of the data from the first storage pool and associate the at least one data identifier with the second storage pool.

19 . The computer readable storage medium of claim 17 , wherein the operational instructions, when executed by one or more processing modules of a computing device of a storage network, further cause the computing device to:

detect completion of the replication of the data; and

in response to detecting the completion of the replication of the data, update at least one of a hierarchical index or directory of the storage network to indicate that the first storage pool is no longer active.

20 . The computer readable storage medium of claim 19 , wherein forwarding the new data object write request to the second storage pool includes:

determining a status of the replication of the data; and

interpreting the status to indicate that the replication of data has not been completed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2022
From: BAPTIST, ANDREW D.; LEGGETTE, WESLEY B.; MOTWANI, MANISH; VOLVOVSKI, ILYA
To: PURE STORAGE, INC.
Reel/Frame 061653/0721 →
Continuity (6)
Continuation 17444106 · Jul 30, 2021
Continuation 16592268 · Oct 3, 2019
Continuation In Part 16036999 · Jul 17, 2018
Continuation In Part 14707999 · May 8, 2015
Provisional Application 62019126 · Jun 30, 2014
Related Publication 20230026842A1 · Jan 26, 2023
References Cited (107)
US 4092732A · Ouchi · 1978 [cited by applicant]
US 5454101A · Mackay · 1995 [cited by applicant]
US 5485474A · Rabin · 1996 [cited by applicant]
US 5774643A · Lubbers · 1998 [cited by applicant]
US 5802364A · Senator · 1998 [cited by applicant]
US 5809285A · Hilland · 1998 [cited by applicant]
US 5890156A · Rekieta · 1999 [cited by applicant]
US 5987622A · Lo Verso · 1999 [cited by applicant]
US 5991414A · Garay · 1999 [cited by applicant]
US 6012159A · Fischer · 2000 [cited by applicant]
US 6058454A · Gerlach · 2000 [cited by applicant]
US 6108748A · Ofek · 2000 [cited by examiner]
US 6128277A · Bruck · 2000 [cited by applicant]
US 6175571B1 · Haddock · 2001 [cited by applicant]
US 6192472B1 · Garay · 2001 [cited by applicant]
US 6256688B1 · Suetaka · 2001 [cited by applicant]
US 6272658B1 · Steele · 2001 [cited by applicant]
US 6301604B1 · Nojima · 2001 [cited by applicant]
US 6356949B1 · Katsandres · 2002 [cited by applicant]
US 6366995B1 · Vilkov · 2002 [cited by applicant]
US 6374336B1 · Peters · 2002 [cited by applicant]
US 6415373B1 · Peters · 2002 [cited by applicant]
US 6418539B1 · Walker · 2002 [cited by applicant]
US 6449688B1 · Peters · 2002 [cited by applicant]
US 6567948B2 · Steele · 2003 [cited by applicant]
US 6571282B1 · Bowman-Amuah · 2003 [cited by applicant]
US 6609223B1 · Wolfgang · 2003 [cited by applicant]
US 6718361B1 · Basani · 2004 [cited by applicant]
US 6760808B2 · Peters · 2004 [cited by applicant]
US 6785768B2 · Peters · 2004 [cited by applicant]
US 6785783B2 · Buckland · 2004 [cited by applicant]
US 6826711B2 · Moulton · 2004 [cited by applicant]
US 6879596B1 · Dooply · 2005 [cited by applicant]
US 7003688B1 · Pittelkow · 2006 [cited by applicant]
US 7024451B2 · Jorgenson · 2006 [cited by applicant]
US 7024609B2 · Wolfgang · 2006 [cited by applicant]
US 7080101B1 · Watson · 2006 [cited by applicant]
US 7103824B2 · Halford · 2006 [cited by applicant]
US 7103915B2 · Redlich · 2006 [cited by applicant]
US 7111115B2 · Peters · 2006 [cited by applicant]
US 7140044B2 · Redlich · 2006 [cited by applicant]
US 7146644B2 · Redlich · 2006 [cited by applicant]
US 7171493B2 · Shu · 2007 [cited by applicant]
US 7222133B1 · Raipurkar · 2007 [cited by applicant]
US 7240236B2 · Cutts · 2007 [cited by applicant]
US 7272613B2 · Sim · 2007 [cited by applicant]
US 7636724B2 · De La Torre · 2009 [cited by applicant]
US 8751864B2 · Swanson · 2014 [cited by applicant]
US 9185188B1 · Li · 2015 [cited by applicant]
US 20020062422A1 · Butterworth · 2002 [cited by applicant]
US 20020166079A1 · Ulrich · 2002 [cited by applicant]
US 20030018927A1 · Gadir · 2003 [cited by applicant]
US 20030037261A1 · Meffert · 2003 [cited by applicant]
US 20030065617A1 · Watkins · 2003 [cited by applicant]
US 20030084020A1 · Shu · 2003 [cited by applicant]
US 20030229609A1 · Haugh · 2003 [cited by examiner]
US 20040024963A1 · Talagala · 2004 [cited by applicant]
US 20040122917A1 · Menon · 2004 [cited by applicant]
US 20040215998A1 · Buxton · 2004 [cited by applicant]
US 20040228493A1 · Ma · 2004 [cited by applicant]
US 20050083862A1 · Kongalath · 2005 [cited by applicant]
US 20050100022A1 · Ramprashad · 2005 [cited by applicant]
US 20050114594A1 · Corbett · 2005 [cited by applicant]
US 20050125593A1 · Karpoff · 2005 [cited by applicant]
US 20050131993A1 · Fatula · 2005 [cited by applicant]
US 20050132070A1 · Redlich · 2005 [cited by applicant]
US 20050144382A1 · Schmisseur · 2005 [cited by applicant]
US 20050229069A1 · Hassner · 2005 [cited by applicant]
US 20060047907A1 · Shiga · 2006 [cited by applicant]
US 20060136448A1 · Cialini · 2006 [cited by applicant]
US 20060156059A1 · Kitamura · 2006 [cited by applicant]
US 20060224603A1 · Correll, Jr. · 2006 [cited by applicant]
US 20070079081A1 · Gladwin · 2007 [cited by applicant]
US 20070079082A1 · Gladwin · 2007 [cited by applicant]
US 20070079083A1 · Gladwin · 2007 [cited by applicant]
US 20070088970A1 · Buxton · 2007 [cited by applicant]
US 20070174192A1 · Gladwin · 2007 [cited by applicant]
US 20070214285A1 · Au · 2007 [cited by applicant]
US 20070234110A1 · Soran · 2007 [cited by applicant]
US 20070260840A1 · Watanabe · 2007 [cited by examiner]
US 20070283167A1 · Venters, III · 2007 [cited by applicant]
US 20080229037A1 · Bunte · 2008 [cited by examiner]
US 20090094251A1 · Gladwin · 2009 [cited by applicant]
US 20090094318A1 · Gladwin · 2009 [cited by applicant]
US 20100023524A1 · Gladwin · 2010 [cited by applicant]
US 20110185141A1 · Dhuse · 2011 [cited by applicant]
US 20110295999A1 · Ferris · 2011 [cited by applicant]
US 20120117351A1 · Motwani · 2012 [cited by examiner]
US 20120137098A1 · Wang · 2012 [cited by examiner]
US 20120303913A1 · Kathmann · 2012 [cited by examiner]
US 20140108072A1 · McGowan · 2014 [cited by applicant]
US 20140223046A1 · Liu · 2014 [cited by examiner]
US 20150121131A1 · Kiselev · 2015 [cited by examiner]
US 20150234618A1 · Miwa · 2015 [cited by examiner]
US 20200036802A1 · Bullock · 2020 [cited by applicant]
Harrison; Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms; IETF Network Working Group; RFC 4513; Jun. 2006; pp. 1-32. [cited by applicant]
Plank, T1: Erasure Codes for Storage Applications; FAST2005, 4th Usenix Conference on File Storage Technologies; Dec. 13-16, 2005; pp. 1-74. [cited by applicant]
Rabin; Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance; Journal of the Association for Computer Machinery; vol. 36, No. 2; Apr. 1989; pp. 335-348. [cited by applicant]
Sciberras; Lightweight Directory Access Protocol (LDAP): Schema for User Applications; IETF Network Working Group; RFC 4519; Jun. 2006; pp. 1-33. [cited by applicant]
Sermersheim; Lightweight Directory Access Protocol (LDAP): The Protocol; IETF Network Working Group; RFC 4511; Jun. 2006; pp. 1-68. [cited by applicant]
Smith; Lightweight Directory Access Protocol (LDAP): Uniform Resource Locator; IETF Network Working Group; RFC 4516; Jun. 2006; pp. 1-15. [cited by applicant]
Smith; Lightweight Directory Access Protocol (LDAP): String Representation of Search Filters; IETF Network Working Group; RFC 4515; Jun. 2006; pp. 1-12. [cited by applicant]
Wildi; Java iSCSi Initiator; Master Thesis; Department of Computer and Information Science, University of Konstanz; Feb. 2007; 60 pgs. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Directory Information Models; IETF Network Working Group; RFC 4512; Jun. 2006; pp. 1-49. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation; IETF Network Working Group; RFC 4518; Jun. 2006; pp. 1-14. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names; IETF Network Working Group; RFC 4514; Jun. 2006; pp. 1-15. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map; IETF Network Working Group; RFC 4510; Jun. 2006; pp. 1-8. [cited by applicant]