| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-07-08 | |||
| 15:42:34 | sean-k-mooney | e.g. does it really need to be set to the free space | |
| 15:42:53 | mriedem | note that _move_claim will have the same issue here i'd think | |
| 15:43:07 | cdent | a) what mriedem said, b) the idea is to make sure placement has a way to prevent someone asking for more physical disk than is available | |
| 15:43:45 | cdent | mriedem: it's less of a risk there as they a) don't happen as much, b) happen even less in the vmware environment, c) this problem really only shows up when throwing > 2000 vms as the same nova-compute | |
| 15:43:57 | cdent | s/as the/at the/ | |
| 15:44:11 | sean-k-mooney | cdent: ya i get that. i wonder if this is somthing we coudl do when we make the inital allocation | |
| 15:44:29 | mriedem | the initial allocation doesn't involve the driver | |
| 15:44:30 | sean-k-mooney | e.g. is this somethign we shoudl consider for all driver in general | |
| 15:44:37 | sean-k-mooney | true | |
| 15:44:41 | efried | kashyap: Thank you. Your votes/comments on those patches will be beneficial. Sounded like melwitt will also appreciate it. | |
| 15:44:53 | cdent | no other driver (that I'm aware of) would need this as they report real and true inventory | |
| 15:44:56 | sean-k-mooney | but shoudl we be doing it for libvirt with ceph/nfs | |
| 15:45:21 | cdent | it's only when you have non-contiguous disk(s) | |
| 15:45:52 | sean-k-mooney | cdent: ok would this be solved in the futrue by representing | |
| 15:45:54 | mriedem | in the libvirt+ceph case, we report total and max_unit the same, and placement will reject requests that are too big because of the capacity calculation in placement, right? | |
| 15:46:00 | sean-k-mooney | the datastores as different shareing providers | |
| 15:46:27 | cdent | sean-k-mooney: yes, except for the thing I said above about something called "storage policy" which would disrupt placement's understanding of where things are | |
| 15:46:36 | sean-k-mooney | mriedem: yes which is fine for ceph as we have a singel pool for vms | |
| 15:47:02 | mriedem | i'd prefer not to have a config option for this behavior, | |
| 15:47:07 | mriedem | you could add a variable on the driver itself, | |
| 15:47:22 | mriedem | which could be controlled by the driver depending on if the vcenter driver is doing this shared storage pool modeling thing | |
| 15:47:24 | cdent | yeah, I'm not even clear if it should ever be upstreamed | |
| 15:47:30 | mriedem | the RT would check that, and by default we do as we do today | |
| 15:47:49 | mriedem | i've done similar hacks in the RT for ironic | |
| 15:47:54 | mriedem | b/c they are a special unicorn as well | |
| 15:48:02 | mriedem | *we've done | |
| 15:48:21 | cdent | unicorn's are a PITA | |
| 15:48:28 | cdent | hmm unicorns too | |
| 15:48:48 | mriedem | always pooping out frosting on my yard and such | |
| 15:48:59 | cdent | Thanks mriedem, sean-k-mooney, efried this has been very useful. | |
| 15:49:07 | cdent | and such | |
| 15:49:15 | kashyap | efried: Yes, will review | |
| 15:49:43 | cdent | If it turns out I can extract a little bit of 'if this virtdriver magic' i'll make it so | |
| 15:50:41 | openstackgerrit | Sundar Nadathur proposed openstack/nova master: ksa auth conf and client for cyborg access https://review.opendev.org/631242 | |
| 15:50:42 | openstackgerrit | Sundar Nadathur proposed openstack/nova master: WIP: Create and bind Cyborg ARQs. https://review.opendev.org/631244 | |
| 15:50:42 | openstackgerrit | Sundar Nadathur proposed openstack/nova master: WIP: Add Cyborg device profile groups to request spec. https://review.opendev.org/631243 | |
| 15:50:43 | openstackgerrit | Sundar Nadathur proposed openstack/nova master: WIP: Get resolved Cyborg ARQs and add PCI BDFs to VM's domain XML. https://review.opendev.org/631245 | |
| 15:53:44 | mriedem | gibi: looks like https://review.opendev.org/#/c/637955/31 and https://review.opendev.org/#/c/669188/2 conflict, maybe you want to rebase the fix underneath the bigger change? | |
| 15:57:09 | sean-k-mooney | cdent: by the way i assume there are buisness reasons that vmware would prefer not to map each compute node to a specifc data store and use cinder with volume type to express storage policies for everything else | |
| 15:57:39 | cdent | sean-k-mooney: yeah, the basic root of all these things is "let the DRS continue to work" | |
| 15:57:47 | sean-k-mooney | i know vmware have lots of fancy feature built into the hypervior and storage solution so im guessign the current approch is trying to expose them | |
| 15:58:02 | sean-k-mooney | right ok makes sense | |
| 15:58:31 | cdent | it creates a huge impedance mismatch between the way nova thinks and the way vmware thinks, but that's the way it goes | |
| 15:59:48 | sean-k-mooney | ya hyperv also has some limited clustering of vms and storage pools but its not as advanced as what vcenter does so the impedence miss match is less of an issue for them i guess | |
| 16:00:43 | cdent | there's been discussion of tying to listen to events from the DRS via some agent that would then "correct" placement when DRS makes a change | |
| 16:01:14 | cdent | but that would require more effort than currently available resources | |
| 16:01:45 | gibi | mriedem: will do | |
| 16:01:55 | sean-k-mooney | that might require you to reshap allocation if it moved things right if you had a shareing provider per datastore | |
| 16:02:30 | sean-k-mooney | although if you had just one RP and hid the datastore i guess it woul just have to modify the max unit | |
| 16:02:35 | sean-k-mooney | as it does today | |
| 16:03:12 | sean-k-mooney | cdent: also i assume you are more or less the resouces that are available to work on it | |
| 16:04:42 | cdent | sean-k-mooney: I consider myself already fully booked | |
| 16:05:11 | sean-k-mooney | cdent: yep proably over booked | |
| 16:07:09 | prometheanfire | which db field is the 'volumes_attached' field sourced from? | |
| 16:07:36 | prometheanfire | smcginnis: you might know? ^ | |
| 16:08:25 | mriedem | prometheanfire: block_device_mappings | |
| 16:08:42 | smcginnis | mriedem is the expert there. ;) | |
| 16:09:19 | prometheanfire | mriedem: thanks, I can't reproduce it, but cinder created a volume fine, but nova was 504 on the attach (it shows up in the db but no action taken on the compute host) | |
| 16:09:31 | prometheanfire | restart nova services with debug/verbose and it attaches fine | |
| 16:09:51 | prometheanfire | since it was only half added, the api can't delete it | |
| 16:10:28 | mriedem | prometheanfire: meaning nova-compute asked cinder to create the volume, right? | |
| 16:10:37 | mriedem | bdm source_type != 'volume' | |
| 16:11:21 | mriedem | "the api can't delete it" - you mean the cinder api can't delete the volume? or the compute api can't delete the server? | |
| 16:11:25 | prometheanfire | mriedem: no, volume created manually (worked), then nova was asked to attach volume (failed) | |
| 16:11:32 | prometheanfire | api can't remove it from the instance | |
| 16:11:41 | prometheanfire | the failed part half attached it to the instance | |
| 16:12:20 | prometheanfire | added to block_device_mapping table but no action taken on compute host | |
| 16:12:23 | openstackgerrit | Merged openstack/os-vif master: Add Python 3 Train unit tests https://review.opendev.org/669438 | |
| 16:12:50 | mriedem | so there is a bdm, and the volume shows up for the server but when you try to detach it what happens? nova gets an error from cinder? | |
| 16:12:58 | mriedem | saying it's already detached (not attached) or something? | |
| 16:13:15 | prometheanfire | nova questions cinder if it's attached, cinder says no, nova does nothing | |
| 16:14:00 | mriedem | as in nova doesn't delete the bdm so it stops showing up as attached to the server | |
| 16:14:03 | prometheanfire | does nothing -> says it's not attached, why are you asking me to detach something that's not attached (returned to user) | |
| 16:14:15 | mriedem | which release? | |
| 16:14:19 | prometheanfire | stein | |
| 16:14:50 | prometheanfire | I haven't been able to reproduce this after restarting nova stuff infra side | |
| 16:15:01 | prometheanfire | so maybe some timeout or hanging connection? | |
| 16:15:20 | mriedem | my guess is cinder is failing on this call: https://github.com/openstack/nova/blob/86524773b8cd3a52c98409c7ca183b4e1873e2b8/nova/compute/api.py#L4175 | |
| 16:15:43 | prometheanfire | maybe, for the detach part | |
| 16:16:14 | mriedem | well what error do you get from the compute API? | |
| 16:16:26 | mriedem | "Invalid volume: %(reason)s" | |
| 16:16:53 | prometheanfire | No volume with a name or ID of '3e92f9b6-1a3b-4a7e-8487-6ff253e888db' exists. | |
| 16:17:01 | prometheanfire | since I removed the volumes | |
| 16:17:36 | prometheanfire | Invalid volume: Invalid input received: Invalid volume: Unable to detach volume. Volume status must be 'in-use' and attach_status must be 'attached' to detach. (HTTP 400) (Request-ID: req-01d8a3c5-66f4-43a4-bac5-9f1104a292fe) (HTTP 400) (Request-ID: req-358132e4-38a1-493a-b87b-d135791bae2d) | |
| 16:17:40 | mriedem | msg = _("Unable to detach volume. Volume status must be 'in-use' " | |
| 16:17:41 | mriedem | yup | |
| 16:17:41 | mriedem | "and attach_status must be 'attached' to detach.") | |
| 16:17:48 | mriedem | that's the begin_detaching call failing | |
| 16:18:05 | prometheanfire | because it never actually attached :D | |
| 16:18:11 | openstackgerrit | sean mooney proposed openstack/os-vif master: Sync Sphinx requirement https://review.opendev.org/666387 | |
| 16:18:14 | mriedem | right i get it | |
| 16:18:41 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: nova-manage: heal port allocations https://review.opendev.org/637955 | |
| 16:18:48 | gibi | mriedem: rebased ^^ | |
| 16:19:43 | mriedem | prometheanfire: interesting you wouldn't hit this in the compute service when the attach fails and delete the bdm https://github.com/openstack/nova/blob/86524773b8cd3a52c98409c7ca183b4e1873e2b8/nova/compute/manager.py#L5722 | |
| 16:20:41 | prometheanfire | haven't been able to reproduce after restart of services, but am leaving it in debug mode in case it happens again | |
| 16:21:06 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Move consts from neutronv2/api to constants module https://review.opendev.org/668945 | |
| 16:21:07 | mriedem | were there errors in the compute log after the failed attach about not being able to delete the bdm? | |
| 16:21:14 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Use neutron contants in cmd/manage.py https://review.opendev.org/668946 | |
| 16:21:26 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Add 'resource_request' to neutronv2/constants https://review.opendev.org/668947 | |
| 16:22:04 | prometheanfire | compute didn't even attempt to attach from what I could see | |