IP Library Granted Patent US 12,468,683
Granted Patent B2
US 12,468,683 · App. 18/596,914 · Granted Nov 11, 2025

Verifying slice migration in a storage network

Inventors: Greg R. Dhuse (Chicago, IL); Jason K. Resch (Warwick, RI)
Assignee: Pure Storage, Inc.
G06F16/2365G06F3/06G06F3/0619G06F3/0647G06F3/0679G06F11/1076G06F11/1084G06F16/119G06F16/137G06F16/1844G06F16/214G06F16/2255G06F16/235G06F16/9027H04L9/0643H04L9/3236
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,468,683
App. No.
18/596,914
Granted
Nov 11, 2025
Kind
B2
Abstract

A storage network operates by: sending a slice verification request to a destination storage unit, wherein the slice verification request includes a nonce and one or more of: a slice identifier, the slice, a revision indicator, or a verification method indicator; receiving an integrity value from the destination storage unit; determining when the integrity value is verified by determining one of: when a hash of the slice and the nonce matches the integrity value; when a decrypted signature of the integrity value matches a hash of the slice and the nonce; or when the decrypted signature of the integrity value matches the slice and the nonce; and when the integrity value is verified, updating a slice assignment corresponding to the slice, wherein updating the slice assignment associates the destination storage unit with the slice and disassociates the source storage unit from the slice.

Claims (50)

1 . A method for execution by a a storage network that includes a processor, the method comprises:

facilitating migration of a slice from a source storage unit of the storage network located in a first location to a destination storage unit of the storage network located in a second location;

storing, via the destination storage unit, the slice in memory of the destination storage unit based on migration of the slice from the source storage unit to the destination storage unit;

sending, via the source storage unit, a slice verification request to the destination storage unit, wherein the slice verification request corresponds to a migration of the slice from the source storage unit to the destination storage unit, wherein the slice verification request includes a nonce and one or more of: a slice identifier, the slice, a revision indicator, or a verification method indicator;

sending, via the destination storage unit, an integrity value to the source storage unit based on the slice verification request;

receiving, via the source storage unit, the integrity value from the destination storage unit;

determining, via the source storage unit, when the integrity value is verified by determining one of:

when a hash of the slice and the nonce matches the integrity value;

when a decrypted signature of the integrity value matches a hash of the slice and the nonce; or

when the decrypted signature of the integrity value matches the slice and the nonce; and

when the integrity value is verified, updating, via the source storage unit, a slice assignment corresponding to the slice, wherein updating the slice assignment associates the destination storage unit with the slice and disassociates the source storage unit from the slice.

2 . The method of claim 1 , wherein the slice to migrate is identified based on receiving a request.

3 . The method of claim 1 , wherein the slice to migrate is identified based on receiving an error message.

4 . The method of claim 1 , wherein the slice to migrate is identified based on detecting an unfavorable memory condition.

5 . The method of claim 1 , wherein the slice to migrate is identified based on performing a lookup.

6 . The method of claim 1 , wherein the slice to migrate is identified based on receiving a memory test result.

7 . The method of claim 1 , wherein sending the slice to migrate includes sending a slice identifier to the destination storage unit.

8 . The method of claim 1 , wherein the integrity value includes at least one of: a hashing function hash result, or a signed package, wherein the signed package includes the slice and the nonce.

9 . The method of claim 1 , further comprising:

deleting the slice from the source storage unit.

10 . The method of claim 9 , wherein deleting the slice from the source storage unit is based on the slice identifier.

11 . A storage network comprises:

a source storage unit located in a first location comprising:

at least one first processor; and

at least one first memory section that stores first operational instructions; and

a destination storage unit located in a second location comprising:

at least one second processor; and

at least one second memory section that stores second operational instructions that, when executed by the at least one second processor, cause a second processing system of the destination storage unit to:

store a slice in memory of the destination storage unit based on migration of the slice from the source storage unit to the destination storage unit;

wherein the first operational instructions, when executed by the at least one first processor, cause a first processing system of the source storage unit to:

send a slice verification request to the destination storage unit, wherein the slice verification request corresponds to a migration of the slice from the source storage unit to the destination storage unit, wherein the slice verification request includes a nonce and one or more of: a slice identifier, the slice, a revision indicator, or a verification method indicator;

wherein the second operational instructions, when executed by the at least one second processor, further cause the second processing system of the destination storage unit to:

send an integrity value to the source storage unit based on the slice verification request;

wherein the first operational instructions, when executed by the at least one first processor, further cause the first processing system of the source storage unit to:

receive the integrity value from the destination storage unit;

determine when the integrity value is verified by determining one of:

when a hash of the slice and the nonce matches the integrity value;

when a decrypted signature of the integrity value matches a hash of the slice and the nonce; or

when the decrypted signature of the integrity value matches the slice and the nonce; and

