[openstack-dev] [nova][puppet][tripleo][kolla][fuel] Let's talk nova cell v2 deployments and upgrades
Matt Riedemann
mriedem at linux.vnet.ibm.com
Fri Jan 13 20:05:24 UTC 2017
On 1/13/2017 11:43 AM, Alex Schultz wrote:
> Ahoy folks,
>
> So we've been running into issues with the addition of the cell v2
> setup as part of the requirements for different parts of nova. It was
> recommended that we move the conversation to the ML to get a wider
> audience. Basically, cell v2 has been working it's way into a
> required thing for various parts of nova for the Ocata cycle. We've
> hit several issues[0][1] because of this. I put a wider audience than
> just nova because deployment tools need to understand how this works
> as it impacts anyone installing or upgrading.
>
> What is not clear is what is the expectation around how to install and
> configure cell v2. When we hit the first bug in the upgrade, we
> reached out in irc[2] around this and it seemed that there was little
> to no documentation around how this stuff all works. There are
> mentions of these new commands in the release notes[3] but it's not
> clear on the specifics for both the upgrade process and also a fresh
> install. We attempted to just run simple_cell_setup in the puppet
> (and tripleo downstream) because we assumed this would handle all the
> things. It's become clear that this is not the case. The latest
> bug[1] has shown that we do not have a proper understanding of what it
> means to setup cell v2, so I'd like to use this email to start the
> conversation as it impacts anyone either install Ocata fresh or
> attempting some sort of Newton -> Ocata upgrade.
>
> Additionally after some conversations today on irc[4], it's also
> become clear there is some disconnect around understanding between
> nova folks and people who deploy as to how this thing would ideally
> work. So, what I would like to know is how should people be
> installing and configuring nova cell v2? Specifically what are the
> steps so that the deployment tools and operators can properly handle
> these complexities. What are the assumptions being baked into
> simple_cell_setup? It seems to assume computes should exist before
> the cell simple setup where as traditionally computes are the last
> thing to be setup (for new installs).
>
> So, help?
>
> Thanks,
> -Alex
>
> [0] https://bugs.launchpad.net/tripleo/+bug/1649341
> [1] https://bugs.launchpad.net/nova/+bug/1656276
> [2] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2016-12-12.log.html#t2016-12-12T17:38:56
> [3] http://docs.openstack.org/releasenotes/nova/unreleased.html#id12
> [4] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2017-01-13.log.html#t2017-01-13T14:11:37
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
Thanks for starting this thread.
First, I want to apologize for the lack of communication and
documentation around this. I know this is frustrating. We've been very
heads down on getting the changes out and getting devstack/grenade
working with this stuff that we haven't taken the time to document it
outside of the release notes, which isn't adequate.
Without going into details, there was a major change in personnel this
release for working on cells v2 so we've been doing some catch-up and
that's part of why things are a bit scatter-brained.
Based on the discussion in IRC this morning, I took some time to try and
capture some of the immediate issues/todos/questions in the cells v2
wiki [1].
Documenting this is going to be a priority. We should have something up
for review in Nova by next week (like Monday), at least a draft.
I think it's also important to realize (for the nova team) that we've
been thinking about cells v2 deployment from an upgrade perspective,
which I think is why we had the simple_cell_setup command asserting that
you needed computes already registered to map to hosts and cells. As
noted, this is not going to work in a fresh install deployment where the
control services are setup before the computes. We're working on
addressing that in [2].
To compare with how simple_cell_setup works, the recently created
'nova-status upgrade check' command [3] is OK with there being no
compute nodes yet (it does fail if you don't have any cell mappings
though). It's OK with that because of the fresh install scenario. It
doesn't fail but it does report that you need to remember to discover
new hosts and map them once they are registered.
So for whatever reason the existing commands and code were written under
the assumption that you'd first create computes (or already have them)
and then map those to a cell, and we need to adjust the tooling for the
scenario that you want to create the cell first and map hosts later. I
think today grenade and devstack are working the same way as far as
setting up cells v2, but eventually I think we're going to want to make
grenade do the more specific upgrade path where we expect a compute node
to already exist and get mapped, and change the devstack path to use the
fresh install scenario where there might not be a compute node when the
cell is created, but then map it later after starting the nova-compute
service. That will build on top of [2].
We've also kicked around the idea of the computes auto-registering with
a cell when they are created, but we don't know which cell (if there are
multiple) they'd register with, and we've wanted to avoid an up-call
from the computes to the API to do that sort of thing. But that would
take away the manual step of running the discover_hosts command to map
the compute node to a cell. The way things are working right now when
getting instances at the API layer is we look for a cell mapping and if
the instance isn't in a cell, we fallback to the main database (no cells
configured). A warning gets logged when that happens. I think we can
live with that for now in Ocata and then when we get into Pike start
considering that an error but talk about auto-registration, i.e. maybe
we auto-register with a single cell and it's only an error if there are
multiple cells and we don't know which to register with. Or we mark a
specific cell as the 'default' or 'staging' cell that all new compute
nodes go into, and then provide a CLI or API to move hosts/instances to
another cell if needed. Anyway, those are longer-term concerns/ideas
right now.
First priority right now is going to be fixing simple_cell_setup [2] and
documentation, including not only the deployment steps, but also
documenting the various commands themselves, including inputs/outputs,
assumptions made and in what situations you can or should run them.
[1] https://wiki.openstack.org/wiki/Nova-Cells-v2
[2] https://review.openstack.org/#/c/420079/
[3]
https://github.com/openstack/nova/blob/31774fa2285a29e7b711a90586d120aaab0b627d/nova/cmd/status.py#L120-L173
--
Thanks,
Matt Riedemann
More information about the OpenStack-dev
mailing list