IP Library Granted Patent US 9,830,222
Granted Patent B2
US 9,830,222 · App. 14/844,145 · Granted Nov 28, 2017

Adjusting a data storage address mapping in a maintenance free storage container

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 9,830,222
App. No.
14/844,145
Granted
Nov 28, 2017
Kind
B2
Abstract

A method includes sending, by a computing device, an access request to one or more site controllers. The method further includes identifying, by a site controller, storage containers based on DSN addresses. The method includes sending, by the site controller, the access request to the identified storage containers. The method includes interpreting, by a container controller, the access request to identify storage units affiliated with some of the DSN addresses. The method includes determining, by the container controller, whether the storage units are in a storage failure mode. The method includes when the storage units are in the storage failure mode, determining, by the container controller, whether to rebuild, to change virtual to physical address mapping, or to migrate encoded data slices. The method includes, when the encoded data slices are to be rebuild, facilitating, by the container controller, rebuilding of the encoded data slices.

Claims (86)

1. A method comprises:

sending, by a computing device, an access request to one or more site controllers, wherein the access request is regarding one or more sets of encoded data slices having one or more sets of dispersed storage network (DSN) addresses;

identifying, by the one or more site controllers, one or more storage containers based on the one or more sets of DSN addresses, wherein a storage container of the one or more storage containers includes a container controller and a plurality of storage units, wherein a storage unit of the plurality of storage units includes a plurality of storage devices;

sending, by the one or more site controllers, the access request to the one or more identified storage containers;

interpreting, by a container controller of one of the one or more identified storage containers, the access request to identify one or more storage units of the plurality of storage units affiliated with one or more DSN addresses of the one or more sets of DSN addresses;

determining, by the container controller, whether the one or more storage units is in a storage failure mode with regard to the one or more DSN addresses;

when the one or more storage units is in the storage failure mode, determining, by the container controller, whether to rebuild, to change virtual to physical address mapping, or to migrate one or more encoded data slices of the one or more sets of encoded data slices associated with the one or more DSN addresses concerning the storage failure mode; and

when the one or more encoded data slices is to be rebuilt, facilitating, by the container controller, rebuilding of the one or more encoded data slices.

2. The method of claim 1 , wherein the storage failure mode comprises one of:

a storage location failure within a storage device of the plurality of storage devices of the storage unit;

a storage device failure within the storage unit;

a storage unit failure;

a missing encoded data slice; and

a corrupted encoded data slice.

3. The method of claim 1 , wherein the access request comprises one of:

a read request;

a write request; and

a data storage integrity verification.

4. The method of claim 1 further comprises:

when the one or more storage units is in the storage failure mode and the container controller determines to rebuild an encoded data slice of the one or more encoded data slices:

determining, by the container controller, whether a decode threshold number of encoded data slices of a set of encoded data slices of the one or more sets of encoded data slices is stored in the plurality of storage units within the storage container that includes the container controller, wherein the set of encoded data slices includes the encoded data slice; and

when the decode threshold number of encoded data slices is stored in the plurality of storage units, rebuilding, by the container controller, the encoded data slice based on the decode threshold number of encoded data slices.

5. The method of claim 4 further comprises:

when the decode threshold number of encoded data slices is not stored in the plurality of storage units, forwarding, by the container controller, a rebuild request for the encoded data slices to a site controller of the one or more site controllers;

retrieving, by the site controller, the decode threshold number of encoded data slices from a plurality of storage containers of the one or more storage containers; and

rebuilding, by the site controller, the encoded data slice based on the decode threshold number of encoded data slices.

6. The method of claim 1 further comprises:

when the one or more storage units is in the storage failure mode and the container controller determines to migrate the one or more encoded data slices:

determining, by the container controller, whether the one or more sets of encoded data slices are stored in the plurality of storage units within the storage container that includes the container controller, wherein the set of encoded data slices includes the one or more encoded data slices; and

when the one or more encoded data slices are stored in the plurality of storage units, migrating, by the container controller, the one or more encoded data slices to different storage locations within the plurality of storage units.

7. The method of claim 6 further comprises:

when the one or more encoded data slices are not stored in the plurality of storage units, forwarding, by the container controller, a migrate request a site controller of the one or more site controllers; and

migrating, by the site controller, the one or more encoded data slices to different storage containers of the plurality of storage containers.

8. The method of claim 1 further comprises:

when the one or more storage units is in the storage failure mode and the container controller determines to change virtual to physical address mapping for the one or more encoded data slices:

detecting, by the container controller, a failure of a physical storage location within the plurality of storage units of the storage container, wherein the storage location is mapped to a DSN address of the one or more DSN addresses;

