Management of network devices within a dispersed data storage network

Information

  • Patent Grant
  • 8819781
  • Patent Number
    8,819,781
  • Date Filed
    Monday, April 20, 2009
    15 years ago
  • Date Issued
    Tuesday, August 26, 2014
    10 years ago
Abstract
A method of managing devices in a dispersed data storage network is disclosed. A device list is maintained including entries for every device in the dispersed data storage network. Each entry lists a public key, a network address, and hardware identifier for the corresponding device. On startup each device sends a request to join the network. The request includes the device's public key, network address, and hardware identifier. The request is compared with the device list, and, based on the comparison, and, in some cases, administrator action, the request is granted or denied.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS

None


FIELD OF THE INVENTION

The present invention relates generally to systems, apparatus, and methods for managing devices within a network, and more particularly to systems, methods, and apparatus for managing devices within a dispersed data storage network, and more particularly still to systems, methods, and apparatus for automatically determining when device additions, device removals, device hardware modifications, device software modifications, and other changes are made to a dispersed data storage network.


DESCRIPTION OF THE PRIOR ART

Dispersed data storage systems provide storage by utilizing an information dispersal algorithm to slice data into a plurality of data slices, each of which is stored using a separate storage node. When data needs to be read from the dispersed data storage system, the data slices are read from the storage nodes, and the original data is reassembled. Schemes for implementing dispersed data storage systems, such as dispersed data storage networks (“DDSNs”), are known in the art. For example, U.S. Pat. No. 5,485,474 Rabin, describes a system for splitting a segment of digital information into n data slices, each of which is stored in a separate device. When the stored data segment must be retrieved, only m of the original data slices must be read to reconstruct the data segment, where n>m.


Dispersed data storage systems may be implemented as a network, and, when so implemented, will generally be comprised of a plurality of computer systems networked together. Like other networks, the computers comprising a dispersed data storage network are subject to hardware failures, software issues, upgrades, removal, and other modifications. As dispersed data storage networks may be comprise hundreds of machines, and may be implemented so as to span multiple continents, administration workload is of considerable concern. Present dispersed data storage networks require administrators to coordinate changes among themselves to insure proper operation of the network. For example, when a device is added to a dispersed data storage network, the administrators must manually publish the device to users, by, for example, updating a device directory referred to by user's software.


OBJECTS OF THE INVENTION

Accordingly, it is an object of this invention to provide a system apparatus, and method for automatically managing devices within a dispersed data storage network.


Another object of this invention is to provide a system, apparatus, and method for automatically detecting the addition of a device into a dispersed data storage network.


Another object of the invention is to provide a system, apparatus, and method for automatically detecting the modification of a device operating within a dispersed data storage network.


Other advantages of the disclosed invention will be clear to a person of ordinary skill in the art. It should be understood, however, that a system, method, or apparatus could practice the disclosed invention while not achieving all of the enumerated advantages, and that the protected invention is defined by the claims.


SUMMARY OF THE INVENTION

The disclosed invention achieves its objectives by providing a method for adding a device to a dispersed data storage network. The method comprises the steps of receiving a device approval request from a device not part of the dispersed data storage network. The device approval request includes a public key, a network address, and a hardware identifier. The device approval request is compared with a device list that includes one entry for every device in the dispersed data storage network. If no entry is located in the device list that matches the public key, network address, or hardware identifier identified in the approval request, a new entry is created based on the public key, network address, and hardware identifier included in the approval request, and added to the device list.


In a further embodiment, a manager computer comprises a network port adapted to receive a device approval request, a storage device for storing a device list, and a processor coupled to the network port and storage device. The processor compares the device approval request with the device list, and, if a matching entry is not found, creates a new entry based on the device approval request, and adds it to the device list.





BRIEF DESCRIPTION OF THE DRAWINGS

Although the characteristic features of this invention will be particularly pointed out in the claims, the invention itself, and the manner in which it may be made and used, may be better understood by referring to the following description taken in connection with the accompanying drawings forming a part hereof, wherein like reference numerals refer to like parts throughout the several views and in which:



