I just came across RAIN, Redundant Array of Independent Network interfaces, aka Channel Bonding for the first time.
Is this a technology which is worth implementing? Any pitfalls? Or would one be better off upgrading to fiber?
Bonding is very useful - it's significantly cheaper than fibre, you can bond any number (within reason) of interfaces across different NICs and you can implement it with existing hardware. It can be used for load balancing, link redundancy and increase of network throughput. Beware of the intermediate network hardware (bonded crossovers are a good place to get your feet) and (in linux) use iperf to test your throughput.
Linux bonding configuration useful howto
As a side note, to implement link redundancy with identical NICs (getting deep into high availablility and all associated issues) you must consider the NIC drivers the single point of failure. You could always use NICs from multiple vendors to mitigate for bugs in their software :)
I've never heard it called "RAIN", but yes, I'm using it in several Customer sites. I've seen the best load-balacing and increase in throughput with switches and NICs that support 802.3ad link aggregation, but you can do it with proprietary flavors, too.
The only thing fiber would get you is 10Gb/sec connectivity, AFAIK. Copper gigabit NICs run at the same speed as fiber gigabit NICs and are cheaper for the NIC and the connection into the switch.
Above and beyond any increase in aggregate bandwidth to the server computer, I like that any one of the individual connections in the aggregated set can fail while maintaining connectivity. I have yet to see a switch that can handle spanning an 802.3ad link aggregation group across multiple blades or switches in a stack, so the potential for redundancy is limited, however.