Dockerfiles to run a cluster of XtreemFS services in containers. on one box (for demonstration purposes)
Before building the XtreemFS images, ensure that you have the current Ubuntu
baseimage by running
docker pull ubuntu
The images for the DIR, MRC, and OSD services are derived from a common image
named xtreemfs/xtreemfs-common. The containers are build from the XtreemFS Git
repository at https://github.com/xtreemfs/xtreemfs.git. After cloning the
repositoring by running
git clone https://github.com/kris-davison/xtreemfs-docker.git cd xtreemfs-docker
Start by running the build.sh script (This can take quite a while to build and at some stages seems to have errors but this is expected I assume as it actually works.)
Then spin up the cluster on your own machine using the following command...
docker-compose -p xd -f docker-compose.yml up -d
Then to test the cluster spin up a client docker container using the following command. docker run -t -i --privileged xtreemfs/xtreemfs-client /bin/bash
To create a remote folder in the xtreemfs cluster use the following command. (Substitute your own ip address here)
To mount the remote folder to a local folder first create a local folder (in your home dir) with the following command. mkdir ~/MyLocalFolder
To actually mount the remote folder to the newly created one use the following command
mount.xtreemfs <your-ip-address>/MyVolume ~/MyLocalFolder
Navigate to your local folder. cd ~/MyLocalFolder
To create an empty file for testing use the standard linux command below.
To check where the file is (on which node in your cluster) try this command. xtfsutil my-file.txt
To make this file be Replicated on multiple nodes in the cluster you must change the replication policy.
WQRQ or QUORUM - replicates the file up to quorum level which means most nodes in your cluster
RONLY or READONLY - all replicated versions of this file will be read only.
WAR1 or ALL - replicated the file on all nodes in the cluster.
it may be worth adding --full if you want all of your replicated versions of the file to be complete rather than lazy loaded on demand.
xtfsutil -r WQRQ --full ~/my-file.txt
To list suitable available nodes to add a replica of this file onto use this command. xtfsutil -l ~/my-file.txt
To add a replica of the file to one of the available nodes use this command.
xtfsutil -a auto ~/my-file.txt
You can do this with a folder aswell if you like rather than a file which means any files within the folder will be replicated as expected.
For more information on these docker images see https://github.com/xtreemfs/xtreemfs-docker