Nested Virtualization | Facter Shows KVM not Physical on VMs

nhlax2_maduna

Member
Aug 22, 2020
4
0
21
Hi All,

I have an issue where a VM running under proxmox 8.2 shows as a kvm (even with CPU:host ) when using facter command.
I was expecting it to show as physical, so puppet can successfully deploy and run its nested VMs.

Below are tests from a Staging Server running under Proxmox and a DR Physical Server.
I hope to get a solution that can ensure the VM appears as a physical machine aslo, when using facter, once I select CPU: host on proxmox.

Thanks for all prompt responses.

#-------------------------------------------------------------------------------------
## ISSUE ## Proxmox | Netsted Virtualization | CPU: host | facter: shows VM as kvm
#-------------------------------------------------------------------------------------
[root@ell9appstage ~]# reset; facter | grep -i "processor\|virtual"
is_virtual => true

physicalprocessorcount => 2
processor0 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor1 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor10 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor11 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor12 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor13 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor14 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor15 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor16 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor17 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor18 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor19 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor2 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor3 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor4 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor5 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor6 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor7 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor8 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processor9 => Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz
processorcount => 20
processors => {"models"=>["Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz", "Intel(R) Xeon(R) CPU E7- 2870 @ 2.40GHz"], "count"=>20, "physicalcount"=>2}
virtual => kvm


#-------------------------------------------------------------------------------------
## EXPECTATION ## Proxmox | Bare Metal | CPU: Intel Xeon | facter: shows VM as kvm
#-------------------------------------------------------------------------------------
[root@ell9appdr ~]# reset; facter | grep -i "processor\|virtual"
is_virtual => false

physicalprocessorcount => 2
processor0 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor1 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor10 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor11 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor12 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor13 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor14 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor15 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor16 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor17 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
.
.
.
processor59 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor6 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor60 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor61 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor62 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor63 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor7 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor8 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processor9 => Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
processorcount => 64
processors => {"models"=>["Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz", "Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz"], "count"=>64, "physicalcount"=>2}
virtual => physical


 
Thanks for the response, I am changing the CPU flags and will share the outcome.

Update:
No luck, same issue - VM is running an appears and kvm

Current CPU flags:


24091217.conf: cpu: host,hidden=1,flags=+pcid
24091217.conf: args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,kvm=off'
 
Last edited:
As @leesteken already wrote, there are other threads that handle this. Just hiding the CPU flags will not be enough. The word QEMU is written in lot of other device descriptions, so you need to change them all. If also helps to look at the facter implementation to check how things are implemented there. You could also just change the implementation and you're golden.
 
I have decided to go install the app directly on another piece of hardware. Thanks for the suggestions, much appreciated.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!