Change-Id: I40999b1eb923fc3796cbb6d982e03d39cdf8c720 Implements: blueprint consistency-file-rename
4.9 KiB
Configure an NFS storage back end
This section explains how to configure OpenStack Block Storage to use
NFS storage. You must be able to access the NFS shares from the server
that hosts the cinder
volume service.
Note
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
.
Configure Block Storage to use an NFS storage back end
Log in as
root
to the system hosting thecinder
volume service.Create a text file named
nfsshares
in the/etc/cinder/
directory.Add an entry to
/etc/cinder/nfsshares
for each NFS share that thecinder
volume service should use for back end storage. Each entry should be a separate line, and should use the following format:HOST:SHARE
Where:
- HOST is the IP address or host name of the NFS server.
- SHARE is the absolute path to an existing and accessible NFS share.
Set
/etc/cinder/nfsshares
to be owned by theroot
user and thecinder
group:# chown root:cinder /etc/cinder/nfsshares
Set
/etc/cinder/nfsshares
to be readable by members of the cinder group:# chmod 0640 /etc/cinder/nfsshares
Configure the
cinder
volume service to use the/etc/cinder/nfsshares
file created earlier. To do so, open the/etc/cinder/cinder.conf
configuration file and set thenfs_shares_config
configuration key to/etc/cinder/nfsshares
.On distributions that include
openstack-config
, you can configure this by running the following command instead:# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT nfs_shares_config /etc/cinder/nfsshares
The following distributions include openstack-config:
- CentOS
- Fedora
- openSUSE
- Red Hat Enterprise Linux
- SUSE Linux Enterprise
Optionally, provide any additional NFS mount options required in your environment in the
nfs_mount_options
configuration key of/etc/cinder/cinder.conf
. If your NFS shares do not require any additional mount options (or if you are unsure), skip this step.On distributions that include
openstack-config
, you can configure this by running the following command instead:# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT nfs_mount_options OPTIONS
Replace OPTIONS with the mount options to be used when accessing NFS shares. See the manual page for NFS for more information on available mount options (
man nfs
).Configure the
cinder
volume service to use the correct volume driver, namelycinder.volume.drivers.nfs.NfsDriver
. To do so, open the/etc/cinder/cinder.conf
configuration file and set the volume_driver configuration key tocinder.volume.drivers.nfs.NfsDriver
.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.nfs.NfsDriver
You can now restart the service to apply the configuration.
Note
The
nfs_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 istrue
, which ensures volumes are initially created as sparse files.Setting
nfs_sparsed_volumes
tofalse
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
nfs_sparsed_volumes
tofalse
, 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 nfs_sparsed_volumes false
Warning
If a client host has SELinux enabled, the
virt_use_nfs
boolean should also be enabled if the host requires access to NFS volumes on an instance. To enable this boolean, run the following command as theroot
user:# setsebool -P virt_use_nfs on
This command also makes the boolean persistent across reboots. Run this command on all client hosts that require access to NFS volumes on an instance. This includes all compute nodes.