FIG. 1 is a system diagram of a dispersed data storage network implementing the disclosed device management system;



FIG. 2 is a network diagram illustrating the process by which a device is approved into a dispersed data storage network implementing the disclosed device management system;



FIG. 3 is a high level flow chart illustrating a method for managing the addition of a new device to a dispersed data storage network, or the modification of an existing device operating on a dispersed data storage network, in accordance with the disclosed device management system;



FIG. 4 is a flow chart illustrating an method for detecting whether a device matches the characteristics of any other device operating on a dispersed data storage network;



FIG. 4
a is a continuation of the flow chart of FIG. 4;



FIG. 5 is a flow chart illustrating a method for removing a device from a dispersed data storage network;



FIG. 6 is a data structure embodying a device approval request; and



FIG. 7 is a data structure embodying a device entry.





DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT

Referring to the figures and to FIG. 1 in particular, a representative block diagram of a dispersed data storage network utilizing the disclosed device management system is depicted. A manager computer 101 interfaces with a registry computer 105. The registry computer 105 provides information about related devices as well as vault information to a plurality of slice servers 113 as well as one or more grid access computers 119 and any stand-alone clients 115. Networks 103, 107, and 121 allow different components of the dispersed data storage network to communicate. These networks can be of any suitable, high-speed type, such as, for example, the Internet, a LAN, or a WAN. Access client 123 accesses the dispersed data storage network through grid access computers 119.


The registry computer 105, the operation of which is more fully described in U.S. patent application Ser. No. 61/141,494, titled Systems, Methods & Apparatus for Identifying Accessible Dispersed Digital Storage Vaults Utilizing a Centralized Registry, provides information about the dispersed data storage network's topography to other components, such as slice servers 113, stand-alone clients 115, and grid access computers 119.


Access Client 123 issues requests to read and write data segments from the dispersed data storage network to grid access computers 119.


Grid access computers 119 accept requests to read and write data segments from access clients 123. When a read request is received, grid access computers 119 issue data slice read requests to appropriate slice servers 113, read a threshold m number of constituent data slices, and reassemble the requested data segment using a reverse information dispersal algorithm; note that m varies based on the particular dispersed data storage network. The data segment is then returned to the requesting access client 123. When a request to write a data segment is received, grid access computers 119 apply an information dispersal algorithm to the data segment to generate n data slices, where n varies based on the dispersed data storage network. The data slices are then written to appropriate slice servers 113.


Grid access computers 119 also maintain account information for individual users (as opposed to client computer) using a construct referred to herein as a vault. A vault associates client accounts with slice servers 113 and various grid access devices, such as grid access computers 119 and stand-alone clients 115. Vaults and their operation are more fully defined in U.S. applicant Ser. No. 11/973,621 and titled Virtualized Data Storage Vaults on a Dispersed Data Storage Network.


Stand-alone clients 115 are client computers capable of directly accessing slice servers 113, and, accordingly, combine the functions of access clients 123 and grid access computers 119.


It should be noted that persons of skill in the art will realize that the disclosed network topography is not a limitation of the disclosed invention, which could be used with a variety of networks, including other dispersed data storage network topographies, or networks other than dispersed data storage networks.


The disclosed device management system utilizes descriptive information about each device within a network to determine if a change to the device has occurred, or if the device is a new addition to the network. The disclosed device management system is largely automated, although some user interaction may optionally be required to approve a new device, or a device change; nonetheless, the workload of network administrators is greatly reduced by the operation of the disclosed device management system.



FIG. 2 illustrates the process of adding a device to a dispersed data storage network in accordance with the disclosed device management system. As discussed more fully herein, a manager computer 220 maintains a collection of device entries, each of which describe a device in the network. At some point, an administrator installs a new slice server 202 and a new grid access computer 210. The manager computer 220 will then determine that the installed devices are in fact new devices, and not modifications of existing devices, and will give the administrator an option to approve the devices or not. If the devices are not approved into the network, they will be flagged as a denied slice server 204, and a denied grid access computer 214, and will not participate in the network. However, if the administrator does approve the devices, they will be allowed to join the network as an approved slice server 206 and an approved grid access computer 216, and will be accessible with the other slice servers 208 and grid access computers 218.


