Libvirt 应用案例
系列 -
目录
介绍一些常用的命令,以及对配置的修改。
1 配置文件
创建虚拟机时指定--virt-type为qemu,对应的配置文件在 /etc/libvirt/qemu 下,一般和虚拟机的名称一一对应。以下针对名称vm-node1的虚拟机进行一些配置调整。
- 虚拟网卡
<domain type='qemu'>
<devices>
<!-- 第一张网卡 -->
<interface type='network'>
<mac address='52:54:00:7a:2b:11'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</interface>
<!-- 新增网卡 -->
<interface type='network'>
<mac address='52:54:00:49:ab:66'/>
<source network='default'/>
<model type='virtio'/>
<driver name='vhost' queues='4'/>
<address type='pci'/>
</interface>
</devices>
</domain>
新增虚拟网卡时,增加一个<interface type='network'/>的节点。
1)<mac/>:需要指定唯一的MAC地址用来标识网络接口,通常形如 52:54:00:xx:xx:xx,其中 52:54:00 是由 libvirt 生成的固定前缀,xx:xx:xx是随机部分
2)<source/>:指定网络来源,可以通过命令virsh net-list查询到这些网络
3)<model/>:能够用来指定网络接口卡的硬件模型,例如,e1000(Intel 1000网卡)、vmxnet3(VMware 的网络驱动模型)、rt18139(Realtek 8139网卡)等
4)<address/>:指定设备的物理地址
- type:一般指定为
pci总线类型,通常是虚拟机的标准接口 - slot:指定了PCI插槽的位置,他应该是唯一的,避免和虚拟机中其他设备发生冲突(可以不手动填写)
- bus:PCI 总线编号,虚拟机中可能有多个总线
- domain:表示 PCI 总线的物理或虚拟域,通常在单一的虚拟机内,
domain都是0x0000。对于 QEMU/KVM 虚拟机,domain通常是固定的 - function:每个插槽上,PCI 设备可以有多个功能,但通常一个网卡设备只会使用一个功能(function=‘0x0’)
5)
<driver/>:可以通过queues指定多队列支持,指定name使用加速驱动类型
- CPU 核心配置 下面配置意味着虚拟机使用了2个核心
<vcpu placement='static' cpuset='0-1'>2</vcpu>
1)placement:可以指定为static和dynamic,其中动态分配时vCPU可以在物理核心之间迁移。资源稳定的环境更适合静态配置,系统负载波动较大时动态分配更佳
2)cpuset:指定vCPU和物理CPU核心的映射范围,或可cpuset='0,1'
在后续使用过程中,发现虚拟机的CPU在物理核心之间迁移,可以将虚拟CPU明确绑定到物理的CPU核心,避免此现象发生
<cputune>
<vcpupin vcpu='0' cpuset='0'/>
<vcpupin vcpu='1' cpuset='1'/>
</cputune>
以下可以更详细的配置虚拟机的CPU架构 ```
- 内存配置
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
上述标签可以指定内存的分配,其中<currentMemory>设置虚拟机启动时分配的内存,而<memory>是虚拟机能够动态调整的最大内存(如果启用了内存热调整功能,若不使用该功能,保持两标签数值一致即可)。