identifying, by the container controller, a different physical address location within the plurality of storage units that has not failed; and

mapping the DSN address to the different physical address location.

9. A non-transitory computer readable storage device comprises:

a first storage section that stores operational instructions that, when executed by a computing device, causes the computing device to:

send an access request to one or more site controllers, wherein the access request is regarding one or more sets of encoded data slices having one or more sets of dispersed storage network (DSN) addresses;

a second storage section that stores operational instructions that, when executed by a site controller of the one or more site controllers, causes the site controller to:

identify one or more storage containers based on the one or more sets of DSN addresses, wherein a storage container of the one or more storage containers includes a container controller and a plurality of storage units, wherein a storage unit of the plurality of storage units includes a plurality of storage devices; and

send the access request to the one or more identified storage containers;

a third storage section that stores operational instructions that, when executed by a container controller of the one or more container controllers, causes the container controller to:

interpret the access request to identify one or more storage units of the plurality of storage units affiliated with one or more DSN addresses of the one or more sets of DSN addresses;

determine whether the one or more storage units is in a storage failure mode with regard to the one or more DSN addresses;

when the one or more storage units is in the storage failure mode, determine whether to rebuild, to change virtual to physical address mapping, or to migrate one or more encoded data slices of the one or more sets of encoded data slices associated with the one or more DSN addresses concerning the storage failure mode; and

when the one or more encoded data slices is to be rebuilt, facilitate rebuilding of the one or more encoded data slices.

10. The non-transitory computer readable storage device of claim 9 , wherein the storage failure mode comprises one of:

a storage location failure within a storage device of the plurality of storage devices of the storage unit;

a storage device failure within the storage unit;

a storage unit failure;

a missing encoded data slice; and

a corrupted encoded data slice.

11. The non-transitory computer readable storage device of claim 9 , wherein the access request comprises one of:

a read request;

a write request; and

a data storage integrity verification.

12. The non-transitory computer readable storage device of claim 9 further comprises:

a fourth storage section that stores operational instructions that, when executed by the container controller, causes the container controller to:

when the one or more storage units is in the storage failure mode and the container controller determines to rebuild an encoded data slice of the one or more encoded data slices:

determine whether a decode threshold number of encoded data slices of a set of encoded data slices of the one or more sets of encoded data slices is stored in the plurality of storage units within the storage container that includes the container controller, wherein the set of encoded data slices includes the encoded data slice; and

when the decode threshold number of encoded data slices is stored in the plurality of storage units, rebuild the encoded data slice based on the decode threshold number of encoded data slices.

13. The non-transitory computer readable storage device of claim 12 further comprises:

the fourth storage section further stores operational instructions that, when executed by the container controller, causes the container controller to:

when the decode threshold number of encoded data slices is not stored in the plurality of storage units, forward a rebuild request for the encoded data slices to a site controller of the one or more site controllers;

a fifth storage section that stores operational instructions that, when executed by the site controller, causes the site controller to:

retrieve the decode threshold number of encoded data slices from a plurality of storage containers of the one or more storage containers; and

rebuild the encoded data slice based on the decode threshold number of encoded data slices.

14. The non-transitory computer readable storage device of claim 9 further comprises:

a fourth storage section that stores operational instructions that, when executed by the container controller, causes the container controller to:

when the one or more storage units is in the storage failure mode and the container controller determines to migrate the one or more encoded data slices:

determine whether the one or more sets of encoded data slices are stored in the plurality of storage units within the storage container that includes the container controller, wherein the set of encoded data slices includes the one or more encoded data slices; and

when the one or more encoded data slices are stored in the plurality of storage units, migrate the one or more encoded data slices to different storage locations within the plurality of storage units.

15. The non-transitory computer readable storage device of claim 14 further comprises:

the fourth storage section further stores operational instructions that, when executed by the container controller, causes the container controller to:

when the one or more encoded data slices are not stored in the plurality of storage units, forward a migrate request a site controller of the one or more site controllers; and

a fifth storage section that stores operational instructions that, when executed by the site controller, causes the site controller to:

migrate the one or more encoded data slices to different storage containers of the plurality of storage containers.

16. The non-transitory computer readable storage device of claim 9 further comprises:

a fourth storage section that stores operational instructions that, when executed by the container controller, causes the container controller to:

when the one or more storage units is in the storage failure mode and the container controller determines to change virtual to physical address mapping for the one or more encoded data slices:

detect a failure of a physical storage location within the plurality of storage units of the storage container, wherein the storage location is mapped to a DSN address of the one or more DSN addresses;

identify a different physical address location within the plurality of storage units that has not failed; and

map the DSN address to the different physical address location.

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 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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →