CONFIGURATION OF AUTOMATED UPDATE ROUTINES
A method for executing a software update within a dispersed storage network (DSN) includes determining, by a management unit of the DSN, a type of the software update. The method further includes generating, based on the type of the software update, a software update plan for updating a set of storage unit groups of the DSN, where a first storage unit group of the set of storage unit groups includes one or more storage units and stores first encoded data slices of pluralities of sets of encoded data slices, and where the software update plan aggressively takes storage units of the set of storage unit groups offline for executing the software update when the type of the software update requires urgency while maintaining a sufficient number of storage units online to fulfill DSN access requests. The method further includes executing, by the management unit, the software update plan to update the set of groups of storage units with the software update.
1 . A method for executing a software update within a dispersed storage network (DSN), the method comprises:
determining, by a management unit of the DSN, a type of the software update;
based on the type of the software update, generating, by the management unit, a software update plan for updating a set of storage unit groups of the DSN, wherein a first storage unit group of the set of storage unit groups includes one or more storage units and stores first encoded data slices of pluralities of sets of encoded data slices, wherein a decode threshold number of encoded data slices of a set of encoded data slices of the pluralities of sets of encoded data slices is needed to recover a data segment of a data object of a plurality of data objects, wherein the software update plan aggressively takes storage units of the set of storage unit groups offline for executing the software update when the type of the software update requires urgency while maintaining a sufficient number of storage units online to fulfill DSN access requests; and
executing, by the management unit, the software update plan to update the set of storage unit groups with the software update.
2 . The method of claim 1 , wherein the type of software update comprises at least one of:
a critical security vulnerability fix;
a major release;
a minor release;
a patch release;
a beta release;
an alpha development release; and
a digitally signed release.
3 . The method of claim 1 further comprises:
accessing, by the management unit, a list of pending software updates for the set of storage unit groups, wherein the pending software updates are prioritized based on respective types;
adding, by the management unit, the software update to the list of pending software updates based on the type of software update; and
generating, by the management unit, a plurality of software plans for the updated list of pending software updates.
4 . The method of claim 1 further comprises:
obtaining, by the management unit, status information from at least some of the storage units of the set of storage unit groups, wherein the status information includes one or more of: a list of current versions of installed software, and an activity level indicator; and
generating, by the management unit, the software update plan based on the status information of the at least some of the storage units.
5 . The method of claim 1 , wherein the generating the software update plan further comprises:
generating, by the management unit, an individual software update plan for each storage unit of the set of storage unit groups; and
sending, by the management unit, the corresponding individual software update plan to each storage unit of the set of storage unit groups.
6 . The method of claim 1 , wherein the generating the software update plan comprises one of:
taking n-k storage unit groups of the set of storage unit groups offline for the software update, wherein n is the total number of groups of the set of storage unit groups which corresponds to a total number of error encoded data slices in the set of encoded data slices, and wherein k is a decode threshold number;
taking n-r storage unit groups offline for the software update, wherein r is a read threshold number;
taking n-w storage unit groups offline for the software update, wherein w is a write threshold number; and
taking one storage unit group offline at a time for the software update.
7 . The method of claim 1 further comprises:
instructing, by the management unit, to utilize a previous version of software until all storage units of the set of storage unit groups are updated or until a last number of storage units of the set of storage unit groups are taken offline for the software update.
8 . The method of claim 1 , wherein the generating the software update plan comprises:
determining, for a group of users, user configuration information that includes one or more of: vault information, user identification information, data type storage information, and DSN subscription information;
identifying storage units of the set of storage unit groups that support the group of users; and
generating the software update plan for the identified storage units in accordance with the user configuration information.
9 . A management unit for executing a software update within a dispersed storage network (DSN), the management unit comprises:
an interface;
memory; and
a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:
determine a type of the software update;
based on the type of the software update, generate a software update plan for updating a set of storage unit groups of the DSN, wherein a first storage unit group of the set of storage unit groups includes one or more storage units and stores first encoded data slices of pluralities of sets of encoded data slices, wherein a decode threshold number of encoded data slices of a set of encoded data slices of the pluralities of sets of encoded data slices is needed to recover a data segment of a data object of a plurality of data objects, wherein the software update plan aggressively takes storage units of the set of storage unit groups offline for executing the software update when the type of the software update requires urgency while maintaining a sufficient number of storage units online to fulfill DSN access requests; and
execute the software update plan to update the set of storage unit groups with the software update.
10 . The management unit of claim 9 , wherein the type of software update comprises at least one of:
a critical security vulnerability fix;
a major release;
a minor release;
a patch release;
a beta release;
an alpha development release; and
a digitally signed release.
11 . The management unit of claim 9 , wherein the processing module is further operable to:
access a list of pending software updates for the set of storage unit groups, wherein the pending software updates are prioritized based on respective types;
add the software update to the list of pending software updates based on the type of software update; and
generate a plurality of software plans for the updated list of pending software updates.
12 . The management unit of claim 9 , wherein the processing module is further operable to:
obtain status information from at least some of the storage units of the set of storage unit groups, wherein the status information includes one or more of: a list of current versions of installed software, and an activity level indicator; and
generate the software update plan based on the status information of the at least some of the storage units.
13 . The management unit of claim 9 , wherein the processing module is further operable to generate the software update plan by:
generating an individual software update plan for each storage unit of the set of storage unit groups; and
sending the corresponding individual software update plan to each storage unit of the set of storage unit groups.
14 . The management unit of claim 9 , wherein the processing module is further operable to generate the software update plan by:
taking n-k storage unit groups of the set of storage unit groups offline for the software update, wherein n is the total number of groups of the set of storage unit groups which corresponds to a total number of error encoded data slices in the set of encoded data slices, and wherein k is a decode threshold number;
taking n-r storage unit groups offline for the software update, wherein r is a read threshold number;
taking n-w storage unit groups offline for the software update, wherein w is a write threshold number; and
taking one storage unit group offline at a time for the software update.
15 . The management unit of claim 9 , wherein the processing module is further operable to:
instruct to utilize a previous version of software until all storage units of the set of storage unit groups are updated or until a last number of storage units of the set of storage unit groups are taken offline for the software update.
16 . The management unit of claim 9 , wherein the processing module is further operable to generate the software update plan by:
determining, for a group of users, user configuration information that includes one or more of: vault information, user identification information, data type storage information, and DSN subscription information;
identifying storage units of the set of storage unit groups that support the group of users; and
generating the software update plan for the identified storage units in accordance with the user configuration information.