qemu和libvirt的配置对比

libvirt的很多配置选项其实是调用了qemu的接口,但也有增加和优化的地方,本文主要总结这些配置选项,当个手册来查询。

按照centos停服前最后一版centos-8.5.2111提供的rpm查看http://mirrors.aliyun.com/centos/8.5.2111/AppStream/aarch64/os/Packages/,两者间的版本对应是

qemu-4.2.0   <===>  libvirt-6.0.0

之前遇到过一个bugfix,里面提到两者对应的版本是

qemu-6.0.0   <===>  RHEL-8.5   <===>   libvirt.6.0.0        (此处有待考证,感觉libvirt应该更高才对)

1991898 – Live migration fails with latest QEMU with migrate_set_speed missing error (redhat.com)
Log In | Red Hat IDPicon-default.png?t=O83Ahttps://access.redhat.com/downloads/content/rhel---8/aarch64/7459/libvirt/6.0.0-37.1.module+el8.5.0+13858+39fdc467/aarch64/fd431d51/package

一、CPU配置

1.1使用QEMU/KVM配置CPU型号的两种方法

1.Host passthrough 主机直通    (qemu-system-aarch64  -cpu host)

    这会将主机CPU模型特性、模型、步进准确地传递给guest。请注意,如果虚拟化不支持某些主机CPU型号的功能,KVM可能会过滤掉这些功能。
    当使用此模式时,实时迁移是不安全的,因为libvirt / QEMU不能保证跨主机向guest暴露稳定的CPU。
    这是推荐使用的CPU,前提是不需要实时迁移。

2.Named model 命名模型        (qemu-system-aarch64  -cpu cortex-a57)

    QEMU附带了许多预定义的命名CPU模型(qemu-system-aarch64  cpu  --help),这些模型通常指的是Intel和AMD发布的特定一代硬件。
    这允许guest VM与主机CPU有一定程度的隔离,从而在具有不同硬件的主机之间实现更大的实时迁移灵活性。
    
在这两种情况下,都可以选择添加或删除单个CPU功能,以更改默认情况下呈现给guest的内容。
    -cpu cortex-a57,psi=off,vmx=off

1.2 Libvirt支持三种配置CPU模型的方式

1.Host passthrough:

这种模式的优点是性能高,缺点是guest环境不能在不同的硬件上重现。因此,如果你遇到任何bug,你就只能靠自己了;
如果源主机和目标主机在硬件、QEMU版本、微码版本和配置方面都不相同,则使用host-passthrough迁移是危险的。
    1.1)主机直通:
    <cpu mode='host-passthrough'/>
    
    1.2)具有自定义功能的主机直通:
    <cpu mode='host-passthrough' migratable='off'>
        <feature name="vmx" policy="disable"/>
    ...
    </cpu>
    

2.Custom (Named model):

在这种模式下,cpu元素描述了应该呈现给guest的CPU。这是未指定mode属性时的默认值
这种模式使得持久guest无论在什么主机上启动都将看到相同的硬件。
    2.1)命名型号:
    <cpu mode='custom'>
        <model name="Westmere"/>
    </cpu>
    
    2.2)具有功能自定义的命名模型:
    <cpu mode='custom'>
        <model name="Westmere"/>
        <feature name="pcid" policy="require"/>
    ...
    </cpu>

3.Host model:     【需要迁移的最佳选择】

(qemu的介绍:Libvirt支持第三种配置CPU模型的方式,称为“主机模型”。这使用了QEMU的“命名模型”特性,自动选择一个与主机CPU相似的CPU模型,然后添加额外的特性以尽可能接近主机模型。(属于qemu两种模型的折中优化,支持迁移)
    这并不能保证具备和“Host passthrough”一样的功能(如 CPU系列、步进等将与主机CPU精确匹配),但是提供了很多直通的好处,同时使实时迁移安全。)


主机模型模式本质上是从capabilities XML 中复制host CPU 的定义到domain XML。由于CPU定义是在启动域之前复制的,因此可以在不同的主机上使用完全相同的XML,同时仍然提供每个host支持的最佳guest CPU。
Libvirt并没有对每个CPU的各个方面进行建模,因此 guest CPU不会与host CPU完全匹配。
在迁移过程中,完整的CPU模型定义被传输到目标主机,因此即使目标主机包含更多功能的CPU或更新的内核,迁移的guest也会看到与guest运行实例完全相同的CPU模型;但是根据新主机的功能,关闭和重启guest后可能会呈现出不同的硬件。

    2.1)主机型号:
    <cpu mode='host-model'/>
    
    2.2)具有功能自定义的主机型号:
    <cpu mode='host-model'>
        <model>xxx</model>
        <feature name="vmx" policy="disable"/>
    ...
    </cpu>
    

