diff --git a/README.md b/README.md index bc6d189..d68d614 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ -mellanox-plugin -================ +Mellanox Plugin for Fuel +======================= + +Mellanox plugin +-------------- Beginning with version 5.1, Fuel can configure Mellanox ConnectX-3 Pro network adapters to accelerate the performance of compute and storage traffic. @@ -13,7 +16,12 @@ enable network traffic to bypass the software switch layer (e.g. Open vSwitch). Starting with version 6.1, Mellanox plugin can deploy those features over Infiniband network as well. -*Requirements* +Requirements +------------ + +| Requirement | Version/Comment | +|:---------------------------------|:----------------| +| Mirantis OpenStack compatibility | >= 6.1 | The Mellanox ConnectX-3 Pro adapters family supports up to 40/56GbE. To reach 56 GbE speed in your network with ConnectX-3 Pro adapters, you must @@ -27,10 +35,53 @@ For detailed setup configuration and BOM (Bill of Material) requirements please [Fuel Ethernet cloud details](https://community.mellanox.com/docs/DOC-1474) or [Fuel Infiniband cloud details](https://community.mellanox.com/docs/DOC-2036). -*Limitations* +Installation Guide +================== -- OVS bonding and Mellanox SR-IOV based networking over the Mellanox ConnectX-3 Pro -adapter family are not supported. -- In order to use the SR-IOV feature, one should choose KVM hypervisor and -"Neutron with Vlan segmentation" in the Network settings tab. +Mellanox plugin installation +--------------------------- +To install Mellanox plugin, follow these steps: + +1. Download the plugin from + [Fuel Plugins Catalog](https://software.mirantis.com/fuel-plugins) + +2. Copy the plugin on already installed Fuel Master node; ssh can be used for + that. If you do not have the Fuel Master node yet, see + [Quick Start Guide](https://software.mirantis.com/quick-start/) : + + # scp mellanox-plugin-1.0-1.0.0-0.noarch.rpm root@:/tmp + +3. Install the plugin: + + # cd /tmp + # fuel plugins --install mellanox-plugin-1.0-1.0.0-0.noarch.rpm + NOTE: Mellanox plugin installation replaces your bootstrap image. + The original image is backed up in /opt/old_bootstrap_image/. + +4. Check if the plugin was installed successfully: + + # fuel plugins + id | name | version | package_version + ---|-------------------|---------|---------------- + 1 | mellanox-plugin | 1.0.0 | 2.0.0 + +Mellanox plugin configuration +---------------------------- + +For instructions, more information and release notes, see the Mellanox Plugin Installation Guide +in the +[Fuel Plugins Catalog](https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/) + +Contributors +------------ + +David Slama (PM) +Aviram Bar-Haim (Release manager) +Andrey Yevsyukov (Developer) +Gil Meir (Developer) +Amichay Polishuk (QA engineer) +Noam Angel (QA engineer) +Lenny Verkhovsky (Verification engineer) +Rawan Herzallah (Verification engineer) +Murad Awawdeh (Verification engineer) diff --git a/deployment_scripts/puppet/modules/mellanox_openstack/LICENSE b/deployment_scripts/puppet/modules/mellanox_openstack/LICENSE deleted file mode 100644 index 8d968b6..0000000 --- a/deployment_scripts/puppet/modules/mellanox_openstack/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/metadata.yaml b/metadata.yaml index dc8a818..e81dee4 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -5,7 +5,7 @@ name: mellanox-plugin title: Mellanox Openstack features # Plugin version -version: 0.2.29 +version: 1.0.0 # Description description: Enable features over Mellanox hardware diff --git a/specs/mellanox-plugin-spec.rst b/specs/mellanox-plugin-spec.rst new file mode 100644 index 0000000..0eb4535 --- /dev/null +++ b/specs/mellanox-plugin-spec.rst @@ -0,0 +1,164 @@ +.. + This work is licensed under the Apache License, Version 2.0. + + http://www.apache.org/licenses/LICENSE-2.0 + +============================= +Mellanox Fuel plugin +============================= + +In Fuel 5.1, support for Mellanox high performance Ethernet virtualization +and storage features has been added. + +Starting with version 6.0, Fuel supports a Pluggable architecture. + +Mellanox Fuel plugin adds support for Mellanox high performance +features for Mirantis Opesntack, over Ethernet and Infiniband networks, +built using ConnectX-3 family Adapters. + +Mellanox high performance features are currently includes Mellanox SR-IOV +mechanism driver for neutron ML2 plugin and RDMA extension for iSCSI (iSER) +in Cinder. + +Problem description +=================== + +Fuel Supports Mellanox features for Ethernet only in a non pluggable approach. + +Proposed change +=============== + +Implement a Fuel plugin that will install and configure Mellanox high +performance features, upon user request, over Ethernet and Infinband networks. + +Alternatives +------------ + +It might have been implemented as part of Fuel core but we decided to make it +as a plugin for several reasons: + +* This isn't something that all operators may want to deploy. +* Any new additional functionality makes the project's testing more difficult, + which is an additional risk for the Fuel release. + +Data model impact +----------------- + +None + +REST API impact +--------------- + +None + +Upgrade impact +-------------- + +None + +Security impact +--------------- + +None + +Notifications impact +-------------------- + +None + +Other end user impact +--------------------- + +None + +Performance Impact +------------------ + +Installing Mirantis Openstack over Mellanox ConnectX-3 family Adapters, +increases the cluster performance dramatically, +and enables RDMA (Remote direct memory access) between virtual machines +and in storage initiators to targets. + +Other deployer impact +--------------------- + +None + +Developer impact +---------------- + +None + +Implementation +============== + +The plugin delivers official Mellanox Openstack packages, in order to enable +Neutron SR-IOV and Cinder iSER high performance features. +This plugin replaces the bootstrap image, in order to transparently discover +the nodes hardware, over Ethernet and Infiniband networks. +This Plugin has several tasks: + +* Start Mellanox plugin log. +* Update the configurations yaml to include mellanox plugin settings, + that has been chosen by the user. +* Verify that kernel devel packages are installed and install the relevant + MLNX_OFED packages, for using Ethernet/Infiniband network over Mellanox + hardware. +* Enable SR-IOV settings, if neutron has been chosen to use SR-IOV. +* Establish a special interface for storage network, that supports RDMA, + if iSER has been chosen. +* Deploy puppets for Controller, Compute and Cinder roles, with the relevant + changes needed for iSER / SR-IOV (in case of using each). +* Replace the glance cirros image with an image that supports SR-IOV (in case + of using SR-IOV). + +Assignee(s) +----------- + +| David Slama (PM) +| Aviram Bar-Haim (Release manager) +| Andrey Yevsyukov (Developer) +| Gil Meir (Developer) +| Amichay Polishuk (QA engineer) +| Noam Angel (QA engineer) +| Lenny Verkhovsky (Verification engineer) +| Rawan Herzallah (Verification engineer) +| Murad Awawdeh (Verification engineer) + +Work Items +---------- + +* Implement the Fuel plugin. +* Implement the Puppet manifests. +* Testing (CI verification and QA automatic and manual tests). +* Write the documentation. + +Dependencies +============ + +* Fuel 6.1 and higher. + +Testing +======= + +* Prepare a test plan. +* Test the plugin by deploying environments with all relevant Fuel deployment + modes. +* Test extensive cases for SR-IOV and iSER features over Ethernet and + Infiniband networks. + +Documentation Impact +==================== + +* Deployment Guide (how to install the plugin, how to configure and deploy an + OpenStack environment with the plugin). +* User Guide (which features the plugin provides, how to use them in the + deployed OpenStack environment). +* Test Plan. +* Test Report. + +References +========== + +* `HowTo Install Mellanox OpenStack Plugin for Mirantis Fuel 6.1 + `_