xcp-ng / xcp

Entry point for issues and wiki. Also contains some scripts and sources.
https://xcp-ng.org
1.26k stars 74 forks source link

Enable support for spice #178

Open hoerup opened 5 years ago

hoerup commented 5 years ago

Xen&qemu has supported the SPICE protocol for a while, so it would be nice to see this feature enabled in XCP

https://wiki.xenproject.org/wiki/SPICE_support_in_Xen

olivierlambert commented 5 years ago

Hmm this will require probably XAPI modification and more. We'll investigate. If you have more input on this, feel free to share :+1:

Also what's your use case for SPICE?

parkerahelms commented 4 years ago

Any update on this? As for my use case, I access VMs with my laptop a lot because the laptop is not very powerful, and SPICE's USB redirection, audio, and advanced video features would make this like ESXi's VMRC tool which I am a big fan of.

stormi commented 4 years ago

No support for SPICE yet and for now you're only the second person to ask for it and the first to provide the use case (thanks for that by the way), so it's not a high priority right now. Contributions from the community would be considered for inclusion, of course.

sotiris-bos commented 4 years ago

+1 for this.

Spice would bring xcp-ng users one step closer to achieving a fully working, guest OS agnostic open-source vdi solution.

tejinashi commented 4 years ago

+10 for this. WANSEC is willing to provide some funding to see this feature included.

olivierlambert commented 4 years ago

Okay let me try to estimate the load (therefore the cost) needed to do that.

tejinashi commented 4 years ago

Hi Oliver, Yes please. SPICE looks incredible. Not many people know about it yet but it is quite neat.

-Robert

--

Robert T. Smith Chief Executive Officer robert.smith@wansecurity.com

WANSecurity Inc. 9393 W. 110th St. Area 51, STE 500, Overland Park, KS 66210 USA | T +1 213 785 7800 x100 | F +1 213 785 7804 JPN | T +81 3 4590 9044 x100 | F +81 3 4590 9045

wansec.com | Facebook | Instagram | Twitter | LinkedIn

On Sep 5, 2020, at 5:44 PM, Olivier Lambert notifications@github.com wrote:

 Okay let me try to estimate the load (therefore the cost) needed to do that.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

olivierlambert commented 4 years ago

So in "plain" Xen it might be relatively easy to do, but then we need to expose it through XAPI, which will be more difficult. I'm working on getting an estimation on the work needed.

tejinashi commented 3 years ago

Hi Oliver, any update on this?

I'm guessing not many people are asking for this. Did you get a chance to check out the performance of spice?

I've been reading some articles which are suggesting it might not be the best way to go overall.

-Robert

On Sep 7, 2020, at 7:23 AM, Olivier Lambert notifications@github.com wrote:

So in "plain" Xen it might be relatively easy to do, but then we need to expose it through XAPI, which will be more difficult. I'm working on getting an estimation on the work needed.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/xcp-ng/xcp/issues/178#issuecomment-688290350, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABVN6KXW2MLHQYCFWVSGL5DSETGC3ANCNFSM4HJCTF6A.

olivierlambert commented 3 years ago

Sorry, we didn't get time to work on estimates, but it's in the "To estimate" checklist I have internally. If SPICE isn't the best way, what else you can suggest?

tejinashi commented 3 years ago

I am trying to find some time to look into this and test some things myself.

I read some articles by some Japanese guys associated with Fujitsu that have some very interesting talks. Still studying.

I hope you're doing well!

-Robert

On Dec 25, 2020, at 12:13 PM, Olivier Lambert notifications@github.com wrote:

Sorry, we didn't get time to work on estimates, but it's in the "To estimate" checklist I have internally. If SPICE isn't the best way, what else you can suggest?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/xcp-ng/xcp/issues/178#issuecomment-751278402, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABVN6KRBJUJQN2GXVBXW7R3SWTI3PANCNFSM4HJCTF6A.

olivierlambert commented 3 years ago

Keep us posted then 👍 And thanks, I'm fine 😄

lmamane commented 2 years ago

My use case for SPICE is that it has USB redirection that actually works for the devices that I want to redirect. As opposed to RDP-based redirection.

Forza-tng commented 1 year ago

Hi, I also want to chime in on Spice support. I am using it extensively with KVM/LibVirt VMs and it is much faster than VNC based desktops. Other advantages are OpenGL support (with virgl), audio redirection and USB redirection.

highlyfunctional commented 1 year ago

USB redirection is the killer feature that keeps me on ESXi despite them dropping hardware support for stuff all the time. Spice would fix that at least on windows and Linux clients. Not yet implemented on OSX.

olivierlambert commented 1 year ago

Can you explain a bit more about this?

sotiris-bos commented 1 year ago

Can you explain a bit more about this?

Spice USB Redirection lets you plug any USB device in the client device and have the host recognize it as it was plugged in locally.

highlyfunctional commented 1 year ago

For my particular use case I develop software for industrial controllers. I have a suite of Windows VMs with various programming software from the likes of Siemens and Allen. Bradley for example. I can connect to the ESXi server from anywhere and then pass either a USB programming lead or USB to Ethernet up to the VM from the computer I’m sat in front of. This allows me to have loads of different Windows installs for all the permutations of software I need. Also the hypervisor is doing all the heavy lifting, so the batteries on my laptop last ages.

nagilum99 commented 1 year ago

The problem is, that currently XOA is the official way to maintain XCP-ng. AFAIK it's not possible to reach USB devices through a webbrowser, so it's something for a local running client/software. Like it's done with Virtualbox, VMware workstation...

sotiris-bos commented 1 year ago

