Difference between revisions of "Mellanox-Neutron"
Ophir Maor (talk | contribs) (→Mellanox Quantum Plugin Installation (for Havana)) |
Ophir Maor (talk | contribs) (→Mellanox Quantum Plugin) |
||
Line 1: | Line 1: | ||
= Overview = | = Overview = | ||
− | == Mellanox | + | == Mellanox Neutron Plugin == |
− | The Openstack Mellanox | + | The Openstack Mellanox Neutron plugin supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. |
− | Mellanox | + | 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). | 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). | ||
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 | | |
| | | | Plugin | | | | Agent | | Switch | | | | | | | Plugin | | | | Agent | | Switch | | | ||
| | | | | | | | | | (NIC) | | | | | | | | | | | | | (NIC) | | | ||
Line 23: | Line 23: | ||
+-----------------------------------+ +-----------------------------------+ | +-----------------------------------+ +-----------------------------------+ | ||
− | * Openstack Mellanox | + | * Openstack Mellanox Neutron Plugin implements the Neutron v2.0 API. |
− | * Mellanox | + | * 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 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. | * The plugin maintains compatibility to Linux Bridge Plugin, supports DHCP and L3 Agents by running L2 Linux Bridge Agent on Network Node. | ||
− | * Mellanox Openstack | + | * 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. | * Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port. | ||
Revision as of 11:15, 3 September 2013
Contents
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.