How to Install Mellanox OpenStack Plugins for Mirantis Fuel 7.0 (Ethernet)

Version 16

    This post explains the configuration flow required for OpenStack based on Mirantis Fuel 7.0.

    The reader should be familiar with Mirantis Fuel installation procedures, as well as with Mellanox adapters and drivers.

     

    Using Mellanox OpenStack plugin together with ConnectX-3 Pro adapters helps to accelerate the cloud performance using SR-IOV-based network connectivity for the VMs and ISER-based block storage.

    Mellanox OpenStack Plugin for Mirantis Fuel 7.0 supports Ethernet networks and Ubuntu 14.04 OS.

     

    Note: InfiniBand networks are not supported in this plugin.

     

    References

     

    Setup

    The setup is based on the following post:

    HowTo Install Mirantis Fuel 5.1/5.1.1 OpenStack with Mellanox Adapters Support (Ethernet Network) and

    HowTo Install Mirantis Fuel 5.1/5.1.1 OpenStack with Mellanox Adapters Support (InfiniBand Network)

     

    Notes:

    1. When using an Ethernet network, be sure to configure all required VLANs and enable flow control on the switch ports.

    2. As a prerequisite, Fuel 7.0 should be installed in your network.

    3. OVS bonding and Mellanox SR-IOV based networking over the Mellanox ConnectX-3 adapter family are not supported.

    4. You cannot install a plugin on an existing environment. Behavior: The plugin appears in a certain environment only if it is installed before you create the environment.

    5. In an Ethernet cloud, when using SR-IOV & iSER, one of the virtual NICs for SR-IOV will be reserved to the storage network.

    6. When using SR-IOV, you can set the number of virtual NICs (virtual functions) to up to 64, if your hardware and system capabilities (memory, BIOS etc) support it. When there is a SRIOV hardware limitation, the installation will try to fall back to the Virtual Function (VF) number to the default of 16 VFs.

    7. This Fuel Mellanox plugin uses MLNX_OFED version 2.3-2.0.8.

     

     

    Mellanox OpenStack Plugin installation

     

    1. Download the plugin from Fuel Plugins Catalog.

     

    2. Copy the plugin on the previously-installed Fuel Master node.

        If you do not have the Fuel Master node yet, refer to the Quick Start Guide.

     

    # scp mellanox-plugin-2.0-2.0.0-1.noarch.rpm root@<Fuel_Master_ip>:/tmp

     

    3. Install the plugin:

     

    # cd /tmp

    # fuel plugins --install mellanox-plugin-2.0-2.0.0-1.noarch.rpm

     

    Note:  Mellanox plugin installation replaces your bootstrap image only in Fuel 6.1 at this stage.

               The original image is backed up in /opt/old_bootstrap_image/.

     

    4. Verify that the plugin was successfully installed by having it listed in the fuel plugins command:

     

    [root@fuel ~]# fuel plugins

    id | name            | version | package_version

    ---|-----------------|---------|----------------

    1  | mellanox-plugin | 2.0.0   | 2.0.0

     

    Note: You must boot your target nodes with the new bootstrap image (installed by the plugin) after the plugin is installed. (In Fuel 7.0, the plugin does not replace bootstrap images and uses Mirantis bootstrap images).

    5. Check your target nodes status by running the fuel nodes command.

     

    [root@fuel ~]# fuel nodes

    id | status | name             | cluster | ip         | mac               | roles      | pending_roles | online | group_id

    ---|--------|------------------|---------|------------|-------------------|------------|---------------|--------|---------

    59 | ready  | Untitled (3c:9a) | 15      | 10.20.0.6  | c8:1f:66:ef:3c:9a | compute    |               | True   | 15

    54 | ready  | Untitled (4f:aa) | 14      | 10.20.0.10 | c8:1f:66:ef:4f:aa | compute    |               | True   | 14

    57 | ready  | Untitled (78:09) | 15      | 10.20.0.3  | c8:1f:66:ee:78:09 | controller |               | True   | 15

    53 | ready  | Untitled (31:f4) | 14      | 10.20.0.9  | c8:1f:66:ef:31:f4 | compute    |               | True   | 14

    58 | ready  | Untitled (d9:5d) | 15      | 10.20.0.4  | c8:1f:66:f0:d9:5d | cinder     |               | True   | 15

    60 | ready  | Untitled (8e:ac) | 15      | 10.20.0.5  | c8:1f:66:ee:8e:ac | compute    |               | True   | 15

    56 | ready  | Untitled (4e:2d) | 14      | 10.20.0.8  | c8:1f:66:ed:4e:2d | cinder     |               | True   | 14

    52 | ready  | Untitled (d8:7d) | 14      | 10.20.0.7  | c8:1f:66:f0:d8:7d | controller |               | True   | 14

     

    If the fuel nodes command does not display any nodes, you can then boot your nodes only once the plugin is installed.

     

    Environment Creation and Configuration

     

    Create an environment. (For more information please see how to create an environment.)

    a. Open the Settings tab of the Fuel web UI and scroll down the page. In Mellanox OpenStack features section, select the required features.

    Note: Enabling the “Mellanox Openstack features” section allows Mellanox hardware support on your environment, regardless of the iSER and SR-IOV features.mellanox_features_section.png

     

    b. Select the KVM hypervisor. Note that the SR-IOV feature supports only the KVM hypervisor.

     

    c. Select Neutron with VLAN segmentation to allow supporting SR-IOV and iSER.

    d. In the “Storage” section, use the the iSER feature, Cinder LVM over iSCSI for volumes, to set up at least one Storage node.

    storage_backends.png

     

     

     

    Troubleshooting

    1. Fuel requires that you assign a public network interface to all nodes. If it is not assigned, you may get the following error:

    Error: Deployment has failed. Method granular_deploy. Failed to execute hook 'mellanox-plugin-2.0.0' Failed to run command cd /etc/fuel/plugins/mellanox-plugin-2.0/ && ./mellanox_settings.py

    ---

    uids:

    - '1'

    - '3'

    - '2'

    - '5'

    - '4'

    - '7'

    - '6'

    parameters:

      retries: 3

      cmd: "./mellanox_settings.py"

      cwd: "/etc/fuel/plugins/mellanox-plugin-2.0/"

      timeout: 10

      interval: 1

    priority: 3600

    fail_on_error: true

    type: shell

    diagnostic_name: mellanox-plugin-2.0.0

    .

    Inspect Astute logs for the details

     

     

    2. To resolve this, ensure that you assign public IP to all nodes:

    43.png