KVM嵌套虚拟化实现

2023-09-18 12:03:46

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配置文件

[root@localhost qemu]# cat /etc/modprobe.d/kvm-nested.conf
options kvm-intel nested=1           #打开KVM内核模块的Nested特性
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1

配置好后保存退出,执行以下命令

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 mode='host-model'> 
	<model fallback='allow'/> 
	<topology sockets='1' cores='1' threads='1'/> 
	<feature policy='disable' name='spec-ctrl'/> 
</cpu>
更多推荐

睿趣科技:新手商家如何做好抖音店铺

抖音,作为全球热门的社交媒体平台之一,不仅仅是分享有趣视频的地方,也是许多商家拓展业务的黄金平台。对于新手商家来说,如何在抖音上建立一个成功的店铺是一项重要的任务。以下是一些关于如何做好抖音店铺的建议。明确你的目标和定位:在开设抖音店铺之前,首先要明确你的目标和定位。你要销售什么样的产品或提供什么样的服务?你的目标客户

JVM 篇

目录一、知识点汇总二、知识点详解2.1JVM的主要组成部分及其作用2.2JVM内存模型2.3堆与栈的区别2.4JVM加载class文件的原理机制2.5类的生命周期2.6Java对象结构2.7Java对象创建过程2.8指针碰撞2.9空闲列表2.10TLAB+CAS2.11说说对象内存分配2.12什么是标量与聚合量?2.1

OpenCV自学笔记十六:直方图处理

在OpenCV中,直方图(Histogram)是用于表示图像中像素强度分布的一种统计工具。它可以帮助我们了解图像的亮度、对比度、色彩分布等信息。OpenCV提供了一个函数`cv2.calcHist()`,用于计算图像的直方图。该函数接受图像数组和一些参数,例如要计算的通道数、区间的数量等。它返回一个表示直方图的一维数组

智荟康午休课桌椅成为第十届中国慈善展览会公益亮点产品

第十届中国慈善展览会(以下简称“慈展会”)于9月15日至17日在深圳会展中心隆重举办,此次展会为期3天,主要围绕“共建现代化慈善,聚力高质量发展”的主题,重点聚焦聚力民生福祉,将打造“一展多元”的展会新格局。本届慈展会共有2931家机构、2882个项目参展。开幕当天,意向对接重大捐赠项目、消费帮扶产品采购及产业投资等资

网络工程师的爬虫技术之路:跨界电商与游戏领域的探索

随着数字化时代的到来,跨界电商和游戏行业成为了网络工程师们充满机遇的领域。这两个领域都依赖于高度复杂的技术来实现商业目标和提供卓越的用户体验。本文将深入探讨网络工程师在跨界电商和游戏领域的技术挑战以及应对这些挑战的方法。突破技术障碍的爬虫应用跨界电商业务通常需要大量的市场数据和竞争情报,而这些信息可能分散在全球各个网站

电机控制器HIL测试系统:实现高效、安全的硬件在环验证

电机控制器作为电动机系统的关键组成部分,其应用前景广泛,涵盖新能源汽车、工业自动化、航空航天、能源、医疗器械等领域。随着对环保、自动化和智能化的需求增加,电机控制器将在这些领域中扮演关键角色,为实现可持续发展和智能化生产提供强有力支持。同时,随着技术的不断进步,电机控制器的性能将得到进一步提升,为各行业提供更高效、可靠

基于SpringBoot的免税商品优选购物商城

目录前言一、技术栈二、系统功能介绍登录界面管理员功能模块商家功能模块用户前台功能模块三、核心代码1、登录模块2、文件上传模块3、代码封装四、文章目录前言随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势,免税商品优选购物商城当然也不能排除在外,随着购物商城的不断成熟,它彻底改变了过去

二叉树链式存储结构

目录1.二叉树链式存储结构2.二叉树的遍历2.1前、中、后序遍历2.2层序遍历3.二叉树的其他递归问题3.1二叉树的结点个数​3.2二叉树的叶子结点个数3.3二叉树第k层结点个数3.4二叉树的深度3.5二叉树查找3.6二叉树销毁4.二叉树的基础OJ题4.1单值二叉树4.2检查两棵树是否相同4.3对称二叉树4.4另一棵树

OpenCV自学笔记十八:模板匹配

模板匹配是一种在图像中寻找指定模式的方法。OpenCV库提供了用于模板匹配的函数,可以帮助我们在图像中定位和识别特定的模式。下面是模板匹配的基础原理和一个示例:模板匹配通过在待匹配图像上滑动一个固定大小的模板图像,并计算模板与图像之间的相似度来寻找匹配位置。相似度通常使用相关性或差异度量来衡量。在滑动过程中,当相似度达

我的创作纪念日-毕业后碰到疫情三年的工作、学习和分享总结

机缘hi,各位朋友好,今天是距离我发布第一篇文章的第1024天,收到了系统私信说分享一下这段时间的收获可以给我一枚勋章。作为一个收集爱好者,决定发布一篇文章获取这枚勋章,同时郑重感谢来查看我的相关文章、给我建议和鼓励我的各位。我开始编辑文章的初衷,是我的记性不太好,学习到的东西很快就会忘记,所以决定将学到的东西详细记录

程序员过不去的坎-算法篇

一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。今天就来聊聊这些十分重要的“必抓!”算法吧~一:引言算法的重要性和应用场景算法重要性不言而喻,目前的短视频app全部依靠算法进行内容推荐,各大网站也是依靠算法进行内容的推荐。可以说算法已经无处不在。程序本身=算法

热文推荐