Jump to: navigation, search

NeutronDevstack

Revision as of 09:28, 1 August 2012 by Launchpad (talk)

Basic Setup

Note: Since we are removing support for Quantum v1 and v1.1 API, these instructions are updated to work with Quantum v2, even though v2 work is not complete until the end of F-3.

In order to use Quantum with devstack (http://devstack.org) a single node setup, you'll need to add "quantum", "q-svc", "q-agt", and "q-dhcp" to ENABLED_SERVICES in your localrc. You should also set your firewall driver to be the NoopFirewallDriver. See this page for more details on localrc settings: http://devstack.org/stack.sh.html.

For example:

ENABLED_SERVICES="g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-vnc,horizon,mysql,rabbit,openstackx,quantum,q-svc,q-agt,q-dhcp"
LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver
Q_PLUGIN=openvswitch


Then run stack.sh as normal.

Multi-Node Setup

A more interesting setup involves running multiple compute nodes, with Quantum networks connecting VMs on different compute nodes.

You should run at least one "controller node", which should have a stackrc that includes at least:


ENABLED_SERVICES="g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-vnc,horizon,mysql,rabbit,openstackx,q-svc,quantum,q-agt,q-dhcp"
Q_PLUGIN=openvswitch


You likely want to change your localrc to run a scheduler that will balance VMs across hosts:


SCHEDULER=nova.scheduler.simple.SimpleScheduler


You can then run many compute nodes, each of which should have a stackrc which includes:


ENABLED_SERVICES="quantum,q-agt,n-cpu,g-api,rabbit"
Q_PLUGIN=openvswitch


Note: the need to include 'g-api' and 'rabbit' here seems to be a bug. Without it, nova-compute dies because it can't import the glance.common library. This process does not actually need to be running on this host, we just need a way to make sure the glance.common library is installed. If 'rabbit' is not specified, nova-compute also will try to connect to rabbit on localhost, not the "controller host". See the following link for info on both issues: https://answers.launchpad.net/devstack/+question/197749

Each compute node also needs to have a modified localrc to point to the "controller" for services that are only run once per deployment:


SERVICE_HOST=[IP of controller node]
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST