| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-01-11 | |||
| 11:10:52 | bauzas | at least with nested RPs | |
| 11:11:11 | bauzas | I totally understand why we provide that exception | |
| 11:11:23 | bauzas | but maybe it could be a confusion for operatoes | |
| 11:12:55 | cdent | I suspect we're going to find a lot if interesting bits of a confusion as we start using the stuff for real. Which I hope we can start doing sooner than later. | |
| 11:13:20 | bauzas | anyway, thanks for your help | |
| 11:13:51 | bauzas | I'm just punting my thoughts, just keeping it in my mind | |
| 11:14:16 | bauzas | food for thoughts, that's it | |
| 11:14:18 | jianghuaw_ | bauzas, understood. thanks for the sharing. | |
| 11:20:17 | mdbooth | bauzas: Is 'allocations' persisted anywhere? That is, can we recall it after spawn e.g. during live migration/reboot/rescue? | |
| 11:27:33 | bauzas | mdbooth: you mean where are persisted 'allocations' ? in the API DB | |
| 11:28:14 | bauzas | I'm just amazed to see a feature working with new inventory classes :è) | |
| 11:28:16 | bauzas | :-) | |
| 11:28:34 | bauzas | the era of tech debt is just behind us now, huzzah \o/ | |
| 11:28:48 | gibi | yjk_: I filed a bp about your notification ehancement https://blueprints.launchpad.net/nova/+spec/add-action-initiator-to-instance-action-notifications | |
| 11:28:59 | bauzas | PCIManager, trust me, you're going to have a bad day ! | |
| 11:31:55 | cdent | mdbooth: they are recalled during migration | |
| 11:57:54 | mdbooth | cdent: Do you have a pointer? | |
| 11:58:06 | cdent | mdbooth: yeah, just a sec | |
| 11:59:01 | mdbooth | locations = self.reportclient.get_allocations_for_consumer( | |
| 11:59:02 | mdbooth | instance.uuid) | |
| 11:59:02 | mdbooth | ^^^ ? | |
| 11:59:20 | mdbooth | s/locations/allocations/ | |
| 11:59:21 | cdent | I was thinking of https://github.com/openstack/nova/blob/master/nova/conductor/tasks/migrate.py#L129 | |
| 11:59:41 | cdent | which calls replace_allocation_with_migration | |
| 12:00:50 | mdbooth | cdent: Does an instance have 2 sets of allocations during a migration, btw? | |
| 12:01:24 | cdent | yes, but one of them is identified by the uuid of the migration (in queens). For a while there were two, both identified by the instance | |
| 12:01:46 | mdbooth | cdent: Thanks | |
| 12:23:21 | yjk | Hi gibi, I have opened an openstack bug. Please check https://bugs.launchpad.net/nova/+bug/1742674 | |
| 12:23:22 | openstack | Launchpad bug 1742674 in OpenStack Compute (nova) "[Newton] Nova notifications do not show the user which initiates the event." [Undecided,New] | |
| 12:29:03 | gibi | yjk: I think it needs to be handled as a new feature, hence the blueprint I opened | |
| 12:29:41 | gibi | yjk: if you have time to work on such a feature I can help you | |
| 12:33:44 | yjk | gibi: I though you had asked me to open an openstack bug. That is why opened a bug. | |
| 12:35:08 | gibi | yjk: yes, but then based on the code comment I realized that it was the original intention to send the owner's user_id | |
| 12:35:30 | gibi | yjk: so I think we should add a separate field for the user id of the user that called the action | |
| 12:35:42 | gibi | yjk: and that will be more like a new feature than a bugfix | |
| 12:36:35 | yjk | gibi: I though you had asked me to open an openstack bug. That is why opened a bug. | |
| 12:38:12 | gibi | yjk: yes, first I thought that it is a bug then I realzied that it is more like a new feature | |
| 12:38:17 | gibi | yjk: sorry for the confusion | |
| 12:38:20 | ameeda | Hello, Please help me , please check this "http://paste.openstack.org/show/642597/" that caused when I introspect the node. | |
| 12:55:17 | ygl | hi all can someone help me with nova-scheduler please ? | |
| 12:55:38 | bauzas | ygl: sure? | |
| 12:59:15 | ameeda | bauzas: can you please help me ? | |
| 13:00:04 | ygl | bauzas: recently my openstack setup took a hit. it is not launching any instances. I cant see any use ful logs indicative of the problem, even though I enabled debug in nova.conf. After a lot of investigation I found that one of the computes is not reachable by it mgmt IP | |
| 13:00:14 | ygl | bauzas: why is it that the scheduler was not lookin gto for other good computes even though they are available but looking always for that unrechable compute node ? | |
| 13:00:23 | ygl | bauzas: ununtil I removed that compute from the nova zone, it did not work | |
| 13:00:35 | ygl | bauzas: why is it so with the scheduler ? | |
| 13:02:53 | ygl | bauzas: any idea ? | |
| 13:03:13 | bauzas | ygl: not sure I understand your problem | |
| 13:04:39 | bauzas | mdbooth: thanks for your review on https://review.openstack.org/#/c/528832/ | |
| 13:05:00 | bauzas | mdbooth: there are 3 "stages" on having VGPU capabiliities with libvirt | |
| 13:05:01 | mdbooth | bauzas: Thanks for a morning of discovery :) | |
| 13:05:17 | bauzas | mdbooth: first of all, you need a vGPU capable device | |
| 13:05:20 | ygl | bauzas: because of unreachable compute by its management IP, the nova-scheduler is not allowing to launch new instances on remaining compute nodes | |
| 13:05:36 | bauzas | mdbooth: this is expressed by a "mdev capable" PCI device | |
| 13:06:19 | bauzas | ie. a PCI device having mdev "capabilities" that say "for that type, you can have X vGPUs" | |
| 13:06:39 | bauzas | but a single PCI device can support multiple profiles, ie. types | |
| 13:07:05 | bauzas | that's only when you *create* a mediated device that the other types become unavailable | |
| 13:07:16 | bauzas | creating a mediated device is stage #2 | |
| 13:07:46 | bauzas | for creating a mediated device, you can't call the libvirt API but you rather need to use sysfs directly | |
| 13:08:14 | bauzas | that will generate a mediated device that you can see in the sysfs, but no guests are allocated yet to that host | |
| 13:08:16 | ygl | bauzas: any idea ? | |
| 13:08:59 | bauzas | ygl: seriously, no, we filter out unreachable computes but the others are still checked | |
| 13:09:17 | ygl | bauzas: but in my case it was failing | |
| 13:09:19 | mdbooth | bauzas: I think the above is in line with my (very newly acquired) understanding. | |
| 13:09:23 | bauzas | mdbooth: for having a guest having VGPUs, you need a stage #3 | |
| 13:09:31 | ygl | bauzas: until I dsiabled the bad compute, it didi not work | |
| 13:09:39 | bauzas | mdbooth: which is basically use that mediated device in the guest config | |
| 13:10:24 | mdbooth | bauzas: Yep. This is the parallel I drew with host-connected volumes. | |
| 13:10:27 | bauzas | mdbooth: so, about the risk of having all the mdevs not cleaned up, it's a non-problem | |
| 13:10:48 | mdbooth | Step 0 is create the volume (in cinder) | |
| 13:10:51 | bauzas | mdbooth: because we only care of how many mediated devices are still unassigned to a guest | |
| 13:10:59 | mdbooth | Step 1 is create a host device corresponding to that volume | |
| 13:11:06 | bauzas | if all the mediated devices are already created by the operator, that's not an issue | |
| 13:11:06 | mdbooth | Step 2 is add it to a guest. | |
| 13:11:31 | bauzas | and btw. there is a kernel race that prevents libvirtd to see the newly created mediated device, see my relnote | |
| 13:11:45 | mdbooth | Yeah, I read that. That's annoying. | |
| 13:11:51 | bauzas | so, in general, it's better to just create by yourself all the mediated devices beforehand | |
| 13:12:04 | mdbooth | FWIW I wouldn't bother working round that in Nova. Just note that here be dragons and wait for the fix. | |
| 13:12:16 | mdbooth | There are enough caveats for the experimental flag already, I think. | |
| 13:12:40 | bauzas | so, see, given each mediated device is cleaned up when it's detached from the guest, I don't see any problem with reusing them in between all the instances | |
| 13:12:55 | mdbooth | Thanks for that release note, btw. Best I've read. | |
| 13:12:57 | bauzas | (wrt. your last comment) | |
| 13:13:14 | bauzas | "Looking forward, we're not cleaning up mdevs. I don't think this is a problem right now when we only support 1 type, but IIUC allocating an mdev of type X can reduce the availability for type Y, right? If that's the case, I think we should consider cleaning up. This wouldn't be an immediate priority, though.'" | |
| 13:13:42 | mdbooth | bauzas: Got it. Yeah, that would only apply if these are mix and match. i.e. You can have 6 X and 6 Y. | |
| 13:13:56 | mdbooth | But I think you're saying as soon as you have 1 X you can only have X | |
| 13:14:04 | bauzas | because, and I told you that, if you have a physical device that can support X and Y types, once you create *one* single mediated device of X, then you litterally have 0 available for Y | |
| 13:14:14 | bauzas | exactly | |
| 13:14:34 | bauzas | (at least for the nvidia driver) | |
| 13:14:50 | mdbooth | Right, so the only advantage to cleanup is that you could potentially repurpose it later to be Y if you removed all X without requiring a restart. | |
| 13:15:03 | bauzas | mdbooth: http://images.nvidia.com/content/grid/pdf/GRID-vGPU-User-Guide.pdf section 1.3.2 "homogeneous vGPUs" | |
| 13:15:11 | mdbooth | That's in the realms of optimisation, though. Very much not important. | |
| 13:15:37 | bauzas | mdbooth: right, as an operator, you really need to consider which type to use, and not try to mix them up in between a single node | |
| 13:16:07 | mdbooth | The major issues were the races, the inconsistent XML generation, and that as a maintainer of the libvirt driver, in general I don't want _get_guest_xml doing even more surprising things. | |
| 13:16:14 | bauzas | I'd be in favor to limit as the maximum the fact to mix up different types across a single compute, even if you have multiple GPUs | |
| 13:16:43 | bauzas | mdbooth: the races are a concern, but I'd be in favor of adding the locks in a follow-up if you don't mind | |
| 13:16:45 | mdbooth | So if you create one of these instances, stop it, then start it, you've lost your vgpu. | |
| 13:16:54 | bauzas | mdbooth: that code is already pretty heavy | |
| 13:17:24 | bauzas | mdbooth: that's part of the extra testing I'm doing on my box | |
| 13:17:48 | mdbooth | bauzas: I think we can safely say it won't work without testing though, right? | |
| 13:17:53 | bauzas | I'm just tackling the last bits of privsep, but I was considering a shelve | |