高级操作
高级操作
自定义 CPU Model
通过修改 XML 文件,可以自定义虚拟机的 CPU 型号和特性。
<domain type='kvm'>
...
<vcpu>4</vcpu>
<memory unit='GiB'>8</memory>
<cpu mode='custom'>
<model>Kunpeng-920</model>
<feature policy='disable' name='pmull'/>
</cpu>
...
</domain>
修改完成后启动虚拟机并验证:
virsh create uos.xml
# 登录虚拟机后执行
lscpu
CPU 热插拔
在虚拟机运行状态下动态增加 vCPU 数量。
1. 配置 XML 文件:
<vcpu placement='static' current='4'>8</vcpu>
<cpu mode='host-passthrough' check='none'>
<topology sockets="2" cores="4" threads="1"/>
</cpu>
2. 启动虚拟机:
virsh define uos.xml
virsh start uos
3. 执行热插拔:
virsh setvcpus <vm_name> <vcpu_counts> --config --live
# 示例:将 vCPU 扩容到 6 个
virsh setvcpus uos 6 --config --live
:::tip 参数说明
vm_name:虚拟机名称vcpu_counts:扩容后的 vCPU 目标数量(不是增量) :::
4. 验证:
lscpu
内存热插拔
在虚拟机运行状态下动态扩展内存。
1. 配置 XML 文件,添加 maxMemory 参数:
<memory unit='GiB'>4</memory>
<maxMemory slots='4' unit='GiB'>16</maxMemory>
<vcpu placement='static' current='4'>8</vcpu>
<cpu mode='host-passthrough' check='none'>
<numa>
<cell id='0' cpus='0-3' memory='4' unit='GiB'/>
</numa>
</cpu>
2. 创建内存扩容 XML 文件:
vi mem.xml
<memory model='dimm'>
<target>
<size unit='GiB'>2</size>
<node>0</node>
</target>
</memory>
3. 启动虚拟机并执行扩容:
virsh create uos.xml
# 附加内存设备
virsh attach-device uos mem.xml
4. 验证:
free -g
磁盘热插拔
:::note 前提条件 虚拟机需处于正常运行状态。 :::
1. 创建外挂磁盘:
qemu-img create -f qcow2 extra_disk.qcow2 20G
2. 创建磁盘 XML 文件:
vi disk.xml
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/uos/disk.img'/>
<target dev='sdb' bus='scsi'/>
<backingStore/>
</disk>
3. 附加磁盘:
virsh attach-device uos disk.xml
4. 验证:
lsblk
网卡热插拔
:::note 前提条件 虚拟机需处于正常运行状态。 :::
1. 创建网卡 XML 文件:
vi vnic.xml
<interface type="bridge">
<mac address="22:49:27:44:3F:16"/>
<source bridge="br0"/>
<model type="virtio"/>
</interface>
2. 附加网卡:
virsh attach-device uos_test vnic.xml
3. 验证:
ifconfig -a
NUMA 配置
通过 NUMA 绑定可优化虚拟机的内存访问性能,将 vCPU 和内存绑定到特定的物理 NUMA 节点。
1. 在 XML 文件中添加 NUMA 配置:
<vcpu placement='static' cpuset='0-3,64-67'>8</vcpu>
<cputune>
<vcpupin vcpu='0' cpuset='0-3'/>
<vcpupin vcpu='1' cpuset='0-3'/>
<vcpupin vcpu='2' cpuset='0-3'/>
<vcpupin vcpu='3' cpuset='0-3'/>
<vcpupin vcpu='4' cpuset='64-67'/>
<vcpupin vcpu='5' cpuset='64-67'/>
<vcpupin vcpu='6' cpuset='64-67'/>
<vcpupin vcpu='7' cpuset='64-67'/>
</cputune>
<numatune>
<memnode cellid='0' mode='strict' nodeset='0'/>
<memnode cellid='1' mode='strict' nodeset='1'/>
</numatune>
<cpu mode='host-passthrough' check='none'>
<topology sockets='2' cores='4' threads='1'/>
<numa>
<cell id='0' cpus='0-3' memory='4' unit='GiB'/>
<cell id='1' cpus='4-7' memory='4' unit='GiB'/>
</numa>
</cpu>
2. 启动虚拟机并验证:
virsh create uos.xml
# 登录虚拟机后执行
lscpu
输出中应显示 NUMA 节点: 2,且 NUMA 节点 0 和 1 分别绑定对应的 CPU。
No comments to display
No comments to display