diff --git a/doc/admin-guide-cloud/ch_blockstorage.xml b/doc/admin-guide-cloud/ch_blockstorage.xml index 26d6a47328..a3eae6b743 100644 --- a/doc/admin-guide-cloud/ch_blockstorage.xml +++ b/doc/admin-guide-cloud/ch_blockstorage.xml @@ -117,6 +117,7 @@ + diff --git a/doc/admin-guide-cloud/section_glusterfs_backend.xml b/doc/admin-guide-cloud/section_glusterfs_backend.xml new file mode 100644 index 0000000000..c1d0833cf8 --- /dev/null +++ b/doc/admin-guide-cloud/section_glusterfs_backend.xml @@ -0,0 +1,286 @@ + +
+ Configure a GlusterFS backend + + This section explains how to configure OpenStack Block Storage + to use GlusterFS as a backend. The used GlusterFS shares must + already exist and be accessible from the server hosting the + cinder volume + service. + + + The + cinder volume service + is named openstack-cinder-volume on the + following distributions: + + CentOS + Fedora + openSUSE + Red Hat Enterprise + Linux + SUSE 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. + + Configuring GlusterFS for the 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-gid + Where: + + 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 restart + + + + Configuring cinder-volume to use GlusterFS + + Once the GlusterFS service is configured as needed, perform + the following procedure: + + + + 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 backend 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/glusterfs + + + Set /etc/cinder/glusterfs to be + readable by members of the cinder + group: + + # chmod 0640 FILE + + + Configure 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/glusterfs + The following + distributions include + openstack-config: + + + CentOS + + + Fedora + + + openSUSE + + + Red Hat Enterprise Linux + + + SUSE Linux Enterprise + + + + + Configure 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 restart + To restart the + cinder volume service + on Ubuntu or Debian, run: + # service cinder-volume restart + + + OpenStack Block Storage is now configured to use a GlusterFS + backend. + + + 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 false + + + If 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 on + This 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. + +