4.4. Configuring image downloads directly from Red Hat Ceph RADOS Block Device (RBD)

When the Image service (glance) uses Red Hat Ceph RADOS Block Device (RBD) as the back end, and the Compute service uses local file-based ephemeral storage, you can configure the Compute service to download images directly from the RBD image repository without using the Image service API. This reduces the time it takes to download an image to the Compute node image cache at instance boot time, which improves instance launch time.

Prerequisites

  • The Image service back end is a Red Hat Ceph RADOS Block Device (RBD).
  • The Compute service is using a local file-based ephemeral store for the image cache and instance disks.

Procedure

  1. Log in to the undercloud as the stack user.
  2. Open your Compute environment file.
  3. To download images directly from the RBD back end, add the following configuration to your Compute environment file:

    parameter_defaults:
      ComputeParameters:
        NovaGlanceEnableRbdDownload: True
        NovaEnableRbdBackend: False
        ...
  4. Optional: If the Image service is configured to use multiple Red Hat Ceph Storage back ends, add the following configuration to your Compute environment file to identify the RBD back end to download images from:

    parameter_defaults:
      ComputeParameters:
        NovaGlanceEnableRbdDownload: True
        NovaEnableRbdBackend: False
        NovaGlanceRbdDownloadMultistoreID: <rbd_backend_id>
        ...

    Replace <rbd_backend_id> with the ID used to specify the back end in the GlanceMultistoreConfig configuration, for example rbd2_store.

  5. Add the following configuration to your Compute environment file to specify the Image service RBD back end, and the maximum length of time that the Compute service waits to connect to the Image service RBD back end, in seconds:

    parameter_defaults:
      ComputeExtraConfig:
        nova::config::nova_config:
          glance/rbd_user:
            value: 'glance'
          glance/rbd_pool:
            value: 'images'
          glance/rbd_ceph_conf:
            value: '/etc/ceph/ceph.conf'
          glance/rbd_connect_timeout:
            value: '5'
  6. Add your Compute environment file to the stack with your other environment files and deploy the overcloud:

    (undercloud)$ openstack overcloud deploy --templates \
     -e [your environment files] \
     -e /home/stack/templates/<compute_environment_file>.yaml
  7. To verify that the Compute service downloads images directly from RBD, create an instance then check the instance debug log for the entry "Attempting to export RBD image:".