when the integrity value is verified, updating a slice assignment corresponding to the slice, wherein updating the slice assignment associates the destination storage unit with the slice and disassociates the source storage unit from the slice.

12 . The storage network of claim 11 , wherein the slice to migrate is identified based on receiving a request.

13 . The storage network of claim 11 , wherein the slice to migrate is identified based on receiving an error message.

14 . The storage network of claim 11 , wherein the slice to migrate is identified based on detecting an unfavorable memory condition.

15 . The storage network of claim 11 , wherein the slice to migrate is identified based on performing a lookup.

16 . The storage network of claim 11 , wherein the slice to migrate is identified based on receiving a memory test result.

17 . The storage network of claim 11 , wherein sending the slice to migrate includes sending a slice identifier to the destination storage unit.

18 . The storage network of claim 11 , wherein the integrity value includes at least one of: a hashing function hash result, or a signed package, wherein the signed package includes the slice and the nonce.

19 . The storage network of claim 11 , further comprising:

deleting the slice from the source storage unit.

20 . The storage network of claim 19 , wherein deleting the slice from the source storage unit is based on the slice identifier.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2024
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 066772/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2024
From: DHUSE, GREG R.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 066676/0116 →
Continuity (6)
Continuation 17644277 · Dec 14, 2021
Continuation 16411424 · May 14, 2019
Continuation 15225476 · Aug 1, 2016
Continuation In Part 13775491 · Feb 25, 2013
Provisional Application 61605856 · Mar 2, 2012
Related Publication 20240211465A1 · Jun 27, 2024
References Cited (169)
US 4092732A · Ouchi · 1978 [cited by applicant]
US 5454101A · Mackay · 1995 [cited by applicant]
US 5485474A · Rabin · 1996 [cited by applicant]
US 5643086A · Alcorn · 1997 [cited by applicant]
US 5757915A · Aucsmith · 1998 [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 6052797A · Ofek · 2000 [cited by applicant]
US 6058454A · Gerlach · 2000 [cited by applicant]
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 · Nikolaevich · 2002 [cited by applicant]
US 6370250B1 · Stein · 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 6490666B1 · Cabrera · 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 6697794B1 · Milby · 2004 [cited by applicant]
US 6704868B1 · Challener · 2004 [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 6959384B1 · Serret-Avila · 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 7076062B1 · Spies · 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 7165095B2 · Sim · 2007 [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 7340602B2 · Serret-Avila · 2008 [cited by applicant]
US 7443321B1 · Kaufman · 2008 [cited by applicant]
US 7454592B1 · Shah · 2008 [cited by examiner]
US 7634657B1 · Stringham · 2009 [cited by applicant]
US 7636724B2 · de la Torre · 2009 [cited by applicant]
US 7647329B1 · Fischman · 2010 [cited by applicant]
US 7707427B1 · Kenrich · 2010 [cited by applicant]
US 7818535B1 · Bono et al. · 2010 [cited by applicant]
US 7979441B2 · Sim-Tang · 2011 [cited by applicant]
US 8005227B1 · Linnell · 2011 [cited by applicant]
US 8099569B2 · Sugiura · 2012 [cited by examiner]
US 8122213B2 · Cherian · 2012 [cited by examiner]
US 9009474B2 · Stefan · 2015 [cited by examiner]
US 9177153B1 · Perrig · 2015 [cited by examiner]
US 20020062422A1 · Butterworth · 2002 [cited by applicant]
US 20020141582A1 · Kocher · 2002 [cited by examiner]
US 20020147727A1 · Schreiber · 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 20030063134A1 · Lord · 2003 [cited by applicant]
US 20030065617A1 · Watkins · 2003 [cited by applicant]
US 20030084020A1 · Shu · 2003 [cited by applicant]
US 20030187847A1 · Lubbers · 2003 [cited by applicant]
US 20030229627A1 · Carlson · 2003 [cited by applicant]
US 20040015747A1 · Dwyer · 2004 [cited by examiner]
US 20040024963A1 · Talagala · 2004 [cited by applicant]
US 20040122917A1 · Menon · 2004 [cited by applicant]
US 20040153642A1 · Plotkin · 2004 [cited by applicant]
US 20040215998A1 · Buxton · 2004 [cited by applicant]
US 20040228493A1 · Ma · 2004 [cited by applicant]
US 20040249993A1 · Hori · 2004 [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, Jr. · 2005 [cited by applicant]
US 20050132070A1 · Redlich · 2005 [cited by applicant]
US 20050132196A1 · Dietl · 2005 [cited by applicant]
US 20050144382A1 · Schmisseur · 2005 [cited by applicant]
US 20050229069A1 · Hassner · 2005 [cited by applicant]
US 20060016879A1 · Kean · 2006 [cited by applicant]
US 20060047907A1 · Shiga · 2006 [cited by applicant]
US 20060069798A1 · Li · 2006 [cited by applicant]
US 20060112222A1 · Barrall · 2006 [cited by applicant]
US 20060130154A1 · Lam et al. · 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 20070208760A1 · Reuter · 2007 [cited by applicant]
US 20070214285A1 · Au · 2007 [cited by applicant]
US 20070234110A1 · Soran · 2007 [cited by applicant]
US 20070250302A1 · Xu · 2007 [cited by applicant]
US 20070283167A1 · Venters, III · 2007 [cited by applicant]
US 20080126805A1 · Owlett · 2008 [cited by applicant]
US 20080295180A1 · Yoneda · 2008 [cited by applicant]
US 20090083563A1 · Murase · 2009 [cited by applicant]
US 20090094251A1 · Gladwin · 2009 [cited by applicant]
US 20090094318A1 · Gladwin · 2009 [cited by applicant]
US 20090307422A1 · Galloway · 2009 [cited by examiner]
US 20090319834A1 · Ogihara et al. · 2009 [cited by applicant]
US 20100023480A1 · Ito · 2010 [cited by applicant]
US 20100023524A1 · Gladwin · 2010 [cited by applicant]
US 20100023621A1 · Ezolt · 2010 [cited by applicant]
US 20100070698A1 · Ungureanu · 2010 [cited by applicant]
US 20100083003A1 · Spackman · 2010 [cited by applicant]
US 20100098256A1 · Kirshenbaum · 2010 [cited by applicant]
US 20100281013A1 · Graefe · 2010 [cited by applicant]
US 20110055903A1 · Leggette · 2011 [cited by applicant]
US 20110167004A1 · Zank · 2011 [cited by examiner]
US 20110202776A1 · Chen · 2011 [cited by applicant]
US 20110246433A1 · Sun · 2011 [cited by applicant]
US 20110264717A1 · Grube et al. · 2011 [cited by applicant]
US 20120030371A1 · Baptist et al. · 2012 [cited by applicant]
US 20120084333A1 · Huang · 2012 [cited by applicant]
US 20120226772A1 · Grube et al. · 2012 [cited by applicant]
US 20140074789A1 · Dutch · 2014 [cited by examiner]
GB 2401006 · 2004 [cited by applicant]
WO WO0113572A1 · 2001 [cited by applicant]
WO WO2003032553A2 · 2003 [cited by examiner]
WO 2009067139 · 2009 [cited by applicant]
WO 2009110630 · 2009 [cited by applicant]
WO WO2011084854A1 · 2011 [cited by examiner]
WO WO2011148123A1 · 2011 [cited by applicant]
WO WO2012021734A1 · 2012 [cited by examiner]
WO 2012166723 · 2012 [cited by applicant]
K.H. Rahouma, “Utilization of multiple block cipher hashing in authentication and digital signatures”, Proceedings IEEE International Conference on Networks 2000 (ICON 2000). Networking Trends and Challenges in the New … [cited by examiner]
Fangyong Hou et al., “Efficient disk encryption and verification through trusted nonce”, 2008 IEEE Symposium on Computers and Communications (2008, pp. 304-309). [cited by examiner]
Chung; An Automatic Data Segmentation Method for 3D Measured Data Points; National Taiwan University; pp. 1-8; 1998. [cited by applicant]
Gong Zhang et al., “Automated lookahead data migration in SSD-enabled multi-tiered storage systems”, IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST)m May 2010, pp. 1-6. [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]
International Searching Authority—US; International Search Report and Written Opinion; PCT/US13/28049; May 9, 2013; 6 pgs. [cited by applicant]
Kamel H. Rahouma, “Utilization of Multiple Block Cipher Hashing in Authentication and Digital Signatures”, Proceedings IEEE International Conference on Networks 2000 (ICON 2000), Networking Trends and Challenges in the … [cited by applicant]
Kubiatowicz, et al.; OceanStore: An Architecture for Global-Scale Persistent Storage; Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 20… [cited by applicant]
Legg; Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules; IETF Network Working Group; RFC 4517; Jun. 2006; pp. 1-50. [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]
Satran, et al.; Internet Small Computer Systems Interface (ISCSI); IETF Network Working Group; RFC 3720; Apr. 2004; pp. 1-257. [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]
Shamir; How to Share a Secret; Communications of the ACM; vol. 22, No. 11; Nov. 1979; pp. 612-613. [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]
Su Yunling et al., “An Overview of Incremental Hash Function Based on Pair Block Chaining”, International Forum on Information Technology and Applications, Jul. 16-18, 2010 , pp. 332-335. [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]
Xin, et al.; Evaluation of Distributed Recovery in Large-Scale Storage Systems; 13th IEEE International Symposium on High Performance Distributed Computing; Jun. 2004; pp. 172-181. [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]