Jump to: navigation, search

Difference between revisions of "NeutronDevstack"

Line 2: Line 2:
 
== Basic Setup ==
 
== Basic Setup ==
  
In order to use Quantum with devstack (http://devstack.org) you'll need to add "quantum" and "q-svc" to ENABLED_SERVICES in your localrcSee this page for more details on localrc settings: http://devstack.org/stack.sh.html.
+
'''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.   
  
If you want to enable the openvswitch plugin, you'll have to set Q_PLUGIN to "openvswitch" and also add "q-agt" to ENABLED_SERVICES in order to start the openvswitch quantum agent (also in your localrc).
+
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:
 
For example:
  
 
<pre><nowiki>
 
<pre><nowiki>
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"
+
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
 
Q_PLUGIN=openvswitch
LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver
 
 
</nowiki></pre>
 
</nowiki></pre>
  
Line 19: Line 19:
 
== Multi-Node Setup ==
 
== Multi-Node Setup ==
  
A more interesting setup involves running multiple compute nodes, with Quantum networks connecting VMs on different compute nodes.  This is now possible with the latest (5/26/12) version of devstack. 
+
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:  
 
You should run at least one "controller node", which should have a stackrc that includes at least:  
Line 25: Line 25:
  
 
<pre><nowiki>
 
<pre><nowiki>
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"
+
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
 
Q_PLUGIN=openvswitch
 
</nowiki></pre>
 
</nowiki></pre>
Line 46: Line 46:
 
</nowiki></pre>
 
</nowiki></pre>
  
 +
 +
'''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:  
 
Each compute node also needs to have a modified localrc to point to the "controller" for services that are only run once per deployment:  
Line 54: Line 56:
 
MYSQL_HOST=$SERVICE_HOST
 
MYSQL_HOST=$SERVICE_HOST
 
RABBIT_HOST=$SERVICE_HOST
 
RABBIT_HOST=$SERVICE_HOST
</nowiki></pre>
 
 
 
'''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
 
 
== Running with Melange ==
 
 
To enable melange in devstack add "melange" and "m-svc" to the ENABLED_SERVICES (melange requires quantum to be enabled as well).
 
 
For example:
 
 
<pre><nowiki>
 
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit,openstackx,q-svc,q-agt,m-svc,quantum,melange
 
 
</nowiki></pre>
 
</nowiki></pre>

Revision as of 09:28, 1 August 2012

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