wordpress5 升级,北京seo管理,短视频万能素材库,新公司做网站和域名KVM嵌套虚拟化实现
理论
Libvirt主要支持三种 CPU mode host-passthrough: libvirt 令 KVM 把宿主机的 CPU 指令集全部透传给虚拟机。因此虚拟机能够最大限度的使用宿主机 CPU 指令集#xff0c;故性能是最好的。但是在热迁移时#xff0c;它要求目的节点的 CPU 和源节点的…KVM嵌套虚拟化实现
理论
Libvirt主要支持三种 CPU mode host-passthrough: libvirt 令 KVM 把宿主机的 CPU 指令集全部透传给虚拟机。因此虚拟机能够最大限度的使用宿主机 CPU 指令集故性能是最好的。但是在热迁移时它要求目的节点的 CPU 和源节点的一致。 host-model: libvirt 根据当前宿主机 CPU 指令集从配置文件 /usr/share/libvirt/cpu_map.xml 选择一种最相配的 CPU 型号。在这种 mode 下虚拟机的指令集往往比宿主机少性能相对 host-passthrough 要差一点但是热迁移时它允许目的节点 CPU 和源节点的存在一定的差异。 custom: 这种模式下虚拟机 CPU 指令集数最少故性能相对最差但是它在热迁移时跨不同型号 CPU 的能力最强。此外custom 模式下支持用户添加额外的指令集。 三种mode的性能排序是host-passthrough host-model custom 三种mode的热迁移通用性是 custom host-model host-passthrough
1、查看操作系统是否支持嵌套虚拟化
cat /sys/module/kvm_intel/parameters/nested
Y ##Y表示当前的操作系统已经支持了嵌套虚拟化
N ##表示当前操作系统未配置嵌套虚拟化结果为N的话创建/etc/modprobe.d/kvm-nested.conf配置文件
[rootlocalhost qemu]# cat /etc/modprobe.d/kvm-nested.conf
options kvm-intel nested1 #打开KVM内核模块的Nested特性
options kvm-intel enable_shadow_vmcs1
options kvm-intel enable_apicv1
options kvm-intel ept1配置好后保存退出执行以下命令
modprobe -r kvm_intel #先卸掉内核中的kvm_intel模块注意要在所有虚拟机都关闭的情况下执行
modprobe -a kvm_intel #重新加载该模块2、修改虚拟机配置文件将cpu模式改为host-passthrough 3、重新定义虚拟机
virsh define ovn-ubuntu.xml虚拟机重启后查看虚拟机CPU发现直接使用的物理CPU
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 16
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 63
Model name: Intel(R) Xeon(R) CPU E5-2620 v3 2.40GHz
Stepping: 2
CPU MHz: 2394.454
BogoMIPS: 4788.90
Virtualization: VT-x
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0-15
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt md_clear然后就可以在虚拟机中继续创建kvm虚拟机了。
4、备注
host-model模式下配置文件如果有热迁移需求选这个模式Libvir 会根据物理cpu的型号从规定的CPU中选择一种最接近的CPU型号
cpu modehost-model model fallbackallow/ topology sockets1 cores1 threads1/ feature policydisable namespec-ctrl/
/cpu