Configure a GlusterFS back end
This section explains how to configure OpenStack Block Storage
to use GlusterFS as a back end. You must be able to access the
GlusterFS shares from the server that hosts the
cinder volume
service.
The
cinder volume service
is named openstack-cinder-volume on the
following distributions:CentOSFedoraopenSUSERed Hat Enterprise
LinuxSUSE Linux Enterprise
In Ubuntu and Debian distributions, the
cinder volume
service is named cinder-volume.
Mounting GlusterFS volumes requires utilities and libraries
from the glusterfs-fuse package. This
package must be installed on all systems that will access
volumes backed by GlusterFS.
The utilities and libraries required for mounting GlusterFS
volumes on Ubuntu and Debian distributions are available from
the glusterfs-client package instead.
For information on how to install and configure
GlusterFS, refer to the
GlusterDocumentation
page.Configure GlusterFS for OpenStack Block Storage
The GlusterFS server must also be configured accordingly in
order to allow OpenStack Block Storage to use GlusterFS shares:
Log in as root to the
GlusterFS server.
Set each Gluster volume to use the same UID and GID as
the cinder user:
#gluster volume set VOL_NAME storage.owner-uid cinder-uid#gluster volume set VOL_NAME storage.owner-gid cinder-gidWhere:VOL_NAME is the
Gluster volume name.cinder-uid is the UID of the cinder user.cinder-gid is the GID of the cinder user.
The default UID and GID of the
cinder user is
165 on most distributions.
Configure each Gluster volume to accept
libgfapi connections. To do
this, set each Gluster volume to allow insecure ports:
#gluster volume set VOL_NAME server.allow-insecure on
Enable client connections from unprivileged ports.
To do this, add the following line to
/etc/glusterfs/glusterd.vol:
option rpc-auth-allow-insecure on
Restart the glusterd service:
#service glusterd restartConfigure Block Storage to use a GlusterFS back end
After you configure the GlusterFS service, complete these
steps:
Log in as root to the system
hosting the cinder volume service.
Create a text file named
glusterfs
in /etc/cinder/.Add an entry to
/etc/cinder/glusterfs for each
GlusterFS share that OpenStack Block Storage should use
for back end storage. Each entry should be a separate line,
and should use the following format:HOST:/VOL_NAME
Where:
HOST is the IP address
or host name of the Red Hat Storage server.
VOL_NAME is the name an
existing and accessible volume on the GlusterFS
server.
Optionally, if your environment requires additional
mount options for a share, you can add them to the
share's entry:
HOST:/VOL_NAME -o OPTIONS
Replace OPTIONS with a
comma-separated list of mount options.
Set /etc/cinder/glusterfs to be
owned by the root user and the
cinder group.
#chown root:cinder /etc/cinder/glusterfsSet /etc/cinder/glusterfs to be
readable by members of the cinder
group:
#chmod 0640 FILEConfigure OpenStack Block Storage to use the
/etc/cinder/glusterfs file created
earlier. To do so, open the
/etc/cinder/cinder.conf configuration
file and set the
glusterfs_shares_config configuration
key to /etc/cinder/glusterfs.
On
distributions that include
openstack-config, you can
configure this by running the following command instead:
#openstack-config --set /etc/cinder/cinder.conf \
DEFAULT glusterfs_shares_config /etc/cinder/glusterfsThe following
distributions include
openstack-config:CentOSFedoraopenSUSERed Hat Enterprise LinuxSUSE Linux EnterpriseConfigure OpenStack Block Storage to use the correct
volume driver, namely
cinder.volume.drivers.glusterfs. To do
so, open the /etc/cinder/cinder.conf
configuration file and set the
volume_driver configuration key to
cinder.volume.drivers.glusterfs.
On
distributions that include
openstack-config, you can
configure this by running the following command instead:
#openstack-config --set /etc/cinder/cinder.conf \
DEFAULT volume_driver cinder.volume.drivers.glusterfs.GlusterfsDriver
You can now restart the service to apply the configuration.
To restart the
cinder volume service
on CentOS, Fedora, openSUSE, RedHat Enterprise Linux, or SUSE
Linux Enterprise, run:#service openstack-cinder-volume restartTo restart the
cinder volume service
on Ubuntu or Debian, run:#service cinder-volume restartOpenStack Block Storage is now configured to use a GlusterFS
back end.
In /etc/cinder/cinder.conf, the
glusterfs_sparsed_volumes
configuration key determines whether volumes are
created as sparse files and grown as needed or fully
allocated up front. The default and recommended value
of this key is true, which ensures
volumes are initially created as sparse files.
Setting glusterfs_sparsed_volumes
to false will result in volumes
being fully allocated at the time of creation. This
leads to increased delays in volume creation.
However, should you choose to set
glusterfs_sparsed_volumes to
false, you can do so directly in
/etc/cinder/cinder.conf.On
distributions that include
openstack-config, you can
configure this by running the following command instead:
#openstack-config --set /etc/cinder/cinder.conf \
DEFAULT glusterfs_sparsed_volumes falseIf a client host has SELinux enabled, the
virt_use_fusefs Boolean should also be
enabled if the host requires access to GlusterFS volumes on
an instance. To enable this Boolean, run the following command
as the root user:
#setsebool -P virt_use_fusefs onThis command also makes the Boolean persistent across
reboots. Run this command on all client hosts that require
access to GlusterFS volumes on an instance. This includes all
compute nodes.