Storage Unit Validating Requests for a Storage Vault
20220382634 · 2022-12-01
Assignee
Inventors
Cpc classification
H04L63/0428
ELECTRICITY
G06F3/0644
PHYSICS
H04L9/3242
ELECTRICITY
G06F21/6209
PHYSICS
H04L2209/34
ELECTRICITY
H04L2209/56
ELECTRICITY
G06F11/0727
PHYSICS
G06F11/1076
PHYSICS
H04L63/06
ELECTRICITY
G06F3/0635
PHYSICS
G06F21/6218
PHYSICS
G06F3/067
PHYSICS
H04L67/06
ELECTRICITY
H04W12/35
ELECTRICITY
G06F2211/1028
PHYSICS
H04L67/1097
ELECTRICITY
G06F11/1092
PHYSICS
International classification
G06F11/10
PHYSICS
G06F11/07
PHYSICS
G06F11/14
PHYSICS
G06F11/16
PHYSICS
H04L67/06
ELECTRICITY
H04L9/32
ELECTRICITY
Abstract
A system includes a plurality of storage units each including a network port operably coupled to the network, where one or more storage vaults is associated with the plurality of storage units and each storage vault of the one or more storage vaults represents a software-constructed grouping of storage units of the plurality of storage units, where the software-constructed grouping of storage units stores encoded data slices, where a data segment is encoded using an information dispersal algorithm to produce the encoded data slices, and where a storage unit: receives, via the network port, a request regarding the data segment stored in the software-constructed grouping of storage units, obtains, from a data structure pertaining to the software-constructed grouping of storage units, information regarding the request, determines whether the request is valid based on the information regarding the request, and when the request is valid, the storage unit executes the request.
Claims
1. A system comprising: a plurality of storage units each including a network port operably coupled to a network, wherein one or more storage vaults is associated with the plurality of storage units and each storage vault of the one or more storage vaults represents a software-constructed grouping of storage units of the plurality of storage units, wherein the software-constructed grouping of storage units stores encoded data slices, and wherein a data segment is encoded using an information dispersal algorithm to produce the encoded data slices, and wherein a storage unit of the software-constructed grouping of storage units: receives, via the network port, a request regarding the data segment stored in the software-constructed grouping of storage units; obtains, from a data structure pertaining to the software-constructed grouping of storage units, information regarding the request; determines whether the request is valid based on the information regarding the request; and when the request is valid: executes the request.
2. The system of claim 1, wherein the data structure further includes: an indication of an encryption algorithm used to encrypt the data segment.
3. The system of claim 1, wherein the data structure further includes: an indication of a compression algorithm used to compress the data segment.
4. The system of claim 1, wherein the data structure further includes: an integrity check for the data segment.
5. The system of claim 1, wherein the data structure further includes: an integrity check for an encoded data slice of the encoded data slices.
6. The system of claim 1, wherein the data structure further includes: an encoded data slice count for a number of the encoded data slices.
7. The system of claim 1, wherein the data structure is stored by at least one storage unit of the software-constructed grouping of storage units.
8. The system of claim 1 further comprising: a grid access manager including a network port operably coupled to the network, wherein the grid access manager generates the data structure pertaining to the software-constructed grouping of storage units, wherein the data structure includes an indication of the software-constructed grouping of storage units.
9. The system of claim 1 further comprising: a grid access manager including a network port operably coupled to the network, wherein the grid access manager generates the data structure pertaining to the software-constructed grouping of storage units, wherein the data structure includes the information dispersal algorithm.
10. The system of claim 1 further comprising: a grid access manager including a network port operably coupled to the network, wherein the grid access manager generates the data structure pertaining to the software-constructed grouping of storage units, wherein the data structure includes storage capacity information of the software-constructed grouping of storage units.
11. The system of claim 1 further comprising: a grid access manager including a network port operably coupled to the network, wherein the grid access manager generates the data structure pertaining to the software-constructed grouping of storage units, wherein the data structure includes information regarding one or more associated user accounts.
12. The system of claim 11, wherein the data structure is stored by the grid access manager.
Description
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)
[0032]
[0033]
[0034]
[0035]
DETAILED DESCRIPTION OF THE INVENTION
[0036] Turning to the Figures and to
[0037] As explained herein, the disclosed invention allows a network of slice servers to implement numerous dispersed data storage networks. In accordance with the disclosed invention, a subset of the available slice servers 150-162 is associated with a user account to form a dispersed data storage network. This information is stored in an accessible location, such as a grid access computer 120, 122, on each client computer 102, 104, 106, or elsewhere. This software construct, which is referred to herein as a “vault,” allows for numerous DDSNs to be implemented from a network of slice servers. Each vault makes use of some number of slice servers, and a particular slice server may be associated with any number of vaults. There is no fixed relation between slice servers comprising a vault, except by the vault construct itself. By example, a first vault may be comprised of 16 slice servers. A second vault may utilize 4 slice servers in common with the first vault, and an additional 8 that are not used by the first vault.
[0038] In addition to storing information about what slice servers make up a particular DDSN, a vault will also store other information pertinent to the operation of a DDSN. This information includes what information dispersal algorithm (“IDA”) is used on the DDSN, as well as the information required to operate the particular IDA, such as the number of slices that each data segment is divided into as well, which is also referred to as the quantity n, and the minimum number of data slices required to reconstruct a stored data segment, which is also referred to as the quantity m.
[0039] The vault also conglomerates other information that is relevant to the operation of a DDSN. The total storage that is available in a particular vault is stored, as well as the amount of storage that is presently occupied by data segments. In a fee-for-service system, this will prevent a particular user from using more storage than was paid for. In addition, a particular vault may require that data be encrypted, either before it is sliced, after it is sliced, or both before and after it is sliced. Accordingly, the vault structure can contain a field indicating that data segments and/or data slices are encrypted, as well as the particular algorithm that is used for encryption.
[0040] For certain applications, data stored on a DDSN may be compressed to increase the total amount of storage available. However, the use of compression can increase the time required to write and retrieve data. Accordingly, the vault can contain a field indicating if compression is to be used, and what type of compression should be used. In addition, while almost every DDSN makes use of integrity checks, certain applications may be better served by different types of integrity checks. For this purpose, the vault may contain a field allowing a user to specify a specific type of integrity check to be used for stored data segments as well as for stored data slices.
[0041] In addition to storing information about the particular DDSN associated with a vault, a vault may also include an access control list specifying which accounts are allowed to access the vault, and what permissions are associated with that account. For example, one user may have full access to a vault, while another user may only be allowed to read data segments from the vault, and not write data segments to, or modify data segments stored on the vault.
[0042]
[0043]
[0044]
[0045]
[0046] As may be used herein, the terms “substantially” and “approximately” provides an industry-accepted tolerance for its corresponding term and/or relativity between items. Such an industry-accepted tolerance ranges from less than one percent to fifty percent and corresponds to, but is not limited to, component values, integrated circuit process variations, temperature variations, rise and fall times, and/or thermal noise. Such relativity between items ranges from a difference of a few percent to magnitude differences. As may also be used herein, the term(s) “operably coupled to”, “coupled to”, and/or “coupling” includes direct coupling between items and/or indirect coupling between items via an intervening item (e.g., an item includes, but is not limited to, a component, an element, a circuit, and/or a module) where, for indirect coupling, the intervening item does not modify the information of a signal but may adjust its current level, voltage level, and/or power level. As may further be used herein, inferred coupling (i.e., where one element is coupled to another element by inference) includes direct and indirect coupling between two items in the same manner as “coupled to”. As may even further be used herein, the term “operable to” or “operably coupled to” indicates that an item includes one or more of power connections, input(s), output(s), etc., to perform, when activated, one or more its corresponding functions and may further include inferred coupling to one or more other items. As may still further be used herein, the term “associated with”, includes direct and/or indirect coupling of separate items and/or one item being embedded within another item. As may be used herein, the term “compares favorably”, indicates that a comparison between two or more items, signals, etc., provides a desired relationship. For example, when the desired relationship is that signal 1 has a greater magnitude than signal 2, a favorable comparison may be achieved when the magnitude of signal 1 is greater than that of signal 2 or when the magnitude of signal 2 is less than that of signal 1.
[0047] The present invention has also been described above with the aid of method steps illustrating the performance of specified functions and relationships thereof. The boundaries and sequence of these functional building blocks and method steps have been arbitrarily defined herein for convenience of description. Alternate boundaries and sequences can be defined so long as the specified functions and relationships are appropriately performed. Any such alternate boundaries or sequences are thus within the scope and spirit of the claimed invention.
[0048] The present invention has been described, at least in part, in terms of one or more embodiments. An embodiment of the present invention is used herein to illustrate the present invention, an aspect thereof, a feature thereof, a concept thereof, and/or an example thereof. A physical embodiment of an apparatus, an article of manufacture, a machine, and/or of a process that embodies the present invention may include one or more of the aspects, features, concepts, examples, etc. described with reference to one or more of the embodiments discussed herein.
[0049] The present invention has been described above with the aid of functional building blocks illustrating the performance of certain significant functions. The boundaries of these functional building blocks have been arbitrarily defined for convenience of description. Alternate boundaries could be defined as long as the certain significant functions are appropriately performed. Similarly, flow diagram blocks may also have been arbitrarily defined herein to illustrate certain significant functionality. To the extent used, the flow diagram block boundaries and sequence could have been defined otherwise and still perform the certain significant functionality. Such alternate definitions of both functional building blocks and flow diagram blocks and sequences are thus within the scope and spirit of the claimed invention. One of average skill in the art will also recognize that the functional building blocks, and other illustrative blocks, modules and components herein, can be implemented as illustrated or by discrete components, application specific integrated circuits, processors executing appropriate software and the like or any combination thereof.