IP Library Granted Patent US 8,762,793
Granted Patent B2
US 8,762,793 · App. 13/204,050 · Granted Jun 24, 2014

Migrating encoded data slices from a re-provisioned memory device of a dispersed storage network memory

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 8,762,793
App. No.
13/204,050
Granted
Jun 24, 2014
Kind
B2
Abstract

A method begins by a processing module monitoring a reprovisioned memory device that has been reprovisioned from a legacy storage protocol to an error coding dispersed storage protocol. The method continues with the processing module determining a data migration scheme for migrating a plurality of encoded data slices stored on the reprovisioned memory device and migrating the plurality of encoded data slices from the reprovisioned memory device to one or more other memory devices in accordance with the data migration scheme when a usable memory life of the reprovisioned memory device in the error coding dispersed storage protocol has expired.

Claims (138)

1. A method comprises:

monitoring a reprovisioned memory device that has been reprovisioned from a legacy storage protocol to an error coding dispersed storage protocol;

when a usable memory life of the reprovisioned memory device in the error coding dispersed storage protocol has expired:

determining a data migration scheme for migrating a plurality of encoded data slices stored on the reprovisioned memory device; and

migrating the plurality of encoded data slices from the reprovisioned memory device to one or more other memory devices in accordance with the data migration scheme.

2. The method of claim 1 further comprises:

determining the data migration scheme to be a data transfer scheme;

selecting a memory device of the one or more other memory devices; and

transferring the plurality of encoded data slices to the memory device.

3. The method of claim 1 further comprises:

determining the data migration scheme to be sub-slicing data migration for an encoded data slice of the plurality of encoded data slices;

dispersed storage error encoding the encoded data slice to produce a set of encoded sub-slices;

selecting a set of memory devices of the one or more other memory devices; and

sending the set of encoded sub-slices to the set of memory devices.

4. The method of claim 1 further comprises:

determining the data migration scheme to be rebuilding an encoded data slice of the plurality of encoded data slices;

retrieving at least a decode threshold number of encoded data slices associated with the encoded data slice;

reconstructing a data segment from the decode threshold number of encoded data slices;

dispersed storage error encoding the data segment to produce a set of rebuilt encoded data slices;

selecting a rebuilt encoded data slice of the set of rebuilt encoded data slices;

selecting a memory device of the one or more other memory devices; and

sending the rebuilt encoded data slice to the memory device.

5. The method of claim 1 , wherein determining the usable memory life comprises at least one of:

querying a memory usability level table;

testing the reprovisioned memory device;

determining a memory assignment;

receiving an error message;

retrieving an error message history;

receiving a message; and

receiving a command.

6. The method of claim 1 , wherein the migrating the plurality of encoded data slices further comprises:

determining storage requirements for the plurality of encoded data slices;

determining that the one or more other memory devices satisfies the storage requirements; and

when the one or more other memory devices satisfies the storage requirements, enabling the migrating of the plurality of encoded data slices from the reprovisioned memory device to the one or more other memory devices.

7. The method of claim 1 , wherein the determining the data migration scheme comprises:

determining useful memory life indications of the one or more other devices; and

selecting the data migration scheme based on the useful memory life indications of the one or more other devices.

8. A method comprises:

determining a usable memory life indication of a reprovisioned memory device operable in accordance with an error coding dispersed storage protocol, wherein the reprovisioned memory device has been reprovisioned from a legacy storage protocol to the error coding dispersed storage protocol;

for an encoded data slice of a plurality of encoded data slices, determining whether to migrate the encoded data slice to one or more other memory devices based on the usable memory life indication;

when the encoded data slice is to be migrated, determining a migration scheme; and

migrating the encoded data slice to the one or more other memory devices in accordance with the migration scheme.

9. The method of claim 8 further comprises:

determining the migration scheme to be a data transfer scheme;

selecting a memory device of the one or more other memory devices; and

transferring the encoded data slice to the memory device.

10. The method of claim 8 further comprises:

determining the migration scheme to be sub-slicing data migration;

dispersed storage error encoding the encoded data slice to produce a set of encoded sub-slices;

selecting a set of memory devices of the one or more other memory devices; and

sending the set of encoded sub-slices to the set of memory devices.

11. The method of claim 8 further comprises:

determining the migration scheme to be rebuilding the encoded data slice;

retrieving at least a decode threshold number of encoded data slices associated with the encoded data slice;

reconstructing a data segment from the decode threshold number of encoded data slices;

dispersed storage error encoding the data segment to produce a set of rebuilt encoded data slices;

selecting a rebuilt encoded data slice of the set of rebuilt encoded data slices;

selecting a memory device of the one or more other memory devices; and

sending the rebuilt encoded data slice to the memory device.

12. The method of claim 8 , wherein the determining the usable memory life indication comprises at least one of:

querying a memory usability level table regarding a portion of the reprovisioned memory device storing the encoded data slice;

testing the portion of the reprovisioned memory device;

determining a memory assignment regarding the portion;

receiving an error message regarding the portion;

