Skip to main content

Neutron ML2 mechanism driver for Mellanox infiniband Pkey binding.

Project description

networking-mlnx-baremetal

Overview

This project aims to provide a OpenStack Neutron ML2 mechanism driver for binding or unbinding partition key for mellanox infiniband port when provisioning baremetal node using OpenStack Ironic component.

Those baremetal nodes are expected to have “VLAN” or “VXLAN” ethernet segment bound by other driver[1], and networking-mlnx-baremetal will bind partition key which have exactly the same segmentation-id as former ethernet segment for Mellanox infiniband ports on the same node.

This hierarchical network topologies is supported by Neutron and mentioned on spec Hierarchical Port Binding. The final network topology looks like:

+-----------------+                +-------------+
| Mellanox Switch |                | Core Switch |
+---+-----+-------+                +-------+-----+
    |     |                                |
    |     |                                |
    |     |                         +------+-----+
    |     |                         | ToR Switch |
    |     |                         +--+------+--+
    |     |                                |
    |     |                            |      |
    |     |                            |      |
    |     |  IB  +--------------+  eth |      |
    |     +------+ Ironic Node  +------+      |
    |   PKey     +--------------+    VXLAN    |
    |                                         |
    |     IB     +--------------+    eth      |
    +------------+ Ironic Node  +-------------+
  PKey           +--------------+           VXLAN
Currently, this driver is only tested along with networking-huawei driver

and Ironic ramdisk deploy interface on OpenStack stable/train release.

Installation

Before using this driver, it should be installed on OpenStack Neutron controller node. You may install it:

From PyPi:

$ pip install networking-mlnx-baremetal

or

$ easy_install networking-mlnx-baremetal

Or from source:

$ git clone https://github.com/IamFive/networking-mlnx-baremetal.git
$ cd networking-mlnx-baremetal
$ git checkout stable/train
$ pip install -r requirements.txt -c upper-constraints.txt
$ python setup.py install

Usage

Configuration

This driver will load configuration options in two namespaces:

  • mlnx.baremetal.driver: configuration options for driver itself

  • mlnx.ironic.client: configuration options for connecting to Ironic controller

So, after networking-mlnx-baremetal is installed, you may run this command to get a full list of mlnx.baremetal.driver configuration options:

$ oslo-config-generator --namespace mlnx.baremetal.driver

The default configurations may looks like:

[DEFAULT]


[mlnx:baremetal]

#
# From mlnx.baremetal.driver
#

# UFM REST API endpoint. (string value)
#endpoint = http://127.0.0.1

# Username for UFM REST API authentication. (string value)
#username = <None>

# Password for UFM REST API authentication. (string value)
#password = <None>

# Either a Boolean value, a path to a CA_BUNDLE file or directory with
# certificates of trusted CAs. If set to True the driver will verify
# the UFMhost certificates; if False the driver will ignore verifying
# the SSL certificate. If it's a path the driver will use the
# specified certificate or one of the certificates in the directory.
# Defaults to True. Optional. (string value)
#verify_ca = True

# HTTP timeout in seconds. (integer value)
#timeout = 10

# Comma-separated list of physical_network which this driver should
# watch. * means any physical_networks including None. (list value)
#physical_networks = *

Of course, you should generate options for mlnx.ironic.client too, then update those options and add them to neutron config-file.

Enable driver

The entry point name of this driver is mlnx_ib_bm. To enable, add mlnx_ib_bm to ML2 mechanism driver list:

[ml2]
tenant_network_types = vxlan
mechanism_drivers = mlnx_ib_bm,other_vxlan_driver,...,openvswitch

Config Ironic-Inspector

By default, inspector will only detect PXE port information. To also get infiniband port, add_port should be set to all.

[processing]
processing_hooks = $default_processing_hooks,extra_hardware,lldp_basic,local_link_connection
add_ports=all

Also, remember Mellanox infiniband hardware driver should be packaged in inspect ramdisk image.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

networking-mlnx-baremetal-1.0.2.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file networking-mlnx-baremetal-1.0.2.tar.gz.

File metadata

  • Download URL: networking-mlnx-baremetal-1.0.2.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.4

File hashes

Hashes for networking-mlnx-baremetal-1.0.2.tar.gz
Algorithm Hash digest
SHA256 428a1e66ad0bb333d17f94ade1bbca6acc1f5bfa94498312d7b917f7144599dc
MD5 8c50902eff9a823f6262d83afd1848ff
BLAKE2b-256 02f9e4c2794ce36f4d8d213f3a1961989be8f8cdaf222493bf9b7e4b8daa68b0

See more details on using hashes here.

File details

Details for the file networking_mlnx_baremetal-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: networking_mlnx_baremetal-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 47.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.4

File hashes

Hashes for networking_mlnx_baremetal-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fa39d05545b806e8ba817e619426489bf1486b3f1f58ded8f8bccbb0f9f59082
MD5 b6e5c6d0af8917df8c7967b2b6e1b2cb
BLAKE2b-256 29aada89f8184c3fe1642b699309f78b9f7a278c1d7ed4aeaf75692419a702be

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page