Looking for advice on setting up VM / remote desktop

I’m thinking about setting up a workstation running OpenSUSE with VM (Windows 8.1 in it) and remote desktop access. But I’m not sure which VM and which remote desktop option would work best - would love to hear from those more experienced than me.

My initial idea is to use VMware for the vm part - as I’ll be using apps that require a bit of 3d power inside vm this seems like a good choice (but I’m really not sure - apart from VMware I’ve only used Virtualbox).
I’m quite lost when it comes to remote desktop. In the past I had a separate Windows workstation which I’ve accessed from my Linux machine using FreeRDP. This gave me really smooth experience with really small lag. When I try similar thing with TigerVNC the expereince was pretty bad - huge lags, really not a smooth ride. Would that be the same with Linux to Linux connection? If yes what other options could possibly work better (mind I need to access gui and work in it)?
Or maybe I should simply set up remote desktop in VM and use rdp connection? I’d prefer to have remote access to a Linux host and see a VM from there, rather than separate remote desktop for the host and vm, but I’m not even sure that’s a good idea.

For those interested why I’m researching such setup - I prefer Linux for work. Apart from many other reasons when I have a hardware failure usually Linux allows me to simply put the hdd into other workstation and continue working without the hassle of reinstalling the apps, managing licenses etc. Windows simply wouldn’t boot if I tried similar thing. And that’s exactly what has happened to me last week - Windows workstation that I use to set 3d printing jobs fried and this stopped my work for a couple of days when I had to deal with software/hardware vendors and ask them to allow me to install licenses for the apps on a temporary machine. At the same time I simply can’t go full Linux - there are apps missing that I simply couldn’t work without. Thus I got the idea of a VM and remote access.

Any thoughts / suggestions on the matter are greatly appreciated.

Usual answer is - whatever you are best familiar with. From long term perspective - VMware is external software, nobody cares about integration with particular distribution, and so while it usually works if there are issues you are on your own. VirtualBox has packages for openSUSE and is part of distribution, so it at least undergoes some basic integration testing as part of release. Finally there is always kvm with qemu as low level command line tool or virtio as GUI frontend. This is standard part of Linux today.

and which remote desktop option would work best

This partially depends on your clients. If you are going from Windows, IMHO remote desktop directly into guest is the most preferred solution in this case.

thx @arvidjaar. Virtualbox is not an option sadly :frowning: - as mentioned I’ll be running apps a bit more heavy on the 3d graphics side so it won’t do. How kvm, qemu virtio handles graphics? Can I get good performance (with gui app for vm and without getting separate graphic card and setting up pcie passthrough) with it?

As for remote desktop - I have both Windows and Linux clients.

I touched on many of your questions about performance, protocols and Remote Desktop apps in general recently in this other Forum post

https://forums.opensuse.org/showthread.php/527237-Yast-Remote-Admin-(VNC)-module-multiple-issues-questions?p=2839112#post2839112

As for your more specific questions about 3D graphics performance…
That would be difficult to answer because of numerous factors… The type of graphics, the type of application(s), how much performance you need, the specific hardware you’re running on, possibly many more . In other words, this becomes an individual evaluation, both subjective as well as objective.

You should probably start with the assumption that standard ways virtualization is implemented can’t deliver GPU performance anywhere close to what you’d see on bare metal. Because different virtualization virtualize graphics differently, trying different virtualization <may> make a difference. This is also where a commercial app like VMware like VMware can have an advantage over community projects like Virtualbox, KVM, Xen, etc in making decisions to focus development resources for certain features before they might be considered worthwhile by a community. But, only maybe. And, it might make a difference that Virtualbox doesn’t have the resources KVM, Xen and other large projects have.

If you do decide that you need a GPU pass-through, it’s very much on the bleeding edge but perhaps a bit easier to implement recently, for most of the past year I haven’t heard (and others haven’t posted as often) about new developments and procedures. Xen now has a pretty stable Wiki section supporting this, and a little less than a year ago KVM’s primary Developer on this feature published some simple commands to implement. Both of these can probably be easily found both in a general Internet search and in posts in this Forum. And, VMware now supports simply clicking on an icon in the bottom of a graphical console.

I also have a different opinion about VMware than arvidjaar, but it’s only my own. If any VMware app is within your budget, I’d recommend considering it.

If you don’t mind which OS is your HostOS, you might consider that OS as the one to use for whatever high performance and then deploying your other OS(s) in virtualization, then you would probably have numerous options to choose from.

TSU

Thank you for the link tsu2 :slight_smile: . That gave me some info about remote desktops.
Is it possible to set up remote desktop on Linux (so both Linux and WIndows workstations can access it and have smooth workflow) in a way that one person will be able to work “physically” on a system on account A, and other remotely on account B? Is it doable through xrdp (as most of the post suggest using rdp in local network scenario)?

Thanks for your opinion about VMware - makes me more confident about it. I don’t mind paying for solution that works.

As for performance - I’m not expecting to be on par with bare metal. I just need a vm with decent OpenGL - that’s why I ruled out VirtualBox and looked into VMware. Most of the heavy duty work will be done on separate, real world workstations - I need the virtual, remote one just to prep 3d print jobs.

