Ask Your Question

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

asked 2015-05-19 13:58:19 -0500

ralvarep gravatar image

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 ( (

  • 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?

Thanks in advance.

edit retag flag offensive 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: Note that I am using nova-network...

affo gravatar imageaffo ( 2015-05-20 04:17:00 -0500 )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.

ralvarep gravatar imageralvarep ( 2015-05-20 12:51:29 -0500 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2015-05-19 19:30:01 -0500

GLaupre gravatar image

updated 2015-05-20 14:14:46 -0500

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.

image description

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 ./, 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
    # Nova - services to support libvirt based openstack clouds
    # Glance services needed for Nova
    # Cinder
    # Dashboard
    # Additional services

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:


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
# multihost devstack
# Configure OVS

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)

edit flag offensive delete link 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...

ralvarep gravatar imageralvarep ( 2015-05-20 12:46:25 -0500 )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.

ralvarep gravatar imageralvarep ( 2015-05-20 12:47:20 -0500 )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 :)

GLaupre gravatar imageGLaupre ( 2015-05-20 13:50:24 -0500 )edit

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

ralvarep gravatar imageralvarep ( 2015-05-20 16:14:38 -0500 )edit

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

awilki01 gravatar imageawilki01 ( 2015-05-21 23:30:05 -0500 )edit

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2015-05-19 13:58:19 -0500

Seen: 6,526 times

Last updated: May 20 '15