Simple CEPH container with CEPH-fuse clients
Since I like to play around with Docker volumes one day, I have to get used to CEPH somehow. :)
I started by creating a single container that hosts all ceph-daemons needed and which pushes the necessary information to consuls key/value store: qnib/ceph-mono.
A little stack to demonstrate it could be find - as usual - in my stack repository:
$ git clone -b ceph-helloworld https://github.com/ChristianKniep/orchestra.git $ cd orchestra/ceph-helloworld/ $ docker-compose up -d $ docker-compose up -d Creating consul Pulling ceph (qnib/ceph-mono:latest)... *snip* Status: Downloaded newer image for qnib/d-ceph-fuse:latest Creating cephhelloworld_client_1 $
After a couple of seconds Consul (
<docker-host>:8500) should be all green:
To show that it works between different containers we spin up some more clients:
$ docker-compose scale client=5 Creating and starting 2 ... done Creating and starting 3 ... done Creating and starting 4 ... done Creating and starting 5 ... done $
Now we can create a file in one container and it's automatically appears in the others.
$ docker exec -ti cephhelloworld_client_1 touch /ceph/testfile_$(date +%F) $ docker exec -ti cephhelloworld_client_2 ls -l /ceph/ total 0 -rw-r--r-- 1 root root 0 Dec 14 15:12 testfile_2015-12-14 $
Some bigger files:
$ docker exec -ti cephhelloworld_client_3 dd if=/dev/zero of=/ceph/test50MB_$(date +%s) bs=1MB count=50 $ docker exec -ti cephhelloworld_client_4 ls -l /ceph/ total 48829 -rw-r--r-- 1 root root 50000000 Dec 14 15:14 test50MB_1450106080 -rw-r--r-- 1 root root 0 Dec 14 15:12 testfile_2015-12-14
That's about it... :)