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>