IP Library Granted Patent US 10,395,054
Granted Patent B2
US 10,395,054 · App. 13/464,015 · Granted Aug 27, 2019

Updating distributed storage network software

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,395,054
App. No.
13/464,015
Granted
Aug 27, 2019
Kind
B2
Abstract

A method begins by a management unit of a distributed storage network (DSN) sending a software update notice to a plurality of dispersed storage (DS) units, wherein the plurality of DS units supports a plurality of digital storage vaults, and wherein a set of DS units of the plurality of DS units supports a digital storage vault of the plurality of digital storage vaults. The method continues with a DS processing module determining an update strategy for updating software of the plurality of DS units such that at least a decode threshold number of DS units of the set of DS units is continually available to service access requests to the digital storage vault and updating the software of at least some of the plurality of DS units in accordance with the update strategy.

Claims (42)

1. A method of updating software in a dispersed storage network (DSN), where the DSN includes a plurality of dispersed storage (DS) units having respective software including one or more of operating system software, bootstrap firmware, application software, and software configuration information, the method comprising:

identifying, by one DS unit of the plurality of DS units, a subset of other DS units of the plurality of DS units, wherein the one DS unit and the subset of other DS units comprise a set of DS units of the plurality of DS units that store encoded data slices associated with a storage vault, and wherein a decode threshold number of DS units is needed to reconstruct original data encoded in the encoded data slices;

determining, by the one DS unit, that a number of available DS units in the set of DS units is greater than the decode threshold number of DS units based on an update status of the set of DS units; and

updating, by the one DS unit, the respective software of the set of DS units, including the respective software of the one DS unit itself, while maintaining availability of the decode threshold number of DS units of the set of DS units to service access requests to the original data encoded in the encoded data slices.

2. The method of claim 1 , wherein updating the respective software of the set of DS units is based on a status of a software update, and wherein the status of the software update includes one or more of a mandatory critical status, a mandatory noncriticial status, and an optional status.

3. The method of claim 1 , wherein the update status includes one or more of available, unavailable, already updated, and not already updated.

4. The method of claim 1 , further comprising:

identifying, by the one DS unit, a plurality of storage vaults supported by the one DS unit, wherein the plurality of storage vaults includes the storage vault;

identifying, by the one DS unit, a plurality of subsets of other DS units of the plurality of DS units, wherein the plurality of subsets of other DS units includes the subset of other DS units, wherein the one DS unit and each of the plurality of subsets of other DS units comprise each of a plurality of sets of DS units that support one of the plurality of storage vaults, and wherein the plurality of sets of DS units includes the set of DS units; and

updating, by the one DS unit, the respective software of the set of DS units, including the respective software of the one DS unit itself, while maintaining availability of decode threshold numbers of DS units of each set of DS units in the plurality of sets of DS units.

5. The method of claim 4 ,

wherein another set of DS units of the plurality of sets of DS units stores other encoded data slices associated with another one of the plurality of storage vaults, wherein the decode threshold number of DS units is needed to reconstruct other original data encoded in the other encoded data slices, further comprising:

determining, by the one DS unit, that another number of available DS units in the another set of DS units is equal to the decode threshold number of DS units; and

determining, by the one DS unit, to update the respective software of the another set of DS units later in response to determining the another number of available DS units is equal to the decode threshold number of DS units.

6. The method of claim 4 ,

wherein another set of DS units of the plurality of sets of DS units stores other encoded data slices associated with another storage vault, wherein another decode threshold number of DS units is needed to reconstruct other original data encoded in other encoded data slices, and wherein the another decode threshold number of DS units is different from the decode threshold number of DS units, further comprising:

determining, by the one DS unit, that another number of available DS units in the another set of DS units is greater than the another decode threshold number of DS units;

determining a priority for each of the plurality of storage vaults, wherein a first one of the plurality of storage vaults corresponding the set of DS units has a first priority, and wherein a second one of the plurality of storage vaults corresponding to the another set of DS units has a second priority; and

updating, by the one DS unit the respective software of the another set of DS units while maintaining availability of the another decode threshold number of DS units of the another set of DS units, wherein the set of DS units is updated before the another set of DS units in response to the first priority being greater than the second priority.

7. A dispersed storage (DS) unit of a dispersed storage network (DSN), where the DSN includes a plurality of DS units, including the DS unit, having respective software including one or more of operating system software, bootstrap firmware, application software, and software configuration information, the DS unit comprising:

a communications interface;

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

identify a subset of other DS units of the plurality of DS units, wherein the DS unit and the subset of other DS units comprise a set of DS units of the plurality of DS units that store encoded data slices associated with a storage vault, wherein a decode threshold number of DS units is needed to reconstruct original data encoded in the encoded data slices;

determine that a number of available DS units in the set of DS units is greater than the decode threshold number of DS units based on an update status of the set of DS units; and

update the respective software of the set of DS units, including the respective software of the DS unit itself, while maintaining availability of the decode threshold number of DS units of the set of DS units to service access requests to the original data encoded in the encoded data slices.

8. The DS unit of claim 7 , wherein the memory further comprises instructions for causing the computer processor to update the respective software of the set of DS units based on a status of a software update and wherein the status of the software update includes one or more of a mandatory critical status, a mandatory noncriticial status, and an optional status.

9. The DS unit of claim 7 , wherein the update status includes one or more of available, unavailable, already updated, and not already updated.

10. The DS unit of claim 7 , wherein the memory further comprises instructions for causing the computer processor to:

identify a plurality of storage vaults supported by the DS unit, wherein the plurality of storage vaults includes the storage vault;

identify a plurality of subsets of other DS units of the plurality of DS units, wherein the plurality of subsets of other DS units includes the subset of other DS units, wherein the DS unit and each of the plurality of subsets of other DS units comprise each of a plurality of sets of DS units that support one of the plurality of storage vaults, and wherein the plurality of sets of DS units includes the set of DS units; and

update the respective software of the set of DS units, including the respective software of the DS unit itself, while maintaining availability of decode threshold numbers of DS units of each set of DS units in the plurality of sets of DS units.

11. The DS unit of claim 10

wherein another set of DS units of the plurality of sets of DS units stores other encoded data slices associated with another one of the plurality of storage vaults, wherein the decode threshold number of DS units is needed to reconstruct other original data encoded in the other encoded data slices, and wherein the memory further comprises instructions for causing the computer processor to:

determine that another number of available DS units in the another set of DS units is equal to the decode threshold number of DS units; and

determine to update the respective software of the another set of DS units later in response to determining the another number of available DS units is equal to the decode threshold number of DS units.

12. The DS unit of claim 10

wherein another set of DS units of the plurality of sets of DS units stores other encoded data slices associated with another storage vault, wherein another decode threshold number of DS units is needed to reconstruct other original data encoded in other encoded data slices, wherein the another decode threshold number of DS units is different from the decode threshold number of DS units, and wherein the memory further comprises instructions for causing the computer processor to:

determine that another number of available DS units in the another set of DS units is greater than the another decode threshold number of DS units;

determine a priority for each of the plurality of storage vaults, wherein a first one of the plurality of storage vaults corresponding the set of DS units has a first priority, and wherein a second one of the plurality of storage vaults corresponding to the another set of DS units has a second priority; and

update the respective software of the another set of DS units while maintaining the availability of the another decode threshold number of DS units of the another set of DS units, wherein the set of DS units is updated before the another set of DS units in response to the first priority being greater than the second priority.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2012
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 028170/0953 →
Cited By (1)
US 12,265,623