Patent ID: 8713127

Claim:
A machine-implemented method that executes on a storage aggregation server, comprising: identifying, by the storage aggregation server, a plurality of contributing servers over a network connection, which is an Internet connection, each of the contributing servers have excess storage capacity that is collectively shared over the network connection as storage organized in blocks, the contributing servers identified, supplied, configured, and registered by a user via a configuration and management server interface; exchanging, by the storage aggregation server, configuration information with each of the contributing servers, each contributing server accesses the excess storage capacity, partitions the excess storage capacity, and communicates real-time events with the other contributing servers based on the configuration information, each contributing server implemented as a separate machine and dispersed over the network from the other contributing servers; logically creating, by the storage aggregation server, logical Redundant Arrays of Independent Disks (RAID) by aggregating the excess storage capacity over the Internet, the logical RAID is accessible via Input/Output (I/O) operations over the Internet using an Internet Small Computer Systems Interface (iSCSI) protocol and appears to be a physical RAID; maintaining, by the storage aggregation server, the logical RAIDS in three pools, a first pool for dedicated contributing servers and a second pool for part-time contributing servers, and wherein the user assigns a role to a particular server that identifies that particular server's pool assignment; and using, by network resources over the network connection and via the iSCSI protocol, the excess storage capacity as if it were another physical RAID when in fact the excess storage capacity is dispersed over the network and managed by the storage aggregation server in cooperation with the contributing servers as the logical RAID, the excess storage capacity shared at the block level and not just the file level.