Univention Bugzilla – Bug 20983
Warnung bei fehlender "KVM-Fähigkeit" einer CPU
Last modified: 2023-06-28 10:45:59 CEST
Bei einem Kundenworkshop sollte UVMM auf einem Testserver eingerichtet werden, von dem initial unbekannt war, ob die CPU KVM-fähig ist. Wir sollten ein kleines Tool ala "uvmm-check-kvm-capabilities" mitliefern, dass /proc/cpuinfo auswertet und eine Rückmeldung gibt. Außerdem wäre es nett, wenn diese Angabe auch im Installer (z.B. bei der Hardwareerkennung) erscheinen würde.
#!/bin/sh if grep -q '\<\(svm\|vmx\)\>' /proc/cpuinfo then echo 'Ja :-)' exit 0 elif xm dmesg | grep -qs 'HVM: \<\(SVM\|VMX\)\> enabled' # VMX ist geraten, s.u. then echo 'Ja :-|' exit 0 else echo 'Nein :-(' exit 1 fi NICHT getestet auf Intel-Xen-Rechner, die xen*-Recher haben alle AMD nur CPUs. Intel ohne Xen ist gestestst (Notebook).
(In reply to comment #1) Ggf. sind die CPU-Erweiterungen im BIOS deaktiviert: arch/x86/kvm/x86.c:3147 printk(KERN_ERR "kvm: disabled by bios\n"); Ohne root-Rechte lässt sich das aber nicht überprüfen (modprobe + dmesg-grep bzw. CPU-Machine-Register auslesen). #!/bin/sh if [ -c /dev/kvm ] then echo 'Ja, KVM wird bereits genutzt :-)' exit 0 elif grep -qs '\<hvm-' /sys/hypervisor/properties/capabilities then echo 'Ja, Xen wird bereits genutzt :-)' exit 0 elif xm dmesg 2>/dev/null | grep -q 'HVM: \<\(SVM\|VMX\)\> enabled' then echo 'Ja, Xen wird bereits genutzt :-)' exit 0 elif grep -q '\<\(svm\|vmx\)\>' /proc/cpuinfo then echo 'Hmm, CPU unterstützt Features, aber derzeiit nicht aktiviert ?' exit 1 else echo 'Nein :-(' exit 1 fi > NICHT getestet auf Intel-Xen-Rechner, die xen*-Recher haben alle AMD nur CPUs. > Intel ohne Xen ist gestestst (Notebook). Laut Quellcode steht dort VMX.
Meines Wissens wird das mittlerweile direkt in UVMM / UMC angezeigt.
(In reply to comment #3) > Meines Wissens wird das mittlerweile direkt in UVMM / UMC angezeigt. (In reply to comment #2) > Ggf. sind die CPU-Erweiterungen im BIOS deaktiviert: Das ist bei der Technik-Schulung in Stuttgart negativ aufgefallen: Bei den dortigen Rechnern war VMX/SVM im BIOS deaktiviert. Trotzdem stand in /proc/cpuinfo "vmx". Das ist dann erst sehr viel später aufgefallen, als beim Versuch einen neue VM anzulegen plötzlich die 64-Bit-Profile fehlten. Legt man dann trotzdem eine VM mit dem noch angezeigten (32-Bit?) Profil an, so lässt sich die VM zwar anlegen, aber das Starten schlägt dann fehl, weil KVM nicht funktioniert. Hier sollten eine bessere Überprüfung auf funktionierendes VMX / SVM stattfinden und eine deutlich sichtbare Warnung ausgegeben werden, daß Virtualisierung im BIOS deaktiviert ist.
(In reply to comment #4) > (In reply to comment #3) > > Meines Wissens wird das mittlerweile direkt in UVMM / UMC angezeigt. > > (In reply to comment #2) > > Ggf. sind die CPU-Erweiterungen im BIOS deaktiviert: > > Das ist bei der Technik-Schulung in Stuttgart negativ aufgefallen: Bei den > dortigen Rechnern war VMX/SVM im BIOS deaktiviert. Trotzdem stand in > /proc/cpuinfo "vmx". > Das ist dann erst sehr viel später aufgefallen, als beim Versuch einen neue VM > anzulegen plötzlich die 64-Bit-Profile fehlten. > Legt man dann trotzdem eine VM mit dem noch angezeigten (32-Bit?) Profil an, so > lässt sich die VM zwar anlegen, aber das Starten schlägt dann fehl, weil KVM > nicht funktioniert. > > Hier sollten eine bessere Überprüfung auf funktionierendes VMX / SVM > stattfinden und eine deutlich sichtbare Warnung ausgegeben werden, daß > Virtualisierung im BIOS deaktiviert ist. Das trat bei der Schulung in Wien ebenfalls auf: Die CPUs waren so alt, das kein Support für HVM vorhanden war. In dem Fall gibt es bei KVM nur die Fehlermeldung Unknown OS type: hvm beim Start einer Maschine. Unter Xen werden nur die UCS-Profile angezeigt (Windows nicht, da Support für Hardwarevirt. benötigt wird)
*** Bug 25633 has been marked as a duplicate of this bug. ***
*** Bug 25969 has been marked as a duplicate of this bug. ***
# Successfully testes on xen4(AMD) and xen12(Intel) ucr set repository/online/unmaintained=yes apt-get install msr-tools modprobe msr if grep --word --quiet vmx /proc/modules then # <xen/arch/x86/hvm/vmx/vmcx.c> echo -n "Intel CPU supporting VMX detected, " case "$(rdmsr -f 2:0 0x3a)" in # IA32_FEATURE_CONTROL_MSR 0|2|4|6) echo "Not yet locked by BIOS" ; return 0 ;; 1) echo "bocked by BIOS" ; return 1 ;; 3) echo "bocked by BIOS outside Trusted Environments" ; return 1 ;; 5) echo "enabled by BIOS outside Trusted Environment" ; return 0 ;; 7) echo "enabled by BIOS irrepective Trusted Environments" ; return 0 ;; esac elif grep --word --quiet svm /proc/modules then # <xen/arch/x86/hvm/svm/svm.c> echo -n "AMD CPU supporting SVM detected, " case "$(rdmsr -f 4:4 0xc0010114)" in # MSR_K8_VM_CR 0) echo "enabled by BIOS" ; return 0 ;; 1) echo "disabled by BIOS" ; return 1 ;; esac else echo "Neither an Intel nor an AMD CPU supporting virtualization were detected." return 1 fi
*** Bug 41042 has been marked as a duplicate of this bug. ***
Erneut in einer internen UCS-Schulung aufgetreten: Im BIOS was die HW-Unterstützung für die Virtualisierung deaktiviert. UVMM hat dann nicht alle Profile angezeigt und bei der Verwendung von Other bzw. UCS-3.2 wurde dann fehlende Unterstützung für "hvm" moniert.
(In reply to Philipp Hahn from comment #10) > Erneut in einer internen UCS-Schulung aufgetreten: Es war eine "richtige" UCS-Schulung
This issue has been filled against UCS 4.1. The maintenance with bug and security fixes for UCS 4.1 has ended on 5st of April 2018. Customers still on UCS 4.1 are encouraged to update to UCS 4.3. Please contact your partner or Univention for any questions. If this issue still occurs in newer UCS versions, please use "Clone this bug" or simply reopen the issue. In this case please provide detailed information on how this issue is affecting you.
UVMM and virtualization with UCS is deprecated and will no longer be developed in UCS 4.4; they have already been removed from UCS 5.0.