目录

目录

Libvirt 应用案例

目录

介绍一些常用的命令,以及对配置的修改。

创建虚拟机时指定--virt-typeqemu,对应的配置文件在 /etc/libvirt/qemu 下,一般和虚拟机的名称一一对应。以下针对名称vm-node1的虚拟机进行一些配置调整。

  1. 虚拟网卡
<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使用加速驱动类型
  1. CPU 核心配置 下面配置意味着虚拟机使用了2个核心
<vcpu placement='static' cpuset='0-1'>2</vcpu>

1)placement:可以指定为staticdynamic,其中动态分配时vCPU可以在物理核心之间迁移。资源稳定的环境更适合静态配置,系统负载波动较大时动态分配更佳 2)cpuset:指定vCPU和物理CPU核心的映射范围,或可cpuset='0,1'
在后续使用过程中,发现虚拟机的CPU在物理核心之间迁移,可以将虚拟CPU明确绑定到物理的CPU核心,避免此现象发生

<cputune>
  <vcpupin vcpu='0' cpuset='0'/>
  <vcpupin vcpu='1' cpuset='1'/>
</cputune>

以下可以更详细的配置虚拟机的CPU架构 ``` ``` 1)sockets:表示虚拟机有 1 个物理插槽 2)cores:每个插槽有 2 个核心 3)threads:每个核心有 2 个线程 > 部分设备不支持'host-passthrough',可以使用'host-model'模式
  1. 内存配置
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>

上述标签可以指定内存的分配,其中<currentMemory>设置虚拟机启动时分配的内存,而<memory>是虚拟机能够动态调整的最大内存(如果启用了内存热调整功能,若不使用该功能,保持两标签数值一致即可)。