As part of the disclosed device management system, the manager computer must determine if a device is a new addition to the network, or a hardware/software modification of an existing device. The manager makes this determination by examining three pieces of data, each of which is, under normal circumstances, unique to a particular device within a network. These datapoints are: (1) a device's network address, (2) a device's hardware identifier, and (3) a public encryption key that is unique to a particular device. A network address is an address by which a device is uniquely known within a network. Examples are an Internet protocol version 4 address or an Internet protocol version 6 address. A device's hardware identifier is an identifier that is unique to a particular computer or network device, and is accessible to the device itself. Examples of a suitable hardware identifier are a media access control address (“MAC address”), an Ethernet hardware address, a hardware address, an adapter address, a physical address, a processor identifier, or, where multiple such identifiers exist within a single computer or device, a collection of any of the above. A public encryption key is a numeric key suitable for use with a public-key encryption scheme. Examples of suitable public keys include an RSA public key, a Cramer-Shoup public key, a Paillier public key, an ElGamal public key, a PGP public key, a GPG public key, or any other secure public encryption key.


The manager computer maintains a collection and/or database of every device approved to comprise the dispersed data storage network. This collection and/or database is referred to herein as the device list. In one embodiment of the device list, a separate entry or record is maintained for every device approved to comprise the dispersed data storage network, and each entry will contain, among other information, the three datapoints described above.



FIG. 3 depicts a high level flowchart of a method for managing the addition of a new device to a network, as well as the modification of existing devices. This method, which can be implemented as a software program, routine, or procedure, runs, in one embodiment, on a network device as well as the management computer. Alternatively, the part of the method executed by the management computer can be executed by any other computer within the dispersed data storage network, such as, for example, the registry computer, or a grid access computer.


Generally, the disclosed method functions by comparing the datapoints obtained from a device seeking approval to join the dispersed data storage network with the device entries in the device list. The disclosed method attempts to account for common actions taken by administrators. For example, if the hard drive of a device fails, it is likely that the public key of the device will be deleted, but, when repaired, it will have the same hardware identifier and network address. As another example, when a new device is installed, none of its datapoints should match any device entry. However, the most likely cause of error would be that it was installed with the network address of another device. If so, the disclosed method will catch the error.


In step 302, a network device boots, or begins its initialization sequence. During initialization the network device sends a message to the manager computer requesting approval to join the dispersed data storage network. This request will include the three identifiers described above; namely, the device's network address, the device's hardware identifier, and the device's public key. In step 304, the manager receives this request and, in step 306, calls a device match search procedure. The three identifiers may be passed to the procedure as arguments and/or parameters, or the three identifiers may be accessible to the procedure in some other way. The operation of the device match search procedure is described in FIGS. 4 and 4a.


The device match search procedure can indicate several different circumstances. In some cases, a positive match may be found between the requesting device and a device entry contained within the device list, and, if so, execution will transition to step 308, where the manager will update the device entry corresponding to the requesting device with any new information contained in the request. After updating the appropriate device entry, the method will terminate.


Another possible outcome of the device match search procedure would be that no match was found. If no match is found, execution will transition to step 310, where a determination will be made as to whether the requesting device is a management server. If the device is a management server, execution transitions to step 316, where a new device entry is created and inserted into the device list, after which the method terminates. However, if the device is not a management server, an approval message is displayed to an administrator in step 312. It should be noted that the approval message may be displayed in a variety of ways, none of which are a limitation of the disclosed device management system. For example, the approval message may be displayed on an LCD display coupled to the manager computer, via a remote application to the administrator's workstation, via a remote application to the administrator's wireless mobile phone, via a phone call or text message to the user's phone, or any other suitable way.


