| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-10-16 | |||
| 19:29:05 | cdent | then no problem | |
| 19:29:50 | cdent | efried: let’s try to make this even more concrete, I’ll EOL when I’m done expressing the example | |
| 19:29:56 | cdent | two resource providers: | |
| 19:30:52 | cdent | compute_node1: inventory of VCPU 24, DISK_GB 1024, MEMORY_MB 1024, traits RAID5, HW_CPU_X86_3DNOW | |
| 19:31:36 | cdent | shared_diskA: inventory of DISK_GB 1024, traits RAID5, SSD, MISC_SHARES_VIA… | |
| 19:31:48 | efried | no, take RAID5 off of shared_diskA | |
| 19:32:03 | cdent | let me carry on as is | |
| 19:32:05 | efried | otherwise you match and it's not a problem. | |
| 19:32:06 | efried | okay. | |
| 19:32:10 | cdent | and then we’ll do that scenario | |
| 19:32:34 | cdent | those two are in an aggregate | |
| 19:33:39 | efried | GET /allocation_candidates?resources=VCPU:2,MEMORY_MB:512,DISK_GB:2&required=HW_CPU_X86_3DNOW,RAID5,SSD | |
| 19:33:50 | cdent | yes | |
| 19:34:16 | efried | You'll get { compute_node1: { VCPU: 2, MEMORY_MB: 512 }, shared_diskA: { DISK_GB: 2 } }. Cool. No problem. | |
| 19:34:31 | cdent | okay | |
| 19:34:43 | cdent | we agree that’s the design, right? | |
| 19:34:47 | efried | yup | |
| 19:34:51 | cdent | k, now | |
| 19:35:16 | cdent | shared diskA loses the RAID5 trait, but compute_node1 keeps it | |
| 19:35:23 | cdent | same request | |
| 19:35:33 | efried | Per the existing design, you will get the same result. | |
| 19:35:34 | cdent | the expected result, as designed, is nothi8ng | |
| 19:35:41 | efried | Correct. | |
| 19:35:57 | efried | sorry, "as designed" - we don't have a design point for this. | |
| 19:36:04 | efried | "as conceived", the expected result is nothing. | |
| 19:36:14 | cdent | yes, better choice of word | |
| 19:36:16 | efried | "as designed without having thought about this scenario" what you'll get is actually the same result as above. | |
| 19:36:33 | cdent | you have a test that shows that? | |
| 19:36:35 | efried | Because "as designed" we didn't think about this kind of split-trait scenario. | |
| 19:37:00 | efried | Well, no, because we haven't actually implemented traits on RPs yet. That's what alex_xu's change set is doing. | |
| 19:37:16 | efried | Which I suppose means there should be no harm in keeping that bit out of play for now? | |
| 19:37:41 | efried | ( ref: alex_xu's change set: https://review.openstack.org/#/c/479766/10/nova/objects/resource_provider.py ) | |
| 19:38:05 | cdent | a) there’s no harm keeping it out, but b) it’s the same thing I said before, we should write a test sooner than later that models the scenario you describe | |
| 19:38:29 | efried | cdent Yes, good idea. | |
| 19:38:31 | cdent | becuase as you talk about it, you make it sound like you think it expected to work. it is not | |
| 19:38:56 | cdent | if the second scenario is returing a result there is a bug | |
| 19:39:26 | efried | cdent Where should that test go? Cause without the above change, the framework isn't there. And if we keep aggregates out of the above change, same. | |
| 19:39:34 | cdent | and even if there is no code for it yet, we’ve got a test case prepared (at least mentally) for when there is | |
| 19:40:08 | cdent | isn’t there shared/aggregate code already pre-dating alex’s change? | |
| 19:40:18 | cdent | in objects/resource_provider.py | |
| 19:40:35 | efried | That's what I don't really know. | |
| 19:40:46 | efried | His change was really my first exposure to shared/aggregate code. | |
| 19:40:59 | cdent | one sec | |
| 19:42:59 | cdent | efried: https://review.openstack.org/#/c/460798/ introduced getting rps that share via misc | |
| 19:43:29 | efried | gaah, -1 for commit message width! | |
| 19:43:41 | edleafe | the horror!!! | |
| 19:44:29 | efried | cdent Aha, perfect, so yeah, this all makes total sense when traits are NOT in the picture at all. | |
| 19:44:57 | efried | And breaks down pretty handily once traits are introduced. | |
| 19:45:39 | cdent | so yeah, if a compute node is satisfy VCPU, and has a trait that is “about disk” | |
| 19:45:42 | cdent | things do get very weird | |
| 19:45:50 | efried | btw, I'm asserting that the scenario we walked through above is representative, not necessarily realistic. That is, even if we say "that'll never happen", something with the same characteristics is sure to pop up. | |
| 19:46:17 | cdent | yeah, I get that | |
| 19:46:27 | cdent | it’s better to be robust in the face of possibilities | |
| 19:46:52 | efried | One could imagine similar scenarios where network resources are provided by both the compute node and some shared RP. | |
| 19:46:53 | cdent | for a while the stake you mention above did exist, but then it went away, one option is for it to come back | |
| 19:48:11 | efried | Okay, what about when I have my ephemeral boot disk via local storage and my volumes shared (as they're likely to be) | |
| 19:48:33 | efried | Could solve it by modeling those storage types with different resource classes. But ew. | |
| 19:49:13 | efried | And in any case, there we get into a situation where we need to request separate chunks of storage inventory from separate RPs. | |
| 19:49:34 | cdent | yeah, this is not the first time that question comes up. I don’t know the answer right now. | |
| 19:50:27 | efried | But it sounds like the change set you pointed out means we do actually need an answer for this right now. | |
| 19:51:05 | cdent | efried: except that I’m not sure that code is doing anything | |
| 19:51:53 | cdent | it may very well be | |
| 19:52:08 | efried | cdent Well, it looks to me like it's letting you use aggregates. | |
| 19:52:45 | cdent | yes, but aggregates aren’t yet used in any particular way | |
| 19:53:23 | efried | Meaning there's no code that's creating aggregations yet? | |
| 19:53:29 | cdent | unless there are lots of clients of placement out there that we are not away of (which there very well may be, vmware has an entire feature set based around placement that has nothing to do with nova) | |
| 19:53:38 | efried | whee | |
| 19:53:49 | cdent | upstream, as far as I know, don’t think so, but I don’t know | |
| 19:55:49 | mriedem | wtf, why would hasattr return True on something and then immediately after that if i try to use it, i get an AttributeError? | |
| 19:56:16 | efried | mriedem Overrides? | |
| 19:56:21 | cdent | is it an ovo with a coerce? | |
| 19:56:27 | mriedem | no, fakelibvirtr | |
| 20:01:11 | mriedem | it's not even a Mock so getattr shouldn't be getting in the way | |
| 20:06:00 | cfriesen | are there any gotchas around running two instances of nova-compute one one system, one for local kvm instances and one for managing separate baremetal instances (for use with ironic)? | |
| 20:13:11 | cfriesen | I guess it might cause problems if the binary and hostname are the same for the two of them | |
| 20:22:29 | mriedem | my god, | |
| 20:22:40 | mriedem | when you find out you've been bashing your brains for an hour b/c of a copy paste error | |
| 20:22:43 | cdent | it’s full of stars | |
| 20:27:14 | openstackgerrit | Matt Riedemann proposed openstack/nova stable/ocata: libvirt: add check for VIR_DOMAIN_BLOCK_REBASE_COPY_DEV https://review.openstack.org/512406 | |
| 20:27:15 | mriedem | artom: ^ | |
| 20:54:35 | openstackgerrit | Chris Dent proposed openstack/nova master: [placement] Enable PUT dict to /allocations/{consumer_uuid} https://review.openstack.org/510625 | |
| 20:54:36 | openstackgerrit | Chris Dent proposed openstack/nova master: [placement] POST /allocations to set allocations for >1 consumers https://review.openstack.org/500073 | |
| 20:54:36 | openstackgerrit | Chris Dent proposed openstack/nova master: [placement] Document the changes to PUT /allocations/{consumer_uuid} https://review.openstack.org/510626 | |
| 20:54:37 | openstackgerrit | Chris Dent proposed openstack/nova master: [placement] Include project_id and user_id in GET /allocations https://review.openstack.org/512421 | |
| 20:54:37 | openstackgerrit | Chris Dent proposed openstack/nova master: Include project_id and user_id in AllocationList.get_all_by_consumer_id https://review.openstack.org/512420 | |
| 20:55:08 | mriedem | dansmith: melwitt: need an opinion on a backport scenario for https://review.openstack.org/#/c/505771/ | |
| 20:55:26 | mriedem | i need to do the same fix as in ^ but generically since we also need that fix for resize, unshelve and evacuate | |
| 20:55:36 | mriedem | i don't want to rename the method and then backport | |
| 20:56:02 | mriedem | so i can either copy the same fix outside the method in the 4 different places and backport it, or move the fix into the method with a todo to rename later | |
| 20:56:11 | mriedem | the rename would be master only | |
| 20:57:16 | mriedem | i'm leaning toward the latter - fix in one place, rename later | |
| 21:05:30 | mgagne | mriedem: what's the proper channel to get a blueprint approved/reviewed? https://blueprints.launchpad.net/nova/+spec/rebuild-ironic-config-drive | |
| 21:05:58 | mriedem | mgagne: generally during the weekly nova meeting if it's a specless blueprint | |
| 21:07:17 | mriedem | i think this would be ok as a specless feature parity bp | |
| 21:08:30 | mriedem | mgagne: so the issue is you create an ironic node instance with a config drive, and then when you rebuild the instance in nova, the new instance doesn't have a config drive, correct? | |
| 21:08:32 | mgagne | will add to open discussion for next meeting | |
| 21:08:39 | mgagne | mriedem: yes | |
| 21:08:48 | mriedem | ok, really a bug fix | |
| 21:09:14 | mgagne | mriedem: looks like someone from nova team had a different opinion in the bug report | |
| 21:09:19 | mgagne | and suggested a blueprint | |