...
Install devstack on the Openstack Network node
Code Block language bash $ git clone git://github.com/openstack-dev/devstack.git
Creates local.conf file using the following options
Code Block language text [[local|localrc]] HOST_IP=2.2.2.2 SERVICE_HOST=1.1.1.1 RABBIT_HOST=1.1.1.1 DATABASE_HOST=1.1.1.1 Q_HOST=2.2.2.2 ADMIN_PASSWORD=nova DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD SERVICE_TOKEN=$ADMIN_PASSWORD DATABASE_TYPE=mysql # Log SCREEN_LOGDIR=/opt/stack/logs/screen # Images IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img" LIBVIRT_TYPE=qemu #vnc NOVA_VNC_ENABLED=True VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP VNCSERVER_LISTEN=$HOST_IP # Services enabled_services=q-l3
We need to specify the Network node IP address in HOST_IP and Q_HOST, and the Control node IP address in others. Also, we just need to enable L3 service. Later, when OpenstackRouter app is implemented, Network node itself will not be necessary.
Install devstack
Code Block language bash ~/devstack$ ./stack.sh
When it is installed successfully, you will see the message below.
Code Block language text ======================== DevStack Components Timed ======================== apt-get-update - 6 secs pip_install - 30 secs apt-get - 3 secs This is your host IP address: 10.40.102.231 This is your host IPv6 address: ::1 Horizon is now available at http://10.40.101.209/dashboard Keystone is serving at http://10.40.101.209:5000/ The default users are: admin and demo The password: nova 2015-12-10 06:22:21.048 | stack.sh completed in 171 seconds.
Upgrade OVS to version 2.3.2
Unload existing openvswitch modulesCode Block language bash $ sudo rmmod openvswitch
Check if openvswitch modules are unloaded.
Code Block language bash $ sudo lsmod
Uninstall openvswitch 2.0.2.
Code Block language bash $ sudo apt-get remove openvswitch-common
Then, follow the steps "Install Openvswitch" steps below.
Create a br-ex bridge
The br-ex bridge is created by the devstack, but we need to create it again after installing the new openvswitch because it was removed when we remove the old version of openvswitch.
Code Block language bash sudo ovs-vsctl add-br br-ex
Set up Compute node
Install Openvswitch
Even though any version higher than 2.0 would work, but we have tested with 2.3.2.
Code Block language bash $ wget http://openvswitch.org/releases/openvswitch-2.3.2.tar.gz $ tar xzvf openvswitch-2.3.2.tar.gz $ cd openvswitch-2.3.2/ ~/openvswitch-2.3.2$ ./configure ~/openvswitch-2.3.2$ make ~/openvswitch-2.3.2$ sudo make install ~/openvswitch-2.3.2$ sudo modprobe openvswitch
You can check if openvswitch is loaded properly
Code Block language bash ~/openvswitch-2.3.2$ sudo lsmod Module Size Used by openvswitch 71004 0 vxlan 37619 1 openvswitch ip_tunnel 23768 1 vxlan gre 13796 1 openvswitch libcrc32c 12644 1 openvswitch
Set up OVS
Please see the following link for detail, but here are the simple way to set up the OVS.
https://github.com/openvswitch/ovs/blob/master/INSTALL.mdCode Block language bash ~/openvswitch-2.3.2$ mkdir -p /usr/local/etc/openvswitch ~/openvswitch-2.3.2$ sudo ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema ~/openvswitch-2.3.2$ sudo ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ --remote=db:Open_vSwitch,Open_vSwitch,manager_options \ --private-key=db:Open_vSwitch,SSL,private_key \ --certificate=db:Open_vSwitch,SSL,certificate \ --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \ --pidfile --detach ~/openvswitch-2.3.2$ sudo ovs-vsctl --no-wait init ~/openvswitch-2.3.2$ sudo ovs-vswitchd --pidfile --detach
You can check if it is installed correctly
Code Block language bash ~/openvswitch-2.3.2$ sudo ovs-vsctl --version ovs-vsctl (Open vSwitch) 2.3.2 Compiled Dec 3 2015 14:49:51 DB Schema 7.6.2
Set manager as ptcp:6640 so that ONOS can detect the OVSDB
Code Block language bash ~/openvswitch-2.3.2$ sudo ovs-vsctl set-manager ptcp:6640
Install devstack on the Compute node
Code Block language bash $ git clone git://github.com/openstack-dev/devstack.git
Please use the following local.conf for the compute nodes
Code Block language text [[local|localrc]] HOST_IP=2.2.2.2 SERVICE_HOST=1.1.1.1 RABBIT_HOST=1.1.1.1 DATABASE_HOST=1.1.1.1 Q_HOST=1.1.1.1 ADMIN_PASSWORD=nova DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD SERVICE_TOKEN=$ADMIN_PASSWORD DATABASE_TYPE=mysql #Images IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img,http://jaist.dl.sourceforge.net/project/gns-3/Qemu%20Appliances/linux-tinycore-3.4.img" # Log NOVA_VNC_ENABLED=true VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP VNCSERVER_LISTEN=$HOST_IP SCREEN_LOGDIR=/opt/stack/logs/screen LIBVIRT_TYPE=qemu # Services ENABLED_SERVICES=n-cpu,neutron
HOST_IP should be the IP address of the compute node host, and Controller node IP address needs to be set for other settings.
- Set up another compute node in the same way.
...