New
#1
My Virtualization Dilemna
I have been using VMWare Workstation for ages, and for the most part, I don't have a lot to complain about. Lately, with a lot of the new features in Windows 10, I really want to enable Hyper-V to take advantage of these new features, like WSL2 and Docker for Windows. But as everybody reading this already probably knows, you can't run any Type 2 hypervisor software like VMWare Workstation in Windows 10 if Hyper-V is enabled.
I have an Intel NUC not currently being used, so I thought I'd look into running a standalone virtualization server. I work as a S/W contractor, and I create VMs to segregate the work I do for different clients. While I'm usually only working with a single VM at a time, I do like to keep the other VMs up to date, so I tend to run these on occasion in the background. This is where a standalone server for virtualization would be nice. Running multiple VMs on my work machine can really affect performance. I like that with VMWare I can carry a VM or two with me on removable storage for when I visit the customer onsite. That means that being able to carry a VM with me is major factor in my end decision. The following is the result of my investigations and I thought this might interest some others. Perhaps you even have a suggestion or two that I didn't think of.
Right off, I tossed out using KVM since there is no Type 2 hypervisor S/W that would allow me to run a KVM guest on my Windows 10 work laptop.
I looked at ESXi, or vSphere from VMWare. The free version was more than capable of doing what I required.
One problem with the ESXi server is that it requires you to store your VMs in storage pools which are formatted in their own VMFS format. Using external drives is not officially supported, but I could work around that, and I could use an NFS share on my NAS as a storage pool. The NFS share was the only type of storage pool that I could use to copy my VMs between the server and my Windows 10 machine.
The second and biggest problem was, ESXi and Workstation/Player VMs are not compatible. You had to convert the VMs to move them between the two. So ESXi was not going to work.
Next, I looked into running a Windows Hyper-V Server which is also free to use.
The first problem is the Hyper-V server prefers to work in a domain and not workgroup environment. This meant there were some limitations in storage solutions and some setup issues. I could use local and external storage for the VMs, but not the SMB shares on my NAS. Both ESXi and Hyper-V servers would support iSCSI drives on my NAS, but data from an iSCSI drive is not easily accessed by other machines.
Another problem with Hyper-V is that support for Linux VMs is just downright terrible. Compared to VMware, the performance is terrible, especially the graphics performance, and sound and access to USB devices is difficult if not impossible. Using VMware Linux VMs I routinely format and create bootable SD cards for ARM devices like RPI. You can't do that with a Hyper-V Linux VM. I thought about using VirtualBox for my Linux VMs since they say it can run on Windows with Hyper-V enabled, but I found out that was false. Don't waste your time for now. Maybe one day they'll have it working reliably.
While the VM formats are the same between Windows 10 and the Hyper-V server, at least for now, Hyper-V requires you to import/export VMs in order to move them. There is NO GOOD reason for this and MS really screwed the pooch here. You should be able to carry a VM on a USB drive from machine to machine just like you can with VMWare Workstation/Player/Fusion. Moving VMs is a hassle, and sometimes you even had to recreate the VMs if the import/export function failed, and it did quite often. So, I abandoned the idea of moving my virtual machines to Hyper-V.
What I found out after spending a lot of time looking at this is there is no good solution. I'm sticking with VMWare workstation. I may just load a Linux distro on that unused NUC and install VMWare Workstation on that machine to run a few VMs in the background. If I want to take advantage of WSL2 or Docker for Windows, I'll simply have to reboot with Hyper-V enabled or disabled, or I can run those utilities in a Windows 10 VM using VMWare Workstation since this nested virtualization does work.
I