Distributed educational component adaptable File System
First, install the executables.
- Copy the DecaFS source to the target system (e.g. one of your Raspberry Pis).
- Run
makefrom the root of the source tree. This might take a while, but should complete successfully. - Copy
bin/decafs_baristato the home directory on one node, andbin/decafs_espressoto the home directory on each of the others. With appropriate modifications,scripts/distribute_exe.shwill do this.
Then, use the startup script either directly from one of your nodes or from a separate system.
- Make a copy of
scripts/sample_config.jsonas e.g.scripts/config.json, changing the IP addresses to point to the nodes that have the appropriate executables. - Run
python scripts/startup.py --config scripts/config.json. This should print messages indicating that each of nodes 1-4 has started successfully.
Alternately, you can use tmuxinator to launch DecaFS. Running tmuxinator decafs_local from the root of the source tree will launch a local instance of DecaFS. The configuration file scripts/decafs.yml can be placed in ~/.tmuxinator/ and modified as appropriate to launch DecaFS on your cluster.
If DecaFS doesn't start correctly, this may be due to
- Leftover TCP connections from a recent run. The barista will print "Address already in use", espressos will print "Connection refused", and (on Linux)
netstat -atn|grep 3899will show sockets inTIME_WAITstate. Wait a minute or two and try again. - Corrupted persistent metadata. The barista will immediately crash with a segmentation fault. Delete
decafs_metadata*files on the barista node (and optionally the espresso nodes, for a more complete reset) and try again.
Once DecaFS is running, you can validate using a test client. From another terminal:
- Go to
src/app/decafs_test_client - Change the IP address in
main.cppto point to the barista node make- Run
./nettest