This repository has been archived by the owner. It is now read-only.
[UNMAINTAINED] Volume plugin to use GlusterFS as distributed data storage
Switch branches/tags
Nothing to show
Clone or download
Latest commit c9413cb Aug 9, 2016
Failed to load latest commit information.
contrib/upstart upstart script for ubuntu added Jan 13, 2016
rest Fix json tag. Jan 8, 2016
.gitignore 🌅 Jun 19, 2015
.travis.yml Add travis file. Jan 6, 2016
LICENSE 🌅 Jun 19, 2015 Update Aug 9, 2016
Vagrantfile 🌅 Jun 19, 2015
driver.go added basic Capabilities function to the driver Jul 18, 2016
main.go Fix lint issues. Jan 8, 2016

Docker volume plugin for GlusterFS

UNMAINTAINED: This library is not maintained anymore. Fork it, copy it or do what you please the the code, but this repository won't get updates and fixes.

This plugin uses GlusterFS as distributed data storage for containers.



Using go (until we get proper binaries):

$ go get


This plugin doesn't create volumes in your GlusterFS cluster yet, so you'll have to create them yourself first.

1 - Start the plugin using this command:

$ sudo docker-volume-glusterfs -servers gfs-1:gfs-2:gfs-3

We use the flag -servers to specify where to find the GlusterFS servers. The server names are separated by colon.

2 - Start your docker containers with the option --volume-driver=glusterfs and use the first part of --volume to specify the remote volume that you want to connect to:

$ sudo docker run --volume-driver glusterfs --volume datastore:/data alpine touch /data/helo

See this video for a slightly longer usage explanation:

Volume creation on demand

This extension can create volumes on the remote cluster if you install in one of the nodes of the cluster.

You need to set two extra flags when you start the extension if you want to let containers to create their volumes on demand:

  • rest: is the URL address to the remote api.
  • gfs-base: is the base path where the volumes will be created.

This is an example of the command line to start the plugin:

$ docker-volume-glusterfs -servers gfs-1:gfs2 \
    -rest http://gfs-1:9000 -gfs-base /var/lib/gluster/volumes

These volumes are replicated among all the peers in the cluster that you specify in the -servers flag.