Using GlusterFS for Cinder with RDO

Since the RDO Liberty release, it has been possible to have Packstack configure Cinder to use GlusterFS as its back end. This assumes you have a GlusterFS share already available for the purpose; if you don’t, just go trough the GlusterFS QuickStart guide to set that up.

Automatic configuration with Packstack

Just add the following two arguments when installing:

   # packstack --arg1 --argX ... --cinder-backend=gluster --cinder-gluster-mounts=$GLUSTERFS_IP:$GLUSTERFS_SHARE_PATH

After the install is finished, if you’re using SELinux, enable the following on the Nova node:

   # setsebool -P virt_use_fusefs on

Manual configuration

To configure Cinder with GlusterFS manually, on an existing deployment:

Install the GlusterFS client (on both Cinder and Nova nodes):

   # yum install glusterfs-fuse

Create a file that contains a list of the GlusterFS shares. The file’s path should be

   /etc/cinder/`<filename>`.conf 

Set the permissions of the file so that the Cinder group will be able to read from it.

  # chmod 664 /etc/cinder/`<filename>`.conf

Configure the path of the file that has all the shares:

   # openstack-config --set /etc/cinder/cinder.conf DEFAULT glusterfs_shares_config /etc/cinder/`<filename>`.conf 

Set the glusterfs_sparsed_volumes value to true for better performances:

   # openstack-config --set /etc/cinder/cinder.conf DEFAULT glusterfs_sparsed_volumes true

Set the GlusterFS driver as the default.

   # openstack-config --set /etc/cinder/cinder.conf DEFAULT volume_driver cinder.volume.drivers.glusterfs.GlusterfsDriver

If using SELinux, enable the following on the Nova node:

   # setsebool -P virt_use_fusefs on

Restart the Cinder’s services.

   # for i in $(systemctl list-unit-files | awk ' /cinder/ { print $1 } ' ); do systemctl restart $i; done