Drawings
is a schematic block diagram of an embodiment of a dispersed or distributed storagenetwork (DSN) in accordance with the present invention;
Figure 1 is a schematic block diagram of an embodiment of a dispersed, or distributed, storagenetwork DSN 100 that includes a plurality of computing devices 102, a managing unit 122, an integrity processing unit 114, and a DSN memory 116. The components of the DSN 100 are coupled to a network112, which may include one or more wireless and/or wire lined communication systems; one or more non-public intranet systems and/or public internet systems; and/or one or more local area networks (LAN) and/or wide area networks (WAN).
The DSN memory 116 includes a plurality of storage units 118 that may be located at geographically different sites (e.g., one in chicago, one in milwaukee, etc.), at a common site, or a combination thereof. For example, if the DSN memory 116 includes eight storage units 118, each storage unit is located at a different site. As another example, if the DSN memory 116 includes eight storage units 118, all eight storage units are located at the same site. As yet another example, if the DSN memory 116 includes eight storage units 118, a first pair of storage units are at a first common site, a second pair of storage units are at a second common site, a third pair of storage units are at a third common site, and a fourth pair of storage units are at a fourth common site. Note that a DSN memory 116 may include more or less than eight storage units 118. Further note that each storage unit 118 includes a computing core (as shown in Figure 2, or components thereof) and a plurality of memory devices for storing dispersed error encoded data.
Each of the computing devices 102, the managing unit 122, and the integrity processing unit 114 include a computing core 104, which includes network interfaces 108. Computing devices 102 may each be a portable computing device and/or a fixed computing device. A portable computing device may be a social networking device, a gaming device, a cell phone, a smart phone, a digital assistant, a digital music player, a digital video player, a laptop computer, a handheld computer, a tablet, a video game controller, and/or any other portable device that includes a computing core. A fixed computing device may be a computer (PC), a computer server, a cable set-top box, a satellite receiver, a television set, a printer, a fax machine, home entertainment equipment, a video game console, and/or any type of home or office computing equipment. Note that each of the managing unit 122 and the integrity processing unit 114 may be separate computing devices, may be a common computing device, and/or may be integrated into one or more of the computing devices 102 and/or into one or more of the storage units 118.
Each interface 108, 108, and 108 includes software and hardware to support one or more communication links via the network112 indirectly and/or directly. For example, interface 108 supports a communication link (e.g., wired, wireless, direct, via a LAN, via the network112, etc.) between computing devices 14 and 102. As another example, interface 108 supports communication links (e.g., a wired connection, a wireless connection, a LAN connection, and/or any other type of connection to/from the network112) between computing devices 102 and 102 and the DSN memory 116. As yet another example, interface 108 supports a communication link for each of the managing unit 122 and the integrity processing unit 114 to the network112.
Computing devices 102 and 102 include a dispersed storage (DS) client module 106, which enables the computing device to dispersed storage error encode and decode data (e.g., data 110) as subsequently described. In this example embodiment, computing device 102 functions as a dispersed storage processing agent for computing device 14. In this role, computing device 102 dispersed storage error encodes and decodes data on behalf of computing device 14. With the use of dispersed storage error encoding and decoding, the DSN 100 is tolerant of a significant number of storage unit failures (the number of failures is based on parameters of the dispersed storage error encoding function) without loss of data and without the need for a redundant or backup copies of the data. Further, the DSN 100 storesdata for an indefinite period of time without data loss and in a secure manner (e.g., the system is very resistant to unauthorized attempts at accessing the data).
In operation, the managing unit 122 performs DS management services. For example, the managing unit 122 establishes distributed data storage parameters (e.g., vault creation, distributed storage parameters, security parameters, billing information, user profile information, etc.) for computing devices 102 individually or as part of a group of user devices. As a specific example, the managing unit 122 coordinates creation of a vault (e.g., a virtual memory block associated with a portion of an overall namespace of the DSN) within the DSN memory 116 for a user device, a group of devices, or for public access and establishes per vault dispersed storage (DS) error encoding parameters for a vault. The managing unit 122 facilitates storage of DS error encoding parameters for each vault by updating registry information of the DSN 100, where the registry information may be stored in the DSN memory 116, a computing device 102, the managing unit 122, and/or the integrity processing unit 114.
The managing unit 122 creates and stores user profile information (e.g., an access control list (ACL)) in local memory and/or within memory of the DSN memory 116. The user profile information includes authentication information, permissions, and/or the security parameters. The security parameters may include encryption/decryption scheme, one or more encryption keys, key generation scheme, and/or data encoding/decoding scheme.
The managing unit 122 creates billing information for a particular user, a user group, a vault access, public vault access, etc. For instance, the managing unit 122 tracks the number of times a user accesses a non-public vault and/or public vaults, which can be used to generate a per-access billing information. In another instance, the managing unit 122 tracks the amount of data stored and/or retrieved by a user device and/or a user group, which can be used to generate a per-data-amount billing information.
As another example, the managing unit 122 performs network operations, network administration, and/or network maintenance. Network operations includes authenticating user data allocation requests (e.g., read and/or write requests), managing creation of vaults, establishing authentication credentials for user devices, adding/deleting components (e.g., user devices, storage units, and/or computing devices with a DS client module 106) to/from the DSN 100, and/or establishing authentication credentials for the storage units 118. Network administration includes monitoring devices and/or units for failures, maintaining vault information, determining device and/or unit activation status, determining device and/or unit loading, and/or determining any other system level operation that affects the performance level of the DSN 100. Network maintenance includes facilitating replacing, upgrading, repairing, and/or expanding a device and/or unit of the DSN 100.
The integrity processing unit 114 performs rebuilding of `bad` or missing encoded data slices. At a high level, the integrity processing unit 114 performs rebuilding by periodically attempting to retrieve/list encoded data slices, and/or slice names of the encoded data slices, from the DSN memory 116. For retrieved encoded slices, they are checked for errors due to data corruption, outdated version, etc. If a slice includes an error, it is flagged as a `bad` slice. For encoded data slices that were not received and/or not listed, they are flagged as missing slices. Bad and/or missing slices are subsequently rebuilt using other retrieved encoded data slices that are deemed to be good slices to produce rebuilt slices. The rebuilt slices are stored in the DSN memory 116.
is a schematic block diagram of an embodiment of a computing core in accordance with the present invention;
Figure 2 is a schematic block diagram of an embodiment of a computing core 104 that includes a processing module 208, a memory controller 204, main memory 206, a video graphics processing unit 202, an input/output (TO) i/o controller 210, a peripheral component interconnect (PCI) interface 218, an IO interface module 212, at least one IO device interface module 214, a Read only memory (ROM) basic input output system (BIOS) 216, and one or more memory interface modules. The one or more memory interface module(s) includes one or more of a universal serial bus (USB) interface module 220, a host bus adapter (HBA) interface module 222, a network interface module 224, a flash interface module 226, a hard drive interface module 228, and a DSN interface module 230.
The DSN interface module 230 functions to mimic a conventional operating system (OS) file system interface (e.g., network file system (NFS), flash file system (FFS), disk file system (DFS), file transfer protocol (FTP), web-based distributed authoring and versioning (WebDAV), etc.) and/or a block memory interface (e.g., small computer system interface (SCSI), internet small computer system interface (iSCSI), etc.). The DSN interface module 230 and/or the network interface module 224 may function as one or more of the interface 108 of Figure 1. Note that the IO device interface module 214 and/or the memory interface modules 220-230 may be collectively or individually referred to as IO ports.
Parts List
100
distributed, storage network (DSN)
102
computing device
104
computing core
106
ds dispersed storage (DS) client module
108
interface
110
data
112
114
integrity processing unit
116
DSN memory
118
storage units
120
managing unit
202
video graphics processing unit
204
memory controller
206
main memory
208
processing module
210
io controller
212
IO interface module
214
IO device interface module
216
Read only memory (ROM) basic input output system (BIOS)
218
peripheral component interconnect (PCI) interface
220
universal serial bus (USB) interface module
222
host bus adapter (HBA) interface module
224
network interface module
226
flash interface module
228
hard drive interface module
230
DSN interface module
Terms/Definitions
common computing device
universal serial bus
interface 30
other portable device
access control list
decodes data
DS error encoding parameters
good slices
internet small computer system interface
different site
storage unit
times
amount
system
devices
network
key generation scheme
non-public vault
peripheral component interconnect
encryption/decryption scheme
vault access
part
missing slices
slices
memory devices
further note
encoded data slices
bad and/or missing slices
parameters
stores
operation
WebDAV
peripheral component interconnect (PCI) interface
file transfer protocol
unauthorized attempts
connection
indefinite period
handheld computer
host bus adapter
milwaukee
user profile information
one or more communication links
error
second pair
data corruption
fourth pair
role
computer
digital assistant
IO device interface module
network interface module
data slices
network maintenance
printer
network operations
per-data-amount billing information
home
first common site
wide area networks
devices 12
public internet systems
portable computing device
network interfaces
error encoded data
unit
storage
slice
storage unit failures
`bad` slice
chicago
one or more encryption keys
video graphics processing unit
other type
smart phone
DSN memory
main memory
cable set-top box
backup copies
video game controller
outdated version
data loss
slice names
tablet
computing devices
behalf
DS management services
one or more wireless and/or wire
computer server
memory interface modules
portion
file system interface
rebuilt slices
data
dispersed storage (DS) client module
network administration
social networking device
creates and stores user profile information
television set
type
per-access billing information
wireless connection
dispersed storage processing agent
LAN connection
eight storage units
user
satellite receiver
one or more local area networks
iSCSI
tolerant
vault information
at least one IO device interface module
performance level
FIGS
communication systems
vault creation
fax machine
user device
permissions
one or more memory interface modules
module
universal serial bus (USB) interface module
requests
high level
memory controller
need
public access and establishes
user devices
wired connection
flash file system
local memory
fixed computing device
office computing equipment
computing core
read only memory
input/output
devices and/or units
one or more non-public intranet systems
same site
particular user
example embodiment
secure manner
gaming device
first pair
decode data
storage error encodes
replacing
authentication credentials
embodiment
device and/or unit
managing creation
network file system
storage (DS) error encoding parameters
registry information
loss
managing unit
dispersed storage error encoding function
interface
significant number
fourth common site
information
Read only memory (ROM) basic input output system (BIOS)
small computer system interface
video game console
example
vault
communication links
disk file system
group
time
second common site
separate computing devices
communication link
public vault access
schematic block diagram
memory
failures
digital video player
IO interface module
creation
plurality
integrity
cell phone
security parameters
reference
vaults
yet another example
third common site
geographically different sites
storage units
specific example
authentication information
storage parameters
data encoding/decoding scheme
components
io controller
computing device
home entertainment equipment
overall namespace
number
integrity processing unit
block memory interface
third pair
host bus adapter (HBA) interface module
errors
conventional operating system
user data allocation requests
DSN interface module
web-based distributed authoring and versioning
IO ports
one or more memory interface module(s)
data storage parameters
other system level operation
common site
public vaults
virtual memory block
dispersed storage error encoding and decoding
device and/or unit activation status
dispersed storage error encode
user group
instance
processing module
digital music player
laptop computer
device and/or unit loading
flash interface module
combination
software and hardware
redundant
distributed, storage network (DSN)
hard drive interface module