Difference between revisions of "Brocade-neutron-plugin"
(→Overview) |
|||
(12 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
<!-- #language en --> | <!-- #language en --> | ||
− | = Brocade | + | = Brocade Neutron Plugin = |
---------------------- | ---------------------- | ||
== Overview == | == Overview == | ||
− | Openstack is an open source infrastructure as a service (IaaS) initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Brocade | + | Openstack is an open source infrastructure as a service (IaaS) initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Brocade Neutron Plugin for VDX/VCS provides a means to interface Openstack’s Networking (formerly Quantum Networking) to orchestrate Brocade’s physical switches. |
− | In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. This new access layer can be created at the via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Brocade’s | + | In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. This new access layer can be created at the via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Brocade’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator. |
− | |||
− | The plugin orchestrates virtual network and physical networks at appropriate times in the life cycle of a ' | + | |
+ | |||
+ | [[File:Brocade1.PNG|frame|center|Virtual and Physical Network Orchestration]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Brocade Neutron Plugin implements the Neutron v2.0 API. Switches running NOS [http://www.brocade.com/products/all/switches/index.page (e.g. VDX 67xx, VDX 87xx)] are supported. It uses NETCONF at the backend to configure the Brocade switch. | ||
+ | |||
+ | The plugin orchestrates virtual network and physical networks at appropriate times in the life cycle of a 'Neutron network' and virtual machines. | ||
Line 23: | Line 31: | ||
| | | | | Brocade | | | | | | | Brocade | | ||
| Openstack | v2.0 | Brocade | NETCONF | VCS Switch | | | Openstack | v2.0 | Brocade | NETCONF | VCS Switch | | ||
− | | | + | | Neutron +--------+ Neutron +----------+ | |
| | | Plugin | | VDX 67xx | | | | | Plugin | | VDX 67xx | | ||
| | | | | VDX 87xx | | | | | | | VDX 87xx | | ||
Line 34: | Line 42: | ||
== Directory Structure == | == Directory Structure == | ||
− | (this paragraph is relevant ONLY if you have download the Brocade | + | (this paragraph is relevant ONLY if you have download the Brocade Neutron Plugin from the repository located at: http://www.github.com/brocade/brocade ) |
Normally you will have your Openstack directory structure as follows: | Normally you will have your Openstack directory structure as follows: | ||
Line 42: | Line 50: | ||
/opt/stack/nova/ | /opt/stack/nova/ | ||
/opt/stack/horizon/ | /opt/stack/horizon/ | ||
− | /opt/stack/ | + | /opt/stack/neutron/neutron/plugins/ |
</nowiki></pre> | </nowiki></pre> | ||
Line 50: | Line 58: | ||
<pre><nowiki> | <pre><nowiki> | ||
− | /opt/stack/ | + | /opt/stack/neutron/neutron/plugins/brocade |
</nowiki></pre> | </nowiki></pre> | ||
Line 67: | Line 75: | ||
== Configuration == | == Configuration == | ||
− | 1. Specify to | + | 1. Specify to Neutron that you will be using the Brocade Plugin - this is done |
− | by setting the parameter core_plugin in | + | by setting the parameter core_plugin in Neutron: |
<pre><nowiki> | <pre><nowiki> | ||
− | core_plugin = | + | core_plugin = neutron.plugins.brocade.NeutronPlugin.BrocadePluginV2 |
</nowiki></pre> | </nowiki></pre> | ||
Line 81: | Line 89: | ||
<pre><nowiki> | <pre><nowiki> | ||
− | % cat /etc/ | + | % cat /etc/neutron/plugins/brocade/brocade.ini |
[SWITCH] | [SWITCH] | ||
Line 90: | Line 98: | ||
[DATABASE] | [DATABASE] | ||
− | sql_connection = mysql://root:pass@localhost/ | + | sql_connection = mysql://root:pass@localhost/brcd_Neutron?charset=utf8 |
</nowiki></pre> | </nowiki></pre> | ||
Line 99: | Line 107: | ||
Running setup.py with appropriate permissions will copy the default configuration | Running setup.py with appropriate permissions will copy the default configuration | ||
− | file to /etc/ | + | file to /etc/Neutron/plugins/brocade/brocade.ini. This file MUST be edited to |
suit your setup/environment. | suit your setup/environment. | ||
<pre><nowiki> | <pre><nowiki> | ||
− | % cd /opt/stack/ | + | % cd /opt/stack/neutron/neutron/plugins/brocade |
% python setup.py | % python setup.py | ||
</nowiki></pre> | </nowiki></pre> | ||
Line 112: | Line 120: | ||
Please see special notes for devstack at: | Please see special notes for devstack at: | ||
− | http://wiki.openstack.org/brocade- | + | http://wiki.openstack.org/brocade-Neutron-plugin |
− | |||
− | |||
+ | Brocade Neutron plugin has been tested to work on Redhat and Ubuntu releases. Devstack is normally run by a non-root user 'stack'. It is advisable to create a userid 'stack' on your Linux machine. | ||
<pre><nowiki> | <pre><nowiki> | ||
+ | % cd /home/stack | ||
% git clone https://www.github.com/brocade/devstack | % git clone https://www.github.com/brocade/devstack | ||
+ | % cd devstack | ||
</nowiki></pre> | </nowiki></pre> | ||
− | + | In order to use Brocade Neutron Plugin, add the following lines in localrc, if localrc | |
− | In order to use Brocade | ||
file does not exist you may have to create one: | file does not exist you may have to create one: | ||
− | |||
<pre><nowiki> | <pre><nowiki> | ||
− | ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit, | + | ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,neutron,q-svc,q-agt |
Q_PLUGIN=brocade | Q_PLUGIN=brocade | ||
</nowiki></pre> | </nowiki></pre> | ||
− | As part of using devstack, the files above are copied over from | + | As part of using devstack, the files above are copied over from Neutron to their |
final destination. So it will be advisable to edit the files appropriately. | final destination. So it will be advisable to edit the files appropriately. | ||
<pre><nowiki> | <pre><nowiki> | ||
− | /opt/stack/ | + | /opt/stack/neutron/etc/neutron.conf -> /etc/neutron/neutron.conf |
− | /opt/stack/ | + | /opt/stack/neutron/etc/neutron/plugins/brocade/brocade.ini -> /etc/neutron/plugins/brocade/brocade.ini |
</nowiki></pre> | </nowiki></pre> | ||
Line 146: | Line 153: | ||
<pre><nowiki> | <pre><nowiki> | ||
− | /opt/stack/ | + | /opt/stack/neutron/etc/neutron/plugins/brocade/brocade.ini |
</nowiki></pre> | </nowiki></pre> | ||
− | + | Run devstack as: | |
− | + | <pre><nowiki> | |
+ | % cd /home/stack/devstack; ./stack.sh | ||
+ | </nowiki></pre> | ||
− | + | == Example Topology == | |
− | + | ||
− | + | [[File:BQP Application.png|center|frame]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 22:29, 31 October 2013
Contents
Brocade Neutron Plugin
Overview
Openstack is an open source infrastructure as a service (IaaS) initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Brocade Neutron Plugin for VDX/VCS provides a means to interface Openstack’s Networking (formerly Quantum Networking) to orchestrate Brocade’s physical switches.
In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. This new access layer can be created at the via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Brocade’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.
Brocade Neutron Plugin implements the Neutron v2.0 API. Switches running NOS (e.g. VDX 67xx, VDX 87xx) are supported. It uses NETCONF at the backend to configure the Brocade switch.
The plugin orchestrates virtual network and physical networks at appropriate times in the life cycle of a 'Neutron network' and virtual machines.
+------------+ +------------+ +-------------+ | | | | | | | | | | | Brocade | | Openstack | v2.0 | Brocade | NETCONF | VCS Switch | | Neutron +--------+ Neutron +----------+ | | | | Plugin | | VDX 67xx | | | | | | VDX 87xx | | | | | | | | | | | | | +------------+ +------------+ +-------------+
Directory Structure
(this paragraph is relevant ONLY if you have download the Brocade Neutron Plugin from the repository located at: http://www.github.com/brocade/brocade )
Normally you will have your Openstack directory structure as follows:
/opt/stack/nova/ /opt/stack/horizon/ /opt/stack/neutron/neutron/plugins/
This repository represents code that will be put into the brocade directory as:
/opt/stack/neutron/neutron/plugins/brocade
Prerequsites
ncclient v0.3.1 - Python library for NETCONF clients. http://github.com/brocade/ncclient
% git clone https://www.github.com/brocade/ncclient % cd ncclient; sudo python ./setup.py install
Configuration
1. Specify to Neutron that you will be using the Brocade Plugin - this is done by setting the parameter core_plugin in Neutron:
core_plugin = neutron.plugins.brocade.NeutronPlugin.BrocadePluginV2
2. Physical switch configuration parameters and Brocade specific database configuration is specified in
the configuration file specified in the brocade.ini file:
% cat /etc/neutron/plugins/brocade/brocade.ini [SWITCH] username = admin password = password address = <switch mgmt ip address> ostype = NOS [DATABASE] sql_connection = mysql://root:pass@localhost/brcd_Neutron?charset=utf8
Please see list of more configurable parameters in the brocade.ini file.
Running Setup.py
Running setup.py with appropriate permissions will copy the default configuration file to /etc/Neutron/plugins/brocade/brocade.ini. This file MUST be edited to suit your setup/environment.
% cd /opt/stack/neutron/neutron/plugins/brocade % python setup.py
Devstack
Please see special notes for devstack at: http://wiki.openstack.org/brocade-Neutron-plugin
Brocade Neutron plugin has been tested to work on Redhat and Ubuntu releases. Devstack is normally run by a non-root user 'stack'. It is advisable to create a userid 'stack' on your Linux machine.
% cd /home/stack % git clone https://www.github.com/brocade/devstack % cd devstack
In order to use Brocade Neutron Plugin, add the following lines in localrc, if localrc file does not exist you may have to create one:
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,neutron,q-svc,q-agt Q_PLUGIN=brocade
As part of using devstack, the files above are copied over from Neutron to their
final destination. So it will be advisable to edit the files appropriately.
/opt/stack/neutron/etc/neutron.conf -> /etc/neutron/neutron.conf /opt/stack/neutron/etc/neutron/plugins/brocade/brocade.ini -> /etc/neutron/plugins/brocade/brocade.ini
Hence it is important to make any changes to the configuration in:
/opt/stack/neutron/etc/neutron/plugins/brocade/brocade.ini
Run devstack as:
% cd /home/stack/devstack; ./stack.sh