当前位置: 首页 > news >正文

虚拟机的xml格式

取一个运行的虚机的xml看看
官网:https://libvirt.org/format.html
参考:https://blog.csdn.net/qq_43210029/article/details/141093414

<domain type="kvm">
  <name>vm-5pnzemaFGHN</name>
  <!- 如果在定义创建新机器时省略,则会生成随机 UUID -->
  <uuid>66301a7f-69b8-3b60-b7b5-a8a8b8ea1a6d</uuid>
  <!- memory 虚拟机启动时分配的内存量 -->
  <memory unit="GiB">4</memory>
  <!- currentMemory 通常与memory相同,但在某些情况下(如内存热插拔或动态调整内存),currentMemory 可以小于 memory,表示虚拟机当前使用的内存少于启动时分配的内存   maxMemory这是虚拟机内存的上限,通常用于支持内存热插拔功能-->
  <currentMemory unit="GiB">4</currentMemory>
  <vcpu current="2">2</vcpu>
  <cputune>
    <shares>4096</shares>
    <!- 可选的vcpupin元素指定域vCPU将被固定到主机的哪个物理CPU上。如果省略此项,并且没有指定元素vcpu的属性cpuset,则默认情况下,vCPU将固定到所有物理CPU。它包含两个必需的属性,属性vcpu指定vCPU id,属性cpuset与元素vcpu的属性cpuset相同 -->
  	<vcpupin vcpu="0" cpuset="0"></vcpupin>
    <vcpupin vcpu="1" cpuset="1"></vcpupin>
  </cputune>
  <numatune>
    <memory mode="preferred" nodeset="2"></memory>
    <memnode cellid="0" mode="preferred" nodeset="2"></memnode>
  </numatune>
  <os>
  	<!- Hardware Virtual Machine -->
    <type arch="x86_64" machine="pc">hvm</type>
    <!- Hard Disk,优先硬盘启动,还有别的参数cdrom、network、fd(软盘使用较少) -->
    <boot dev="hd"></boot>
  </os>
  <!- Hypervisor可以允许打开、关闭某些CPU、机器功能。-->
  <features>
   	<!- 物理地址扩展模式允许32位guests寻址超过4GB的内存。-->
    <pae></pae>
     <!- ACPI对于电源管理非常有用,例如,对于KVM或HVF客户,它是正常关机工作所必需的。-->
    <acpi></acpi>
     <!- APIC允许使用可编程的IRQ管理。0.10.2(仅限QEMU),有一个可选属性eoi,其值为on和off,用于切换guest的eoi(中断结束)的可用性。-->
    <apic></apic>
  </features>
  <cpu>
    <topology sockets="1" cores="2" threads="1"></topology>
    <numa>
      <cell id="0" cpus="0-1" memory="4" unit="GiB"></cell>
    </numa>
  </cpu>
  <clock offset="localtime">
    <timer name="rtc" track="guest" tickpolicy="catchup"></timer>
    <timer name="pit" tickpolicy="delay"></timer>
    <timer name="hpet" present="no"></timer>
  </clock>
  <!-  事件配置 -->
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
  	<!- 一个用于指定虚拟机仿真器路径的配置项。仿真器是用于模拟虚拟机硬件的软件组件,通常是 QEMU  KVM 的二进制文件 -->
    <emulator>/usr/bin/qemu-kvm</emulator>
    <!- 用于定义虚拟机磁盘设备的配置。它描述了一个基于文件的磁盘设备,并指定了驱动类型、缓存模式、I、O 模式等详细信息 -->
    <!- type="file" 表示磁盘是基于文件的,即磁盘数据存储在一个文件中(例如 .qcow2、.raw  .iso 文件),device="disk" -->
    <disk type="file" device="disk">
      <!- 指定使用的磁盘驱动为 QEMU 驱动,指定磁盘文件的格式为 raw(原始格式),指定磁盘缓存模式为 none,即禁用主机缓存,指定磁盘 I、O 模式为多线程模式 -->
      <driver name="qemu" type="raw" cache="none" io="threads"></driver>
      <!- 指定磁盘文件的路径,通常用于提供云初始化数据(cloud-init data),这里可能有疑问可,为啥上面配置得是raw,下面却是iso,因为在 libvirt 的磁盘配置中,并没有 type="iso" 这样的选项。ISO 文件通常被视为一种特殊的磁盘文件(ISO 文件是一种光盘映像格式,通常用于存储光盘的内容(如操作系统安装介质或工具盘)。虽然 ISO 文件不是传统意义上的磁盘镜像,但它仍然可以被视为一种“原始”二进制文件) -->
      <source file="/xxxxxx/data/ci/vm-5pnzemaFGHN/init-cidata.iso"></source>
      <!- 指定磁盘设备在虚拟机中的设备名称为 vdb -->
      <target dev="vdb"></target>
    </disk>
    <!- 表示磁盘是基于块设备的,即磁盘数据存储在一个块设备中 -->
    <disk type="block" device="disk">
      <!- 指定磁盘文件的格式为 qcow2-->
      <driver name="qemu" type="qcow2" cache="none" io="threads"></driver>
      <source dev="/dev/qbd/vol/vm-5xxxxFGHN.img"></source>
      <target dev="vda"></target>
    </disk>
    <interface type="bridge">
      <mac address="52:54:38:cc:44:a6"></mac>
      <source bridge="br1089"></source>
      <target dev="38cc44a6"></target>
      <model type="virtio"></model>
      <driver name="vhost" queues="2"></driver>
    </interface>
    <console>
      <target type="serial"></target>
    </console>
    <!- 虚拟机通道设备(channel device)的配置,通道的类型为 Unix 域套接字,Unix 域套接字是一种用于在同一台主机上的进程之间进行通信的机制,也有其他的type,pty: 伪终端设备,spicevmc: 用于 SPICE 协议的虚拟通道 -->
    <channel type="unix">
      <source mode="bind" path="/xxxxxx/run/vm-5xxxxFGHN.agent.ctl"></source>
      <!- Virtio 是一种高性能的虚拟化设备标准,通常用于虚拟机和宿主机之间的通信 -->
      <target type="virtio" name="com.yunify.channel.0"></target>
    </channel>
    <channel type="unix">
      <source mode="bind" path="/var/lib/libvirt/qemu/org.qemu.guest_agent.0.vm-5xxxxFGHN"></source>
      <target type="virtio" name="org.qemu.guest_agent.0"></target>
    </channel>
    <input type="mouse" bus="ps2"></input>
    <input type="tablet" bus="usb"></input>
    <!- VNC 是一种远程桌面协议,允许用户通过网络连接到虚拟机的图形界面 -->
    <graphics type="vnc" autoport="yes" passwd="A2v5cyyy">
      <listen type="address" address="0.0.0.0"></listen>
    </graphics>
    <sound model="es1370">
      <audio id="1"></audio>
    </sound>
    <audio id="1" type="none"></audio>
    <video>
      <model type="vga" heads="1" vram="9126"></model>
    </video>
    <memballoon model="virtio">
      <stats period="10"></stats>
    </memballoon>
    <rng model="virtio">
      <backend model="random">/dev/urandom</backend>
    </rng>
  </devices>
  <commandline xmlns="http://libvirt.org/schemas/domain/qemu/1.0">
    <arg value="-cpu"></arg>
    <arg value="EPYC,vendor=AuthenticAMD,model_id=Hygon C86 5280 16-core Processor&#xA;"></arg>
  </commandline>
