I need to implement a distributed storage system for a set of nodes(devices) connected in a mesh network.
So what basically my design goals are:
- The storage system should be capable of handling dynamic entry and exit of nodes.
- Replication (for fault tolerance).
For this i am thinking of using a Distributed file system. Every node could access data in the other nodes in a transparent manner.
Are there some simple, easily pluggable opensource implementations?
Thanks for your thoughts!
OpenAFS is a well supported, cross platform distributed file system solution used widely, which can do all of what you said.
Ceph, when it reaches production quality, might be a good choice.
OpenAFS is quite good. It also allows for a service pool so that a disconnected node still has a copy of their data. i.e. you work on your laptop which is an AFS node, but, files that are in your distributed storage modified recently still have a local copy. When you reconnect, those modified files are then resynced.
GlusterFS/Lustre is another decent one. I had some performance problems with GlusterFS on write-heavy content, but, it worked very well.
http://www.cleversafe.org/dispersed-storage/ is another possible solution.
http://danga.com/mogilefs/ if you don't require a posix compliant filesystem
If you need open source and fault-tolerant distributed file system then you can use MooseFS. You can install it easily for example on Ubuntu.