Earlier  
Posted Nick Remark
#openstack-nova - 2017-01-24
10:13:45 bauzas johnthetubaguy: so, you'd prefer to have https://review.openstack.org/#/c/417961/19/nova/scheduler/host_manager.py@635 in the scheduler report client ?
10:14:05 mdbooth johnthetubaguy: If this is up against the wire I can probably write that today myself, btw. Is this on anybody's radar?
10:14:18 johnthetubaguy mdbooth: we already have the total as a config setting I think, thats the delay between steps, not the size of the steps
10:14:37 johnthetubaguy mdbooth: pkoniszewski is usually responsive if he is around
10:14:42 mdbooth I don't think there's a total time, it's calculated.
10:15:08 pkoniszewski I'm around
10:15:16 pkoniszewski yeah, I also agree with mdbooth comment, very good point
10:15:41 johnthetubaguy bauzas: I think I would like to see the scheduler directly call the placement client, then pass the return value into the host_state to get back the list of objects
10:15:56 johnthetubaguy bauzas: it could go into the scheduler or the placement client I think
10:16:09 johnthetubaguy mdbooth: I think live_migration_downtime is the config I mean
10:16:15 bauzas johnthetubaguy: you mean the scheduler driver, not the host manager ?
10:16:27 bauzas johnthetubaguy: so we could just drill down a list of hosts to the host manager?
10:16:31 johnthetubaguy mdbooth: there is the total timeout, and the time to reach the total timeout in the steps
10:16:54 bauzas johnthetubaguy: I need to consider that if so
10:16:58 johnthetubaguy mdbooth: given we also define a time after which the live-migrate is considered failed and we give up, we could use that to define the steps
10:17:13 bauzas johnthetubaguy: I actually made that split because of the CachingScheduler, but lemme think about that loud
10:17:19 pkoniszewski johnthetubaguy: live migration timeout can be set to 0 to disable it
10:17:22 johnthetubaguy bauzas: I think we would pass resource providers into the host manager
10:17:30 pkoniszewski johnthetubaguy: however, nova still needs to increase downtime over time
10:17:33 bauzas johnthetubaguy: I'm not sure I like that
10:17:33 johnthetubaguy bauzas: it shouldn't affect the caching scheduler
10:17:43 bauzas johnthetubaguy: I would pass hosts, not RPs to the Hostmanager
10:17:45 gmann alex_xu: seems like we just broke the validation part, feature still should work
10:17:53 johnthetubaguy pkoniszewski: yeah, we would need a default if that timeout is zero
10:17:54 pkoniszewski we would need some kind of a magic number
10:18:03 bauzas johnthetubaguy: I mean, lemme clarify
10:18:25 bauzas johnthetubaguy: I think having the filter scheduler directly calling the reportclient to get the list of RPs is a good idea
10:18:29 alex_xu gmann: is there still a way to set tag to the bdm or network device?
10:18:45 johnthetubaguy pkoniszewski: it could be some multiple of the 500 seconds setting, if overall timeout is 0
10:18:47 bauzas johnthetubaguy: what I'm saying is that the translation from RP to compute nodes should still be filter scheduler thing
10:18:59 johnthetubaguy bauzas: agreed
10:19:14 johnthetubaguy bauzas: I think the filter scheduler method stays the same, its just whats in there that changes
10:19:15 bauzas johnthetubaguy: from an interface PoV, that's actually an excellent point
10:19:27 bauzas I mean, the filter scheduler returns compute nodes
10:19:34 bauzas the host manager returns host states
10:19:34 johnthetubaguy bauzas: I kinda like passing the spec_obj into the placement client
10:19:43 bauzas that, I'm not sure
10:20:06 johnthetubaguy ah, OK, you want that to be resource providers?
10:20:07 johnthetubaguy thats fair enough
10:20:15 bauzas johnthetubaguy: because I'd like to see the "spec to RC usage" logic be still a scheduler thing
10:20:38 bauzas the placement client shouldn't expect anything about how the scheduler works
10:21:03 mdbooth johnthetubaguy pkoniszewski: Sorry, even though I only read it yesterday, I still had to refresh it :)
10:21:05 gmann alex_xu: for bdm yes as there is no additionalProperties=False there but yes for network it is not allowed as additionalProperties=False :(
10:21:15 bauzas johnthetubaguy: in particular given I'm now very opiniated on having the resource query being optional depending on the filters
10:21:30 gmann alex_xu: i am modifying tempest device tag tests with all combination and with all version mentioned by you
10:21:39 mdbooth So there's live_migration_downtime, which is the maximum permitted downtime of an instance during live migration
10:21:41 gmann alex_xu: let's see how bdm tag behave on those
10:21:42 bauzas johnthetubaguy: the last 3 days convinced me we need to opt-in the filters
10:22:10 johnthetubaguy mdbooth: totally with you on need to refresh, I guess thats the problem the operators are having too
10:22:16 mdbooth Then there live_migration_downtime_steps, which is the number of steps to take towards that maximum, and live_migration_downtime_delay, which is the delay between each step.
10:22:17 bauzas johnthetubaguy: either way, thanks for reviewing, that's very good insight, and I can do a new iteration this morning
10:22:35 bauzas johnthetubaguy: FWIW, I'm stuck with grenade not liking the placement service in newton
10:22:49 johnthetubaguy bauzas: I was thinking it would ideally be an object we pass into the placement client (that could be empty)
10:22:51 mdbooth So the total time until we go with the maximum is live_migration_downtime_steps * live_migration_downtime_delay
10:22:58 mdbooth pkoniszewski: Am I reading that right? ^^^
10:22:59 johnthetubaguy bauzas: ah yeah, that... :(
10:22:59 alex_xu gmann: initial I also think there is no addtionalProperties, but I found it copy that from bdm v1 schema https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/block_device_mapping.py#L61
10:23:13 pkoniszewski johnthetubaguy: but im still considering a new config option, i see a case where operator might want to get to target downtime in a couple of seconds but still such live migration might need 10+ minutes to complete
10:23:16 bauzas johnthetubaguy: for the moment, I was seeing a dict
10:23:22 pkoniszewski mdbooth: right, that's the current state
10:23:27 bauzas johnthetubaguy: but longer term, why not an object, agreed
10:23:53 johnthetubaguy bauzas: honestly, a TODO in there saying this argument sucks might be all I need on that bit, lol
10:23:57 bauzas I'm just thinking it shouldn't be the Spec object
10:24:11 openstackgerrit Andrey Kurilin proposed openstack/python-novaclient: [CLI] Fix token auth type https://review.openstack.org/424256
10:24:12 johnthetubaguy bauzas: yeah, thats cool, I just re-read that file, it has to be resource providers
10:24:18 bauzas yup zactly
10:24:24 gmann alex_xu: ahh, yea, thanks for pointing that
10:24:42 bauzas and the scheduler has some internal logic for translating the Spec object into a ResourceProviderQuery object
10:24:48 mdbooth pkoniszewski: My idea just was to add a new option which is the total time, hardcode the number of steps to 10 as you've done, and default the total to the product of the set deprecated values (if they're set).
10:24:55 bauzas whatever the object is
10:24:58 johnthetubaguy bauzas: so maybe if you pass the return value of placement into host_manger get, even if thats just the list of uuids, that would be better
10:24:59 alex_xu gmann: np, I drop in that trap also :)
10:25:02 johnthetubaguy bauzas: yeah, that sounds good
10:25:12 johnthetubaguy bauzas: right now its a dict, but thats OK for now I guess
10:25:18 bauzas johnthetubaguy: I can forge a patch soon
10:25:29 mdbooth pkoniszewski: Incidentally, I also wonderered about setting guest.migrate_configure_max_downtime() on every iteration, regardless of steps.
10:25:35 mdbooth Would that be expensive?
10:25:36 bauzas johnthetubaguy: and I'll wait for sean about how to discuss the grenade thing
10:25:58 bauzas because the issue I guess is that we don't default running the placement service in newton
10:26:11 johnthetubaguy bauzas: cool, hopefully that helps, just didn't quite read as I expected
10:26:13 gmann alex_xu: heh
10:26:14 bauzas so, when upgrading, it fails because the config file is not correctly setup
10:26:42 bauzas that would suppose we would modify the config between newton and ocata, but that's pretty high impacty
10:27:01 johnthetubaguy bauzas: honestly, we might just need to support not having placement while the min_service_version is below a threshold, and only start using it after that point?
10:27:20 bauzas johnthetubaguy: that's why I'm waiting the US folks to be up before engaging that convo
10:27:22 bauzas :)
10:27:43 bauzas lots of discussions went already around about the upgrade path
10:27:50 johnthetubaguy mdbooth: we still need something that sets QEMU occasionally on some periodic task, but thats a good point, you can just work out where you should be on the line, and set that value
10:28:07 johnthetubaguy bauzas: yeah
10:28:22 johnthetubaguy bauzas: just curious why we don't do it the usual way, but thats for later
10:28:38 bauzas johnthetubaguy: meaning be gentle with not having the placement service for newton ?
10:28:58 bauzas and gracefully fallback if we don't have the version supported ?
10:29:23 bauzas that's one option but the consensus was that it was okay to have a maintenance window
10:29:51 johnthetubaguy bauzas: well its not really a maintenance window right, its just if you want no outage, you have to do more work
10:33:04 openstackgerrit Radomir Dopieralski proposed openstack/python-novaclient: ListExtResource given in place of ListExtManager https://review.openstack.org/424570
10:38:23 bauzas johnthetubaguy: tried to summarize our convo in https://review.openstack.org/#/c/417961/19/nova/scheduler/client/report.py@212, just drop a note if you think I misunderstood our agreement
10:38:34 bauzas meanwhile, writing a new iteration
10:38:34 gmann alex_xu: johnthetubaguy oomichi additionalProperties=False saved us many times but this we only got under its hammer :)
10:38:49 gmann *this time
10:41:19 johnthetubaguy bauzas: we would pass resource providers uuids into the host manager I guess?

Earlier   Later