4.maximum 额外综合出来的一个选项

当使用硬件虚拟化运行guest时,此CPU模型在功能上与host-passthrough相同;
当运行具有CPU模拟的guest时,此CPU模型将启用模拟引擎能够支持的最大功能集。请注意,即使使用migratable='on',迁移也是危险的。
如果应用程序不关心具体的CPU,只是想要最佳的功能集而且不需要迁移兼容性,那么maximum模型是一个很好的选择。
    4.1)最大模型:
    <cpu mode='maximum'/>
        
    2.2)具有功能自定义的最大模型:
    <cpu mode='maximum' migratable='off'>
        <cache mode='passthrough'/>
        <feature policy='disable' name='lahf_lm'/>
    ...
    </cpu>

1.3官网参考

https://qemu-project.gitlab.io/qemu/system/qemu-cpu-models.html
https://libvirt.org/formatdomain.html#cpu-model-and-topology

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

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

相关文章

【JUC】16-Java对象内存布局和对象头

1. 对象的内存布局 在HotSpot虚拟机里&#xff0c;对象在堆内存中的存储布局可以分为三个部分&#xff1a;对象头、实例数据和对齐填充。 对象头&#xff1a;由对象标记和类型指针。

[数据集][目标检测]烟叶病害检测数据集VOC+YOLO格式612张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;612 标注数量(xml文件个数)&#xff1a;612 标注数量(txt文件个数)&#xff1a;612 标注类别…

精心整理|算法备案大模型备案最新数据汇总

根据《互联网信息服务算法推荐管理规定》第二条 在中华人民共和国境内应用算法推荐技术提供互联网信息服务&#xff08;以下简称算法推荐服务&#xff09;&#xff0c;适用本规定。法律、行政法规另有规定的&#xff0c;依照其规定。前款所称应用算法推荐技术&#xff0c;是指利…

Excel数据转置|Excel数据旋转90°

Excel数据转置|Excel数据旋转90 将需要转置的数据复制在旁边空格处点击鼠标右键&#xff0c;选择图中转置按钮&#xff0c;即可完成数据的转置。&#xff01;&#xff01;&#xff01;&#xff01;非常有用啊啊啊&#xff01;&#xff01;&#xff01;

【数据结构-一维差分】力扣1854. 人口最多的年份

给你一个二维整数数组 logs &#xff0c;其中每个 logs[i] [birthi, deathi] 表示第 i 个人的出生和死亡年份。 年份 x 的 人口 定义为这一年期间活着的人的数目。第 i 个人被计入年份 x 的人口需要满足&#xff1a;x 在闭区间 [birthi, deathi - 1] 内。注意&#xff0c;人不…

【C++登堂入室】类和对象(中)——类的6个默认成员函数

目录 一、类的6个默认成员函数 ​编辑二、构造函数 2.1 概念 2.2 特性 三、析构函数 3.1 概念 3.2 特性 四、拷贝构造函数 4.1 概念 4.2 特征 五、赋值运算符重载 5.1 运算符重载 5.2 赋值运算符重载 5.3 前置和后置重载 六、日期类的实现 七、const成员 八、…

解锁企业潜能,Vatee万腾平台引领智能新纪元

在数字化转型的浪潮中&#xff0c;企业正站在一个前所未有的十字路口&#xff0c;面对着前所未有的机遇与挑战。解锁企业内在潜能&#xff0c;实现跨越式发展&#xff0c;已成为众多企业的共同追求。而Vatee万腾平台&#xff0c;作为智能科技的先锋&#xff0c;正以其强大的智能…

随机分类,保持均衡水平Python

1、目的&#xff1a; 10000个样本有4个指标&#xff0c;按照逾期金额分10类&#xff0c;确保每类别逾期金额均衡。 2、数据&#xff1a; 3、思路&#xff1a; 将10000个样本按照逾期金额排序&#xff0c; 等距分箱为2500个类别 增加一列随机数 根据类别和随机数升序排列 增加…

Linux学习-Docker文件系统

Overlayfs Overlayfs 是一种类似 aufs 的一种堆叠文件系统&#xff0c;于 2014 年正式合入 Linux-3.18 主线内核&#xff0c;目前其功能已经基本稳定&#xff08;虽然还存在一些特性尚未实现&#xff09;且被逐渐推广。 Overlayfs 是一种堆叠文件系统&#xff0c;它依赖并建立…

在VB.net中,DateTime类使用,举例说明

