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>