Setting up networking on a compute node

Asked by Davor Cubranic on 2011-06-30

If install only nova-compute on a compute node of a multi-node cluster, is it supposed to set up the networking (bridge, routes, iptables) by itself like what happened on the controller node (which runs all five nova services: network, api, compute, objectstore, and scheduler)?

I use FlatDHCPManager, and on the controller just using "flat_interface" flag was sufficient to add a bridge to that NIC and set up the routing tables with no input from me. But on the compute node, none of this happens after I set up nova.conf and restarted the compute service. I can run commands like euca-describe-instances on the node, and it even shows up in "nova-manage service list" run on the controller. But no Nova-related networking was added: there is no br100 bridge, iptables are empty, and there is no route to the subnet used by guest instances.

Question information

Language:
English Edit question
Status:
Solved
For:
OpenStack Compute (nova) Edit question
Assignee:
No assignee Edit question
Solved by:
Vish Ishaya
Solved:
2011-07-21
Last query:
2011-07-21
Last reply:
2011-07-12
Vish Ishaya (vishvananda) said : #1

The bridge should be created automatically when you launch an instance, but you cannot route into the instances from the compute host.

Vish

On Jun 29, 2011, at 6:55 PM, Davor Cubranic wrote:

> New question #163228 on OpenStack Compute (nova):
> https://answers.launchpad.net/nova/+question/163228
>
> If install only nova-compute on a compute node of a multi-node cluster, is it supposed to set up the networking (bridge, routes, iptables) by itself like what happened on the controller node (which runs all five nova services: network, api, compute, objectstore, and scheduler)?
>
> I use FlatDHCPManager, and on the controller just using "flat_interface" flag was sufficient to add a bridge to that NIC and set up the routing tables with no input from me. But on the compute node, none of this happens after I set up nova.conf and restarted the compute service. I can run commands like euca-describe-instances on the node, and it even shows up in "nova-manage service list" run on the controller. But no Nova-related networking was added: there is no br100 bridge, iptables are empty, and there is no route to the subnet used by guest instances.
>
> --
> You received this question notification because you are a member of Nova
> Core, which is an answer contact for OpenStack Compute (nova).

Davor Cubranic (cubranic) said : #2

Launching an instance on the compute node runs it instead on the controller. No bridge is created on the compute node.

Davor Cubranic (cubranic) said : #3

I'm not sure how the instances are scheduled, but after starting up a few of them, all of which ran on the controller, one finally did start up on the compute node. I'm using the default scheduler. Does it pick a node based on some kind of load balancing?

Also, once the compute node started an instance, it set up br100 there, and I can ping and ssh into the instance running on the compute node from the controller. But compute nodes can't ping/ssh any instances, including ones they host. Is this by design? (no public ips are assigned, it's all private ips)

Best Vish Ishaya (vishvananda) said : #4

The default scheduler is chance scheduler which randomly picks a node. The simple scheduler will pick the least loaded host.

--scheduler_driver=nova.scheduler.simple.SimpleScheduler

compute hosts by default don't get an ip on the vm network or a route into the vms.

Vish

On Jul 11, 2011, at 5:16 PM, Davor Cubranic wrote:

> Question #163228 on OpenStack Compute (nova) changed:
> https://answers.launchpad.net/nova/+question/163228
>
> Davor Cubranic posted a new comment:
> I'm not sure how the instances are scheduled, but after starting up a
> few of them, all of which ran on the controller, one finally did start
> up on the compute node. I'm using the default scheduler. Does it pick a
> node based on some kind of load balancing?
>
> Also, once the compute node started an instance, it set up br100 there,
> and I can ping and ssh into the instance running on the compute node
> from the controller. But compute nodes can't ping/ssh any instances,
> including ones they host. Is this by design? (no public ips are
> assigned, it's all private ips)
>
> --
> You received this question notification because you are a member of Nova
> Core, which is an answer contact for OpenStack Compute (nova).

Davor Cubranic (cubranic) said : #5

Thanks Vish Ishaya, that solved my question.