| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-04-11 | |||
| 14:02:39 | bhagyashris | efried, jaypipes: yeah that is the best idea and that will not need to make any change at sch side | |
| 14:02:53 | jaypipes | efried: well, that's an entirely different question :) | |
| 14:03:01 | efried | But an important one, you'll agree. | |
| 14:03:08 | jaypipes | efried: and I see no reason why it wouldn't. | |
| 14:03:20 | bhagyashris | jaypipes: yeah totally agree with you point | |
| 14:03:20 | efried | Doesn't do us much good to have the alloc come from the right place if the storage still comes from the wrong place. | |
| 14:03:29 | jaypipes | efried: it's the same reason why pinning of CPU resources still works even though VCPU is tracked in placement. | |
| 14:03:37 | jaypipes | efried: in other words, assignment != allocation | |
| 14:04:30 | efried | jaypipes: So you're saying that by virtue of whatever existing code recognized the flavor request as wanting the storage to come from shared... is still working. | |
| 14:04:43 | jaypipes | efried: don't confuse a request for 10TB of disk with block device configuration information. | |
| 14:04:43 | efried | I don't know what that mechanism is, but if that's the case... fine. | |
| 14:05:08 | efried | ah, the bdm somehow identifies the source of the disk space? | |
| 14:05:51 | jaypipes | efried: no. nothing really knows whether the source of the disk space is shared. it's just that /var/lib/instances is on mounted shared storage. | |
| 14:06:14 | jaypipes | efried: that's pretty much the reason why shared storage resource accounting has been so wonky. | |
| 14:06:18 | efried | ohh. | |
| 14:06:26 | efried | So in this setup, there really *is* no local storage. | |
| 14:06:53 | jaypipes | efried: there totally *could* be. no way to know other than manually commenting out that code right now. | |
| 14:06:59 | openstackgerrit | Merged openstack/nova master: Update wording in @safe_connect placement warnings https://review.openstack.org/560039 | |
| 14:07:50 | bhagyashris | jaypipes: yeah that way I have tested | |
| 14:07:56 | jaypipes | efried: for the record, we used to determine if "the node was on shared storage" by literally attempting to write a file from two different compute hosts to a single location and checking if each node could read it. | |
| 14:08:13 | jaypipes | efried: IIRC, this was during live migration setup. | |
| 14:08:15 | efried | jaypipes: So here's where the virt driver would need to recognize whether the storage is shared or not, and if so, create* the sharing provider and put the DISK_GB inventory there instead of the compute node RP. | |
| 14:08:16 | efried | (*create, co-create, make sure it exists, etc.) | |
| 14:08:23 | jaypipes | efried: not sure if we still do that, but that's how it used to be. | |
| 14:08:49 | jaypipes | efried: no, the idea was never to have a compute node create the sharing provider. | |
| 14:08:58 | efried | don't focus on that bit. | |
| 14:09:04 | jaypipes | efried: the admin would do that, since they know they are setting up shared storage for a set of nodes. | |
| 14:09:27 | efried | well, okay; I'm also thinking about the PowerVM case, where we *do* want the driver to co-manage creation of the sharing provider. | |
| 14:10:09 | efried | because that would also be a non-hacky way to get rid of the compute node RP's DISK_GB inventory :) | |
| 14:10:45 | efried | Because we can't just blindly remove it (outside of the virt driver) based on the presence of an aggregated provider of the same RC. | |
| 14:11:06 | jaypipes | efried: I don't understand that last sentence. | |
| 14:11:11 | efried | We may legitimately have both shared and local at the same time. We may legitimately want the virt driver to do that management, etc. | |
| 14:11:50 | jaypipes | efried: why would you want the virt driver on a single compute node managing disk resources for multiple compute nodes? | |
| 14:11:52 | efried | jaypipes: I'm just saying if we're going to fiddle with the compute RP's DISK_GB inventory based on existence of sharing DISK_GB providers, that logic needs to be fully owned by the virt driver. We can't assume things outside of that scope. | |
| 14:12:46 | jaypipes | efried: sure. the process of fiddling with any resources that are owned by that compute node (and its children) should of course be controlled by the virt driver. | |
| 14:13:02 | efried | jaypipes: In the PowerVM case, it's because we can; and because we can, it means we don't need any outside agent (human or code) manitaining that sharing RP. | |
| 14:13:04 | jaypipes | efried: I don't agree that a single compute node should control inventory on shared disk providers, though. | |
| 14:13:24 | jaypipes | efried: then powervm can do that I guess. | |
| 14:13:32 | jaypipes | efried: obviously libvirt won't :) | |
| 14:13:35 | efried | It won't be a single compute node; it'll all the compute nodes attached to that sharing provider. | |
| 14:13:44 | efried | co-managing the SSP. | |
| 14:13:58 | jaypipes | efried: right, because it's a clustered hypervisor manager. | |
| 14:13:58 | efried | ...because they already co-manage the SSP (outside of the auspices of openstack) | |
| 14:14:04 | efried | yeah, that. | |
| 14:14:18 | jaypipes | in any case... | |
| 14:14:27 | efried | So anyway, I'm saying I'm on board with the idea if we state it like this: | |
| 14:15:28 | efried | Because libvirt (somehow) knows that the storage it's looking at is shared, libvirt's impl of update_provider_tree shall remove the DISK_GB inventory from the compute node RP. | |
| 14:15:51 | efried | Perhaps the (somehow) is signalled by the operator having created the sharing provider and associated it via aggregate with the compute node. | |
| 14:16:12 | efried | libvirt's u_p_t will look for that and, if found, nix the compute RP's DISK_GB inventory. | |
| 14:16:18 | efried | Does that gel with your thinking? | |
| 14:16:44 | efried | zero part of this involves nova code outside of the libvirt driver. | |
| 14:17:41 | jaypipes | efried: that is precisely my thinking, yes. | |
| 14:18:17 | efried | jaypipes: Cool beans. bhagyashris, are you on the hook for proposing that code? I can help you understand how to make it work. | |
| 14:19:12 | bhagyashris | efried: ok means the CN RP DISK_GB inventory will be remove if the shared resource provider is configured | |
| 14:19:55 | efried | bhagyashris: Yes. The part I was unclear on at first was that that would be done within the libvirt compute driver's implementation of update_provider_tree. | |
| 14:20:05 | efried | ...which I bet hasn't been proposed yet. | |
| 14:21:57 | mriedem | fyi if you see test_resize_with_reschedule_then_live_migrate failing in functional tests, it's https://bugs.launchpad.net/nova/+bug/1762876 | |
| 14:21:57 | openstack | Launchpad bug 1762876 in OpenStack Compute (nova) "test_resize_with_reschedule_then_live_migrate intermittently failing; migration is not yet complete" [High,Confirmed] - Assigned to Matt Riedemann (mriedem) | |
| 14:21:58 | mriedem | i'm working on a fix | |
| 14:22:07 | mriedem | apparently the instance status goes to ACTIVE before the migration is completed | |
| 14:24:14 | bhagyashris | efried: ok. so for this is there any bp or bug reported? Actually i am not fully aware about update_provider_tree part but i will start to understand that part and will get to know | |
| 14:24:57 | bhagyashris | efried: I just tested few things and put my observations and analysis | |
| 14:25:03 | efried | bhagyashris: There's a blueprint around update_provider_tree. It's substantially completed, and ready for virt drivers to start using it. | |
| 14:25:13 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Make NetworkAPI an abstract base class https://review.openstack.org/560440 | |
| 14:25:33 | openstackgerrit | Eric Fried proposed openstack/nova master: Remove :return from update_provider_tree docstring https://review.openstack.org/560442 | |
| 14:25:38 | efried | jaypipes: Fast approve-worthy ^ | |
| 14:27:15 | jaypipes | efried: done | |
| 14:27:24 | efried | jaypipes: Thanks. Not sure how I missed that. | |
| 14:27:58 | jaypipes | efried: you didn't. I did. | |
| 14:28:02 | efried | :) | |
| 14:30:42 | openstackgerrit | Eric Fried proposed openstack/nova master: WIP: libvirt: get_inventory => update_provider_tree https://review.openstack.org/560444 | |
| 14:30:45 | efried | jaypipes, bhagyashris: ^ | |
| 14:31:14 | efried | That would go under 'co-authorship candidate' in our fancy etherpad, cause I don't know from libvirt. | |
| 14:31:27 | efried | But now it can be used as the basis for what we discussed above. | |
| 14:33:50 | mriedem | gibi_awa1: my wedding gift to you is going to be bugs to discuss during the notifications meeting :) https://wiki.openstack.org/wiki/Meetings/NovaNotification#Agenda | |
| 14:45:09 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Fix race fail in test_resize_with_reschedule_then_live_migrate https://review.openstack.org/560454 | |
| 14:45:10 | mriedem | dansmith: efried: ^ fixes a regression i introduced | |
| 14:47:03 | openstackgerrit | sahid proposed openstack/nova master: libvirt: add support for virtio-net rx/tx queue sizes https://review.openstack.org/484997 | |
| 14:47:04 | openstackgerrit | sahid proposed openstack/nova master: libvirt: move version to string in utils https://review.openstack.org/560455 | |
| 14:47:05 | openstackgerrit | sahid proposed openstack/nova master: libvirt: refactor get_base_config to accept host arg https://review.openstack.org/560456 | |
| 14:47:21 | efried | mriedem: Reviewed. | |
| 14:48:01 | mriedem | thanks | |
| 14:48:07 | efried | bhagyashris, jaypipes: Is there a bug for the double-reporting of DISK_GB? | |
| 14:50:08 | bhagyashris | efried: Don't know exactly. I have just fetch your patch https://review.openstack.org/560444 and checked inventory table records | |
| 14:50:26 | efried | bhagyashris: Oh - does it work?? | |
| 14:51:00 | bhagyashris | efried: but still it showing the DISK_GB record in inventory table as i configured the shared resource provider | |
| 14:51:17 | efried | bhagyashris: Yup, that's expected. The above patch should have been a straight swap. | |
| 14:51:20 | efried | bhagyashris: But this one.... | |
| 14:51:24 | openstackgerrit | Eric Fried proposed openstack/nova master: WIP: libvirt: Don't report DISK_GB if sharing https://review.openstack.org/560459 | |
| 14:51:28 | efried | jaypipes: bhagyashris ^ | |
| 14:51:41 | efried | ...should do the thing we were talking about. | |
| 14:51:53 | efried | bhagyashris: Since you seem to be set up to try this easily, would you mind...? | |
| 14:51:55 | openstackgerrit | Merged openstack/nova master: api-ref: Parameter verification for servers.inc (2/3) https://review.openstack.org/550648 | |
| 14:55:17 | openstackgerrit | Merged openstack/nova master: api-ref: Parameter verification for servers.inc (3/3) https://review.openstack.org/550659 | |
| 14:56:53 | bhagyashris | efried: so it's not working so don't know why it's not | |
| 14:57:24 | bhagyashris | efried: let me check with this patch change https://review.openstack.org/560459 | |
| 14:58:51 | openstackgerrit | Merged openstack/nova master: api-ref: Fix parameter order in rebuild https://review.openstack.org/529718 | |
| 15:11:03 | bhagyashris | efried: we will need to use that update_provider_tree() method in https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L890 | |
| 15:11:35 | efried | bhagyashris: Yup, see https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L881 | |
| 15:11:51 | bhagyashris | efried: so that it will get the proper inv_data and will update here https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L892 | |