How do compute and network services communicate in OpenStack?

Asked by TorstenSchlabach

I understand that OpenStack is somewhat modular, i.e. there are a number of services such as the

- imaging service
- compute service
- storage server
- networking service

I also understand there is a choice of different implementations available of at least some of the services. I can configure my installation to use the Neuron (Quantum) network service of possibly a different one. Or implement my own, if I feel like that?

What I wonder is by what contract those services communicate with each other.

For example, whenever I launch an instance, it won't work without the compute service of course, but I also need to make sure I have a network port available to connect to, to make a simple example.

Is nova-compute calling to the networking service (if yes, how?) and does the networking service have any means to call back to the compute service if needed? I.e. if there are changes in the network that the compute service should be aware of.

Or should I more think about it that I (or Horizon) have to first call the network service to provide a port, then call the compute service and pass the uuid of the port into it to create an instance?

My reason for asking is motivated by:

https://bugs.launchpad.net/neutron/+bug/1175211

I have played a bit with my own fork of the code and implemented some true dynamic DHCP for example, which works fine up to the point where for example a VM is assigned a different IP address than last time after a reboot and Horizon / compute doesn't notice and thus floating IP assignments go wrong, just to make an example.

I hope I was able to make clear what I am after.

Regards,
Torsten

Question information

Language:
English Edit question
Status:
Open
For:
OpenStack Compute (nova) Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:

Can you help with this problem?

Provide an answer of your own, or ask TorstenSchlabach for more information if necessary.

To post a message you must log in.