-
Notifications
You must be signed in to change notification settings - Fork 2
Devstack localrc
DevStack is a set of scripts and utilities to quickly deploy an OpenStack cloud. This page explains DevStack (development version of OpenStack) with NEC OpenFlow plugin support.
Target OpenStack Neutron release: Havana, Grizzly
Create localrc. The detail description is explained below.
Next, run devstack
$ ./stack.sh
Files specific to Neutron NEC OpenFlow plugin are found in:
- lib/neutron_plugins/nec
- lib/neutron_thirdparty/trema
(If you are using Grizzly, please replace "neutron" with "quantum".)
In All-in-One mode all components of OpenStack and OpenFlow controller on a single machine. If you would like to run them on multiple physical machines, please see Multi-Node setup section below.
The following configurations are required in localrc to use Neutron.
disable_service n-net
enable_service neutron q-svc q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
Q_PLUGIN=nec
If you want to run Trema Sliceable Switch, add the following to localrc.
enable_service trema
- _PASSWORD : Password for all components
-
OFC_HOST : Default value used for OFC_API_HOST and OFC_OFP_HOST. The default value is
127.0.0.1. - OFC_PORT : Alias of OFC_API_PORT (for backward compatibility)
- OFC_API_HOST : IP adddress of the OpenFlow controller which provides REST API (Sliceable Network Management API). It is used to configure the plugin (nec.ini). The default value is OFC_HOST.
-
OFC_API_PORT : TCP port of the OpenFlow controller for REST API.
It is used to configure the plugin (nec.ini). The default value is
8888. - OFC_OFP_HOST : IP address of the controller channel of the OpenFlow controller. It is used to configure Open vSwitch. The default value is OFC_HOST.
-
OFC_OFP_PORT : TCP port which the OpenFlow controller listens to for the controller channel.
It is used to configure Open vSwitch. The default value is
6633. -
OFC_DRIVER : Shortcut name or full class path of OpenFlow controller driver. The default value is trema.
- trema : Trema Sliceable Switch
- pfc, pfc_v4 : ProgrammableFlow Controller V4.0
- pfc_v3 : ProgrammableFlow Controller V3.0
- pfc_v5 : ProgrammableFlow Controller V5.0
- pfc_v51 : ProgrammableFlow Controller V5.1 (Only supported by NEC forked version of Havana Neutron https://github.com/nec-openstack/neutron/tree/havana-nec)
-
OVS_BRIDGE : The name of Open vSwitch integration bridge. This bridge acts as an OpenFlow switch. The default value is
br-int. - SKIP_OVS_INSTALL : If True DevStack does not install Ubuntu package of Open vSwitch. It is useful if you want to use your special or customized version of Open vSwitch. You must install Open vSwitch manually in advance.
- SKIP_OVS_BRIDGE_SETUP : If True DevStack does not configure Open vSwitch. It is useful if you want to do other configurations than what DevStack does. Please make sure OVS connects to the OpenFlow Controller.
If you want to use OpenFlow controller running on a different host, configure OFC_*_HOST and OFC_*_PORT.
See Devstack for more information or read the codes :-)
To start devstack, just type:
$ ./stack.sh
To stop devstack:
$ ./unstack.sh
#disable_service cinder c-sch c-api c-vol
#disable_service tempest
#KEYSTONE_TOKEN_FORMAT=UUID
PRIVATE_NETWORK_NAME=net1
PUBLIC_NETWORK_NAME=ext_net
disable_service n-net
enable_service neutron q-svc q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
#enable_service q-lbaas
#enable_service q-fwaas
#enable_service q-vpn
Q_PLUGIN=nec
enable_service trema
#GRE_REMOTE_IPS=10.56.51.252:10.56.51.210:10.56.51.153
#GRE_LOCAL_IP=10.56.51.252
#OVS_INTERFACE=eth1
OFC_DRIVER=trema
#OFC_OFP_HOST=127.0.0.1
#-----------------------------
# Devstack configurations
#-----------------------------
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR
SCREEN_HARDSTATUS="%{= rw} %H %{= wk} %L=%-w%{= bw}%30L> %n%f %t*%{= wk}%+Lw%-17< %-=%{= gk} %y/%m /%d %c"
LOGFILE=$LOGDIR/devstack.log
#LOG_COLOR=False
ADMIN_PASSWORD=nomoresecrete
MYSQL_PASSWORD=stackdb
RABBIT_PASSWORD=stackqueue
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=xyzpdqlazydog
#OFFLINE=True
#RECLONE=True
At the minimum setup, two networks are required.
- Control Plane Network : A network used for Neutron internal communication, communication among OpenStack components and OpenFlow control channel between OpenFlow controler and OpenFlow switch(es).
- Data Network : A network for user data traffic controlled by OpenFlow. If you don't have any hardware OpenFlow switch, you can use GRE tunnel option (GRE_REMOTE_IPS) to create OpenFlow Network over Control Plane Network (in this case only one network is required).
Same as All-in-One setup.
All configuration parameters described in All-in-One setup are available. In addition to these, the following parameters can be used.
-
OVS_INTERFACE: Uncomment the line and set a physical network interface name
(e.g., eth1) connected to an OpenFlow enabled network.
The interface specified in OVS_INTERFACE will be attached to an Open vSwitch integration bridge
br-int(the bridge name is specified by OVS_BRIDGE variable). When you use tunneling like GRE to connect to other nodes, comment out this line (or set an empty value). - GRE_REMOTE_IPS: Colon-separated list of remote IP adresses (e.g., 192.168.122.102:192.168.122.103). GRE tunnels from an Open vSwitch bridge (specified by OVS_BRIDGE) to each specified remote IP address will be created. If GRE_REMOTE_IPS contains GRE_LOCAL_IP, it is excluded from GRE_REMOTE_IPS. The default value is empty.
- GRE_LOCAL_IP: Local IP address. The default value is HOST_IP (determined in stack.sh dynamically).
See Devstack for more information.
Start devstack:
$ ./stack.sh
See sample localrc in "All-in-One" setup.
In many cases you may want to setup GRE_REMOTE_IPS or OVS_INTERFACE.
On a compute node, nova-compute and neutron-plugin-agent runs.
The following configurations are required in localrc:
ENABLED_SERVICES=n-cpu,rabbit,q-agt
Q_PLUGIN=nec
- CC_HOST: IP Address of the Cluster Controller on the control network
- _PASSWORD : Password for all components
- OVS_INTERFACE: A physical network interface name (e.g., eth1) connected to an OpenFlow enabled network. The interface specified in OVS_INTERFACE will be attached to an Open vSwitch bridge (named as OVS_BRIDGE) during the installation. When you use tunneling like GRE to connect to other nodes, comment out this line (or set an empty value).
- GRE_REMOTE_IPS: Remote IP adresses joined with colon (e.g., 192.168.122.102:192.168.122.103). GRE tunnels from an Open vSwitch bridge (named as OVS_BRIDGE) to the specified remote IP addresses will be configured during the installation.
- GRE_LOCAL_IP: Local IP address. The value specified in GRE_LOCAL_IP is excluded from GRE_REMOTE_IPS.
See Devstack for more information.
$ ./stack.sh
There are no order to start the controller node and compute nodes, but if you are not familiar with OpenStack, we recommend to start the controller node first and start compute nodes after stack.sh on the controller finished.
CC_HOST=10.56.51.252
MYSQL_HOST=${CC_HOST}
SERVICE_HOST=${CC_HOST}
RABBIT_HOST=${CC_HOST}
Q_HOST=${CC_HOST}
ENABLED_SERVICES=n-cpu,rabbit,q-agt
#disable_service cinder c-sch c-api c-vol
Q_PLUGIN=nec
GRE_REMOTE_IPS=10.56.51.252:10.56.51.210:10.56.51.153
#GRE_LOCAL_IP=10.56.51.252
#OVS_INTERFACE=eth1
OFC_OFP_HOST=${CC_HOST}
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR
SCREEN_HARDSTATUS="%{= rw} %H %{= wk} %L=%-w%{= bw}%30L> %n%f %t*%{= wk}%+Lw%-17< %-=%{= gk} %y/%m /%d %c"
LOGFILE=$LOGDIR/devstack.log
#LOG_COLOR=False
ADMIN_PASSWORD=nomoresecrete
MYSQL_PASSWORD=stackdb
RABBIT_PASSWORD=stackqueue
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=xyzpdqlazydog
#OFFLINE=True
#RECLONE=True