RSolis
RSolis

Reputation: 125

Distributed filesystem in Ubuntu

I'll explain what I'm trying to achieve. It's possible that what I want isn't correctly described as a distributed file system.

There are 5 of us running Ubuntu 12.04. We each have about 200-500GB of files that we want to share from time to time. Each workstation has ownership of the files. From time to time we would like to share files. I would also like the ability for one workstation to edit files on another workstation.

What I would like to do is is have a unified distributed file system so that if we go to the unified file system path it will list all the files from each workstation.

I know it's possible to create network shares to achieve a similar result. This has the problem that it requires the user to check each share for the appropriate file.

I would rather create a single unified share that shows all the shared files, and then redirects to the appropriate computer.

For example cd /unifiedshare ls would take the user to the highest level directory and show all the shared files from 5 different computers

cd /unifiedshare/comp1 ls would list all the files being shared by comp1

I've looked at some of the distributed file system such as Chirp, and it doesn't seem to be quite what I want. I'm not looking to save files across servers/computers. I would rather have the files that are owned by comp1 stay on comp1.

I'm not too worried about access controls or restrictions. We're all in the same building. Suggestions?

I did find this through similar questions, but haven't had a chance to read it over. http://www.openafs.org/main.html

Upvotes: 2

Views: 1698

Answers (3)

bryce
bryce

Reputation: 488

There is also Unionfs. Each person would provide an NFS export of their files. You'd then join them using Unionfs, and then mount it like any other filesystem:

mount -t unionfs -o dirs=/Mine:/His:/Yours:/Theirs none /mnt/everyones

In the aforementioned case of multiple READMEs, /Mine/README would be the one present since /Mine is listed first.

Upvotes: 3

sarnold
sarnold

Reputation: 104050

If the largest problem is knowing which of the five workstations has the files you're interested in editing, probably the easiest way to solve that problem is clever use of the locate(1) and updatedb(8) programs.

Have every machine run updatedb(8) on its own set of exported files; use the -U option to build a database of just the exported files and -o to output the database to the top-level exported directory. Rebuild these via cron, /etc/cron.daily/ for example.

Have every user on every machine set the LOCATE_PATH environment variable in their shells to reference every database exported by all five machines. Then each user can simply run locate README to find every file named README on all five machines.

Upvotes: 1

seandavi
seandavi

Reputation: 2958

I'd suggest looking to NFS sharing of one of the machines.

Alternatively, with software like unison, you can set up a client-server system akin to dropbox with each file having copies of the shared files synced to a central location and back to each client.

Upvotes: 1

Related Questions