IP Library Granted Patent US 10,440,116
Granted Patent B2
US 10,440,116 · App. 15/842,972 · Granted Oct 8, 2019

Minimizing data movement through rotation of spare memory devices

Inventors: Ilya Volvovski (Chicago, IL); Jason K. Resch (Chicago, IL); Praveen Viraraghavan (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L67/1097G06F11/07H03M13/3761H03M13/09H03M13/1515
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 10,440,116
App. No.
15/842,972
Granted
Oct 8, 2019
Kind
B2
Abstract

A distributed storage network (DSN) includes a plurality of distributed storage task execution (DST EX) units, each which includes a plurality of distributed storage (DS) memories configured to store encoded data slices. A DST EX unit detects a physical storage failure associated with a first DS memory included in the DST EX unit, wherein the first DS memory is associated with a sub-DSN address range. An available spare DS memory included in the DST EX unit is selected, and slice mapping information is updated to associate the available spare DS memory with the sub-DSN address range. The DST EX unit facilitates rebuilding one or more encoded data slices associated with the sub-DSN address range to produce one or more rebuilt encoded data slices. The DST EX unit facilitates storage of the rebuilt encoded data slices in the available spare DS memory.

Claims (80)

1. A method for use in a distributed storage network (DSN) including a plurality of distributed storage task execution (DST EX) units, each of the plurality of DST EX units including a plurality of distributed storage (DS) memories configured to store encoded data slices, the method comprising:

detecting, by a DST EX unit including a processor and associated memory, a physical storage failure associated with a first DS memory included in the DST EX unit, wherein the first DS memory is associated with a sub-DSN address range;

selecting an available spare DS memory included in the DST EX unit;

updating slice mapping information to associate the available spare DS memory with the sub-DSN address range;

facilitating, by the DST EX unit, rebuilding one or more encoded data slices associated with the sub-DSN address range to produce one or more rebuilt encoded data slices; and

facilitating, by the DST EX unit, storing the one or more rebuilt encoded data slices in the available spare DS memory.

2. The method of claim 1 , further comprising:

after storing the one or more rebuilt encoded data slices in the available spare DS memory, maintaining the first DS memory as a spare DS memory until a physical storage failure associated with a second DS memory is detected.

3. The method of claim 1 , further comprising:

choosing the available spare DS memory from a plurality of available spare DS memories based on one or more of a capacity level, an estimated performance level, or a compatibility factor.

4. The method of claim 1 , further comprising:

updating slice mapping information by updating a local table that includes the slice mapping information to:

associate the sub-DSN address range with the available spare DS memory; and

disassociate the sub-DSN address range from the first DS memory.

5. The method of claim 1 , further comprising:

locally rebuilding the one or more encoded data slices, by the DST EX unit, to generate one or more rebuilt encoded data slices.

6. The method of claim 5 , wherein locally rebuilding includes:

obtaining a decode threshold number of slice representations of a set of encoded data slices that includes an encoded data slice for rebuilding;

decoding the decode threshold number of slice representations to reproduce a data segment; and

encoding the data segment to generate the one or more rebuilt encoded data slices.

7. The method of claim 1 , further comprising:

issuing a rebuild request to a rebuilding agent, the rebuild request including instructions to the rebuilding agent to send rebuilt encoded data slices to the DST EX unit;

receiving, at the DST EX unit, one or more rebuilt data slices from the rebuilding agent; and

storing the one or more rebuilt data slices in the available spare DS memory.

8. A distributed storage task execution (DST EX) unit for use in a distributed storage network (DSN), the DST EX unit comprising:

a processor and associated memory;

a plurality of distributed storage (DS) memories coupled to the processor and associated memory, the plurality of DS memories configured to store encoded data slices;

the processor and associated memory configured to:

detect a physical storage failure associated with a first DS memory, wherein the first DS memory is associated with a sub-DSN address range;

select an available spare DS memory from the plurality of DS memories;

update slice mapping information to associate the available spare DS memory with the sub-DSN address range;

facilitate rebuilding one or more encoded data slices associated with the sub-DSN address range to produce one or more rebuilt encoded data slices; and

facilitate storing the one or more rebuilt encoded data slices in the available spare DS memory.

9. The distributed storage task execution (DST EX) unit of claim 8 , the processor and associated memory further configured to:

after storing the one or more rebuilt encoded data slices in the available spare DS memory, maintain the first DS memory as a spare DS memory until a physical storage failure associated with a second DS memory is detected.

10. The distributed storage task execution (DST EX) unit of claim 8 , the processor and associated memory further configured to:

choose the available spare DS memory from a plurality of available spare DS memories based on one or more of a capacity level, an estimated performance level, or a compatibility factor.

11. The distributed storage task execution (DST EX) unit of claim 8 , the processor and associated memory further configured to:

update a local table including slice mapping information to:

associate the sub-DSN address range with the available spare DS memory; and

disassociate the sub-DSN address range from the first DS memory.

12. The distributed storage task execution (DST EX) unit of claim 8 , the processor and associated memory further configured to:

locally rebuild the one or more encoded data slices to generate one or more rebuilt encoded data slices.

13. The distributed storage task execution (DST EX) unit of claim 12 , the processor and associated memory further configured to:

obtain a decode threshold number of slice representations of a set of encoded data slices that includes an encoded data slice for rebuilding;

decode the decode threshold number of slice representations to reproduce a data segment; and

encode the data segment to generate the one or more rebuilt encoded data slices.

14. The distributed storage task execution (DST EX) unit of claim 8 , the processor and associated memory further configured to:

issue a rebuild request to a rebuilding agent, the rebuild request including instructions to the rebuilding agent to send rebuilt encoded data slices to the DST EX unit;

receive one or more rebuilt data slices from the rebuilding agent; and

store the one or more rebuilt data slices in the available spare DS memory.

15. A distributed storage network (DSN) comprising:

a set of distributed storage task execution (DST EX) units, at least one DST EX unit included in the set of DST EX units including:

a processor and associated memory;

a plurality of distributed storage (DS) memories coupled to the processor and associated memory, the plurality of DS memories configured to store encoded data slices;

the processor and associated memory configured to:

detect a physical storage failure associated with a first DS memory, wherein the first DS memory is associated with a sub-DSN address range;

select an available spare DS memory from the plurality of DS memories;

update slice mapping information to associate the available spare DS memory with the sub-DSN address range;

facilitate rebuilding one or more encoded data slices associated with the sub-DSN address range to produce one or more rebuilt encoded data slices; and

facilitate storing the one or more rebuilt encoded data slices in the available spare DS memory.

16. The distributed storage network (DSN) of claim 15 , the processor and associated memory further configured to:

after storing the one or more rebuilt encoded data slices in the available spare DS memory, maintain the first DS memory as a spare DS memory until a physical storage failure associated with a second DS memory is detected.

17. The distributed storage network (DSN) of claim 15 , the processor and associated memory further configured to:

choose the available spare DS memory from a plurality of available spare DS memories based on one or more of a capacity level, an estimated performance level, or a compatibility factor.

18. The distributed storage network (DSN) of claim 15 , the processor and associated memory further configured to:

update a local table including slice mapping information to:

associate the sub-DSN address range with the available spare DS memory; and

disassociate the sub-DSN address range from the first DS memory.

19. The distributed storage network (DSN) of claim 15 , the processor and associated memory further configured to:

locally rebuild the one or more encoded data slices to generate one or more rebuilt encoded data slices, wherein locally rebuilding includes:

obtaining a decode threshold number of slice representations of a set of encoded data slices that includes an encoded data slice for rebuilding;

decoding the decode threshold number of slice representations to reproduce a data segment; and

encoding the data segment to generate the one or more rebuilt encoded data slices.

20. The distributed storage network (DSN) of claim 15 , further including:

a rebuilding module coupled to the at least one DST EX unit, the rebuilding module configured to rebuild encoded data slices on behalf of the at least one DST EX unit;

the processor and associated memory further configured to:

issue a rebuild request to a rebuilding agent, the rebuild request including instructions to the rebuilding agent to send rebuilt encoded data slices to the DST EX unit;

receive one or more rebuilt data slices from the rebuilding agent; and

store the one or more rebuilt data slices in the available spare DS memory.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2017
From: VOLVOVSKI, ILYA; RESCH, JASON K.; VIRARAGHAVAN, PRAVEEN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044451/0346 →
Continuity (4)
Continuation In Part 15812706 · Nov 14, 2017
Continuation 14956818 · Dec 2, 2015
Provisional Application 62109712 · Jan 30, 2015
Related Publication 20180109618A1 · Apr 19, 2018