Attaching USB storage via XOA
I have 2x external USB3 drives I'd prefer passed thru to a specific VM.
With XCP-ng Center it's quite simple once one is aware of the navigational routes. That being
- "General > Properties > USB > Attach" once the device has been passed thru, and
- "Storage > Attach Disk" if not.
However, it seems undoable via XOA...
i.e. How would one go about to accomplish the following in XOA:
- enable passthru for USB device
- assign USB device to VM
attach USB storage to VM (without enabling passthru)
In addition, I also found that the USB devices list and can be attached in XCP-ng Center, yet would not list in XOA ("VM > Disks").
If they are passed thru and attached to a VM (via XCP-ng center), they then do not reflect within the VM...
It's because there's not such demands on that so far. But contributions are very welcome
@olivierlambert I wouldn't know where to start
You can already write a spec, and even also use our "inspector" to see exactly what commands are done by XCP-ng Center, so we just have to know which one to use https://github.com/vatesfr/xapi-inspector
Actually, it's a non-negligible part of the work (and also test the branch after we do it).
Before investing time doing that in the UI, we'll first implement it via
About the proxy,
Is there somewhere to create a request for this feature? I understand it's definitely not typical but situations that require a VM/Instance to have a USB security key, external USB devices, etc are still out there and it would certainly be that niche case that would help give XCP-NG/Xen Orchestra the added edge in this capability.
Thankfully this is possible through XCP-NG Center but I also don't know how long this will be a viable product in that it doesn't seem to have much support behind it and I have a particular situation that requires a VM to have a usb key for a software license key and at first had to eliminate this as a possibility to even use until I stumbled upon this.
Same message, if you tell us which commands are used exactly and how do you imagine it, that might help to get a faster integration
I have no idea what commands are actually being used, other than the steps inside XCP-Center that I do on the host and then inside the instance itself. I don't mind needing to use XCP-NG Center for this one specific task or setting, I'm just concerned that won't always be available to use as the years go on as opposed to Xen Orchestra.
If there's a way to capture the commands being sent, I would be happy to undo the USB pass-through and then go through it again under Center? I just started XCP-NG and XOA in the past few months so I'm definitely new.
That's exactly what I wrote originally. You need to setup https://github.com/vatesfr/xapi-inspector and connect your XCP-ng Center to it. This will intercept all calls
@olivierlambert I actually have this need too, but it's not for USB storage. I'm running HomeAssistant on a VM, and I'd like to passthrough my Zigbee and Zwave USB devices.
Here is the xenserver doc on the topic: https://support.citrix.com/article/CTX235042
I think it actually includes the cli commands.
Hopefully that's helpful!
We need the XAPI commands Again, if you want this to be done at some point, we need more spec (because it means less time to actually develop)
@olivierlambert unfortunately, I can't get the xe pusb-list command to return my USB devices, even though I see them with dmesg.
So, I may have bigger problems here...
@rlyons20 soooo... xe pusb-list only exposes STORAGE devices. I verified by plugging in a USB thumb drive, and that shows up.
So, my use case of running HomeAssistant as a VM with Zigbee/Zwave USB devices is probably dead in the water.
You might modify the filter to get your dongle detected
I wrote a script to set up USB device passthrough for a specific device by name to a specific VM by name in the same basic way the XCP-ng Centre UI does it when you follow the steps described in the original post. Here's the script: https://gist.github.com/gpoole/c89807e9de9cb5c87bbcc2da27e0c3e4
Are those the commands you're looking for @olivierlambert?
Either way hopefully useful to anyone who wants to do this without using XCP-ng Centre. I've found it needs to be done every boot, so the script is intended to be something I can quickly SSH in and run. I'm sure it could be automated properly but works for me.
Thanks for the commands. I just find it weird you need to do it at each boot, I don't remember having to do it here
@gpoole Thank you! I'm sure this will be quite useful in my homelab, but maybe not at work just yet... particularly because I am hopeful Olivier and Vates are able to integrate this into XOA.
This is because I am looking into integrating at least one HSM into our xcp-ng infrastructure, and the $650 USB-A YubiHSM2 is quite attractive. It would be great to be able to reliably pass this through via XOA to a Windows Server VM. I could imagine this use case being potentially important for small-medium sized companies looking for alternatives to typical expensive HSMs.
I would agree this would be great for the Z-wave/Zigbee dongles in Home Automation.
Right now I'm working on a small homelab that can pass through the intel Quicksync to a Plex server and the USB to support HA.
Having this in XOA/XOCE, even XO-lite (understandably not really a "lite" feature).
I am also interested in this feature.
We use XCP-NG to run the virtual hosts in our DMZ. As you can imagine, the DMZ is completely separated from our internal network and the only way to transfer a file to a virtual server is to physically connect a usb drive to a host.
We use Xen Orchestra for everything except this. When we need to mount a USB drive we have to physically connect a laptop to the DMZ network and then attach the USB drive with XCP-NG Center.
@olivierlambert , you mentioned filter modification. is that at the xen level? Similar to many, i'm at the beginner level- I'm willing to tackle a problem or provide specification for further development, but i'm not sure where to start.