It is important which system is a HostOS - I want it to be Linux (OpenSUSE Leap). The reason is in the first post. If I have Linux as a HostOS in case of hardware failure (other than hdd) I can move the drives into replacement workstation and keep working straight away. In similar scenario Windows won’t work - they will simply fail on load. That’s one of the reasons that if I had all the tools I need on Linux I would move to it entirely.

Atm I ruled out pcie passthrough. It doesn’t solve the problem for me - it just replaces it with another. Instead of booting a 2nd pc with Windows I’d have to switch to other monitor / keyboard / mice (ok, I know - there are kvm switches and software like Synergy). Plus a bit complex setup. “Regular” VM where you have a window with the guest system inside host is much more convenient. But I’m watching the development of those technologies - if all the kinks get worked out it will be awesome solution.

Following is FYI
Of course, these benchmarks can’t be compared with any run on another machine, but can possibly provide a hint about <comparative> performance <only on my machine>.

Looked around for any OpenGL benchmark tests, preferably to measure performance and only optionally with several OpenGL tests. Although I also ran tests in Firefox, I’m only posting Chromium results because by reputation Chromium/Chrome is supposed to support WebGL better.

Found that one of the most used benchmarks at basemark.com freezes on test 8 in a virtual machine, so that’s notable (one type of WebGL freezes the browser). And makes it unusable for our purposes.

Ended up using the tests at the following link. You run each of the “fill pixel” tests (buffer enabled and disabled) until conclusion. There is a progress meter in the top left corner.

http://luic.github.io/WebGL-Performance-Benchmark/

Setup
Hardware
i7, first generation

Win10 HostOS.
Virtualization is VMware Workstation 12.5.7
Guest is openSUSE 42.3, 4GB RAM(2GB is inadequate for openGL performance), latest current Chromium browser

You’ll notice that WebGL performance is pretty good, less than a 5% difference in performance

Win10, Chrome browser

WebGL-Performance-Benchmark
fillpixel-zbuffer ENABLED


---Results---
Total Frames rendered: 1530
Objects in final frame: 1515
Final frame render time: 67.09999999999127


---Render Time Data---
Mininum: 9.509999999999309
Maximum: 84.15499999999884
Average: 30.99387328543426Note: you can mouse over the line graph to see 
data at any part of the benchmark.


WebGL-Performance-Benchmark
fillpixel-zbuffer DISABLED
---Results---
Total Frames rendered: 1530
Objects in final frame: 1515
Final frame render time: 49.19000000000233


---Render Time Data---
Mininum: 12.6200000000008
Maximum: 83.74999999999272
Average: 31.482789026779923

Guest
openSUSE 42.3, LXQt, 4GB, Chromium browser

WebGL-Performance-Benchmark
fillpixel-zbuffer ENABLED
--Results---
Total Frames rendered: 1590
Objects in final frame: 1574
Final frame render time: 55.450000000004366


---Render Time Data---
Mininum: 12.395000000000437
Maximum: 63.955000000001746
Average: 32.69387492143313



WebGL-Performance-Benchmark
fillpixel-zbuffer DISABLED
---Results---
Total Frames rendered: 1590
Objects in final frame: 1574
Final frame render time: 53.84000000000378


---Render Time Data---
Mininum: 9.454999999998108
Maximum: 65.67500000000291
Average: 32.70630106851031

There’s also a “cubes” test on that you can run, I didn’t have the patience to run it, the idea of the test is to maintain as high a fps as possible. Don’t know if it will also eventually return a numeric benchmark but I found that on my machine the Guest fps degraded from 60 fps to 58 fps at about 700 cubes and to about 56 fps at about 1500 cubes. Keep in mind that humans don’t normally notice video stuttering until less than 27-30 fps.

Remember that these tests <might> suggest only comparative performance between HostOS Windows 10 and a VMware Guest running openSUSE 42.3 very narrowly running a supported test. I’m not concerned about the different OS, IMO vendors work hard to make sure their products work well on Windows and Guests will depend on the Virtualization vendor for Guest performance. This will not mean that other WebGL features are supported in a VMware Guest or will perform similarly. But, IMO this particular test is interesting that it returned Guest results that were fairly close to the HostOS and very much exceeded what is required to display “smooth graphics” with enough objects to perhaps fill a full screen display. Still, of course someone running in a MMOFPS might be very sensitive about what is acceptable or not.

YMMV,
TSU

Thank you for doing those Tsu!
Really encourages me - it really looks it will work (unless using OpenSUSE as a host brings different results, but I hope not :slight_smile: ). It also seems to confirm the data I’ve found on the net - Vmware seems to be quite ok when it comes to handling 3d graphics (heck I’ve even found some gaming benchmarks as it supports up to DX 10). I’ve did a quick test on my workstation and I’ve been able to run Rhino (a CAD application) using CentOS as a host and Windows 8 as a guest - and it was workable. Thus running software for 3d file repair and 3d printjobs preparations should work :slight_smile: .
Just need to figure out the remote desktop part - I have my fingers crossed :slight_smile: .