Jump to: navigation, search

Difference between revisions of "Mellanox-Neutron"

(Mellanox Quantum Plugin)
(Mellanox Neutron Plugin)
Line 17: Line 17:
 
         |  |          |      |          |  |    |  |          |  zmq  |          |  |
 
         |  |          |      |          |  |    |  |          |  zmq  |          |  |
 
         |  | Openstack | v2.0 | Mellanox |  | RPC |  | Mellanox |REQ/REP| Mellanox |  |
 
         |  | Openstack | v2.0 | Mellanox |  | RPC |  | Mellanox |REQ/REP| Mellanox |  |
         |  | Neutron     +------+ Neutron +-----------+ Neutron +-------+ Embedded |  |
+
         |  | Neutron   +------+ Neutron +-----------+ Neutron +-------+ Embedded |  |
 
         |  |          |      | Plugin  |  |    |  | Agent    |      | Switch  |  |
 
         |  |          |      | Plugin  |  |    |  | Agent    |      | Switch  |  |
 
         |  |          |      |          |  |    |  |          |      | (NIC)    |  |
 
         |  |          |      |          |  |    |  |          |      | (NIC)    |  |

Revision as of 11:16, 3 September 2013

Overview

Mellanox Neutron Plugin

The Openstack Mellanox Neutron plugin supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox Neutron Plugin allows hardware vNICs (based on SR-IOV virtual functions) per each Virtual Machine vNIC to have its unique connectivity, security, and QoS attributes. Hardware vNICs can be mapped to the guest VMs through para-virtualization (using a Tap device), or directly as a Virtual PCI device to the guest, allowing higher performance and advanced features such as RDMA (remote direct memory access).

Hardware-based switching, provides better performance, functionality, and security/isolation for virtual cloud environments. Future versions of the plug-in will include OpenFlow API to control and monitor the embedded switch and vNICs functionality

This plugin is implemented according to Plugin-Agent pattern.


   	         +-----------------+                       +--------------+
                 | Controller node |                       | Compute node |
       +-----------------------------------+     +-----------------------------------+
       |  +-----------+      +----------+  |     |  +----------+       +----------+  |
       |  |           |      |          |  |     |  |          |  zmq  |          |  |
       |  | Openstack | v2.0 | Mellanox |  | RPC |  | Mellanox |REQ/REP| Mellanox |  |
       |  | Neutron    +------+ Neutron +-----------+ Neutron +-------+ Embedded |  |
       |  |           |      | Plugin   |  |     |  | Agent    |       | Switch   |  |
       |  |           |      |          |  |     |  |          |       | (NIC)    |  |
       |  +-----------+      +----------+  |     |  +----------+       +----------+  |
       +-----------------------------------+     +-----------------------------------+
  • Openstack Mellanox Neutron Plugin implements the Neutron v2.0 API.
  • Mellanox Neutron Plugin processes the Neutron API calls and manages network segmentation ID allocation.
  • The plugin uses databases to store configuration and allocation mapping.
  • The plugin maintains compatibility to Linux Bridge Plugin, supports DHCP and L3 Agents by running L2 Linux Bridge Agent on Network Node.
  • Mellanox Openstack Neutron Agent (L2 Agent) runs on each compute node.
  • Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port.

Mellanox Nova VIF Driver

The Mellanox Nova VIF driver should be used when running Mellanox Quantum Plugin. This driver supports the VIF plugin by binding vNIC (para-virtualized or SR-IOV with optional RDMA guest access) to the embedded switch port.

Prerequisites

The following are the Mellanox Quantum Plugin prerequisites:

1. The software package python-zmq (github) must be installed. EPEL repository can be used as well.

2. python-setuptools (use "yum install python-setuptools")

3. python-pip (use "yum install python-pip")

Prerequisites only for Compute Servers :

1. RH 6.3 or above.

2. Compute nodes should be equiped with Mellanox ConnectX®-3 Network Adapter (link)

3. Mellanox OFED 2.0.3 is installed. Contact openstack@mellanox.com to retreive this version. Refer to Mellanox website for the latest OFED documentation (link)

4. Enable SR-IOV on ConnectX-3 card. Refer to Mellanox Community

5. The software package iproute2 - (Code Documentation) must be installed. Reuired only to be installed on compute nodes

6. The software package ethtool (Code) must be installed (version 3.8 or higher). Required only to be installed on compute nodes.

7. oslo.config (use "pip-python install oslo.config"). Reuired only to be installed on compute nodes.

8. python-ethtool and python-zmq packages

Installation with RHOS

For each section refer to 'Installation via RPMs'. No additional Prerequisites except for those required by RHOS.

Please refer to http://www.redhat.com/products/enterprise-linux/openstack-platform For additional information regarding RHOS.

Code Structure

Mellanox Quantum Plugin and the Nova VIF driver are located at Mellanox OpenStack RPMs

1. Quantum Plugin package structure:

  quantum/etc/quantum/plugins/mlnx -plugin configuration
  mlnx_conf.ini - sample plugin configuration
  quantum/quantum/plugins/mlnx -  plugin code
  /agent - Agent code
  /common - common  code
  /db - plugin persistency model and wrapping methods
  mlnx_plugin.py - Mellanox Openstack Plugin
  rpc_callbacks.py - RPC handler for received messages
  agent_notify_api.py - Agent RPC notify methods

Mellanox Quantum Plugin is located under quantum/quantum/plugins/.

2. Nova VIF driver package structure is:

  nova/nova/mlnx - nova vif driver code

Mellanox Nova VIF driver is located under nova/virt/libvirt/mlnx.