Jump to: navigation, search

Difference between revisions of "Mellanox-Neutron"

(Overview)
m (Mellanox Neutron Plugin)
 
(59 intermediate revisions by 9 users not shown)
Line 1: Line 1:
= 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.
+
= Mellanox Neutron Plugin  =
Future versions of the plug-in will include OpenFlow API to control and monitor the embedded switch and vNICs functionality
+
Mellanox supports the OpenStack Neutron releases with open source networking components. It delivers higher compute and storage performance and additional functionality, such as NIC based switching to provide better security and isolation for virtual cloud environments.
  
This plugin is implemented according to Plugin-Agent pattern.
+
* [[Mellanox-Neutron-ML2-Train|Mellanox-Train]]
 +
* [[Mellanox-Neutron-ML2-Rocky|Mellanox-Rocky]]
 +
* [[Mellanox-Neutron-ML2-Queens|Mellanox-Queens]]
 +
* [[Mellanox-Neutron-ML2-Pike|Mellanox-Pike]]
 +
* [[Mellanox-Neutron-ML2-Ocata|Mellanox-Ocata]]
 +
* [[Mellanox-Neutron-ML2-Newton|Mellanox-Newton]]
 +
* [[Mellanox-Neutron-ML2-Mitaka|Mellanox-Mitaka]]
 +
* [[Mellanox-Neutron-ML2-Liberty|Mellanox-Liberty]]
 +
* [[Mellanox-Neutron-ML2-Kilo|Mellanox-Kilo]]
 +
* [[Mellanox-Neutron-ML2-Juno|Mellanox-Juno]]
 +
* [[Mellanox-Neutron-ML2-Icehouse|Mellanox-Icehouse]]
 +
* [[Mellanox-Neutron-Havana-Ubuntu|Mellanox-Havana-Ubuntu]] / [[Mellanox-Neutron-Havana-Redhat|Mellanox-Havana-RedHat]]
 +
* [[Mellanox-Neutron-Grizzly|Mellanox-Grizzly]]
 +
<br>
 +
* [[Mellanox-packages-versioning|Mellanox packages versions]]
 +
<br>
  
 +
= References =
 +
1. [http://www.mellanox.com/openstack/ OpenStack solution page at Mellanox site]
  
            +-----------------+                      +--------------+
+
2. [https://opendev.org/x/networking-mlnx Mellanox ML2 driver and associated tools source repository]
                  | 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 ==
+
3. [http://www.mellanox.com/page/products_dyn?product_family=26 Mellanox OFED web page]
The Mellanox Nova VIF driver should be used when running Mellanox Neutron 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 ==
+
4. [http://community.mellanox.com/community/develop/cloud-developers Mellanox Cloud Developers Community]
'''The following are the Mellanox Neutron Plugin prerequisites:'''
 
  
1. The software package python-zmq ([https://github.com/zeromq/pyzmq github]) must be installed. EPEL repository can be used as well.
+
5. [https://github.com/mellanox-openstack Old/previous Mellanox source repository]
  
2. python-setuptools (use "yum install python-setuptools")
+
For more details, please refer your question to  [mailto:openstack@mellanox.com openstack@mellanox.com]
  
3. python-pip (use "yum install python-pip")
+
[[Category: Neutron]]
 
 
'''Prerequisites only for Compute Servers :'''
 
 
 
1. RH 6.3 or above.
 
 
 
2. Compute nodes should be equiped with Mellanox ConnectX®-3 Network Adapter ([http://www.mellanox.com/page/infiniband_cards_overview link])
 
 
 
3. Mellanox OFED 2.0.3 is installed. Contact [mailto:openstack@mellanox.com?subject=MLNX_OFED2.0  openstack@mellanox.com] to retreive this version.
 
Refer to Mellanox website for the latest OFED documentation ([http://www.mellanox.com/page/products_dyn?product_family=26 link])
 
 
 
4. Enable SR-IOV on ConnectX-3 card. Refer to [http://community.mellanox.com/docs/DOC-1317 Mellanox Community]
 
 
 
5. The software package iproute2 - ([https://www.kernel.org/pub/linux/utils/net/iproute2/ Code] [http://www.policyrouting.org/iproute2.doc.html Documentation]) must be installed. Reuired only to be installed on compute nodes
 
 
 
6. The software package ethtool ([http://www.kernel.org/pub/software/network/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.<br />
 
 
 
Please refer to http://www.redhat.com/products/enterprise-linux/openstack-platform For additional information regarding RHOS.
 
 
 
== Code Structure ==
 
 
 
Mellanox Neutron Plugin and the Nova VIF driver are located at [http://community.mellanox.com/docs/DOC-1187 Mellanox OpenStack RPMs]
 
 
 
1. Neutron 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 Neutron 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.
 

Latest revision as of 12:37, 4 September 2019

Mellanox Neutron Plugin

Mellanox supports the OpenStack Neutron releases with open source networking components. It delivers higher compute and storage performance and additional functionality, such as NIC based switching to provide better security and isolation for virtual cloud environments.



References

1. OpenStack solution page at Mellanox site

2. Mellanox ML2 driver and associated tools source repository

3. Mellanox OFED web page

4. Mellanox Cloud Developers Community

5. Old/previous Mellanox source repository

For more details, please refer your question to openstack@mellanox.com