The problem is, that currently XOA is the official way to maintain XCP-ng. AFAIK it's not possible to reach USB devices through a webbrowser, so it's something for a local running client/software. Like it's done with Virtualbox, VMware workstation...

XOA has nothing to do with it, the webpage just uses a VNC client to connect to a VNC server. You can use a different VNC client to do that, as you can use a spice client to connect to spice servers on other virtualization products.

Forza-tng commented 1 year ago

Can you explain a bit more about this?

Spice USB Redirection lets you plug any USB device in the client device and have the host recognize it as it was plugged in locally.

More specifically, you can plug a USB device in your local computer/client and have the guest vm see it as a locally connected device.

nagilum99 commented 1 year ago

XOA has nothing to do with it, the webpage just uses a VNC client to connect to a VNC server. You can use a different VNC client to do that, as you can use a spice client to connect to spice servers on other virtualization products. I see. It makes scenarios more complex, as you would have XOA for management and a local client for spice... It would then make sense to adjust the (unsupported) XCP-ng center compatible to keep serviceability somehow.

olivierlambert commented 1 year ago

Most of the work is to plug Spice in XAPI/Xenopsd and then expose it on a port so any client can use it.

That will be relatively simple to add Spice support then inside XO or XO Lite, that will replace XCP-ng Center anyway :)

lmamane commented 1 year ago

I see. It makes scenarios more complex, as you would have XOA for management and a local client for spice...

VMs have to not only be managed, but also used. Using the VM only through a web browser / XOA would be a very very poor user experience. Concretely the VM will usually be used through some remote access method like SSH, VNC, Spice, Remote Desktop, X11-over-TCP, ... Spice has some advantages, such as concretely well-working USB redirections.

highlyfunctional commented 1 year ago

Most hypervisors seem to concentrate on server VMs as the target market and hosted desktop as a secondary goal, though that used to be Citrix's core business, so you'd think that's a feature they would like. I'm new to XCP-NG so I don't fully understand the relationship with Citrix. Anyway USB redirection is a killer feature for hosted desktop I think, through Spice or some other method..

PVC-C commented 1 year ago

+1 for that Feature

I have a similar UseCase with the Industrial Automation Problem like @highlyfunctional You often need separate Installs so VMs are incredibly useful. Each Software needs a own VM as it either pulls some strange things or the Manufacturer is quick to close a support request as soon as you have some other Software installed. Also you often run into the Requirement for ancient Software. If I have to have WinXP im very happy to be able to just put the minimal Amount of Files into the VM.

At the same Time I have FreeBSD VMs and Linux VMs not only for testing but for everything that’s possible to do outside of Windows. Having a Lot of Power in these VMs without sitting next to the Machine is really helpful and with SPICE I could reduce my local Machines completely to ThinClients.

VNC lacks Performance & Features and RDP is really annoying (with Linux-Clients) in my Experience. I have as much of my Software running on Servers so I’m more flexible with the Devices in Front of me and Things happen way quicker despite Virtualization as long as it’s not done in Windows… — xcp-ng is pretty nice so far. XO light is hopefully not Node.js based.

isadon commented 11 months ago

Can you explain a bit more about this?

Spice USB Redirection lets you plug any USB device in the client device and have the host recognize it as it was plugged in locally.

More specifically, you can plug a USB device in your local computer/client and have the guest vm see it as a locally connected device.

Really really need this feature as well!

olivierlambert commented 11 months ago

There is USB passthrough already. Also, I'm not sure it could work exactly the same vs KVM, since the security model is vastly different. This -at least- requires some investigation.

Forza-tng commented 11 months ago

There is USB passthrough already

You mean from a client to a guest? Xcp-ng only supports USB pass through from host to guest, not from a user to a guest, doesn't it?

isadon commented 11 months ago

There is USB passthrough already. Also, I'm not sure it could work exactly the same vs KVM, since the security model is vastly different. This -at least- requires some investigation.

I don't think what is being requested in this issue is standard USB passthrough from host to guest. I would like to be able to use a client (RDP/VNC or ideally an XCP-NG specific application) and do USB passthrough from my client machine to the guest which is on the xcp-ng host.

olivierlambert commented 11 months ago

Ah I see, client to guest, indeed it's something else. I suppose it's built-in Spice protocol, then.

Anyway, the work needed is to "spike" the amount of work needed to see how to allow Spice in Qemu to a Xen guest :)

CRFSlick commented 5 months ago

+1 for spice support!

The ability to interact with a remote VM as if it were local (audio, video, and usb redirection) is a killer feature for virtual workstations.

Forza-tng commented 5 months ago

+1 for spice support!

The ability to interact with a remote VM as if it were local (audio, video, and usb redirection) is a killer feature for virtual workstations.

And not to forget file transfers as well.

Forza-tng commented 5 months ago

Ah I see, client to guest, indeed it's something else. I suppose it's built-in Spice protocol, then.

Anyway, the work needed is to "spike" the amount of work needed to see how to allow Spice in Qemu to a Xen guest :)

It seems there's some support already. What we would need is some glue to setup the required ports, authentication and discovery. Perhaps the user interfacing parts could be in XO/XOA, and some additional bits in xcp-ng?

https://wiki.xenproject.org/wiki/SPICE_support_in_Xen

Edit : seems the thread went full circle already. Just realised the link was already posted in the OP.

Spice is similar to VNC and RDP (Microsoft Remote Desktop). It handles client-guest clipboard sharing, sound and USB redirection like RDP and Citrix's native offerings.

Here is a screenshot of spice running on my phone to A QEMU/KVM guest.

Screenshot_20240408_193407_aSPICE Free

Spice would be a excellent addition to XOA as it makes admin easier, especially when dealing with multiple VMs in different windows.