6.5. Volume Service Configuration

6.5.1. Block Storage Driver Support

The volume service (openstack-cinder-volume) requires access to suitable block storage. As such, Red Hat Enterprise Linux OpenStack Platform provides volume drivers for several supported block storage types. These types include:
  • LVM/iSCSI
  • ThinLVM
  • NFS
  • NetAPP NFS
  • Red Hat Storage (Gluster)
  • Dell EqualLogic
For more detailed information on configuring volume drivers for the Block Storage service, refer to the Volume Drivers section of the Red Hat Enterprise Linux OpenStack Platform Configuration Reference Guide. For instructions on how to set up an NFS or GlusterFS back end, refer to the Manage volumes section of the Red Hat Enterprise Linux OpenStack Platform Cloud Administration Guide.
Both documents are available from the following link:
For instructions on how to set up an LVM back end, refer to Section 6.5.2, “Configure OpenStack Block Storage to use an LVM Storage Back End”.

6.5.2. Configure OpenStack Block Storage to use an LVM Storage Back End

The openstack-cinder-volume service is able to make use of a volume group attached directly to the server on which the service runs. This volume group must be created exclusively for use by the Block Storage service and the configuration updated to point to the name of the volume group.
The following steps must be performed while logged into the system hosting the openstack-cinder-volume service as the root user:

Procedure 6.8. Configuring openstack-cinder-volume to use LVM storage as a back end

  1. Use the pvcreate command to create a physical volume.
    # pvcreate DEVICE
      Physical volume "DEVICE" successfully created
    Replace DEVICE with the path to a valid, unused, device. For example:
    # pvcreate /dev/sdX
  2. Use the vgcreate command to create a volume group.
    # vgcreate cinder-volumes DEVICE
      Volume group "cinder-volumes" successfully created
    Replace DEVICE with the path to the device used when creating the physical volume. Optionally replace cinder-volumes with an alternative name for the new volume group.
  3. Set the volume_group configuration key to the name of the newly created volume group.
    # openstack-config --set /etc/cinder/cinder.conf \
    DEFAULT volume_group cinder-volumes
    The name provided must match the name of the volume group created in the previous step.
  4. Ensure that the correct volume driver for accessing LVM storage is in use by setting the volume_driver configuration key to cinder.volume.drivers.lvm.LVMISCSIDriver.
    # openstack-config --set /etc/cinder/cinder.conf \
    DEFAULT volume_driver cinder.volume.drivers.lvm.LVMISCSIDriver
The openstack-cinder-volume service has been configured to use LVM storage.

6.5.3. Configure SCSI Target Daemon

The volume storage service uses a SCSI target daemon for mounting storage. A SCSI target daemon must be installed on each system hosting an instance of the volume service. Red Hat Enterprise Linux 6.7 and 7.2 use different SCSI target daemons.

Procedure 6.9. Configure a SCSI target daemon for Red Hat Enterprise Linux 6.7

This procedure must be performed on each system hosting an instance of the volume service.
  1. Log in as the root user.
  2. Open the /etc/tgt/targets.conf file.
  3. Add this line to the file:
    include /etc/cinder/volumes/*
  4. Restart the tgtd service.
    # service tgtd restart

Procedure 6.10. Configure a SCSI target daemon for Red Hat Enterprise Linux 7.2

This procedure must be performed on each system hosting an instance of the volume service.
  1. Log in as the root user.
  2. Install the targetcli package.
    # yum install targetcli
  3. Launch the target daemon and configure it to start at boot time.
    # systemctl start target
    # systemctl enable target
  4. Configure the volume service to use the lioadm iSCSI target user-land tool.
    # openstack-config --set /etc/cinder/cinder.conf \
       DEFAULT iscsi_helper lioadm
  5. Set the correct IP address on which the iSCSI daemon should listen (ISCSIIP).
    # openstack-config --set /etc/cinder/cinder.conf \
       DEFAULT iscsi_ip_address ISCSIIP