cinder/doc/source/install/cinder-storage-install-ubuntu.rst
Jay S. Bryant ff2f4c669c Fix errors preventing doc builds
There were some syntax problems that came over with the
migration of the install docs in commit:
88be92ee71

It appears that the docs build for Cinder is more strict
than what was being done in openstack-manuals as the
syntax issues were causing our build to fail. The next step
in our doc migration is to fix these errors so we can do doc
builds.

Change-Id: I7282b2fa2efb50cbb6490ff36f69b123959b6dde
2017-07-07 13:48:35 -05:00

6.5 KiB

Install and configure a storage node

Prerequisites

Before you install and configure the Block Storage service on the storage node, you must prepare the storage device.

Note

Perform these steps on the storage node.

  1. Install the supporting utility packages:
# apt install lvm2

Note

Some distributions include LVM by default.

  1. Create the LVM physical volume /dev/sdb:

    # pvcreate /dev/sdb
    
    Physical volume "/dev/sdb" successfully created
  2. Create the LVM volume group cinder-volumes:

    # vgcreate cinder-volumes /dev/sdb
    
    Volume group "cinder-volumes" successfully created

    The Block Storage service creates logical volumes in this volume group.

  3. Only instances can access Block Storage volumes. However, the underlying operating system manages the devices associated with the volumes. By default, the LVM volume scanning tool scans the /dev directory for block storage devices that contain volumes. If projects use LVM on their volumes, the scanning tool detects these volumes and attempts to cache them which can cause a variety of problems with both the underlying operating system and project volumes. You must reconfigure LVM to scan only the devices that contain the cinder-volumes volume group. Edit the /etc/lvm/lvm.conf file and complete the following actions:

    • In the devices section, add a filter that accepts the /dev/sdb device and rejects all other devices:

      devices {
      ...
      filter = [ "a/sdb/", "r/.*/"]

      Each item in the filter array begins with a for accept or r for reject and includes a regular expression for the device name. The array must end with r/.*/ to reject any remaining devices. You can use the vgs -vvvv command to test filters.

      Warning

      If your storage nodes use LVM on the operating system disk, you must also add the associated device to the filter. For example, if the /dev/sda device contains the operating system:

      filter = [ "a/sda/", "a/sdb/", "r/.*/"]

      Similarly, if your compute nodes use LVM on the operating system disk, you must also modify the filter in the /etc/lvm/lvm.conf file on those nodes to include only the operating system disk. For example, if the /dev/sda device contains the operating system:

      filter = [ "a/sda/", "r/.*/"]

Install and configure components

  1. Install the packages:

    # apt install cinder-volume
  2. Edit the /etc/cinder/cinder.conf file and complete the following actions:

    • In the [database] section, configure database access:

      [database]
      # ...
      connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder

      Replace CINDER_DBPASS with the password you chose for the Block Storage database.

    • In the [DEFAULT] section, configure RabbitMQ message queue access:

      [DEFAULT]
      # ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller

      Replace RABBIT_PASS with the password you chose for the openstack account in RabbitMQ.

    • In the [DEFAULT] and [keystone_authtoken] sections, configure Identity service access:

      [DEFAULT]
      # ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      # ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = cinder
      password = CINDER_PASS

      Replace CINDER_PASS with the password you chose for the cinder user in the Identity service.

      Note

      Comment out or remove any other options in the [keystone_authtoken] section.

    • In the [DEFAULT] section, configure the my_ip option:

      [DEFAULT]
      # ...
      my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

      Replace MANAGEMENT_INTERFACE_IP_ADDRESS with the IP address of the management network interface on your storage node, typically 10.0.0.41 for the first node in the example architecture <overview-example-architectures>.

  • In the [lvm] section, configure the LVM back end with the LVM driver, cinder-volumes volume group, iSCSI protocol, and appropriate iSCSI service:

    [lvm]
    # ...
    volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
    volume_group = cinder-volumes
    iscsi_protocol = iscsi
    iscsi_helper = tgtadm
    • In the [DEFAULT] section, enable the LVM back end:

      [DEFAULT]
      # ...
      enabled_backends = lvm

      Note

      Back-end names are arbitrary. As an example, this guide uses the name of the driver as the name of the back end.

    • In the [DEFAULT] section, configure the location of the Image service API:

      [DEFAULT]
      # ...
      glance_api_servers = http://controller:9292
    • In the [oslo_concurrency] section, configure the lock path:

      [oslo_concurrency]
      # ...
      lock_path = /var/lib/cinder/tmp

Finalize installation

  1. Restart the Block Storage volume service including its dependencies:

    # service tgt restart
    # service cinder-volume restart