</domain>

问题:
1、.img 和上面得iso分别是啥
.img 文件通常用作虚拟机的磁盘,存储操作系统和用户数据。
.iso 文件通常用作虚拟机的光驱,用于挂载安装介质或工具盘。
/dev/qbd/vol/vm-5xxxxxFGHN.img 是一个 .img 文件,用作虚拟机的磁盘。
/xxxx/data/ci/vm-5xxxxxFGHN/init-cidata.iso 是一个 .iso 文件,通常用于提供云初始化数据。

2、vnc和spice的区别
使用 VNC:
如果你需要简单的远程图形访问,尤其是跨平台支持。
如果你不需要音频、USB 重定向或文件传输等高级功能。

使用 SPICE:
如果你在虚拟化环境中需要高性能图形和多媒体支持。
如果你需要音频、USB 重定向、文件传输等高级功能。
如果你对安全性有较高要求。

相关文章:

  • 市场动态变化中的策略运用
  • Scala(Array,List,Set,Map,Tuple,字符串 使用的简单介绍)
  • 【redis】五种数据类型和编码方式
  • HTML 标签语义化指南:让网页更易读
  • 【认知学习篇】【深度拆解DeepSeek:从技术内核到江湖地位(万字暴力拆机报告)】
  • Linux系统之nethogs工具的基本使用
  • 技术领域,有许多优秀的博客和网站
  • Day04 模拟原生开发app过程 Androidstudio+逍遥模拟器
  • 【GPT入门】第11课 FunctionCall调用本地代码入门
  • k8s部署deepseek基于cpu的部署
  • 数字人系统源码---v10技术五大底层架构链路全局开发思路
  • Python中与字符串操作相关的30个常用函数及其示例
  • 每日一题——乘积最大子数组
  • 4.桥接模式
  • 逻辑回归机器学习
  • Java零基础入门笔记:多线程
  • 元脑服务器:浪潮信息引领AI基础设施的创新与发展
  • NVIDIA显卡30年:从加密矿潮到AI霸权
  • 1个基于 Three.js 的 Vue3 组件库
  • JavaScript 是什么?
  • 图盛网站建设/如何做到精准客户推广
  • 网站可以增加关键词吗/培训机构网站
  • 昆山做网站的那家好/网络服务投诉平台
  • 黑龙江建设厅网站官网/百度指数排行榜哪里看
  • 个人网站备案 名称/微商引流人脉推广软件
  • 网站的建设服务/seozou是什么意思