Deploying multi-node Openstack with Opencontrail
September 4, 2015 3 Comments
In this post, I have chosen Opencontrail as SDN solution for Openstack neutron networking.
Opencontrail on its own have large amount of components/services which is difficult to cover in single post.
For non-familiar folks, refer to: Opencontrail architecture documentation
Opencontail site contains, lots of interesting blog posts on various topics,…It’s the endless world out there 🙂
This post intended to get you started with environment to play around and get feel for.
I will primarily focus on creating multi-node setup using Openstack and Opencontaril.
We will see the configuration points for Openstack and Opencontrail.
Then do, some basic operations, like VM launche, and ssh and ping operations to check the connectivity.
So, I guess, enough taking, Let’s get technical.
What do you need for environment?
- A machine which support virtualization (Intel-VT/AMD-V)
- Memory 8GB minimum, will use 5.5 GB for all three VMs
- Disk 60 GB free space
- VirtualBox/VMware Player/KVM host – I have VirtualBox
- A cup of Coffee!
Create three virtual machines with ubuntu 14.04 server.
VM1 specification (contrail-openstack-controller):
eth0: 192.168.1.11 (bridged adapter)
eth1: 10.10.10.3 (Host-only adapter)
VM2: specification (compute1):
eth0: 192.168.1.12 (bridged adapter)
eth1: 10.10.10.4 (Host-only adapter)
Vm3: specification (compute2):
eth0: 192.168.1.13 (bridged adapter)
eth1: 10.10.10.5 (Host-only adapter)
After login to the machines clone following repositories.
For installation of contrail, you can follow up contrail-installer README.
VM1:
Act as controller hence, we will be running all the openstack services, without openstack-nova-compute and opencontrail-vrouter-agent. Following, locarc for opencontrail.
Follow steps as per the contrail-installer and install contrail services.
cd contrail-installer
cp samples/localrc-all localrc (edit localrc as needed)
./contrail.sh build
./contrail.sh install
./contrail.sh configure
#Before starting contrail services, remove agent service from ENABLED_SERVICES
https://github.com/Juniper/contrail-installer/blob/master/contrail.sh#L12
./contrail.sh start
Devstack localrc: disabled most of the services like cinder, heat, tempest and compute
Copy opencontrail plugin for devstack to use:
cd devstack
cp ~/contrail-installer/devstack/lib/neutron_plugins/opencontrail lib/neutron_plugins/
./stack.sh
VM2 & VM3
This will be compute nodes, hence this will be running nova-compute and contrail-vrouter-agent serivces.
Localrc for contrail and devstack as follows:
Check out contrail localrc, INSTALL_PROFILE=COMPUTE
Verify setup with screen outputs: on all the VMs
screen -x contrail
screen -x stack
Screens for contrail and devstack on controller node
Screens for contrail and devstack on compute node
Check regiester compute nodes with ‘nova hypervisor-list’, and launch 2 VMs.
Test ping and ssh commands between vms
Let me know, wherever you stumble across problem during this setup. I will try my best to help you out.
Just got below patch merge now, which was necessary for multi-node contrail setup.
Hello Can you suggest me how to install openstack swift on multi node ?
http://docs.openstack.org/developer/swift/development_saio.html extend this to multinode
Hi! I read your guide and I’m also reading the official OpenContrail documentation.
In section 2.2.2 Layer 3 Unicast I see the communication between two Compute Node
The question is:
If I have 3 or more routers between the two Compute Node, how can OpenContrail find the routes to ensure communication between the two Compute Node?
I don’t have clear ideas!
Thank you!