openstack-discuss Digest, Vol 51, Issue 6

Kerem Çeliker celiker.kerem at icloud.com
Wed Jan 4 08:48:00 UTC 2023


Hello Stephen,

Yes, OpenStack does support USB passthrough. You can pass through USB devices to instances running in OpenStack by using the nova.virt.libvirt.vif.LibvirtGenericVIFDriver driver and the qemu:commandline option in the nova.conf file.

Best,
Kerem Çeliker
keremceliker.medium.com
Sent from my iPhone

> On 4 Jan 2023, at 02:25, openstack-discuss-request at lists.openstack.org wrote:
> 
> Send openstack-discuss mailing list submissions to
>    openstack-discuss at lists.openstack.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
>    https://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss
> 
> or, via email, send a message with subject or body 'help' to
>    openstack-discuss-request at lists.openstack.org
> 
> You can reach the person managing the list at
>    openstack-discuss-owner at lists.openstack.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of openstack-discuss digest..."
> 
> 
> Today's Topics:
> 
>   1. Re: [nova] Do openstack support USB passthrough (Sean Mooney)
>   2. Re: [ops] QOS on flavor breaking live migration from CentOS 7
>      to 8 (Sean Mooney)
>   3. Re: [cloudkitty] Instances billing based on tags (Satish Patel)
>   4. [nova][keystone] workload identity? (Mohammed Naser)
>   5. Re: [cloudkitty] Instances billing based on tags
>      (Rafael Weing?rtner)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 03 Jan 2023 19:03:23 +0000
> From: Sean Mooney <smooney at redhat.com>
> To: Stephen Finucane <stephenfin at redhat.com>,  ???
>    <hanguangyu2 at gmail.com>, openstack-discuss
>    <openstack-discuss at lists.openstack.org>
> Subject: Re: [nova] Do openstack support USB passthrough
> Message-ID:
>    <765850d1c170a510d34dafb4253ab97528829351.camel at redhat.com>
> Content-Type: text/plain; charset="UTF-8"
> 
>> On Tue, 2023-01-03 at 14:54 +0000, Stephen Finucane wrote:
>>> On Mon, 2022-12-26 at 10:04 +0000, ??? wrote:
>>> Hi, all
>>> 
>>> I want to ask if openstack support USB passthrough now?
>>> 
>>> Or if I want the instance to recognize the USB flash drive on the
>>> host, do you have any suggestions?
>>> 
>>> Thanks,
>>> Han
>> 
>> This isn't supported in nova and probably never will be. The closest you can get
>> is to passthrough an entire USB controller as suggested by this blog [1], but
>> that's really a hack and I 100% would not use it in production.
> 
> ya so we have discussed usb passthough supprot a few times and its somethign nova could add but there has
> neither been the demand or desire to add it stongly enough in the core team to actully do it.
> 
> the shorted path to enableing usb passthoug would likely be to add support to cyborg and then add support for that ot nova.
> i am perhaps the most open of the nova cores to supporting usb passthough since i have wanted to add it in the past but
> if we were to support it it would have to be similar to howe we support pci passhtough. static provisioning and likely only of
> stateless devices which rules out usb falsh drives.
> 
> usb gps recivers for precision time stamping was one of the usecause raised in the past which we were somewhat open too
> the other was usb programmers/debuggers forh cases when vms where used in industral test and automation workflows.
> 
> as stephen said the only way to do it today is to piggyback on pci passthough and passhtough a usb contoller not a single device.
> 
> if we were to ever support this in nova directly i would proably extend the pci tracker or support other buses like usb or use the generic
> resouce table created for persistent memory to model the devices. in eitehr case we would want this capablity to be placement native from the
> start if we added this capablity so it would be more and less work then you might imagine to do this right.
> less work if we maintain the requirement for statless devices only (ie no usb flash drives) more if you also need to handel multi tenancy and
> move operation include data copying, erasure and or encypetion.
> 
> i would not expect this to change in the next few release unless multiple operators provide feedback that this is a broadly deired capablity.
> with out a top level generic device api for mutple type of devices (vgpu, usb, pci) that was decoupled form the flaovr or an abstraction like
> the cyborg device-profile or pci alias it is hard to see a clean way to model this in our api. that is why enabling it in cyborg and then extneding
> nova ot support device profiles with a device type of usb is the simplar solution  form a nova perspecitve but that is non trivial from an operational
> perspective as you requrie cyborg to utilise the feature. doing it via a usb_alias in the flavor has all the draw backs of the pci_alias, static
> configuration that must match on all compute nodes and futher proliferation of flavor explostion. this is one of the reasons we have not added this in
> the past.  the work to do it in the libvirt driver would not be hard but the maintaince and operational overhead of using it for operators is non
> trivial.
> 
>> 
>> Stephen
>> 
>> [1] https://egallen.com/openstack-usb-passthrough/
>> 
>> 
> 
> 
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 03 Jan 2023 19:20:50 +0000
> From: Sean Mooney <smooney at redhat.com>
> To: Jahson Babel <jahson.babel at cc.in2p3.fr>,
>    openstack-discuss at lists.openstack.org
> Subject: Re: [ops] QOS on flavor breaking live migration from CentOS 7
>    to 8
> Message-ID:
>    <b0f13cde177cd8b5f7e6e5b20445decab7dbc8b8.camel at redhat.com>
> Content-Type: text/plain; charset="UTF-8"
> 
> hi yes this is a know issue.
> 
> so the simple answer is resize all affected vms instead of live migrating them
> the longer answer is we have been dissing this internally at redhat on and off for
> some time now.
> https://bugs.launchpad.net/nova/+bug/1960840 is one example where this happens.
> 
> there is another case for the cpu based quotas that happens when going form rhel/centos 8->9
> basically in the 8->9 change the cgroups implemantion changes form v1 to v2
> https://bugzilla.redhat.com/show_bug.cgi?id=2035518
> 
> when adressing that we did not have a good universal solution for instnace that hardcoded a value that
> was incompatible with the cgroups_v2 api in the kernel except resize.
> 
> in https://review.opendev.org/c/openstack/nova/+/824048/ we removed automatically adding the
> cpu_shares cgroup option to enable booting vms with more then 8 cpus
> 
> we did not come up with any option other then resize for the other quotas that were in a similar situation.
> the one option that we considerd possibel to do was extend nova-mange to allow the embeded flaour to be updated
> this would be similar to what we did to enable the image property to be modifed for chaing machine types.
> 
> https://docs.openstack.org/nova/latest/cli/nova-manage.html#image-property-commands
> 
> we didcussed at the time that while we did not want to allow falvor extra specs to be modifed we might recondier that
> if the quota issue forced our hand or  we had a similar need due to foces beyond our contol. i.e. we needed to provide a way beyond
> resize e.g. due ot operating system changes. what make image properties and flavor extra spec different is that image proerties can
> only be updated by rebuild which is a destructive operation. extra specs are upsted by resize which is not a destructive operation.
> that is one of the reasons we have special considertion to image properties and did not do the same for extra specs.
> 
> if we allow the same for flavor extra specs you would still have to stop the instance, make the change and then migrate the instnace
> resize automates that so it is generall a better fit. we were also conceren that adding it to nova manage would result in it being abused
> to modify instnace in ways that were either invalid for the host(changing the numa toplogy, adding traits/resouce request not trackedcxd in placemnt)
> or otherwise break the instnace in weird ways. that could happen via image properites too but its less likely. 
> 
> 
> 
>> On Tue, 2023-01-03 at 17:25 +0100, Jahson Babel wrote:
>> Hello,
>> 
>> I'm trying to live migrate some VMs from CentOS 7 to Rocky 8.
>> Everything run smoothly when there is no extra specs on flavors but 
>> things getting more complicated when those are fixed. Especially when 
>> using quota:vif_burst for QOS.
>> I know that we aren't supposed to use this for QOS now but it's an old 
>> cluster and it was done that way at the time. So VMs kinda have all 
>> those specs tied to them.
>> 
>> When live migrate a VM this show up in the nova's logs :
>> driver.py _live_migration_operation nova.virt.libvirt.driver? Live 
>> Migration failure: internal error: Child process (tc class add dev 
>> tapxxxxxxxx-xx parent 1: classid 1:1 htb rate 250000kbps ceil 
>> 2000000kbps burst 60000000kb quantum 21333) unexpected exit status 1: 
>> Illegal "burst"
>> This bug cover the problem : https://bugs.launchpad.net/nova/+bug/1960840
>> So it's seems to be a normal behavior. Plus I forgot to mention that I'm 
>> on OpenStack Train version and the file mentioned in the launchpad is 
>> not present for this version.
>> By using Rocky 8 I have to use an updated libvirt that won't accept the 
>> burst parameter we used to set. All available versions of libvirt on 
>> Rocky 8 have changed behavior concerning the burst parameter.
>> 
>> I've done some testing to make things works including removing the 
>> extra_specs on flavors and in the DB, removing it through libvirt and 
>> trying to modify tc rules used by a VM but it didn't worked.
>> I have not tried yet to patch Nova or Libvirt but I don't really know 
>> where to look for.
>> The only thing that did work was to resize the VM to an identical flavor 
>> without the extra_specs. But this induce a complete reboot of the VM. I 
>> would like, if possible, to be able to live migrate the VMs which is 
>> quite easier.
>> 
>> Is it possible to remove the extra_specs on the VMs and then live 
>> migrate ? Or should I just plan to resize/reboot all VMs without those 
>> extra_specs ?
>> Any advise will be appreciated.
>> 
>> Thank you for any help,
>> Best regards.
>> 
>> Jahson
> 
> 
> 
> 
> ------------------------------
> 
> Message: 3
> Date: Tue, 3 Jan 2023 15:23:19 -0500
> From: Satish Patel <satish.txt at gmail.com>
> To: Rafael Weing?rtner <rafaelweingartner at gmail.com>
> Cc: OpenStack Discuss <openstack-discuss at lists.openstack.org>
> Subject: Re: [cloudkitty] Instances billing based on tags
> Message-ID:
>    <CAPgF-fpGyO-Z8bt7KMdP7CAhi9kne3136ptoE+8coURyFwi7yw at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> Wow! very interesting, I will poke around and see how it's feasible. Very
> curious how it will represent that data in horizon UI. Currently I am
> seeing rates based on project_id so assuming it will show based on
> customer_id. correct?
> 
> 
> On Tue, Jan 3, 2023 at 8:13 AM Rafael Weing?rtner <
> rafaelweingartner at gmail.com> wrote:
> 
>> You can do that. Basically, you can start collecting those attributes you
>> want for billing (e.g. tags) via Ceilometer dynamic pollster (that is the
>> easiest way to achieve this). Then, you need to configure the resource type
>> in Gnocchi to store this extra attribute, and of course, configure
>> CloudKitty to collect/use it. Both in the metrics.yml and then in the
>> hashmap or Pyscript rules.
>> 
>>> On Mon, Jan 2, 2023 at 11:01 PM Satish Patel <satish.txt at gmail.com> wrote:
>>> 
>>> Folks,
>>> 
>>> We have an AWS project and in a single project we run multiple customers
>>> so for billing we use tags. In short every vm instance has a tag (customer
>>> name) and that way we can produce bills for each customer.
>>> 
>>> Recently I am playing with openstack cloudkitty and it works with
>>> standard cases like project based billing. But does it support tags based
>>> billing just similar to what i have explained in the above aws example?
>>> 
>>> 
>>> 
>> 
>> --
>> Rafael Weing?rtner
>> 
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20230103/55a6b39b/attachment-0001.htm>
> 
> ------------------------------
> 
> Message: 4
> Date: Tue, 3 Jan 2023 15:27:03 -0500
> From: Mohammed Naser <mnaser at vexxhost.com>
> To: OpenStack Discuss <openstack-discuss at lists.openstack.org>
> Subject: [nova][keystone] workload identity?
> Message-ID:
>    <CAEs876hYr_mkhkgJ4S8cc2Cij4ZZ5oK20CiZpsWvpif8oitKFA at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> Hi folks:
> 
> I?m wondering if there?s anyone who?s had some thought or perhaps some
> work/progress/thoughts on workload identity (example service accounts for
> VMs) ? is that something that?s really far away for us?  Has someone
> thought about outlining what?s needed?
> 
> Thanks
> Mohammed
> -- 
> Mohammed Naser
> VEXXHOST, Inc.
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20230103/8d2e1b21/attachment-0001.htm>
> 
> ------------------------------
> 
> Message: 5
> Date: Tue, 3 Jan 2023 17:39:18 -0300
> From: Rafael Weing?rtner <rafaelweingartner at gmail.com>
> To: Satish Patel <satish.txt at gmail.com>
> Cc: OpenStack Discuss <openstack-discuss at lists.openstack.org>
> Subject: Re: [cloudkitty] Instances billing based on tags
> Message-ID:
>    <CAG97rac6+PE+scD3j=hty20d9w_VVUbqdHG1B1a4pktrpH8ANw at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> It is showing metrics based on the scope configured. I guess you have set
> the scopes to be mapped as project IDs. If you want other attribute to
> represent the scope, you need to change that in CloudKitty.
> 
>> On Tue, Jan 3, 2023 at 5:23 PM Satish Patel <satish.txt at gmail.com> wrote:
>> 
>> Wow! very interesting, I will poke around and see how it's feasible. Very
>> curious how it will represent that data in horizon UI. Currently I am
>> seeing rates based on project_id so assuming it will show based on
>> customer_id. correct?
>> 
>> 
>> On Tue, Jan 3, 2023 at 8:13 AM Rafael Weing?rtner <
>> rafaelweingartner at gmail.com> wrote:
>> 
>>> You can do that. Basically, you can start collecting those attributes you
>>> want for billing (e.g. tags) via Ceilometer dynamic pollster (that is the
>>> easiest way to achieve this). Then, you need to configure the resource type
>>> in Gnocchi to store this extra attribute, and of course, configure
>>> CloudKitty to collect/use it. Both in the metrics.yml and then in the
>>> hashmap or Pyscript rules.
>>> 
>>> On Mon, Jan 2, 2023 at 11:01 PM Satish Patel <satish.txt at gmail.com>
>>> wrote:
>>> 
>>>> Folks,
>>>> 
>>>> We have an AWS project and in a single project we run multiple customers
>>>> so for billing we use tags. In short every vm instance has a tag (customer
>>>> name) and that way we can produce bills for each customer.
>>>> 
>>>> Recently I am playing with openstack cloudkitty and it works with
>>>> standard cases like project based billing. But does it support tags based
>>>> billing just similar to what i have explained in the above aws example?
>>>> 
>>>> 
>>>> 
>>> 
>>> --
>>> Rafael Weing?rtner
>>> 
>> 
> 
> -- 
> Rafael Weing?rtner
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20230103/cca3f116/attachment.htm>
> 
> ------------------------------
> 
> Subject: Digest Footer
> 
> _______________________________________________
> openstack-discuss mailing list
> openstack-discuss at lists.openstack.org
> 
> 
> ------------------------------
> 
> End of openstack-discuss Digest, Vol 51, Issue 6
> ************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20230104/6d660f04/attachment-0001.htm>


More information about the openstack-discuss mailing list