标题 在VB.net中&#xff0c;DateTime类使用&#xff0c;举例说明 前面学习相关 1.在VB.net中&#xff0c;如何把"20240906"转化成日期格式 2.在VB.net中 DateTime有什么属性与方法 3.在VB.net中&#xff0c;Stopwatch有什么属性与方法 正文 在VB.NET中&#xff0c;D…

利用 Zero-1-2-3 进行多视图 3D 重建:从单图像到多视图 3D 模型的生成

3D 模型生成在计算机视觉领域有着广泛的应用&#xff0c;从虚拟现实到自动驾驶&#xff0c;基于单张图像的 3D 重建技术正在迅速发展。这篇博客将带你深入探索如何使用 Zero-1-2-3 框架进行多视图 3D 重建&#xff0c;通过详细解析该框架中的代码结构和功能&#xff0c;帮助你理…

【ArcGIS Pro实操第七期】栅格数据合并、裁剪及统计:以全球不透水面积为例

【ArcGIS Pro实操第七期】批量裁剪&#xff1a;以全球不透水面积为例 准备&#xff1a;数据下载ArcGIS Pro批量裁剪数据集1 数据拼接2 数据裁剪3 数据统计&#xff1a;各栅格取值3.1 栅格计算器-精确提取-栅格数据特定值3.2 数据统计 4 不透水面积变化分析 参考 准备&#xff1…

python学习第八节:爬虫的初级理解

python学习第八节&#xff1a;爬虫的初级理解 爬虫说明&#xff1a;爬虫准备工作&#xff1a;分析网站url分析网页内容 爬虫获取数据&#xff1a;1.使用urllib库发起一个get请求2.使用urllib库发起一个post请求3.网页超时处理4.简单反爬虫绕过5.获取响应参数6.完整请求代码 解析…

STM32——玩转超声波传感器

目录 1.什么是超声波&#xff1f; 超声波的基本特点&#xff1a; 2.超声波传感器介绍&#xff1a;HC-SR04 HC-SR04 主要特点&#xff1a; HC-SR04 接线如下&#xff1a; HC-SR04 工作原理&#xff1a; 如何编写超声波测距代码&#xff1f; 编写逻辑&#xff1a; 编写思…

JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)

前言 我们想要部署一个javaWeb项目到tomcat上&#xff0c;需要了解一些概念 什么是tomcat&#xff1f; Tomcat 是 Apache 软件基金会&#xff08;Apache Software Foundation&#xff09;下的一个开源项目&#xff0c;主要用于实现 Java Servlet、JavaServer Pages&#xff08;…

SpinalHDL之数据类型(六)

本文作为SpinalHDL学习笔记第五十九篇,介绍SpinalHDL的Vec数据类型。 目录: 1.描述(Description) 2.声明(Declaration) 3.操作符(Operators) ⼀、描述(Description) Vec是定义了⼀组带有标号的信号的复合信号(基于SpinalHDL基础类别)。 ⼆、声明(Declaration) 声明向量的…

远程桌面内网穿透是什么?有什么作用?

远程桌面内网穿透指的是通过特定技术手段&#xff0c;将处于内网中的电脑或服务器&#xff0c;通过外部网络&#xff08;互联网&#xff09;进行访问。内网穿透的主要作用是解决在内网环境下&#xff0c;远程设备与外部互联网之间的连接问题&#xff0c;允许用户从外部访问内网…

Docker部署tenine实现后端应用的高可用与负载均衡

采用Docker方式的Tengine 和 keepalived 组合模式可以实现小应用场景的高可用负载均衡需求 目录 网络架构一、环境准备二、软件安装1. 下载Tenine镜像2. 下载Keepalived镜像3. 制作SpringBoot镜像 三、软件配置1. 创建应用容器2. 代理访问应用3. 创建Keepalived4. 测试高可用 网…

【计算机网络】UDP 协议详解及其网络编程应用

文章目录 一、引言二、UDP1、UDP的协议格式2、UDP 报文的解包和分用3、UDP面向数据报的特点 三、UDP输入输出四、UDP网络编程 一、引言 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是一种网络通信协议&#xff0c;它属于传输层的协议。是一…

【Qt】子控件选择器

子控件选择器 有些控件内部包含了多个 "⼦控件" . ⽐如 QComboBox 的下拉后的⾯板, ⽐如 QSpinBox 的上下按钮等。 可以通过⼦控件选择器 :: , 针对上述⼦控件进⾏样式设置. 参考⽂档 Qt Style Sheets Reference 中 List of Sub-Controls 例子&#xff1a;设置下拉…