Earlier  
Posted Nick Remark
#openstack-nova - 2017-06-14
17:29:50 dansmith and anything that can't run because computes aren't upgraded won't, like that pci one
17:30:28 openstackgerrit Dan Smith proposed openstack/nova master: DNM: Canary https://review.openstack.org/473565
17:30:28 openstackgerrit Dan Smith proposed openstack/nova master: Make compute_node_statistics() work across cells https://review.openstack.org/473931
17:31:29 cfriesen dansmith: https://docs.openstack.org/developer/nova/upgrade.html says to run it "once all services are running the new code"
17:32:05 cfriesen dansmith: or at least in the "after maintenance window" section along with other stuff that runs after all services are upgraded
17:32:49 cfriesen dansmith: so you're saying to run it once after control services are upgraded and then again after everything is upgraded?
17:32:51 dansmith yeah, I see the confusion,
17:32:56 dansmith what that's describing is the maintenance window for your control services, which requires total downtime,
17:33:01 dansmith after which you can roll your computes later
17:33:53 dansmith although it's also confusing the situation with the config bits being before that
17:33:54 cfriesen dansmith: it can't be the maintenance window for just control services, it talks about bumping the RPC version
17:34:10 cfriesen "Once all the services are running the latest version of the code, and all the services are aware they all have been upgraded, it is safe to transform the data in the database into its new format."
17:34:12 dansmith yeah, its' confusing
17:34:57 dansmith normally you wouldn't really have to run it twice, and either after control or after everything is done would be enough,
17:35:14 dansmith but if you've got a release where there are critical things on both sides...
17:35:38 cfriesen dansmith: do we guarantee that the online data migrations won't change things in such a way that they break old compute nodes?
17:35:50 dansmith that's the whole point of conductor
17:35:54 dansmith to insulate computes from those changes
17:40:40 cfriesen dansmith: okay. that answers my question, but I think we need to update the docs at https://docs.openstack.org/developer/nova/upgrade.html to make it clear that the online data migrations should be run earlier *during* the maintenance window.
17:41:09 cfriesen dansmith: and remove the comments that talk about it only needing to be run before the upgrade to the *next* version
17:41:43 dansmith cfriesen: perhaps mentioning that if you fail to reduce the remaining updates past a certain threshold, those may be things that need to run again later
17:42:52 openstackgerrit melanie witt proposed openstack/nova master: placement project_id, user_id in PUT /allocations https://review.openstack.org/469634
17:42:53 openstackgerrit melanie witt proposed openstack/nova master: placement: Add GET /usages to placement API https://review.openstack.org/469635
17:42:58 cfriesen dansmith: doesn't anything greater than zero mean you need to re-run it later?
17:42:58 dansmith I probably wrote that text and was writing it attempting to hit a generic scenario without mentioning every possibility, where I just put it in the process somewhere
17:43:14 dansmith cfriesen: if you run with --until-done or whatever, yeah
17:43:44 cfriesen dansmith: originally I think the idea was that you'd only need to run the online_data_migrations sometime before the next upgrade...that's the way it's written at https://docs.openstack.org/releasenotes/nova/newton.html
17:43:57 cfriesen "... budget time to run these online migrations before you plan to upgrade to ocata"
17:44:02 dansmith cfriesen: that has never been the "design intent"
17:44:32 dansmith because as those docs say, you're expecting more conductor load during the period where you're not fully migrated, so budget resources for that
17:45:29 cfriesen dansmith: there's been a disconnect then, because that sort of wording is all over the upstream documentation around upgrades
17:46:09 dansmith cfriesen: patches welcome
17:50:09 cfriesen dansmith: maybe next week. I'm now going to be busy modifying our automated upgrade tools and retesting everything.
17:56:01 cfriesen this won't impact people that upgrade nova-compute with all the guests still running....it's only a factor if you want to migrate all the instances off the "old" compute node to upgrade the OS as well.
17:59:51 cfriesen dansmith: question for you....if some online migrations can't complete until all the services are upgraded (like pcidevice_online_data_migration()) and others *must* complete in order to allow things to function, how does the person running the command know if it's safe to proceed?
18:01:15 cfriesen dansmith: it makes it really hard to reliably automate the call to "nova-manage db online_data_migrations"
18:02:02 cfriesen seems to me we need to break it up into two calls, one right after the control services are upgraded, and one after all the compute nodes are also upgraded
18:03:17 dansmith we've only ever had that one thing that needed to run after computes are up, and it's gone now
18:03:41 dansmith it's a very exceptional case and once you did it on any release it was present on, it was done
18:03:53 dansmith so not in favor of complicating things further based on one exceptional example
18:04:05 dansmith it could have printed a warning explanation and been fine I think
18:04:21 dansmith "sorry homey, I can't finish until after, so blah blah"
18:04:22 cfriesen dansmith: okay, didn't realize that was the only thing ever
18:04:52 dansmith yep, the only one ever, which is why in my head, you do this when control is upgraded
18:21:29 mnaser i'm trying to do some perf tweaking and i'm just curious on why a relatively idle 60-ish node cloud conductor rabbitmq message rates is at ~20/s
18:21:52 mnaser i increased the service report interval from 10 seconds up to 60s
18:22:13 mnaser and why i say relatively idle, there is no new servers being added/deleted etc
18:27:15 mriedem melwitt: one small thing in here https://review.openstack.org/#/c/446241/
18:27:26 mriedem melwitt: in a normal network delete, we call network_api.disassociate and then delete,
18:27:32 mriedem so we should do the same for that rollback
18:27:43 mriedem melwitt: i also found a fun latent networks quota bug in there
18:28:56 mriedem mnaser: could be a few things, periodic tasks in the computes come to mine
18:28:58 mriedem *mind
18:29:02 melwitt mriedem: cool, thanks. looking
18:29:14 mriedem might also depend on if you have instance_usage_audit enabled to send notifications
18:29:39 edleafe mnaser: You should probably ask on the #openstack channel. See #topic
18:30:02 mriedem edleafe: i actually want to know what mnaser is doing and finding out, given he runs vexxhost :)
18:30:09 mnaser edleafe im aware, i was just looking more on the internals of nova, i wasn't looking for a "how to fix" but more of a "what components would be good to look at"
18:30:48 mriedem mnaser: the computes are going to be running periodic tasks and pulling instances from the database over conductor
18:30:49 mnaser mriedem we toned down the service check ins (which is used by the services / scheduler) to 1 minute + 4 minute service_down_time and that helped
18:30:51 mriedem which is going to be rpc traffic
18:31:00 mriedem mnaser: this isn't the service check in
18:31:01 mnaser but yeah, periodic tasks is not something i've touched on yet
18:31:03 mriedem with the service group api
18:31:14 mriedem this would be things like the update_available_resources periodic task in the compute
18:31:36 mriedem that runs every minute by default to update resource usage information in the compute_nodes table and in the placement api
18:31:40 mriedem mnaser: which release?
18:31:53 mriedem there is also the instance_usage_audit task but that's disabled by default
18:31:59 mnaser i'll throw up debugging on a compute node
18:32:00 mnaser newton atm, no placement service in place yet
18:32:05 mriedem ok
18:32:10 mnaser yeah instance_usage_audit is off (well, i havent verified but notifications queue is empty and no consumers for it)
18:32:15 mriedem even w/o placement there is probably a lot of steady state traffic
18:32:35 mriedem the computes are also sending instance info to the filter scheduler every minute
18:32:37 mriedem *all* computes
18:32:42 mriedem even if you're not using the filter scheduler
18:32:45 mriedem you're welcome
18:32:53 mnaser lol!
18:33:12 mriedem are you using the filter scheduler or caching scheduler?
18:33:39 mnaser we are so i guess that helps, but 60 nodes every minute means 60 updates only so that averages to just one per second (and i think fuzzing in place in nova can help alleviate the big burst)
18:33:43 mnaser caching scheduler...? til.
18:33:56 mnaser the filter does the job for us though we had to reorder things because it took too long sometimes
18:34:13 mnaser aka computefilter is the last one but by the time it runs, "service is down"
18:34:50 mnaser (i dont know why it isn't earlier in by default, considering it's one of the more fundamental ones that might drop a whole bunch)
18:35:04 mriedem these are the current defaults
18:35:06 mriedem default=[
18:35:06 mriedem "RetryFilter",
18:35:06 mriedem "AvailabilityZoneFilter",
18:35:06 mriedem "RamFilter",
18:35:06 mriedem "DiskFilter",
18:35:06 mriedem "ComputeFilter",
18:35:06 mriedem "ComputeCapabilitiesFilter",
18:35:07 mriedem "ImagePropertiesFilter",
18:35:07 mriedem "ServerGroupAntiAffinityFilter",
18:35:08 mriedem "ServerGroupAffinityFilter",
18:35:08 mriedem ],
18:35:36 mriedem i think we can drop ramfilter and diskfilter from defaults now that we have placement required in ocata, but would have to check that out again
18:35:59 mnaser computefilter pretty much checks if service is alive
18:36:00 mnaser so... id imagine that's more important than figuring out if you have enough ram
18:36:22 mnaser but i guess the logic was ram will eliminate a bigger subset of possiblities rather than disabled nodes

Earlier   Later