On 5/28/2017 6:58 PM, joehuang wrote:
Hello,

There is one session in OpenStack Boston summit about Neutron multi-site, and discuss how to make Neutron cells-aware[1].

We have done experiment how Nova cells v2 + Neutron + Tricircle can work very well:

Thanks for testing this out Joe. It's great to get some feedback about people experimenting with cells v2, especially this close to master - we generally seem to have a 12-18 month latency on feedback for big things like this so it's hard to react quickly to something a year old. :)


Follow the guide[2], you will have one two cells environment: cell1 in node1 and cell2 in node2, and Nova-api/scheduler/conductor/placement in node1. To simplify the integration, the region for Nova-api is registered as CentralRegion in KeyStone.

This sounds sort of like what Dan Smith is doing in devstack for upstream CI:

https://review.openstack.org/#/c/436094/

That's a 2-node job so we have to turn it into multi-cell with just those two nodes, and one has to be running the controller services.


At the same time, the tricircle devstack plugin will also install RegionOne Neutron in node1 to work with cell1, RegionTwo Neutron in node2, i,e, we'll have one local Neutron with one cell, the neutron endpoint url in cell's compute node will be configured to local Neutron. each local Neutron will be configured with Tricircle local Neutron plugin.

We just mentioned that Nova-API is registered as CentralRegion, the tricircle devstack plugin will also start a central Neutron server and register it in CentralRegion( same region as Nova-API), the central Neutron server will be installed with Tricircle central Neutron plugin. In Nova-api's configuration nova.conf, the neutron endpoint url is configured to the central Neutron server's url.

If I'm understanding this correctly, nova-api will talk to Tricircle which is federating the networking API for Neutron across the two regions for "local" Neutron, right?

But what about nova-compute running within the cells? Are those talking *only* to the Neutron deployed local to the same cell that nova-compute is in? Or can each nova-compute talk to the central Neutron server?

I think most of us in Nova have been considering external services as global to Nova, so Neutron, Glance, Placement, Keystone and Cinder.

We don't support move operations, e.g. live migration, for server instances across cells yet, but when we do we'd need to know the Neutron topology to know which hosts we can send an instance to. This is sort of touched on in the Neutron routed networks spec for Nova, which involves using the Placement service for defining aggregate associations between compute hosts and pools of network resources:

https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/neutron-routed-networks.html


In both central Neutron server and local Neutron, the nova endpoint url configuration will be pointed to central Nova-api url, it's for call-back message to Nova-API.

Yup, so either Neutron sends an event to the central nova-api endpoint which knows which cell an instance is in and can route the message appropriately. I'm thinking of the os-server-external-events API in this case.


After the installation, now you have one CentralRegion with one Nova API and one Neutron Server, and regard to Nova multi-cells, each cell is accompanied with one local Neutron. ( It's not necessary for 1:1 mapping between cell and local Neutron, may multi-cells mapped to one local Neutron).

If you create network/router without availability-zone specified, global network/router is applied, all instances from any cell can be attached to. If you create network/router with availability-zone specified, you can get scoped network/router, i.e, the network/router can only be presented in regarding cells.

OK, this part about network AZs is probably related to what I was asking about above. I think Nova is pretty minimal when it comes to dealing with AZ and Neutron, i.e. when Nova creates a port it creates the port in the same AZ that the instance is in. I'm not sure what happens if that AZ does not exist in Neutron. I do know that managing AZs between Nova and Cinder has been a constant source of bugs and frustration:

http://lists.openstack.org/pipermail/openstack-operators/2017-May/013622.html


Note:
1. Because Nova multi-cells is still under development, there will be some issue in deployment and experience, some typical trouble shooting has been provided in the document[2]. 2. For the RegionOne and RegionTwo name which is registered by local Neutron, you can change it to other better name if needed, for example "cell1-subregion", "cell2-subregion", etc.

Feedback and contribution are welcome to make this mode works.

[1]http://lists.openstack.org/pipermail/openstack-dev/2017-May/116614.html
[2]https://docs.openstack.org/developer/tricircle/installation-guide.html#work-with-nova-cell-v2-experiment

Best Regards
Chaoyi Huang (joehuang)


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



--

Thanks,

Matt

_______________________________________________
OpenStack-operators mailing list
OpenStack-operators@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators

Reply via email to