Modify the deployment model

Modify the deployment modelΒΆ

Caution

Manila deprecation notice

In the MCP 2019.2.7 update, the OpenStack Manila component is being considered for deprecation. The corresponding capabilities are still available, although not further enhanced.

Starting with the 2019.2.11 maintenance update, the OpenStack Manila component will no longer be supported by Mirantis. For those existing customers who have the Manila functionality explicitly included in the scope of their contracts, Mirantis will continue to fulfill the corresponding support obligations.

You can enable Manila while generating you deployment metadata model using the Model Designer UI before deploying a new OpenStack environment. You can also deploy Manila on an existing OpenStack environment.

The manila-share service may use different backends. This section provides examples of deployment model modifications for the LVM backend. You may need to tailor these examples depending on the needs of your deployment. Basically, the examples provided in this section describe the following configuration:

  • The OpenStack Manila API and Scheduler services run on the OpenStack share nodes.
  • The manila-share service and other services per share role may reside on the share or cmp nodes depending on the backend type. The default LVM-based shares reside on the cmp nodes.

To modify the deployment model:

  1. While generating a deployment metadata model for your new MCP cluster as described in Create a deployment metadata model, select Manila enabled and modify its parameters as required in the Product parameters section of the Model Designer UI.

  2. If you have already generated a deployment metadata model without the Manila service or to enable this feature on an existing MCP cluster:

    1. Open your Reclass model Git project repository on the cluster level.

    2. Modify the ./infra/config.yml file:

      classes:
      ...
      - system.reclass.storage.system.openstack_share_multi
      - system.salt.master.formula.pkg.manila
      
    3. Modify the ./infra/secrets.yml file:

      parameters:
        _param:
          ...
          keystone_manila_password_generated: some_password
          mysql_manila_password_generated: some_password
          manila_keepalived_vip_password_generated: some_password
      
    4. Modify the ./openstack/compute/init.yml file:

      classes:
      ...
      - system.manila.share
      - system.manila.share.backend.lvm
      
      parameters:
        _param:
          ...
          manila_lvm_volume_name: <lvm_volume_name>
          manila_lvm_devices: <list_of_lvm_devices>
      
    5. Modify the ./openstack/control/init.yml file:

      classes:
      ...
      - system.keystone.client.service.manila
      - system.keystone.client.service.manila2
      - system.manila.client
      
      parameters:
        _param:
          ...
          manila_share_type_default_extra_specs:
            driver_handles_share_servers: False
            snapshot_support: True
            create_share_from_snapshot_support : True
            mount_snapshot_support : True
            revert_to_snapshot_support : True
      
    6. Modify the ./openstack/database.yml file:

      classes:
      ...
      - system.galera.server.database.manila
      
    7. Modify the ./openstack/init.yml file:

      parameters:
        _param:
          ...
          manila_service_host: ${_param:openstack_share_address}
          keystone_manila_password: ${_param:keystone_manila_password_generated}
          mysql_manila_password: ${_param:mysql_manila_password_generated}
          openstack_share_address: <share_address>
          openstack_share_node01_address: <share_node01_address>
          openstack_share_node02_address: <share_node02_address>
          openstack_share_node03_address: <share_node03_address>
          openstack_share_node01_share_address: ${_param:openstack_share_node01_address}
          openstack_share_node02_share_address: ${_param:openstack_share_node02_address}
          openstack_share_node03_share_address: ${_param:openstack_share_node03_address}
          openstack_share_node01_deploy_address: <share_node01_deploy_address>
          openstack_share_node02_deploy_address: <share_node02_deploy_address>
          openstack_share_node03_deploy_address: <share_node03_deploy_address>
          openstack_share_hostname: <share_hostname>
          openstack_share_node01_hostname: <share_node01_hostname>
          openstack_share_node02_hostname: <share_node02_hostname>
          openstack_share_node03_hostname: <share_node03_hostname>
      
        linux:
          network:
            host:
              ...
              share01:
                address: ${_param:openstack_share_node01_address}
                names:
                  - ${_param:openstack_share_node01_hostname}
                  - ${_param:openstack_share_node01_hostname}.${_param:cluster_domain}
                share02:
                  address: ${_param:openstack_share_node02_address}
                  names:
                  - ${_param:openstack_share_node02_hostname}
                  - ${_param:openstack_share_node02_hostname}.${_param:cluster_domain}
                share03:
                  address: ${_param:openstack_share_node03_address}
                  names:
                  - ${_param:openstack_share_node03_hostname}
                  - ${_param:openstack_share_node03_hostname}.${_param:cluster_domain}
      
    8. Modify the ./openstack/proxy.yml file:

      classes:
      ...
      - system.nginx.server.proxy.openstack.manila
      
    9. Modify the ./openstack/share.yml file:

      classes:
      ...
      - system.linux.system.repo.mcp.extra
      - system.linux.system.repo.mcp.apt_mirantis.openstack
      - system.apache.server.single
      - system.manila.control.cluster
      - system.keepalived.cluster.instance.openstack_manila_vip
      
      parameters:
        _param:
          ...
          manila_cluster_vip_address: ${_param:openstack_control_address}
          cluster_vip_address: ${_param:openstack_share_address}
          cluster_local_address: ${_param:single_address}
          cluster_node01_hostname: ${_param:openstack_share_node01_hostname}
          cluster_node01_address: ${_param:openstack_share_node01_address}
          cluster_node02_hostname: ${_param:openstack_share_node02_hostname}
          cluster_node02_address: ${_param:openstack_share_node02_address}
          cluster_node03_hostname: ${_param:openstack_share_node03_hostname}
          cluster_node03_address: ${_param:openstack_share_node03_address}
          keepalived_vip_interface: ens3
          keepalived_vip_address: ${_param:cluster_vip_address}
          keepalived_vip_password: ${_param:manila_keepalived_vip_password_generated}
          apache_manila_api_address: ${_param:cluster_local_address}
      
        manila:
          common:
            default_share_type: default
      
  3. If you plan a separate storage network for Manila, define the manila_share_address parameter on the cluster level of your Reclass model in the file that contains the configuration for the Manila share backend. For example, for the LVM backend, modify the ./openstack/compute/init.yml file:

    parameters:
      _param:
        manila_share_address: <ip_address>
    
  4. Proceed to Install the Manila components.