In step 314 the administrator is given the option of approving the addition of the device to the dispersed data storage network. It should be noted that the form of this approval is not a limitation of the invention, and any suitable mechanism may be used. Suitable approval mechanisms include selecting “OK” from a pop-up box display by the management computer, making a similar selection from the administrator's own remote computer, making a selection using an application on the administrator's phone, or by responding to a phone call or text message with one or more key strokes. If the administrator approves the new device, execution transitions to step 316 where a new device entry is created and inserted into the device list, and the method terminates. However, if the user does not approve the new device, a device entry is created and marked as denied; denied device entries may be maintained as part of the device list, or may be maintained separately from the device list.


Another possible outcome of the device match search procedure is that a conflict between the requesting device and a single other device X can be discovered. In this case, a conflict message is displayed in step 320. The conflict message may display information about the requesting device, as well as information about the apparent conflict, so as to give the administrator sufficient information to determine if the requesting device is in fact device X. This message may be displayed in any way as described above, and the method of display is not a limitation of the disclosed device management system. In step 322, the administrator is given the opportunity to approve the requesting device, and, if the approval is allowed, the device entry corresponding to device X is updated with the requesting device's information, and the method terminated. However, if the device is not approved, execution transitions to step 318, where a device entry will be created and marked as denied, as described above.


A final possible outcome of the device match search procedure is that a conflict between the requesting device and multiple other devices can be discovered. In this case, an error message is displayed to the administrator in step 326, and the method terminates. As with other displayed messages, the method of display of this message is not a limitation of the disclosed device management system.



FIG. 4 depicts an implementation of the device match search procedure, which comprises a part of the disclosed device management method, system and apparatus. This procedure accesses the three data points of the device requesting to join the dispersed data storage network, as described in FIG. 3 and the above text. The three data points are the requesting device's public key, the requesting device's network address, and the requesting device's hardware identifier.


In steps 402, 404, and 406, the device list is walked and searched for any entry matching the public key, network address, or hardware identifier of the requesting device. Any matching entries are noted, and, if a device with a matching public key is found, variable Dd will be set to the matching entry; if a device with a matching network address is found, variable Dn will be set to the matching entry, and if a device with a matching hardware identifier is found, variable Dp will be set to the matching entry. Execution then transitions to step 408, where a determination is made as to whether the requesting device is a device management server. If the requesting device is not a device management server, execution transitions to the steps outlined in FIG. 4a. However, if the requesting device is a management server, execution transitions to step 412.


In step 412, a determination is made as to whether a device with a matching public key was found. If so, execution transitions to step 414, where a determination is made as to whether a device with a matching network address has been located. If so, in step 416 a determination is made as to whether the device with the matching public key is the same as the device with the matching network address. If so, the entry corresponding to the matching device is returned in step 420. However, if not, the device entry with a matching network address is marked as orphaned in step 418, and the device entry with the matching public key will be returned in step 420.


When executing step 412, if it is determined that there is no device with a matching public key, execution transitions to step 422, where a determination is made as to whether a device with a matching network address exists. If no such device exists, the procedure returns an indication that no matching device was found in step 424. However, if a device with a matching network address is located, a determination is made in step 426 as to whether the matching device is in fact the current management server. If so, the matching device entry is returned in step 432. However, if the matching device is not the current management server, the matching device entry is flagged as orphaned in step 428 and an indication that no matches were found is returned in step 430.


When executing step 408, if it is determined that the requesting device is not a management server, execution transitions to FIG. 4a. In step 454, a determination is made as to whether device entries matching the public key and network address of the requesting device were located. If so, in step 456, a determination is made as to whether the device entry matching the public key of the requesting device is the same as the device entry matching the network address of the requesting device. If so, the device entry matching both the requesting device's public key and network address is returned in step 458. However, if the device entry matching the requesting device's public key is not the same as the device entry matching the requesting device's network address, an indication that multiple devices have been matched is returned in step 458.


