RAIN (redundant/reliable array of inexpensive/independent nodes)
What is RAIN (reliable array of independent nodes)?
A reliable array of independent nodes (RAIN) is a heterogeneous cluster of compute and storage nodes connected in a fault-tolerant network topology that incorporates multiple interfaces and redundant hardware. It is similar to RAID (redundant array of independent disks), except that RAIN is applied across nodes rather than disk arrays.
RAIN technology is also called channel bonding, redundant array of independent nodes, random array of independent nodes, redundant array of inexpensive nodes and reliable array of inexpensive nodes.
RAIN originated as a research project that involved a collaboration between the California Institute of Technology, the NASA Jet Propulsion Laboratory and the Defense Advanced Research Projects Agency in the U.S. Researchers were looking at distributed computing and data storage models to support future spaceborne missions. As a result of these efforts, several patents were granted for various proprietary versions of RAIN.
How does RAIN work?
RAIN is an architectural model for building a fault-tolerant cluster of distributed compute and storage systems. A RAIN cluster can be made up of inexpensive off-the-shelf components, with connectivity provided through multiple network interfaces and switches. The RAIN architecture delivers a fully functional environment that provides communications, fault management and distributed storage.
The idea for RAIN came from RAID technology. RAID partitions data across a set of hard drives in a single system. RAIN uses error-correcting codes to partition data across distributed nodes in a network. There is no limit to the number of nodes that can exist in a RAIN cluster. New nodes can be added and maintenance conducted without incurring network downtime.
RAIN can fully automate data recovery on a local area network (LAN) or wide area network (WAN) even if multiple nodes fail. A RAIN cluster includes intelligent software for configuring and monitoring all nodes in the cluster. Administrators can centrally manage the environment through a secure interface that offers a single view of the entire cluster. The RAIN software components work with operating system services and standard network protocols such as Ethernet and TCP/IP.
A RAIN environment relies on communication protocols and fault-tolerant interconnect topologies to ensure reliable operations. The RAIN architecture incorporates scalability, high availability and dynamic reconfigurability. By implementing fault tolerance at the software level, RAIN removes any single point of failure, making it possible to tolerate link, node or switch failures. The RAIN architecture also uses network resources more efficiently as a result of the multiple data paths and redundant storage.
Because networks can represent a single point of failure, RAIN deploys several mechanisms to ensure network fault tolerance. For example, link monitoring tracks the link state at each endpoint to identify faults, and cluster nodes are typically configured with multiple interfaces to provide redundant connections. RAIN also uses fault-tolerant interconnect topologies that are resistant to partitioning issues if network components fail.
Learn which 12 common networking protocols are key for communicating across the internet.