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:
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:
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.
If you have already generated a deployment metadata model without the Manila service or to enable this feature on an existing MCP cluster:
Open your Reclass model Git project repository on the cluster level.
Modify the ./infra/config.yml
file:
classes:
...
- system.reclass.storage.system.openstack_share_multi
- system.salt.master.formula.pkg.manila
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
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>
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
Modify the ./openstack/database.yml
file:
classes:
...
- system.galera.server.database.manila
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}
Modify the ./openstack/proxy.yml
file:
classes:
...
- system.nginx.server.proxy.openstack.manila
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
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>
Proceed to Install the Manila components.