When executing step 454, it is determined that both a device matching the public key of the requesting device and the network address of the requesting device have not been found, execution transitions to step 462, where a determination as to whether at least a device entry matching the requesting device's network address was located. If such a device entry was located, execution transitions to step 464, where a determination is made as to whether a device entry having the same hardware identifier as the requesting device was located. If not, a conflict message is returned in step 470, indicating that the requesting device conflicts with the device corresponding with the device entry matching the requesting device's network address. However, if a device entry is found that matches the requesting device's hardware identifier, a determination is made in step 466 as to whether the device entry matching the requesting device's network address is the same as the device entry matching the requesting device's hardware identifier. If not, a conflict message is returned in step 470, indicating that the requesting device conflicts with the device corresponding with the device entry matching the requesting device's network address. However, if the determination made in step 466 is that the device entry matching the requesting device's network address is the same as the device entry matching the requesting device's hardware identifier, execution transitions to step 468, where the matching device entry is returned.


Returning to step 462, if it is determined that there is no device entry with a network address matching the network address of the requesting device, execution transitions to step 472, where a determination is made as to whether a device entry with the same public key as the requesting device was located. If such a device entry was located, it is returned in step 474. However, if no device entry with the same public key as the requesting device was located, execution transitions to step 476, where a determination is made as to whether a device entry with the same hardware identifier as the requesting device was located. If so, execution transitions to step 478, where the matching device entry is returned. However, if no matching device entry is found, execution transitions to step 480, where an indication that no matching device entries were found is returned.



FIG. 5 is a flowchart illustrating a method for removing a device from a dispersed data storage network in accordance with the disclosed device management system. This method may be manually executed by an administrator using an appropriate software tool, or it may be automated to run as a software program, procedure, function, or other form of routine on a computer. In its automated form the method may execute on the management computer, or alternatively, on any other computer within the dispersed data storage network, such as, for example, the registry computer or a grid access computer. In step 502, a device is removed from the registry, and in step 504, the device list entry corresponding to the device to be removed is flagged as deleted.



FIG. 6 depicts a device approval request. The request comprises a certificate signing request 602, the device's network address 604, the hardware characteristics 606 of the device, the device type 608, and the request status 610. The certificate signing request 602 is the device's public key. The hardware characteristics 606 of the device include the base hardware type, processor type, number of drives, amount of total storage, amount of memory, and the device's hardware identifier. The device type 608 field indicates if the device is purposed as a slice server, a grid access computer, a manager, or a registry computer.



FIG. 7 depicts a device entry as maintained by the device list. A device entry comprises a certificate 702, a network address 704, hardware characteristics 706, the device type 708, and whether or not the device has been orphaned 710. A device will be marked as orphaned if, while executing the disclosed device management method, a conflict that cannot be accounted for is discovered between the device entry and a device seeking approval to join the dispersed data storage network.


The foregoing description of the invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or to limit the invention to the precise form disclosed. The description was selected to best explain the principles of the invention and practical application of these principles to enable others skilled in the art to best utilize the invention in various embodiments and various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention not be limited by the specification, but be defined by the claims set forth below.

