Reliable array of independent nodes
||This article contains wording that promotes the subject in a subjective manner without imparting real information. (October 2011)|
||This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. (December 2009)|
Reliable/redundant array of independent/inexpensive nodes (RAIN) is an architectural approach to computing and network-attached computer storage (or NAS), that combines commodity or low-cost computing hardware with management software to address the reliability and availability shortcomings of non-redundant NAS systems.
While RAID protects data stored at the physical disk (or 'block') level, RAIN protects data stored at the file-system level, hence RAIN and RAID differ architecturally only in terms of the level of abstraction at which they are implemented. 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 array of RAIN servers knows where each copy is and, in the event of a server failure, can make additional copies (RAID-1 or 'mirroring') or use a parity-based RAID scheme (RAID-5 or similar) as necessary to keep an appropriate level of redundancy.
RAIN can also be used with tasks which require many instructions per second to be processed. Instead of using a "tightly-coupled" computing cluster with specialized hardware, arrays of inexpensive RAIN nodes can be assembled. The management software transmits tasks to various computers and, in the event of a failure, will retry the task until a node responds. Many distributed computing projects 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 none of the sharing users online have a copy of some part of a file, the file becomes 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, Coral, and Tahoe-LAFS projects).
- Bohossian, Vasken; Charles C. Fan, Paul S. LeMahieu, Marc D. Riedel, Lihao Xu, Jehoshua Bruck (September 1999). Computing in the RAIN. A Reliable Array of Independent Nodes (pdf). Caltech. Retrieved July 2008.
- Exagrid CTO Dave Therrien's product-specific RAIN definition
- RAIN in Neurocomputing
- RAIN in practice
|This computer storage–related article is a stub. You can help Wikipedia by expanding it.|