@TOC
一、查看本地环境
1.查看零碎版本
[root@serer1 ~]# cat /etc/os-release NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"
2.查看防火墙状态
[root@serer1 ~]# systemctl status firewalld● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) since Wed 2022-10-19 00:09:43 CST; 7s ago Docs: man:firewalld(1) Main PID: 642 (code=exited, status=0/SUCCESS)
3.查看selinux
[root@serer01 ~]# getenforce Disabled
3.查看libvirtd服务状态
[root@server ~]# systemctl status libvirtd● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-10-16 17:53:24 CST; 2 days ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 29472 (libvirtd) Tasks: 18 (limit: 32768) Memory: 34.8M CGroup: /system.slice/libvirtd.service └─29472 /usr/sbin/libvirtd --listen
4.查看kvm装置后果
[root@server ~]# lsmod|grep kvmkvm_intel 183621 4 kvm 586948 1 kvm_intelirqbypass 13503 3 kvm
5.查看kvm虚拟机状态
[root@server ~]# virsh -c qemu:///system list Id Name State---------------------------------------------------- 9 kvm01 running
6.查看virsh版本
[root@server ~]# virsh --version4.5.0[root@server ~]# virt-install --version1.5.0
二、virsh常用命令
1.列出虚拟机
[root@server ~]# virsh list Id Name State---------------------------------------------------- 9 kvm01 running[root@server ~]# virsh list --all Id Name State---------------------------------------------------- 9 kvm01 running
2.虚拟机开关机操作
virsh start kvm01 #虚拟机开机virsh shutdown kvm01 #敞开虚拟机virsh destroy kvm01 # 强制进行虚拟机
3.删除虚拟机
virsh undefine kvm01 #彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚构磁盘
4.设置虚拟机在宿主机开机时自启
virsh autostart kvm01 # 宿主机开启时自启virsh autostart --disable kvm01 # 取开机自启
5.挂起虚拟机
virsh suspend kvm01 # 挂起虚拟机virsh resume kvm01 # 复原挂起的虚拟机
6.查看虚拟机的配置文件
[root@server ~]# virsh dumpxml kvm01 <domain type='kvm' id='9'> <name>kvm01</name> <uuid>65438c9d-81cd-cd83-01de-77a5ed5af051</uuid> <description>None</description> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <vcpu placement='static'>2</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <boot dev='hd'/> <boot dev='cdrom'/> <bootmenu enable='yes'/> </os> <features> <acpi/> <apic/> <pae/> </features> <cpu mode='custom' match='exact' check='full'> <model fallback='forbid'>IvyBridge-IBRS</model> <vendor>Intel</vendor> <feature policy='disable' name='ds'/> <feature policy='disable' name='acpi'/> <feature policy='require' name='ss'/> <feature policy='disable' name='ht'/> <feature policy='disable' name='tm'/> <feature policy='disable' name='pbe'/> <feature policy='disable' name='dtes64'/> <feature policy='disable' name='monitor'/> <feature policy='disable' name='ds_cpl'/> <feature policy='disable' name='vmx'/> <feature policy='disable' name='est'/> <feature policy='disable' name='tm2'/> <feature policy='disable' name='xtpr'/> <feature policy='disable' name='pdcm'/> <feature policy='require' name='movbe'/> <feature policy='disable' name='osxsave'/> <feature policy='disable' name='arat'/> <feature policy='disable' name='tsc_adjust'/> <feature policy='require' name='rdseed'/> <feature policy='require' name='smap'/> <feature policy='require' name='clflushopt'/> <feature policy='require' name='clwb'/> <feature policy='disable' name='intel-pt'/> <feature policy='require' name='sha-ni'/> <feature policy='require' name='umip'/> <feature policy='require' name='gfni'/> <feature policy='disable' name='md-clear'/> <feature policy='require' name='stibp'/> <feature policy='require' name='ssbd'/> <feature policy='require' name='xsaveopt'/> <feature policy='require' name='xsavec'/> <feature policy='require' name='xgetbv1'/> <feature policy='require' name='3dnowprefetch'/> <feature policy='disable' name='avx'/> <feature policy='disable' name='f16c'/> <feature policy='require' name='hypervisor'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/nas/kvm/centos_kvm.img'/> <backingStore/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/storage/kvm/CentOS-7-x86_64-Minimal-1511.iso'/> <backingStore/> <target dev='hda' bus='ide'/> <readonly/> <alias name='ide0-1-1'/> <address type='drive' controller='0' bus='1' target='0' unit='1'/> </disk> <controller type='usb' index='0' model='piix3-uhci'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <controller type='ide' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='bridge'> <mac address='52:54:00:6c:cb:10'/> <source network='br0' bridge='br0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <input type='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='tablet' bus='usb'> <alias name='input1'/> <address type='usb' bus='0' port='1'/> </input> <input type='keyboard' bus='ps2'> <alias name='input2'/> </input> <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </memballoon> </devices> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+107:+107</label> <imagelabel>+107:+107</imagelabel> </seclabel></domain>
7.对虚拟机配置文件操作
virsh edit vm-name #批改虚拟机的配置文件virsh define file-name.xml #依据配置文件定义虚拟机
8.查看KVM虚拟机相干配置文件
[root@server ~]# ls /etc/libvirt/qemu/autostart kvm01.xml networks[root@server ~]# ls /etc/libvirt/qemu/networks/autostart br0.xml[root@server ~]# ls /etc/libvirt/qemu/networks/autostart/br0.xml
三、KVM虚拟机的磁盘治理
1.查看磁盘格式
[root@server ~]# qemu-img info /nas/kvm/centos_kvm.img image: /nas/kvm/centos_kvm.imgfile format: qcow2virtual size: 40G (42949672960 bytes)disk size: 2.2Gcluster_size: 65536Format specific information: compat: 0.10
2.将raw格局磁盘文件转化为qcow2
$ qemu-img convert -f raw -O qcow2 /data/centos7.raw /data/centos7.qcow# qemu-img covert -f 源格局 -O 指标格局 源磁盘文件 指标磁盘文件
3.创立空的qcow2格局的磁盘文件
[root@server kvm]# qemu-img create -f qcow2 /nas/kvm/test.qcow2 5GFormatting '/nas/kvm/test.qcow2', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off [root@server kvm]# qemu-img info /nas/kvm/test.qcow2 image: /nas/kvm/test.qcow2file format: qcow2virtual size: 5.0G (5368709120 bytes)disk size: 196Kcluster_size: 65536Format specific information: compat: 1.1 lazy refcounts: false
4.批改镜像文件大小
[root@server kvm]# qemu-img resize ./test.qcow2 +7GImage resized.[root@server kvm]# qemu-img info /nas/kvm/test.qcow2 image: /nas/kvm/test.qcow2file format: qcow2virtual size: 12G (12884901888 bytes)disk size: 200Kcluster_size: 65536Format specific information: compat: 1.1 lazy refcounts: false
5.给虚拟机新增硬盘——长期失效
virsh attach-disk kvm01 /nas/kvm/test.qcow2 vdb --subdriver=qcow2# virsh attach-disk <虚拟机名称> <新增磁盘门路> <设施名> <磁盘格式类型>
6.给虚拟机新增硬盘——永恒失效
virsh attach-disk kvm01 /nas/kvm/test.qcow2 vdb --subdriver=qcow2 --config
7.卸载硬盘
virsh detach-disk kvm01 /nas/kvm/test.qcow2 #卸载长期失效virsh detach-disk kvm01 /nas/kvm/test.qcow2 --config # 卸载永恒失效
8.查看虚拟机硬件状况
[root@server kvm]# virsh dumpxml kvm01 |grep dev <boot dev='hd'/> <boot dev='cdrom'/> <devices> <disk type='file' device='disk'> <target dev='vda' bus='virtio'/> <disk type='file' device='disk'> <target dev='vdb' bus='virtio'/> <disk type='file' device='cdrom'> <target dev='hda' bus='ide'/> <target dev='vnet0'/> <source path='/dev/pts/0'/> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> </devices>
9.在WebVirtMgr上查看虚拟机硬盘新增状况
四、KVM虚拟机的网卡治理
1.查看网卡
[root@server kvm]# virsh domiflist kvm01Interface Type Source Model MAC-------------------------------------------------------vnet0 bridge br0 virtio 52:54:00:6c:cb:10
2.新增网卡
[root@server kvm]# virsh attach-interface kvm01 --type bridge --source br0 Interface attached successfully
3.使新增网卡失效
[root@server kvm]# virsh dumpxml kvm01 > /etc/libvirt/qemu/kvm01.xml [root@server kvm]# virsh define /etc/libvirt/qemu/kvm01.xml Domain kvm01 defined from /etc/libvirt/qemu/kvm01.xml
4.虚拟机查看新增网卡
[root@server kvm]# ssh root@192.168.3.169The authenticity of host '192.168.3.169 (192.168.3.169)' can't be established.ECDSA key fingerprint is SHA256:SMUWtN77SI+zUIX2bBR7/hY176zJLiWvY7KpIUlK0dw.ECDSA key fingerprint is MD5:df:58:7e:61:73:82:b5:56:03:25:60:f1:80:a6:b1:0b.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.3.169' (ECDSA) to the list of known hosts.root@192.168.3.169's password: Last login: Tue Oct 18 23:19:15 2022 from 192.168.3.11[root@serer01 ~]# ip add1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:6c:cb:10 brd ff:ff:ff:ff:ff:ff inet 192.168.3.169/24 brd 192.168.3.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe6c:cb10/64 scope link valid_lft forever preferred_lft forever3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 02:42:5d:4a:c4:9f brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:5dff:fe4a:c49f/64 scope link valid_lft forever preferred_lft forever5: veth0604e80@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP link/ether be:7f:bd:57:88:71 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fe80::bc7f:bdff:fe57:8871/64 scope link valid_lft forever preferred_lft forever6: ens7: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 52:54:00:45:1b:53 brd ff:ff:ff:ff:ff:ff
5.删除网卡
须要将虚构机关机再进行删除网卡操作
[root@server kvm]# virsh detach-interface kvm01 --type bridge --mac 52:54:00:45:1b:53 --configInterface detached successfully[root@server kvm]# virsh dumpxml kvm01 > /etc/libvirt/qemu/kvm01.xml[root@server kvm]# virsh define /etc/libvirt/qemu/kvm01.xmlDomain kvm01 defined from /etc/libvirt/qemu/kvm01.xml[root@server kvm]# virsh domiflist kvm01Interface Type Source Model MAC-------------------------------------------------------- bridge br0 virtio 52:54:00:6c:cb:10
五、KVM虚拟机的快照治理
1.创立快照
[root@server kvm]# virsh snapshot-create kvm01Domain snapshot 1666155063 created
2.查看快照列表
[root@server kvm]# virsh snapshot-list kvm01 Name Creation Time State------------------------------------------------------------ 1666155063 2022-10-19 12:51:03 +0800 shutoff
3.查看快照信息
[root@server kvm]# virsh snapshot-info kvm01 --current Name: 1666155063Domain: kvm01Current: yesState: shutoffLocation: internalParent: -Children: 0Descendants: 0Metadata: yes
4.查看快照目录
[root@server kvm]# ll /var/lib/libvirt/qemu/snapshot/total 0drwxr-xr-x 2 root root 28 Oct 19 12:51 kvm01[root@server kvm]# ll /var/lib/libvirt/qemu/snapshot/kvm01/total 8-rw------- 1 root root 5550 Oct 19 12:51 1666155063.xml
5.删除快照
[root@server kvm]# virsh snapshot-delete kvm01 1666155063Domain snapshot 1666155063 deleted
6.复原快照
virsh snapshot-revert kvm01 1666155063 --running
7.snapshot-revert用法
snapshot-revert用法:snapshot-revert <domain> [<snapshotname>] [--current] [--running] [--paused] [--force]
选项: [--domain] <string> :指定domain名称,id或者uuid [--snapshotname] <string> : 指定快照名称 --current :复原到以后快照 --running :在复原快照后主动运行虚拟机 --paused :在复原快照后主动暂停虚拟机 --force :强制执行快照,有危险的复原选项