kvm-虚拟机配置解析

1、虚拟机配置

1.1、qume目录结构

root@localhost:/opt# tree /etc/libvirt/qemu
/etc/libvirt/qemu
├── CentOS-8-x86_64.xml
└── networks
    ├── autostart
    │   └── default.xml -> /etc/libvirt/qemu/networks/default.xml
    └── default.xml

1.2、小结

1、我们创建的虚拟机配置文件都在 /etc/libvirt/qemu 目录下
2、这个目录下的networks目录是存放的虚拟机的网络配置,文件名称是default.xml
3、CentOS-8-x86_64.xml是我们定义的虚拟机的配置文件,原则上,这个文件只能用virsh edit进行编辑

2、虚拟机配置文件解析-CentOS-8-x86_64.xml

root@localhost:~# cat /etc/libvirt/qemu/CentOS-8-x86_64.xml 
<!--
  virsh edit CentOS-8-x86_64 or other application using the libvirt API.
  提示我们只能用virsh edit或者libvirt API 进行编辑这个文件
-->

<domain type='kvm'> # domain完全指虚拟机系统。type一项指明了使用的是哪种虚拟化技术
  <name>CentOS-8-x86_64</name>  # 虚拟机名称
  <uuid>846b3118-de19-4db8-af9e-724db3edb663</uuid> # uuid信息
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://centos.org/centos/7.0"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit='KiB'>2097152</memory>  # 内存信息
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>2</vcpu>    # cpu信息
  <os>
    <type arch='x86_64' machine='pc-q35-7.2'>hvm</type> # type表示全虚拟化还是半虚拟化,hvm表示全虚拟化
    <boot dev='hd'/>  # 表示虚拟机从哪里开机
     # boot 怎么启动的,如"fd"表示从文件启动, "hd"从硬盘启动, "cdrom"从光驱启动 和 "network"从网络启动可以重复多行,指定不同的值,作为一个启动设备列表。
     # The dev attribute takes one of the values "fd", "hd", "cdrom" or "network"
  </os>
  <features> # 表示硬件资源(处理器)特性
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'/>
  <clock offset='utc'> # 时钟信息,utc表示时间模式,localtime表示使用本地时间
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  
  # 突发事件处理机制
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  # 注意:突发事件处理定义了当发生poweroff时,直接destroy虚拟机。当虚拟机reboot、crash的时候,会自动采用重启操作,还可以自定义
  
  <pm> # 虚拟机管理配置(内存和磁盘)
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices> # 虚拟机设备信息,注意:在虚拟化技术或者云计算中,都使用image一词来表示虚拟磁盘
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/opt/CentOS-8-x86_64.raw'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='sda' bus='sata'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    # 虚拟机控制器配置信息
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
...
    <interface type='network'> # 虚拟机网络接口配置信息
      <mac address='52:54:00:45:ae:83'/> # 虚拟机的网卡的mac地址,前面的52:54:00地址是固定的,后面的三项是随机的。
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'> # 虚拟机串口配置信息,可以不用更改
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'> # 虚拟机终端配置信息
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'> # 虚拟机渠道配置信息
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'> # 虚拟机输入输出设备信息
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>    # 虚拟机输入输出设备信息
    <input type='keyboard' bus='ps2'/> # 虚拟机输入输出设备信息
    <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'> # vnc方式登录,端口号自动分配 可以通过virsh vncdisplay来查询[vncdisplay domainId]虚拟机图形设备信息
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <audio id='1' type='none'/> # 虚拟机声音设备信息
    <video> # 显卡设备信息
      <model type='vga' vram='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'> # 虚拟机存储信息
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </memballoon>
    <rng model='virtio'>
      <backend model='random'>/dev/urandom</backend>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </rng>
  </devices>
</domain>

注意:
     配置文件中展示的所有信息,都可以在ps aux 中的进程中一一找到对应的配置项

3、网络配置文件-default.xml 

root@localhost:~# cat /etc/libvirt/qemu/networks/default.xml 
<!--
  virsh net-edit default or libvirt API.
-->

<network>
  <name>default</name>
  <uuid>178c4147-c955-4252-827d-84b4b78a65d1</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:eb:07:52'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

 

posted @ 2023-05-20 21:57  小粉优化大师  阅读(1013)  评论(0编辑  收藏  举报