Shared community storage network
First Claim
1. A non-transitory computer-readable storage medium storing computer executable instructions that when executed by a computer control the computer to perform a method of operating a network storage service constructed from a plurality of storage devices, the method comprising:
- aggregating available storage space on a plurality of storage devices, where a member of the plurality of storage devices is accessed via a Wide Area Network (WAN) and has no service level guarantee, where a subset of the plurality of storage devices are super-nodes arranged in a ring network topology;
offering the aggregated storage space to third parties as a network storage service for storing data, the network storage service being offered with a service level guarantee;
coordinating the storage of third party data in the network storage service, where third party data is stored in an encrypted and redundant fashion, where storing third party data in a redundant fashion includes employing erasure encoding on the third party data before storing the third party data;
monitoring usage information of a member of the plurality of storage devices, the usage information reflecting the use of the plurality of storage devices by third parties;
upon determining that a performance level of a member of the subset of the plurality of storage devices has decreased below a threshold performance level, removing the member from the subset;
upon determining that a performance level of a non-member of the subset has increased above a threshold performance level, adding the non-member to the subset, where the performance level is a function of location of a storage device, a bandwidth of a connection to the storage device, a processing capability of the storage device, or a reliability of the storage device; and
charging the third parties in accordance with the determined usage information.
7 Assignments
0 Petitions
Accused Products
Abstract
A hardware and/or software facility for durably and securely storing data within a shared community storage network. A user may have a storage device that they intend to share with others in the network. All or a portion of the storage device is registered with the community storage network as a storage node. Once registered with the network, third party data may be stored on the storage node and remotely accessed by third parties. In addition, data stored on the storage device by the user may be stored in the shared community storage network by encrypting the data, adding redundancy, and distributing it to other storage nodes within the storage network. Data that is stored in the storage network is accessible to the user even if their storage device is inaccessible or fails.
-
Citations
20 Claims
-
1. A non-transitory computer-readable storage medium storing computer executable instructions that when executed by a computer control the computer to perform a method of operating a network storage service constructed from a plurality of storage devices, the method comprising:
-
aggregating available storage space on a plurality of storage devices, where a member of the plurality of storage devices is accessed via a Wide Area Network (WAN) and has no service level guarantee, where a subset of the plurality of storage devices are super-nodes arranged in a ring network topology; offering the aggregated storage space to third parties as a network storage service for storing data, the network storage service being offered with a service level guarantee; coordinating the storage of third party data in the network storage service, where third party data is stored in an encrypted and redundant fashion, where storing third party data in a redundant fashion includes employing erasure encoding on the third party data before storing the third party data; monitoring usage information of a member of the plurality of storage devices, the usage information reflecting the use of the plurality of storage devices by third parties; upon determining that a performance level of a member of the subset of the plurality of storage devices has decreased below a threshold performance level, removing the member from the subset; upon determining that a performance level of a non-member of the subset has increased above a threshold performance level, adding the non-member to the subset, where the performance level is a function of location of a storage device, a bandwidth of a connection to the storage device, a processing capability of the storage device, or a reliability of the storage device; and charging the third parties in accordance with the determined usage information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable medium storing computer executable instructions that when executed by a computer control the computer to perform a method of storing data on a plurality of storage devices physically separated by at least a threshold distance, the method comprising:
-
selecting data for storage; identifying available storage space on a plurality of unaffiliated storage devices that are accessed via a Wide Area Network (WAN), the plurality of unaffiliated storage devices operated in a manner that provides no service-level guarantees with respect to any particular storage device, where a subset of the plurality of unaffiliated storage devices are super-nodes arranged in a ring network topology; upon determining, based upon a set of heuristics, that a member of the plurality of unaffiliated storage devices has achieved a threshold performance level, adding the member of the plurality of unaffiliated storage devices to the subset, where the set of heuristics is based the location of a storage device, a bandwidth of a connection to the storage device, or the processing capability of the storage device; upon determining, based on the set of heuristics, that the performance of a member of the subset has decreased below a threshold performance level, removing the member of the subset from the subset; encrypting the selected data; fragmenting the selected data; and redundantly storing the fragmented selected data in the available storage space, a redundant stored instantiation of the fragmented selected data being made across two or more of the plurality of unaffiliated storage devices, where redundantly storing the fragmented selected data includes applying erasure encoding to the fragmented data before redundantly storing the fragmented data. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification