Chapter 4. Creating the Fujitsu ETERNUS environment file

The environment file that you create to configure custom back ends contains the settings for each back end that you want to define. It also contains other settings that are relevant to the deployment of a custom back end. For more information about environment files, see Environment Files in the Advanced Overcloud Customization guide.

In addition, the environment file registers the heat template that you created earlier in Chapter 3, Preparing the Fujitsu ETERNUS heat template. The installation and echo commands defined in the heat template run on the appropriate nodes during deployment.

The following example environment file contains the necessary sections for defining an ETERNUS device as a Block Storage back end. It also creates the back end definitions for each corresponding XML file orchestrated in Section 3.1, “Creating driver definitions for each Fujitsu ETERNUS back end”, and Section 3.2, “Example Fujitsu ETERNUS heat template”.

eternusbackend-env.yaml

resource_registry:
  OS::TripleO::NodeExtraConfig: /home/stack/templates/eternus-temp.yaml  # 1

parameter_defaults: # 2
  CinderEnableIscsiBackend: false
  CinderEnableRbdBackend: false
  CinderEnableNfsBackend: false
  NovaEnableRbdBackend: false
  GlanceBackend: file # 3
  controllerExtraConfig: # 4
    cinder::config::cinder_config:
        FJFC/volume_driver: # 5
            value: cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver
        FJFC/cinder_eternus_config_file: # 6
            value: /etc/cinder/eternus-fc.xml
        FJFC/volume_backend_name: # 7
            value: FJFC
        FJFC/fujitsu_private_key_path:
            value: /etc/cinder/eternus
        FJISCSI/volume_driver: # 8
            value: cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver
        FJISCSI/cinder_eternus_config_file:
            value: /etc/cinder/eternus-iscsi.xml
        FJISCSI/volume_backend_name:
            value: FJISCSI
        FJISCSI/fujitsu_private_key_path:
            value: /etc/cinder/eternus
    cinder_user_enabled_backends: ['FJFC','FJISCSI'] # 9
  CinderVolumeOptVolumes: 10
      - /etc/cinder/eternus-iscsi.xml:/etc/cinder/eternus-iscsi.xml:ro
      - /etc/cinder/eternus-fc.xml:/etc/cinder/eternus-fc.xml:ro
      - /etc/cinder/eternus:/etc/cinder/eternus:ro
  ContainerCinderVolumeImage: registry.connect.redhat.com/fujitsu/rhosp16-fujitsu-cinder-volume-161
  ContainerImageRegistryLogin: True
  ContainerImageRegistryCredentials:
    registry.connect.redhat.com:
      my-username: my-password
    registry.redhat.io:
      my-username: my-password

1
Define custom settings for all nodes before the core Puppet configuration with NodeExtraConfig. This ensures the following configuration when the Block Storage service deploys on the overcloud:
  • The XML configuration files for each back end are present.
  • The private key is generated.
2
Set the following parameters to false to disable the other back end types:
  • CinderEnableIscsiBackend: other iSCSI back ends.
  • CinderEnableRbdBackend: Red Hat Ceph Storage.
  • CinderEnableNfsBackend: NFS.
  • NovaEnableRbdBackend: ephemeral Red Hat Ceph Storage.
3
Define the Image service image storage settings with the GlanceBackend parameter. The following values are supported:
  • file stores images on /var/lib/glance/images on each Controller node.
  • swift uses the Object Storage service for image storage.
  • cinder uses the Block Storage service for image storage.
4
Define custom settings for all Controller nodes with controllerExtraConfig. The cinder::config::cinder_config class is for the Block Storage service. Director stores these back end settings in the /etc/cinder/cinder.conf file of each node.
5
Configure a back end definition named FJFC with the FJFC/ string, and declare the volume_driver parameter under that back end definition. Set the Fibre Channel ETERNUS driver for the back end with the volume_driver parameter, for example cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver.
6
Set the path to the XML configuration file that the driver uses for the back end with cinder_eternus_config_file. Orchestrate the creation of /etc/cinder/eternus-fc.xml through the heat template, such as, /home/stack/templates/eternus-temp.yaml.
7
The volume_backend_name is the name that the Block Storage service uses to enable the back end.
8
Configure a new back end definition with the FJISCSI/ string. Set the iSCSI ETERNUS driver for the back end with the volume_driver parameter, for example cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver.
9
Set and enable custom back ends with the cinder_user_enabled_backends class. Use this class for user-enabled back ends only, such as those defined in the cinder::config::cinder_config class.
10
Make custom configuration files on the host available to a cinder-volume service running in a container with CinderVolumeOptVolumes.

After creating the environment file, you can deploy your configuration. For more information about the environment file /home/stack/templates/eternusbackend-env.yaml, see Chapter 5, Deploying the configured Fujitsu ETERNUS back ends.