KVM嵌套虚拟化实现

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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/81564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

片上网络(1)概述

前言 NoC&#xff1a;On-Chip Networks&#xff0c;片上网络。 由于多核乃至众核时代的到来&#xff0c;用于连接它们的可扩展、低延迟、大带宽的通信结构变得至关重要。 在核心较少时&#xff0c;总线Bus和矩阵/交叉开关Crossbar是主要的互联结构。总线可以提供较低的传输延迟…

JS中BigInt的使用

JS中BigInt的使用 BigInt是一种内置对象&#xff0c;它提供了一种方法来表示大于2^53 - 1的整数&#xff0c;通俗来讲就是提供了一种可以表示任意大整数的方法&#xff0c;当我们使用Number来表示一个超过了2 ^53 - 1的整数的时候&#xff0c;会出错。所以此时我们需要使用Big…

LeetCode(力扣)55. 跳跃游戏Python

LeetCode20. 有效的括号 题目链接代码 题目链接 https://leetcode.cn/problems/jump-game/ 代码 class Solution:def canJump(self, nums: List[int]) -> bool:if len(nums) < 1:return Truecover 0for i in range(len(nums)):if i < cover:cover max(cover, i …

免备案海外服务器有什么好处?

介绍一&#xff1a;了解海外服务器免备案的优点 免备案海外服务器是指在国外搭建网站服务器而不是在国内备案&#xff0c;这种模式可以带来一定的便利 。首先&#xff0c;海外服务器免备案可以使网站更加稳定&#xff0c;因为国外网络环境更加稳定&#xff0c;大多数国外服务 器…

三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析

三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析 在处理三维模型3DTile格式的轻量化压缩时&#xff0c;如何在减少数据量的同时&#xff0c;保证或提升数据质量是一大挑战。以下为一些提升数据质量的方法分析&#xff1a; 改进几何简化算法&#xff1a;在进行几何简化…

行业报告 | 智慧三角:长三角掀起AI产业热潮

原创 | 文 BFT机器人 产业集群是指在特定地理区域内&#xff0c;一群相关产业相互依存、相互关联、相互支持&#xff0c;形成密集的产业网络和价值链条的现象&#xff0c;这些相关产业可能涵盖整个产业链的不同环节&#xff0c;从原材料供应到产品研发、生产、销售和服务等多个…

使用C#开发163邮件发送功能

创建SMTP服务器&#xff08;发送邮件需要SMTP服务器代发&#xff09; 这里介绍创建网易SMTP&#xff08;SMTP是邮件通讯格式&#xff09;服务器&#xff1a; 1.先注册一个163网易邮箱 2.注册成功后登陆该邮箱 3.在该邮箱中找到设置>POP3/SMTP/IMAP点击进入&#xff0c;如下…

怎样用图片去搜索商品呢?

taobao.item_search_img 为了进行电商平台 的API开发&#xff0c;首先我们需要做下面几件事情。 1&#xff09;开发者注册一个账号 2&#xff09;然后为每个taobao应用注册一个应用程序键&#xff08;App Key) 。 3&#xff09;下载taobaoAPI的SDK并掌握基本的API基础知识和…

Docker基础入门

文章目录 前言一、什么是DockerDocker 安装Docker 镜像Docker 容器Docker 安装nginx 前言 在Linux上安装软件有三种方式&#xff1a; 在redhat系列下的发行版通过rpm包安装或者是在debian系列下的发行版通过deb包安装&#xff1b;通过工具安装&#xff0c;在redhat系列下的发…

7年阿里测试经验之谈 —— 用UI自动化测试实现元素定位

随着IT行业的发展&#xff0c;产品愈渐复杂&#xff0c;web端业务及流程更加繁琐&#xff0c;目前UI测试仅是针对单一页面&#xff0c;操作量大。为了满足多页面功能及流程的需求及节省工时&#xff0c;设计了这款UI 自动化测试程序。旨在提供接口&#xff0c;集成到蜗牛自动化…

prometheus 告警

prometheus 告警 1, prometheus 告警简介 告警能力在Prometheus的架构中被划分成两个独立的部分。如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息。 在Prometheus中一…

【Spring容器的启动过程】

Spring容器的启动过程 Spring 在初始化过程中有二个非常重要的步骤&#xff0c;容器的初始化与刷新。 初始化流程 如果想生成 bean 对象&#xff0c;那么就需要一个 beanFactory 工厂&#xff08;DefaultListableBeanFactory&#xff09;如果想让加了特定注解&#xff08;如 …

【论文笔记】Baidu Apollo EM Motion Planner

文章目录 AbstractI. INTRODUCTIONA. Multilane StrategyB. Path-Speed Iterative AlgorithmC. Decisions and Traffic Regulations II. EM PLANNER FRAMEWORK WITH MULTILANE STRATEGYIII. EM PLANNER AT LANE LEVELA. SL and ST Mapping (E-step)B. M-Step DP PathC. M-Step …

刻字机尖角补偿

1 刻字机尖角补偿原理 刀具切割直线段过渡方法在文章旋转偏心裁切刀切向跟踪及半径补偿 已经有过说明。刻字机由于刀具半径的影响&#xff0c;切割直角时会不直会比较圆滑&#xff0c;而且在闭合曲线的下刀点会容易不闭合。使用尖角补偿可以克服这些问题。 如上图所示&#xf…

上海亚商投顾:沪指放量反弹 医药、AI概念股集体走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数早间震荡反弹&#xff0c;午后集体拉升涨超1%&#xff0c;深成指一度涨超1.5%&#xff0c;随后涨幅略…

【JDK 8-Lambda】3.2 自定义函数式编程实战

一、自定义lambda接口流程 需求 : 定义一个可以使用加减乘除的接口 Stage 1&#xff1a;定义一个函数式接口 Stage 2&#xff1a;写一个方法&#xff0c;输入需要操做的数据和接口 Stage 3&#xff1a;运行结果 一、自定义lambda接口流程 需求 : 定义一个可以使用加减乘除的…

Web 器学习笔记(基础)

Filter 过滤器 概念&#xff1a;表示过滤器&#xff0c;是 JavaWeb 三大组件&#xff08;Servlet、Filter、Listener&#xff09;之一 作用&#xff1a;顾名思义可以过滤资源的请求&#xff0c;并实现特殊的需求 Filter 接口及它核心的 doFilter() 方法&#xff08;执行前就是…

激光焊接汽车PP塑料配件透光率测试仪

随着汽车主机厂对车辆轻量化的需求越来越强烈&#xff0c;汽车零部件轻量化设计、制造也成为汽车零部件生产厂商的重要技术指标。零部件企业要实现产品的轻量化&#xff0c;在材料指定的情况下&#xff0c;要通过产品设计优化、产品壁厚减小和装配方式的优化来解决。使用PP材料…

Rocketmq并发和顺序消费的失败重试机制

文章目录 问题并发消费触发时机客户端发起请求 CONSUMER_SEND_MSG_BACKBroker处理CONSUMER_SEND_MSG_BACK请求 顺序消费Q&A消费的时候是一批的消息, 如果其中某条消费失败了,是所有的消息都会被重试吗&#xff1f;用户可以自己控制重试次数、重试间隔时间吗?批量消费消息,…

Kubernetes网络揭秘:看完你就懂了

一、Master集群网络 master集群的网络比较简单&#xff0c;和通常的负载均衡集群一样。多个节点的apiserver的ip与端口(6443)使用负载均衡的ip与端口。在master/node节点join时均使用此负载均衡的ip与端口&#xff0c;这样就是master节点的集群网络。 master 节点之间的网络&a…