Claims
  • 1. A method of managing devices in a dispersed data storage network, the method comprises: receiving a device approval request from a slice server;determining whether the device approval request is to add the slice server to a dispersed data storage network (DDSN) or is to update the slice server in a device list based on replacement of a failed hard drive;when the device approval request is to add the slice server to the DDSN: initiating an approval process regarding the slice server;when the slice server is approved, updating the device list to include the slice server, wherein the slice server is one of a set of slice servers that stores data slices of an encoded data segment, wherein “m” of “n” of the stored data slices are needed to reconstruct a data segment; andwhen the device approval request to update the slice server in the device list based on replacement of a failed hard drive, updating the device list.
  • 2. The method of claim 1, wherein the device approval request comprises: a public key, a network address, and a hardware identifier.
  • 3. The method of claim 1, wherein the determining whether the device approval request is to add the slice server comprises: determining that there are no matches of a network address of the device approval request in the device list.
  • 4. The method of claim 1, wherein the determining whether the device approval request is to add the slice server comprises: determining that there are no matches of a hardware identifier of the device approval request in the device list.
  • 5. The method of claim 1 further comprises: determining that the device approval request is to update the slice server in the device list based on update of hardware characteristics of the slice server, wherein the hardware characteristics includes one or more of number of hard drives, amount of total storage, and amount of memory.
  • 6. A managing device of a data dispersed storage network comprises: a network port operable to receive a device approval request via a network from a slice server;memory for storing a device list; anda processor operable to: determine whether the device approval request is to add the slice server to a dispersed data storage network (DDSN) or is to update the slice server in a device list based on replacement of a failed hard drive;when the device approval request is to add the slice server to the DDSN: initiate an approval process regarding the slice server;when the slice server is approved, update the device list to include the slice server, wherein the slice server is one of a set of slice servers that stores data slices of an encoded data segment, wherein “m” of “n” of the stored data slices are needed to reconstruct a data segment; andwhen the device approval request to update the slice server in the device list based on replacement of a failed hard drive, update the device list.
  • 7. The managing device of claim 6, wherein the device approval request comprises: a public key, a network address, and a hardware identifier.
  • 8. The managing device of claim 6, wherein the processor is further operable to determine whether device approval request is to add the slice server by: determining that there are no matches of a network address of the device approval request in the device list.
  • 9. The managing device of claim 6, wherein the processor is further operable to determine whether the device approval request is to add the slice server by: determining that there are no matches of a hardware identifier of the device approval request in the device list.
  • 10. The managing device of claim 6, wherein the processor is further operable to: determine that the device approval request is to update the slice server in the device list based on update of hardware characteristics of the slice server, wherein the hardware characteristics includes one or more of number of hard drives, amount of total storage, and amount of memory.
  • 11. A storage device comprises: a first section for storing a software routine that, when executing by a computer, causes the computer to determine whether the device approval request is to add the slice server to a dispersed data storage network (DDSN);a second section for storing a software routine that, when executing by the computer, causes the computer to, when the device approval request is to add the slice server to the DDSN, initiate an approval process regarding the slice server;a third section for storing a software routine that, when executing by the computer, causes the computer to, when the slice server is approved, update the device list to include the slice server, wherein the slice server is one of a set of slice servers that stores data slices of an encoded data segment, wherein “m” of “n” of the stored data slices are needed to reconstruct a data segment; anda fourth section for storing a software routine that, when executing by the computer, causes the computer to determine that the device approval request is to update the slice server in the device list based on update of hardware characteristics of the slice server, wherein the hardware characteristics includes one or more of number of hard drives, amount of total storage, and amount of memory.
  • 12. The storage device of claim 11, wherein the device approval request comprises: a public key, a network address, and a hardware identifier.
  • 13. The storage device of claim 11, wherein the first section further causes the processor to determine that the device approval request is to add the slice server by: determining that there are no matches of a network address of the device approval request in the device list.
  • 14. The storage device of claim 11, wherein the first section further causes the processor to determine whether the device approval request is to add the slice server by: determining that there are no matches of a hardware identifier of the device approval request in the device list.
