IP Library Granted Patent US 9,207,870
Granted Patent B2
US 9,207,870 · App. 14/303,956 · Granted Dec 8, 2015

Allocating storage units in a dispersed storage network

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,207,870
App. No.
14/303,956
Granted
Dec 8, 2015
Kind
B2
Abstract

A method begins by a processing module detecting a new storage unit within a dispersed storage network DSN. The method continues with the processing module determining to affiliate the new storage unit with a virtual memory vault, where the virtual memory vault is mapped to a set of storage units of the DSN, where data objects are dispersed storage error encoded into pluralities of sets of encoded data slices that are stored in the set of storage units. The method continues with the processing module determining virtual DSN addresses of the virtual memory vault to allocate the new storage unit. The method continues with the processing module updating vault information regarding the virtual memory vault to include the allocation of the virtual DSN addresses to the new storage unit.

Claims (96)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

detecting a new storage unit within the DSN;

determining to affiliate the new storage unit with a virtual memory vault, wherein the virtual memory vault is mapped to a set of storage units of the DSN, wherein data objects are dispersed storage error encoded into pluralities of sets of encoded data slices that are stored in the set of storage units;

determining virtual DSN addresses of the virtual memory vault to allocate the new storage unit; and

updating vault information regarding the virtual memory vault to include the allocation of the virtual DSN addresses to the new storage unit.

2. The method of claim 1 , wherein the determining to affiliate the new storage unit with the virtual memory vault comprises at least one of:

determining that available physical memory of one or more storage units of the set of storage units is below a desired availability threshold; and

receiving a request to allocate the DSN addresses of the virtual memory vault to the new storage unit.

3. The method of claim 1 , wherein the determining the virtual DSN addresses of the virtual memory vault to allocate the new storage unit comprises:

ascertaining a range of virtual DSN addresses assigned to the vault;

determining virtual DSN addresses of the range of virtual DSN addresses that are unallocated to storage units of the set of storage units to produce unallocated virtual DSN addresses; and

determining to allocate a least some of the unallocated virtual DSN addresses to the new storage unit as the virtual DSN addresses.

4. The method of claim 1 further comprises:

sending a vault affiliation message to the new storage unit regarding assignment of the virtual DSN addresses, an affiliation with the vault, and data access processing parameters for the vault.

5. The method of claim 1 wherein the determining the virtual DSN addresses of the virtual memory vault to allocate the new storage unit comprises:

determining virtual DSN addresses that are currently allocated to a storage unit of the set of storage units to produce allocated virtual DSN addresses; and

reallocating some of the allocated virtual DSN addresses as the virtual DSN addresses to the new storage unit.

6. The method of claim 1 further comprises:

determining to affiliate the new storage unit with a second virtual memory vault, wherein the second virtual memory vault is mapped to a second set of storage units of the DSN;

determining second virtual DSN addresses of the second virtual memory vault to allocate the new storage unit; and

updating second vault information regarding the second virtual memory vault to include the allocation of the second virtual DSN addresses to the new storage unit.

7. The method of claim 1 further comprises:

detecting a plurality of new storage units within the DSN, wherein the plurality of new storage units includes the new storage unit;

determining to map at least some of the plurality of new storage units to a new virtual memory vault;

determining new virtual DSN addresses for the new virtual memory vault; and

creating new vault information regarding the new virtual memory vault to include the allocation of the new virtual DSN addresses to the at least some of the plurality of new storage units.

8. The method of claim 1 further comprises:

detecting a plurality of new storage units within the DSN, wherein the plurality of new storage units includes the new storage unit;

determining to affiliate at least some of the plurality of new storage units with the virtual memory vault;

determining sets of virtual DSN addresses of the virtual memory vault to allocate the at least some of the plurality of new storage units; and

updating the vault information to include the allocation of the sets of virtual DSN addresses of the virtual memory vault to allocate the at least some of the plurality of new storage units.

9. A non-transitory computer readable storage medium having accessible therefrom a set of instructions interpretable by a processing module, the set of instructions being configured to cause the processing module to carry out operations for:

detecting a new storage unit within a dispersed storage network (DSN);

determining to affiliate the new storage unit with a virtual memory vault, wherein the virtual memory vault is mapped a set of storage units of the DSN, wherein data objects are dispersed storage error encoded into pluralities of sets of encoded data slices that are stored in the set of storage units;

determining virtual DSN addresses of the virtual memory vault to allocate the new storage unit; and

updating vault information regarding the virtual memory vault to include the allocation of the virtual DSN addresses to the new storage unit.

10. The storage medium of claim 9 , wherein the set of instructions further causes the processing module to carry out operations for the determining to affiliate the new storage unit with the virtual memory vault by at least one of:

determining that available physical memory of one or more storage units of the set of storage units is below a desired availability threshold; and

receiving a request to allocate the DSN addresses of the virtual memory vault to the new storage unit.

11. The storage medium of claim 9 , wherein the set of instructions further causes the processing module to carry out operations for the determining the virtual DSN addresses of the virtual memory vault to allocate the new storage unit by:

ascertaining a range of virtual DSN addresses assigned to the vault;

determining virtual DSN addresses of the range of virtual DSN addresses that are unallocated to storage units of the set of storage units to produce unallocated virtual DSN addresses; and

