CPU Virtualisation tech is missing in Win 10 Pro Virtual Machine

Xerxes

Cadet
Joined
Jul 11, 2022
Messages
7
Hello,
I have a server machine with Xeon E-2176G CPU which has the required virtualisation technology with many features (EPT and etc...). The virtualisation is active in BIOS as well.

I have installed TrueNas 13.0 U1 on this server, which is working smoothly. I have then installed a Win 10 Pro as a VM. Again, it works smoothly, apart from one thing :frown:. Although virtualisation is enabled in BIOS, Win 10 Pro does not show anything about it at all. Not even reporting virtualisation is 'Disabled' (as it would normally do when it's disabled in BIOS). It looks like it's not recognising the virtualisation technology in whole.

Therefor, currently unable to install Docker Desktop or WSL as a result.

Would be appreciate some help/advice from you guys. Thanks.
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
bhyve does not support nested virtualisation. That means you can run a a Windows VM in TrueNAS CORE but not another hypervisor inside Windows. Not going to change any time soon as far as I know - definitely out of scope for iXsystems/TrueNAS.

You might get better results with TrueNAS SCALE, which uses KVM for virtualisation. OTOH SCALE has some more rough edges than CORE at the moment. But since nested virtualisation puts a huge performance penalty on the system anyway, there are two more options I can think of:

1. Use ESXi on the hardware and run TrueNAS virtualised in ESXi. There are numerous threads about such a configuration on this forum.

2. Create a Linux VM with e.g. Ubuntu and run Docker in that. Docker itself does not need any hardware virtualisation features. If you intended to create a development environment in Windows, there's an SSH plugin for visual studio code that lets you "magically" deploy and run your code you maintain on Windows on a separate Linux host without using WSL. Other IDEs have similar features.
 

Xerxes

Cadet
Joined
Jul 11, 2022
Messages
7
Patrick thanks for the response. It's a shame nested virtualisation is not supported. Is this why Win 10 vm is not seeing the virtualisation from CPU perspective?

In terms of the ESXi, I had my server setup exactly as you are suggesting above. I installed an additional HDD and when I turned the server back on, the ESXi did not boot and never managed to fix it. I am not sure what caused it to die on me like that, but I suspected it was because I used USB drive to boot it and suddenly some files damaged in it.

Docker server is also a good shout as it's actually part of the VM documentation. This is going to be my next step as I am going to have more VMs for development and will defo need docker server on its own.

Going to try and get ESXI setup again and installed it this time on a HDD or SSD which hopefully be more robust.
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Patrick thanks for the response. It's a shame nested virtualisation is not supported. Is this why Win 10 vm is not seeing the virtualisation from CPU perspective?
Yes, of course.
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Addendum: nested virtualisation is not on the roadmap according to the FreeBSD bhyve developer notes. Reason being huge complexity, performance penalty, and the fact that other solutions exist and there are more important issues and planned features.


If you go "ESXi" you know the documents on virtualising TrueNAS and the need for PCIe pass through for all TrueNAS storage devices but the boot drive (which can be a VMDK)? Also in ESXi you cannot use PCIe pass through and nested virtualisation in the same VM. So no VMs inside TrueNAS - all VMs must go into ESXi.

I am quite satisfied with virtualisation on TrueNAS CORE and use Windows and Linux VMs each for their respective task.
 

Xerxes

Cadet
Joined
Jul 11, 2022
Messages
7
I like the idea to have a server OS which I can use it for all my needs. ESXi approach will make it a bit weird as the TrueNAS vm will be only used for NAS and not much else, i.e. VMs, another docker server and so on.

I am thinking maybe start looking into UnRaid as I believe it supports nested virtualisation.
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
What about TrueNAS SCALE?
 

Xerxes

Cadet
Joined
Jul 11, 2022
Messages
7
You mentioned earlier that it has more rough edges compared to CORE. So, to be honest, I am a bit worried about what I am going to end up with having decided to go for SCALE. At the same time, I have the same feeling about UnRaid, let's be honest, as I have never used it before.
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
With SCALE at least you know where to find help :wink:
 

Xerxes

Cadet
Joined
Jul 11, 2022
Messages
7
Indeed. Gonna give it a go. I believe I am going to spend the next few days experimenting some options to land on a perfect one that satisfies my need. The good thing is, I can upgrade from CORE to SCALE and can keep most of my configs by the look of it from documentation. Thanks Patrick.
 

Xerxes

Cadet
Joined
Jul 11, 2022
Messages
7
Quick update:
Last night I upgraded my server from CORE to SCALE manually. Everything went well and nothing was lost. All my pools and shares stayed up/running and healthy. I used the shell to check (for my own sanity) that SCALE supports nested virtualisation or not. I then started with a brand new Win 10 Pro vm. After the installation, in the Performance tab of Task Manager, Virtualisation was still missing. SCALE allows users to set the CPU model and Mode. I set mine to Host Passthrough. So I expected everything to work, but it did not.

As SCALE is Linux based, and it uses KVM under the hood, nested virtualisation is supported. What I needed to do was to enable it post-installation. For those of you who had/have the problem as I did, please follow the instructions in the link below:

https://docs.fedoraproject.org/en-US/quick-docs/using-nested-virtualization-in-kvm/

The instruction covers for intel and AMD CPUs. Which is decent.

In the instruction, it mentions that the below line must be added to the kvm.conf file. This file does not exist. So, create it and add the below line in it. It tells you where you need to create the file! This enables the nested virtualisation post-boot, as it only stays enabled until the next boot:

options kvm_amd nested=1

I hope this helps others with the same issue that I was struggling with.
 

Xerxes

Cadet
Joined
Jul 11, 2022
Messages
7
I forgot to mention, the options line I posted above was for AMD CPUs. The instruction states what it should be for intel:

options kvm_intel nested=1
 
Top