US Referenced Citations (105)
Number Name Date Kind
4092732 Ouchi May 1978 A
5454101 Mackay et al. Sep 1995 A
5485474 Rabin Jan 1996 A
5774643 Lubbers et al. Jun 1998 A
5802364 Senator et al. Sep 1998 A
5809285 Hilland Sep 1998 A
5890156 Rekieta et al. Mar 1999 A
5987622 Lo Verso et al. Nov 1999 A
5991414 Garay et al. Nov 1999 A
6012159 Fischer et al. Jan 2000 A
6058454 Gerlach et al. May 2000 A
6128277 Bruck et al. Oct 2000 A
6175571 Haddock et al. Jan 2001 B1
6192472 Garay et al. Feb 2001 B1
6256688 Suetaka et al. Jul 2001 B1
6272658 Steele et al. Aug 2001 B1
6301604 Nojima Oct 2001 B1
6301612 Selitrennikoff et al. Oct 2001 B1
6356949 Katsandres et al. Mar 2002 B1
6366995 Vilkov et al. Apr 2002 B1
6374336 Peters et al. Apr 2002 B1
6415373 Peters et al. Jul 2002 B1
6418539 Walker Jul 2002 B1
6449688 Peters et al. Sep 2002 B1
6567948 Steele et al. May 2003 B2
6571282 Bowman-Amuah May 2003 B1
6609223 Wolfgang Aug 2003 B1
6718361 Basani et al. Apr 2004 B1
6760808 Peters et al. Jul 2004 B2
6785768 Peters et al. Aug 2004 B2
6785783 Buckland Aug 2004 B2
6826711 Moulton et al. Nov 2004 B2
6879596 Dooply Apr 2005 B1
6973473 Novaes et al. Dec 2005 B1
7003688 Pittelkow et al. Feb 2006 B1
7024451 Jorgenson Apr 2006 B2
7024609 Wolfgang et al. Apr 2006 B2
7080101 Watson et al. Jul 2006 B1
7103824 Halford Sep 2006 B2
7103915 Redlich et al. Sep 2006 B2
7111115 Peters et al. Sep 2006 B2
7140044 Redlich et al. Nov 2006 B2
7146644 Redlich et al. Dec 2006 B2
7171493 Shu et al. Jan 2007 B2
7222133 Raipurkar et al. May 2007 B1
7240236 Cutts et al. Jul 2007 B2
7272613 Sim et al. Sep 2007 B2
7536693 Manczak et al. May 2009 B1
RE41030 Pham et al. Dec 2009 E
7636724 de la Torre et al. Dec 2009 B2
7812854 Delker et al. Oct 2010 B1
7849213 Borghetti Dec 2010 B1
7904475 Gladwin et al. Mar 2011 B2
20010044879 Moulton et al. Nov 2001 A1
20010049737 Carolan et al. Dec 2001 A1
20020062422 Butterworth et al. May 2002 A1
20020166079 Ulrich et al. Nov 2002 A1
20030014511 Maekawa et al. Jan 2003 A1
20030018927 Gadir et al. Jan 2003 A1
20030037261 Meffert et al. Feb 2003 A1
20030065617 Watkins et al. Apr 2003 A1
20030084020 Shu May 2003 A1
20030120760 Fortin et al. Jun 2003 A1
20030126059 Hensley et al. Jul 2003 A1
20030145093 Oren et al. Jul 2003 A1
20040024963 Talagala et al. Feb 2004 A1
20040106403 Mori et al. Jun 2004 A1
20040122917 Menon et al. Jun 2004 A1
20040128587 Kenchammana-Hosekote et al. Jul 2004 A1
20040215998 Buxton et al. Oct 2004 A1
20040228493 Ma et al. Nov 2004 A1
20050013368 Gallant et al. Jan 2005 A1
20050100022 Ramprashad May 2005 A1
20050114594 Corbett et al. May 2005 A1
20050120025 Rodriguez et al. Jun 2005 A1
20050125593 Karpoff et al. Jun 2005 A1
20050131993 Fatula, Jr. Jun 2005 A1
20050132070 Redlich et al. Jun 2005 A1
20050144382 Schmisseur Jun 2005 A1
20050216813 Cutts et al. Sep 2005 A1
20050229069 Hassner Oct 2005 A1
20050257055 Anderson Nov 2005 A1
20060047907 Shiga et al. Mar 2006 A1
20060136448 Cialini et al. Jun 2006 A1
20060156059 Kitamura Jul 2006 A1
20060224603 Correll, Jr. Oct 2006 A1
20070079081 Gladwin et al. Apr 2007 A1
20070079082 Gladwin et al. Apr 2007 A1
20070079083 Gladwin et al. Apr 2007 A1
20070088970 Buxton et al. Apr 2007 A1
20070162674 Leichsenring et al. Jul 2007 A1
20070174192 Gladwin et al. Jul 2007 A1
20070211691 Barber et al. Sep 2007 A1
20070214285 Au et al. Sep 2007 A1
20070226224 Wanigasekara-Mohotti et al. Sep 2007 A1
20070234110 Soran et al. Oct 2007 A1
20070283167 Venters, III et al. Dec 2007 A1
20080004017 Shimizu Jan 2008 A1
20080005199 Chen et al. Jan 2008 A1
20080134309 Qin et al. Jun 2008 A1
20080147821 Dietrich et al. Jun 2008 A1
20080301779 Garg et al. Dec 2008 A1
20090094251 Gladwin et al. Apr 2009 A1
20090094318 Gladwin et al. Apr 2009 A1
20100023524 Gladwin et al. Jan 2010 A1
Non-Patent Literature Citations (20)
Entry
Meira, Fernando. “A P2P Backup System for Small and Medium-sized Enterprises”, 2007.
Rhea, Sean, et al. “Maintenance-free global data storage.” Internet Computing, IEEE 5.5 (2001): 40-49.
Shamir; How to Share a Secret; Communications of the ACM; vol. 22, No. 11; Nov. 1979; pp. 612-613.
Rabin; Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance; Journal of the Association for Computer Machinery; vol. 36, No. 2; Apr. 1989; pp. 335-348.
Chung; An Automatic Data Segmentation Method for 3D Measured Data Points; National Taiwan University; pp. 1-8; 1998.
Plank, T1: Erasure Codes for Storage Applications; FAST2005, 4th Usenix Conference on File Storage Technologies; Dec. 13-16, 2005; pp. 1-74.
Wildi; Java iSCSi Initiator; Master Thesis; Department of Computer and Information Science, University of Konstanz; Feb. 2007; 60 pgs.
Legg; Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules; IETF Network Working Group; RFC 4517; Jun. 2006; pp. 1-50.
Zeilenga; Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation; IETF Network Working Group; RFC 4518; Jun. 2006; pp. 1-14.
Smith; Lightweight Directory Access Protocol (LDAP): Uniform Resource Locator; IETF Network Working Group; RFC 4516; Jun. 2006; pp. 1-15.
Smith; Lightweight Directory Access Protocol (LDAP): String Representation of Search Filters; IETF Network Working Group; RFC 4515; Jun. 2006; pp. 1-12.
Zeilenga; Lightweight Directory Access Protocol (LDAP): Directory Information Models; IETF Network Working Group; RFC 4512; Jun. 2006; pp. 1-49.
Sciberras; Lightweight Directory Access Protocol (LDAP): Schema for User Applications; IETF Network Working Group; RFC 4519; Jun. 2006; pp. 1-33.
Harrison; Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms; IETF Network Working Group; RFC 4513; Jun. 2006; pp. 1-32.
Zeilenga; Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map; IETF Network Working Group; RFC 4510; Jun. 2006; pp. 1-8.
Zeilenga; Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names; IETF Network Working Group; RFC 4514; Jun. 2006; pp. 1-15.
Sermersheim; Lightweight Directory Access Protocol (LDAP): The Protocol; IETF Network Working Group; RFC 4511; Jun. 2006; pp. 1-68.
Satran, et al.; Internet Small Computer Systems Interface (iSCSI); IETF Network Working Group; RFC 3720; Apr. 2004; pp. 1-257.
Xin, et al.; Evaluation of Distributed Recovery in Large-Scale Storage Systems; 13th IEEE International Symposium on High Performance Distributed Computing; Jun. 2004; pp. 172-181.
Kubiatowicz, et al.; OceanStore: An Architecture for Global-Scale Persistent Storage; Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2000); Nov. 2000; pp. 1-12.
Related Publications (1)
Number Date Country
20100266131 A1 Oct 2010 US