determining to allocate a least some of the unallocated virtual DSN addresses to the new storage unit as the virtual DSN addresses.

12. The storage medium of claim 9 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

sending a vault affiliation message to the new storage unit regarding assignment of the virtual DSN addresses, an affiliation with the vault, and data access processing parameters for the vault.

13. The storage medium of claim 9 , wherein the set of instructions further causes the processing module to carry out operations for the determining the virtual DSN addresses of the virtual memory vault to allocate the new storage unit by:

determining virtual DSN addresses that are currently allocated to a storage unit of the set of storage units to produce allocated virtual DSN addresses; and

reallocating some of the allocated virtual DSN addresses as the virtual DSN addresses to the new storage unit.

14. The storage medium of claim 9 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

determining to affiliate the new storage unit with a second virtual memory vault, wherein the second virtual memory vault is mapped to a second set of storage units of the DSN;

determining second virtual DSN addresses of the second virtual memory vault to allocate the new storage unit; and

updating second vault information regarding the second virtual memory vault to include the allocation of the second virtual DSN addresses to the new storage unit.

15. The storage medium of claim 9 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

detecting a plurality of new storage units within the DSN, wherein the plurality of new storage units includes the new storage unit;

determining to map at least some of the plurality of new storage units to a new virtual memory vault;

determining new virtual DSN addresses for the new virtual memory vault; and

creating new vault information regarding the new virtual memory vault to include the allocation of the new virtual DSN addresses to the at least some of the plurality of new storage units.

16. The storage medium of claim 9 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

detecting a plurality of new storage units within the DSN, wherein the plurality of new storage units includes the new storage unit;

determining to affiliate at least some of the plurality of new storage units with the virtual memory vault;

determining sets of virtual DSN addresses of the virtual memory vault to allocate the at least some of the plurality of new storage units; and

updating the vault information to include the allocation of the sets of virtual DSN addresses of the virtual memory vault to allocate the at least some of the plurality of new storage units.

17. A computing device comprises:

an interface;

memory; and

a processing module operably coupled to the interface and the memory, wherein the processing module is operable to:

detect a new storage unit within a dispersed storage network (DSN);

determine to affiliate the new storage unit with a virtual memory vault, wherein the virtual memory vault is mapped to a set of storage units of the DSN, wherein data objects are dispersed storage error encoded into pluralities of sets of encoded data slices that are stored in the set of storage units;

determine virtual DSN addresses of the virtual memory vault to allocate the new storage unit; and

update vault information regarding the virtual memory vault to include the allocation of the virtual DSN addresses to the new storage unit.

18. The computing device of claim 17 , wherein the processing module functions to determine to affiliate the new storage unit with the virtual memory vault by at least one of:

determining that available physical memory of one or more storage units of the set of storage units is below a desired availability threshold; and

receiving a request to allocate the DSN addresses of the virtual memory vault to the new storage unit.

19. The computing device of claim 17 , wherein the processing module functions to determine the virtual DSN addresses of the virtual memory vault to allocate the new storage unit by:

ascertaining a range of virtual DSN addresses assigned to the vault;

determining virtual DSN addresses of the range of virtual DSN addresses that are unallocated to storage units of the set of storage units to produce unallocated virtual DSN addresses; and

determining to allocate a least some of the unallocated virtual DSN addresses to the new storage unit as the virtual DSN addresses.

20. The computing device of claim 17 , wherein the processing module further functions to:

send a vault affiliation message to the new storage unit regarding assignment of the virtual DSN addresses, an affiliation with the vault, and data access processing parameters for the vault.

21. The computing device of claim 17 , wherein the processing module functions to determine the virtual DSN addresses of the virtual memory vault to allocate the new storage unit by:

determining virtual DSN addresses that are currently allocated to a storage unit of the set of storage units to produce allocated virtual DSN addresses; and

reallocating some of the allocated virtual DSN addresses as the virtual DSN addresses to the new storage unit.

22. The computing device of claim 17 , wherein the processing module further functions to:

determine to affiliate the new storage unit with a second virtual memory vault, wherein the second virtual memory vault is mapped to a second set of storage units of the DSN;

determine second virtual DSN addresses of the second virtual memory vault to allocate the new storage unit; and

update second vault information regarding the second virtual memory vault to include the allocation of the second virtual DSN addresses to the new storage unit.

23. The computing device of claim 17 , wherein the processing module further functions to:

detect a plurality of new storage units within the DSN, wherein the plurality of new storage units includes the new storage unit;

determine to map at least some of the plurality of new storage units to a new virtual memory vault;

determine new virtual DSN addresses for the new virtual memory vault; and

create new vault information regarding the new virtual memory vault to include the allocation of the new virtual DSN addresses to the at least some of the plurality of new storage units.

24. The computing device of claim 17 , wherein the processing module further functions to:

detect a plurality of new storage units within the DSN, wherein the plurality of new storage units includes the new storage unit;

determine to affiliate at least some of the plurality of new storage units with the virtual memory vault;

determine sets of virtual DSN addresses of the virtual memory vault to allocate the at least some of the plurality of new storage units; and

update the vault information to include the allocation of the sets of virtual DSN addresses of the virtual memory vault to allocate the at least some of the plurality of new storage units.

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 Jul 20, 2014
From: BAPTIST, ANDREW; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 033347/0900 →