Redundant Array of Inexpensive Nodes
From Wikipedia, the free encyclopedia
In computer storage circles, the primary mechanism for providing reliable storage of data is Redundant Array of Independent Disks (RAID). Certain RAID configurations use multiple physical hard disks in concert to limit the chances that a hardware failure will result in a loss of data. For example, if you have 2 drives in a RAID1 mirror configuration, data is written to both drives so either of the two drives (but, of course, not both) can fail and the computer can still operate.
A newer, more advanced way of protecting computer storage is through Redundant Array of Inexpensive Nodes or RAIN. While RAID relies on specialized drive controllers or operating system device drivers, RAIN relies on software to organize multiple separate computer servers to provide data reliability. Instead of storing multiple copies of the same data on physically separate hard disks on a server, data is replicated to multiple servers. The software that manages the cluster of RAIN servers knows where the multiple copies live so in the advent of a server failure, it can make additional copies of storage as necessary to keep an appropriate level of redundancy.
RAIN can also be used with tasks which require a lot of compute cycles. Instead of purchasing "tightly-coupled" computing cluster with specialized hardware, collections of inexpensive RAIN nodes can be assembled. The management software then transmits tasks to various computers and in the advent of a failure, will retry the task until a node responds. Many of the distributed computing projects around the globe utilize, to some degree, a RAIN strategy.
Many of the distributed file sharing services such as Gnutella and eDonkey are somewhat similar to RAIN systems, but they do not provide adequate redundancy by design - if a file is only shared by one user, and that user goes offline, the file is inaccessible. A distributed hash table is a better basis for implementing such a service, and the few large-scale distributed file systems that exist are based on them (for example, the chord and coral projects).