retrieving an error message history regarding the portion;

receiving a message regarding the portion; and

receiving a command regarding the portion.

13. A memory system comprises:

a plurality of memory devices, wherein a memory device of the plurality of memory devices has been reprovisioned from a legacy storage protocol to an error coding dispersed storage protocol to produce a reprovisioned memory device; and

a processing module operable to:

monitor the reprovisioned memory device;

when a usable memory life of the reprovisioned memory device in the error coding dispersed storage protocol has expired:

determine a data migration scheme for migrating a plurality of encoded data slices stored on the reprovisioned memory device; and

facilitate migrating the plurality of encoded data slices from the reprovisioned memory device to one or more other memory devices of the plurality of memory devices in accordance with the data migration scheme.

14. The memory system of claim 13 , wherein the processing module is further operable to:

determine the data migration scheme to be a data transfer scheme;

select a memory device of the one or more other memory devices; and

transfer the plurality of encoded data slices to the memory device.

15. The memory system of claim 13 , wherein the processing module is further operable to:

determine the data migration scheme to be sub-slicing data migration for an encoded data slice of the plurality of encoded data slices;

dispersed storage error encode the encoded data slice to produce a set of encoded sub-slices;

select a set of memory devices of the one or more other memory devices; and

send the set of encoded sub-slices to the set of memory devices.

16. The memory system of claim 13 , wherein the processing module is further operable to:

determine the data migration scheme to be rebuilding an encoded data slice of the plurality of encoded data slices;

retrieve at least a decode threshold number of encoded data slices associated with the encoded data slice;

reconstruct a data segment from the decode threshold number of encoded data slices;

dispersed storage error encode the data segment to produce a set of rebuilt encoded data slices;

select a rebuilt encoded data slice of the set of rebuilt encoded data slices;

select a memory device of the one or more other memory devices; and

send the rebuilt encoded data slice to the memory device.

17. The memory system of claim 13 , wherein processing module determines the usable memory life by at least one of:

querying a memory usability level table;

testing the reprovisioned memory device;

determining a memory assignment;

receiving an error message;

retrieving an error message history;

receiving a message; and

receiving a command.

18. The memory system of claim 13 , wherein the processing module further migrates the plurality of encoded data slices by:

determining storage requirements for the plurality of encoded data slices;

determining that the one or more other memory devices satisfies the storage requirements; and

when the one or more other memory devices satisfies the storage requirements, enabling the migrating of the plurality of encoded data slices from the reprovisioned memory device to the one or more other memory devices.

19. The memory system of claim 13 , wherein the processing module determines the data migration scheme by:

determining useful memory life indications of the one or more other devices; and

selecting the data migration scheme based on the useful memory life indications of the one or more other devices.

20. A memory system comprises:

a plurality of memory devices, wherein a memory device of the plurality of memory devices has been reprovisioned from a legacy storage protocol to an error coding dispersed storage protocol to produce a reprovisioned memory device; and

a processing module operable to:

determine a usable memory life indication of the reprovisioned memory;

for an encoded data slice of a plurality of encoded data slices, determine whether to migrate the encoded data slice to one or more other memory devices of the plurality of memory devices based on the usable memory life indication;

when the encoded data slice is to be migrated, determine a migration scheme; and

facilitate migrating the encoded data slice to the one or more other memory devices in accordance with the migration scheme.

21. The memory system of claim 20 , wherein the processing module further functions to:

determine the migration scheme to be a data transfer scheme;

select a memory device of the one or more other memory devices; and

transfer the encoded data slice to the memory device.

22. The memory system of claim 20 , wherein the processing module further functions to:

determine the migration scheme to be sub-slicing data migration;

dispersed storage error encode the encoded data slice to produce a set of encoded sub-slices;

select a set of memory devices of the one or more other memory devices; and

send the set of encoded sub-slices to the set of memory devices.

23. The memory system of claim 20 , wherein the processing module further functions to:

determine the migration scheme to be rebuilding the encoded data slice;

retrieve at least a decode threshold number of encoded data slices associated with the encoded data slice;

reconstruct a data segment from the decode threshold number of encoded data slices;

dispersed storage error encode the data segment to produce a set of rebuilt encoded data slices;

select a rebuilt encoded data slice of the set of rebuilt encoded data slices;

select a memory device of the one or more other memory devices; and

send the rebuilt encoded data slice to the memory device.

24. The memory system of claim 20 , wherein the processing module determines the usable memory life indication by at least one of:

querying a memory usability level table regarding a portion of the reprovisioned memory device storing the encoded data slice;

testing the portion of the reprovisioned memory device;

determining a memory assignment regarding the portion;

receiving an error message regarding the portion;

retrieving an error message history regarding the portion;

receiving a message regarding the portion; and

receiving a command regarding the portion.

Assignments (6)
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 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2011
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.; RESCH, JASON K.; VOLVOVSKI, ILYA; MOTWANI, MANISH
To: CLEVERSAFE, INC.
Reel/Frame 026708/0983 →