# DevStack Setup with 3 nodes (Controller - Network - Compute)

Hi everyone!

I am interested in create a OpenStack environment (for development) with DevStack. I have seen tutorials with two or more nodes in which you have in one node controller, network and compute functions (all in one), and in the others nodes you have compute functions.

I would like a topology like as proposed in the OpenStack documentation (http://docs.openstack.org/kilo/install-guide/install/apt/content/figures/1/a/common/figures/installguidearch-neutron-networks.png (http://docs.openstack.org/kilo/instal...)):

• Controller Node
• Network Node
• Compute Node (or more nodes)

But I don't know if it is possible with DevStack to separate the functions, and I can not find examples of local.conf for this.

Does anyone has succeeded? Is there any tutorial with sample files of local.conf?

edit retag close merge delete

answer by GLaupre is very valid. If you want a sample of local.conf for controller and compute nodes look at my repo: https://github.com/affear/fakestack. Note that I am using nova-network...

( 2015-05-20 04:17:00 -0600 )edit

Thanks affo, I can use yours samples of local.conf. Yes, I would like to create a separate network node with neutron. I suppose that the computer node has the same local.conf like your repo, now I need to separate your controler node in a controler node without nova-network and other neutron node.

( 2015-05-20 12:51:29 -0600 )edit

Sort by » oldest newest most voted

It is actually pretty simple to do so.

The only thing you have to do is to configure the IP's in the three nodes correctly in the local.conf file. Make sure you start the correct services on each node using the correct enable_service/disable_service parameters.

On the compute node you will generally only have the nova-compute and one neutron-agent running,

in the network node all neutron-service/agents (l3, dhcp,meta, metering,...) services

and in the controller, all nova/glance/keystone/horizon/... services.

Of course you will get some conflict error that you may need to change on the different .conf/.ini file but using the screens with ./rejoin-stack.sh, you can jump on the different services. press CTRL+C to stop the service, make your change, press the up arrow and you can restart the services and you should be fine.

This is a very gross explanation but you get the idea.

Edit your post if you have more questions :)

===================EDIT 1 ===================

In the file stachrc you will find the following services:

# This allows us to pass ENABLED_SERVICES
if ! isset ENABLED_SERVICES ; then
# Keystone - nothing works without keystone
ENABLED_SERVICES=key
# Nova - services to support libvirt based openstack clouds
ENABLED_SERVICES+=,n-api,n-cpu,n-net,n-cond,n-sch,n-novnc,n-crt,n-cauth
# Glance services needed for Nova
ENABLED_SERVICES+=,g-api,g-reg
# Cinder
ENABLED_SERVICES+=,c-sch,c-api,c-vol
# Dashboard
ENABLED_SERVICES+=,horizon
ENABLED_SERVICES+=,rabbit,tempest,mysql,dstat
fi


Those services are supposed to be started in a "all-in-one" node.

I can suggest you to start the following services for your tree nodes:

Controller:

keystone: key,
nova: n-api, n-cond, n-sch, n-novnc,n-crt,n-cauth,
glance: g-api,g-reg (if you want image service)
cinder: c-sch,c-api,c-vol (if you want storage)
horizon: horizon (to have the web dashboard)
utils: ,rabbit,mysql (I never used dstat and tempest)


As you want to use a network node, you want to use neutron, therefore the service n-net (nova-network) shouldn't be enabled in your controller

On your Network node: enable service: neutron, q-srv, q-dhcp, q-l3, q-meta, q-metering

In your neutron.conf file you will have to configure what plugin you wanna use (ML2 for example) and what type and mechanism drivers you wanna use. As you gonna use devstack, you will have to configure your local.conf file to use the desired plugin and the parameters you want: (this is a setup to use only VLAN as isolation and no tunneling mechanism)

#neutron cfg
Q_HOST=\$SERVICE_HOST
Q_PLUGIN=ml2
Q_ML2_TENANT_NETWORK_TYPE=vlan
ENABLE_TENANT_VLANS=True
ENABLE_TENANT_TUNNELS=False
ML2_VLAN_RANGES=mynetwork:100:199
PUBLIC_INTERFACE=enp6s0
# multihost devstack
MULTI_HOST=True
# Configure OVS
OVS_BRIDGE_MAPPINGS=mynetwork:br-enp4s0f4
OVS_PHYSICAL_BRIDGE=br-ex
OVS_ENABLE_TUNNELING=False


or follow that to configure afterwards the different .conf files and restart the services as I mentioned before You can take some insight using this guide.

For the compute node, the only services you wanna start are:

n-cpu, q-agt (the neutron agent that will match the requirement for your plugin, i.e. OVS mechanism driver
with the ML2 plugin)

more

Thanks GLaupre! With compute node I have ENABLED_SERVICES=nova,n-cpu,n-net,n-api. In network (neutron) node I suppose that it is necessary ENABLED_SERVICES=q-svc,q-agt,q-dhcp,q-l3,q-meta. And for controller node I don't know what services I have to enable...

( 2015-05-20 12:46:25 -0600 )edit

..., what is the name of Neutron Server and ML2 only (for controller node)? And what are the nova services ? There are n-api,n-cpu,n-net,n-cond,n-sch,n-novnc,n-crt,n-cauth.

( 2015-05-20 12:47:20 -0600 )edit

All the services you mentioned for the compute node are actually for the controller node. I'll edit my post and give you a better idea of what services to launch on what nodes. Give me some minutes :)

( 2015-05-20 13:50:24 -0600 )edit

Thank you so much for your edit !! I will try again with your setup !! ;)

( 2015-05-20 16:14:38 -0600 )edit

I'm assuming all three nodes can be created as VMs within one physical host system?

( 2015-05-21 23:30:05 -0600 )edit

# Get to know Ask OpenStack

Resources for moderators