Understand different OS Concepts/Virtualization

Enable Nested Virtualization IN KVM In Linux

Somaz 2022. 9. 2. 15:13
728x90
반응형

Overview

Enable Nested Virtualization in Kvm Linux 에 대해서 알아보자.

https://ostechnix.com/how-to-enable-nested-virtualization-in-kvm-in-linux/

 

How To Enable Nested Virtualization In KVM In Linux - OSTechNix

Nested virtualization is a feature that allows to run virtual machines within a VM. This guide explains how to enable nested virtualization in KVM in Linux.

ostechnix.com

 

 

CPU 확인

$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
Address sizes:       46 bits physical, 48 bits virtual
CPU(s):              72
On-line CPU(s) list: 0-71
Thread(s) per core:  2
Core(s) per socket:  18
Socket(s):           2
NUMA node(s):        2
Vendor ID:           GenuineIntel
CPU family:          6
Model:               79
Model name:          Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
Stepping:            1
CPU MHz:             1367.142
CPU max MHz:         3600.0000
CPU min MHz:         1200.0000
BogoMIPS:            4594.55
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            46080K
NUMA node0 CPU(s):   0-17,36-53
NUMA node1 CPU(s):   18-35,54-71
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single pti intel_ppin tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap intel_pt xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts

 

KVM 게스트가 가상화를 지원하는지 확인

중첩 기능을 활성화한 KVM 게스트 머신의 전원을 켜고 로그인합니다.

KVM 게스트의 터미널에서 다음 명령을 실행하여 가상화가 활성화되었는지 여부를 확인하십시오.

$ egrep --color -i "svm|vmx" /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single pti intel_ppin tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap intel_pt xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single pti intel_ppin tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap intel_pt xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts

 

 

 

다음으로 KVM 모듈을 언로드합니다.

INTEL 시스템에서 KVM 모듈을 언로드하려면 다음을 실행하십시오.

$ sudo modprobe -r kvm_intel

AMD 시스템 :

$ sudo modprobe -r kvm_amd

 

다음 명령을 사용하여 INTEL CPU에서 활성화된 중첩 기능으로 KVM 모듈을 다시 로드합니다.

$ sudo modprobe kvm_intel nested=1

 

다음 명령을 사용하여 AMD CPU에서 활성화된 중첩 기능으로 KVM 모듈을 다시 로드합니다.

$ sudo modprobe kvm_amd nested=1

 

영구적으로 중첩 가상화 활성화

중첩된 VT 기능은 KVM 호스트 시스템을 재부팅할 때까지만 활성화됩니다. 중첩 기능을 영구적으로 활성화하려면 /etc/modprobe.d/kvm.conf파일 을 편집하십시오.

$ sudo vi /etc/modprobe.d/kvm.conf

파일이 없으면 그냥 만드세요.

INTEL 호스트 에 다음 줄을 추가 합니다.

options kvm_intel nested=1

AMD 호스트 에 다음 줄을 추가 합니다.

options kvm_amd nested=1

파일을 저장하고 닫습니다.

완료! KVM 호스트 시스템에서 중첩 VT를 활성화했습니다.

 

KVM 호스트에서 중첩 가상화가 활성화되어 있는지 확인

프로세서가 INTEL인 경우 " " 명령 을 사용하여 " /sys/module/kvm_intel/parameters/nested" 파일을 확인하십시오.cat

$ cat /sys/module/kvm_intel/parameters/nested
Y

 

Alternatively, you can use the following command to ensure "kvm_intel" kernel module has nesting enabled:

$ modinfo kvm_intel | grep -i nested

 

Sample output:

parm:           nested_early_check:bool
parm:           nested:bool

 

On AMD CPU:

$ modinfo kvm_amd | grep -i nested

Well, my KVM host supports nested virtualization and it is already enabled.

 

Enable Nested Virtualization On KVM Guest Machines

We can enable nested feature on a KVM VM either from command line or using a graphical KVM management applications like Virt-manager.

Enable nested feature in KVM guests from command line

 

Log in to the virsh console:

$ virsh

 

Edit the VM in which you want to enable nested feature:

virsh # edit centos

 

To find the all available VMs, run this command inside virsh console:

virsh # list --all

 

Find "cpu mode" parameter and set its value as "host-model".

<cpu mode='host-model' check='partial'/>

 

728x90
반응형

'Understand different OS Concepts > Virtualization' 카테고리의 다른 글

Proxmox란?  (0) 2024.05.24
Xen Orchestra란?  (0) 2024.05.21
libvirt 자주 쓰는 명령어 정리 virsh  (0) 2022.08.12
libvirt란?  (0) 2022.08.08
KVM와 Qemu  (0) 2022.08.08