I'd like to create storage for thousands of users. I need someone to design and implement a distributed filesystem that will store data distributed on many Linux machines. The filesystem should be: 1) extensible, to extend the storage space I'd like to just plug in in a new machine with hard drive(s) 2) robust, I'd like it to offer some way for automatic backup/data replication 3) fault tolerant, it should detect machine failures and automatically switch to backup copies The filesystem will be accessed by limited number of machines (2-20).
The filesystem has to fulfill the above requirements. You can suggest any other features or architecture changes.