Skip to main content

虚拟机 XML 配置

虚拟机 XML 配置

Libvirt 使用 XML 格式文件描述虚拟机的完整配置,包括名称、CPU、内存、磁盘、网卡等设备。了解 XML 结构是管理虚拟机的基础。

domain 和 name

元素 说明
<domain> XML 根元素,type 属性指定 hypervisor 类型,虚拟化中取值为 kvm
<name> 虚拟机名称,同一主机上不可重复。由数字、字母、_、-、: 组成,不超过 64 字符,不支持全数字

vcpu 和 memory

<vcpu>4</vcpu>
<memory unit='GiB'>8</memory>
元素 说明
<vcpu> 虚拟处理器个数
<memory> 虚拟内存大小,unit 属性支持 KiB、MiB、GiB、TiB

CPU 模式

<cpu mode='host-passthrough'>
    <topology sockets='2' cores='4' threads='1'/>
</cpu>
属性 说明
mode='host-passthrough' 虚拟 CPU 架构和特性与主机保持一致
mode='custom' 虚拟 CPU 架构和特性由 <cpu> 元素控制

:::tip 提示 使用 host-passthrough 模式可获得最佳性能;使用 custom 模式可自定义 CPU 模型和特性,适合需要跨主机迁移虚拟机的场景。 :::

CPU 特性策略(feature 元素的 policy 属性):

策略 说明
force 强制使能该特性,无论主机 CPU 是否支持
require 使能该特性,若主机不支持且 hypervisor 无法模拟则创建失败
optional 与主机上该特性的使能情况保持一致
disable 禁用该特性
forbid 禁用该特性,若主机支持则创建失败

存储设备(disk)

<disk type='file' device='disk'>
    <driver name='qemu' type='qcow2' cache='none'/>
    <source file='/var/lib/libvirt/images/uos.qcow2'/>
    <target dev='vda' bus='virtio'/>
    <boot order='1'/>
</disk>

常用属性:

属性 说明 可选值
type 后端存储介质类型 block(块设备)、file(文件)、dir(目录)
device 呈现给虚拟机的存储介质 disk(磁盘,默认)、floppy(软盘)、cdrom(光盘)

常用子元素:

子元素 说明
<source> 指定后端存储路径。file 类型对应文件路径,block 类型对应设备路径
<driver> 驱动详情。type 需与源格式一致(raw/qcow2);cache 可选 none、writethrough、writeback、directsync
<target> 磁盘呈现给虚拟机的总线类型。dev 指定设备名(如 vda、sda),bus 指定总线类型(virtio、scsi、sata)
<boot> 启动顺序,order 值越小优先级越高
<readonly> 只读属性,通常用于光驱

网络设备(interface)

<interface type='bridge'>
    <mac address='52:54:00:91:6b:bc'/>
    <source bridge='br0'/>
    <model type='virtio'/>
    <driver name='vhost' queues='4'/>
</interface>

常用子元素:

子元素 说明
<mac> 虚拟网卡 MAC 地址,不配置则自动生成
<target> 后端 tap 设备名称
<source> 网桥模式下的网桥名称
<model> 网卡类型,bridge 模式通常使用 virtio
<driver> 后端驱动,name 通常取 vhost,queues 指定设备队列数

控制器(controller)

<controller type='scsi' model='virtio-scsi' index='0'/>
<controller type='usb' model='nec-xhci' index='0'/>

常用类型与型号对应关系:

type model 说明
pci pcie-root PCIe 根节点
pci pcie-root-port PCIe 根端口,可挂载 PCIe 设备
usb ehci USB 2.0 控制器
usb nec-xhci USB 3.0 控制器
scsi virtio-scsi virtio 类型 SCSI 控制器
virtio-serial virtio-serial virtio 串口控制器

其他常用设备

串口(serial):

<serial type='pty'>
    <target port='0'/>
</serial>

显卡(video):

<!-- ARM64 架构 -->
<video>
    <model type='virtio' heads='1' primary='yes'/>
</video>

<!-- AMD64 架构,配置 16MB VGA 显卡 -->
<video>
    <model type='vga' vram='16384' heads='1' primary='yes'/>
</video>

输入设备(input):

<input type='tablet' bus='usb'/>
<input type='keyboard' bus='usb'/>

图形设备(graphics):

<graphics type='vnc' listen='0.0.0.0'/>