Install EFA OpenStack Neutron Plugin

This section provides information required to install Extreme Fabric Automation OpenStack Neutron plugin on Ubuntu.

Before you begin

The prerequisites for installing the EFA OpenStack Neutron plugin are as follows:
  • Working knowledge of Linux
  • Experience in OpenStack deployment
  • Experience in managing EFA 2.x.x
  • Network nodes are prepared as required
  • All OpenStack compute, network, and controller node hostname name resolutions are setup (fully qualified Host names (fqdn) are not supported for beta release)
  • All OpenStack nodes are configured with unique hostnames
  • Working EFA Fabric using efa cli/rest
  • OpenStack nodes are connected to the leaf switches either in direct mode, VPC, or bonded mode
  • Bonding setup is done using 802.3ad
Note

Note

EFA OpenStack Neutron plugin supports only Extreme specific OpenStack services. If other OpenStack services are required, install the respective plugins prior to EFA OpenStack Neutron plugin installation.

All network and server connection settings or mappings can be saved to csv files for bulk configuration using the startup file option in the ml2_conf_extreme.ini file.

Procedure

  1. Install the EFA OpenStack plugin RPM package.
    # $sudo rpm -U <RPM file>
  2. Note the Neutron configuration file layout.
    • Neutron configuration: /etc/neutron/neutron.conf
    • ML2 plugin configuration: /etc/neutron/plugins/ml2/ml2_conf.ini
    • Extreme EFA Mechanism driver or topology configuration: /etc/neutron/plugins/ml2/ml2_conf_extreme.ini
  3. Configure the M12 core_plugin in the neutron.conf file.
    [DEFAULT]
    core_plugin=ml2
    service_plugins = trunk, segments, efa_topology_plugin
    Do not enable the reference router plugin.
  4. Enable Neutron in the ml2_conf_extreme.ini file to communicate with EFA.
    [ml2_extreme]
    efa_rest_token = <efa_api_token for VIM_1>
    efa_cert_file = /root/gcla/extreme-ca-chain.crt
    efa_secure_mode = True
    efa_port = 443
    efa_host =efa.extremenetworks.com
    region_name = VIM_1
    region_shared = SHARED_TENANT
    #SHARED_TENANT is the name of the shared tenant created on EFA
    fabric_name = CNCF
  5. Enable the Neutron EFA extension plugin in the ml2_conf_extreme.ini file to build initial physical topology between OpenStack Compute nodes and TOR switches.
    [efa_topology]
    efa_link_mapping_file = /home/ubuntu/link.csv
  6. Enable Extreme EFA mechanism drivers in ml2_conf.ini.
    ml2_conf.ini 
    [ml2] 
    tenant_network_types = vlan 
    type_drivers = vlan 
    mechanism_drivers = openvswitch,extreme_efa 
    [ml2_type_vlan] 
    network_vlan_ranges = physnet1:100:500 (Required vlan range) 
    [ovs] 
    bridge_mappings = physnet1:br0 (bridge used for datapath)
  7. Modify the system unit file to start Neutron with ml2_conf_extreme.ini.
    # ExecStart = /usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini  --config-file /etc/neutron/plugins/ml2/ml2_conf_extreme.ini 
    
    # systemctl daemon-reload
    On DevStack installation, modify the /etc/systemd/system/devstack@q-svc.service file.
  8. Restart the Neutron server.
    systemctl restart devstack@q-agt.service

    along with

    devstack@q-svc.service

    If you are installing using Open Source, use the sudo service neutron-* restart command.

    If you are installing using DevStack, use the sudo systemctl restart devstack@q-svc.service command.

  9. Verify if the status of the Neutron server is Active and confirm the following:
    • The Neutron service was started with the ml2_confi_extreme.ini file.
    • The efa-topology extension is loaded using openstack extension show efa-topology.
    # sudo systemctl status devstack@q-svc.service
    If you are installing using Open Source stack, use the sudo service neutron-* status command.