This guide assumes that your undercloud is already installed and ready to deploy an overcloud with Manila enabled.
Ceph deployed by TripleO can be used as a Manila share backend. Make sure that Ceph, Ceph MDS and Manila Ceph environment files are included when deploying the Overcloud:
openstack overcloud deploy --templates \
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml
Note
These and any other environment files or options passed to the overcloud
deploy command, are referenced below as the “full environment”. We assumed
the --plan
flag is not what we want to use for this example.
When mounting a ceph share from a user instance, the user instance needs access to the Ceph public network. When mounting a ceph share from a user instance, the user instance needs access to the Ceph public network, which in TripleO maps to the Overcloud storage network. In an Overcloud which uses isolated networks the tenant network and storage network are isolated from one another so user instances cannot reach the Ceph public network unless the cloud administrator creates a provider network in neutron that maps to the storage network and exposes access to it.
Before deploying Overcloud make sure that there is a bridge for storage network
interface. If single NIC with VLANs network configuration is used (as in
/usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans/
)
then by default br-ex
bridge is used for storage network and no additional
customization is required for Overcloud deployment. If a dedicated interface is
used for storage network (as in
/usr/share/openstack-tripleo-heat-templates/network/config/multiple-nics/
)
then update storage interface for each node type (controller, compute, ceph) to
use bridge. The following interface definition:
- type: interface
name: nic2
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageIpSubnet
should be replaced with:
- type: ovs_bridge
name: br-storage
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageIpSubnet
members:
- type: interface
name: nic2
use_dhcp: false
primary: true
And pass following parameters when deploying Overcloud to allow Neutron to map provider networks to the storage bridge:
parameter_defaults:
NeutronBridgeMappings: datacentre:br-ex,storage:br-storage
NeutronFlatNetworks: datacentre,storage
If the storage network uses VLAN, include storage network in
NeutronNetworkVLANRanges
parameter. For example:
NeutronNetworkVLANRanges: 'datacentre:100:1000,storage:30:30'
Warning
If network isolation is used, make sure that storage provider network
subnet doesn’t overlap with IP allocation pool used for Overcloud storage
nodes (controlled by StorageAllocationPools
heat parameter).
StorageAllocationPools
is by default set to
[{'start': '172.16.1.4', 'end': '172.16.1.250'}]
. It may be neccessary
to shrink this pool, for example:
StorageAllocationPools: [{'start': '172.16.1.4', 'end': '172.16.1.99'}]
When Overcloud is deployed, create a provider network which can be used to access storage network.
If single NIC with VLANs is used, then the provider network is mapped to the default datacentre network:
neutron net-create storage --shared --provider:physical_network \
datacentre --provider:network_type vlan --provider:segmentation_id 30
neutron subnet-create --name storage-subnet \
--allocation-pool start=172.16.1.100,end=172.16.1.120 \
--enable-dhcp storage 172.16.1.0/24
If a custom bridge was used for storage network interface (br-storage
in
the example above) then provider network is mapped to the network specified
by NeutronBridgeMappings
parameter (storage
network in the example
above):
neutron net-create storage --shared --provider:physical_network storage \
--provider:network_type flat
neutron subnet-create --name storage-subnet \
--allocation-pool start=172.16.1.200,end=172.16.1.220 --enable-dhcp \
storage 172.16.1.0/24 --no-gateway
Note
Allocation pool should not overlap with storage network
pool used for storage nodes (StorageAllocationPools
parameter).
You may also need to shrink storage nodes pool size to reserve more IPs
for tenants using the provider network.
Note
Make sure that subnet CIDR matches storage network CIDR (StorageNetCidr
parameter)and
segmentation_id matches VLAN ID for the storage network traffic
(StorageNetworkVlanID
parameter).
Then Ceph shares can be accessed from a user instance by adding the provider network to the instance.
Note
Cloud-init by default configures only first network interface to use DHCP which means that user intances will not have network interface for storage network autoconfigured. You can configure it manually or use dhcp-all-interfaces.
Note
The Deploying with Heat Templates doc has a more detailed explanation of the following steps.
Copy the Manila driver-specific configuration file to your home directory:
Dell-EMC Isilon driver:
sudo cp /usr/share/openstack-tripleo-heat-templates/environments/manila-isilon-config.yaml ~
Dell-EMC Unity driver:
sudo cp /usr/share/openstack-tripleo-heat-templates/environments/manila-unity-config.yaml ~
Dell-EMC Vmax driver:
sudo cp /usr/share/openstack-tripleo-heat-templates/environments/manila-vmax-config.yaml ~
Dell-EMC VNX driver:
sudo cp /usr/share/openstack-tripleo-heat-templates/environments/manila-vnx-config.yaml ~
NetApp driver:
sudo cp /usr/share/openstack-tripleo-heat-templates/environments/manila-netapp-config.yaml ~
Edit the permissions (user is typically stack
):
sudo chown $USER ~/manila-*-config.yaml
sudo chmod 755 ~/manila-*-config.yaml
Edit the parameters in this file to fit your requirements.
/usr/share/openstack-tripleo-heat-templates
.Continue following the TripleO instructions for deploying an overcloud. Before entering the command to deploy the overcloud, add the environment file that you just configured as an argument. For example:
openstack overcloud deploy --templates \
-e <full environment> -e ~/manila-[isilon or unity or vmax or vnx or netapp]-config.yaml
Wait for the completion of the overcloud deployment process.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.