1,首先验证CPU是否支持虚拟化,输入有vmx或svm就支持,支持虚拟化则就支持KVM

cat /proc/cpuinfo | egrep 'vmx|svm'

2,查看KVM模块是否加载

lsmod | grep kvm
# kvm_intel             170086  0 
# kvm                   566340  1 kvm_intel
# irqbypass              13503  1 kvm

3,安装KVM虚拟机

yum -y install qemu-kvm qemu-img libvirt libvirt-python  libvirt-client virt-install virt-viewer

qemu-kvm: KVM模块
libvirt: 虚拟管理模块
virt-manager: 图形界面管理虚拟机
virt-install: 虚拟机命令行安装工具

我的centos7 系统是最小安装的没有安装GUI所以没有安装KVM图形管理程序

4,启动KVM虚拟机

systemctl enable --now libvirtd
systemctl status libvirtd

5,创建虚拟机

virt-install --virt-type=kvm --name=centos7 --vcpus=4 --memory=1024 --location=/data/iso/CentOS-7-x86_64-Minimal-2009.iso --disk path=/var/lib/libvirt/images/centos7.qcow2,size=30,format=qcow2 --network bridge=virbr0 --graphics none  --extra-args='console=ttyS0' --force

如有以下报错修改:/etc/libvirt/qemu.conf

## 直接在文件最后面添加即可
echo 'user = "root"
group = "root"
dynamic_ownership = 0 ' >> /etc/libvirt/qemu.conf

# 重启 libvirtd 服务
systemctl restart libvirtd
systemctl status libvirtd

报错:

[root@wangweili ~]# virt-install --virt-type=kvm --name=centos7.9 --vcpus=4 --memory=2048 --location=/root/wangwl/CentOS-7-x86_64-Minimal-2009.iso --disk path=/var/lib/libvirt/images/centos7.qcow2,size=30,format=qcow2 --network bridge=virbr0 --graphics none  --extra-args='console=tty0 console=ttyS0,115200n8 serial' --force 
WARNING  未检测到操作系统,虚拟机性能可能会受到影响。使用 --os-variant 选项指定操作系统以获得最佳性能。

开始安装......
搜索文件 .treeinfo......                                                                                                                               |  354 B  00:00:00     
搜索文件 vmlinuz......                                                                                                                                 | 6.5 MB  00:00:00     
搜索文件 initrd.img......                                                                                                                              |  53 MB  00:00:00     
正在分配 'centos7.qcow2'                                                                                                                               |  30 GB  00:00:00     
ERROR    内部错误:qemu unexpectedly closed the monitor: 2023-06-28T07:40:12.582803Z qemu-kvm: -drive file=/root/wangwl/CentOS-7-x86_64-Minimal-2009.iso,format=raw,if=none,id=drive-ide0-0-1,readonly=on: could not open disk image /root/wangwl/CentOS-7-x86_64-Minimal-2009.iso: Could not open '/root/wangwl/CentOS-7-x86_64-Minimal-2009.iso': Permission denied
正在删除磁盘 'centos7.qcow2'                                                                                                                         |    0 B  00:00:00     
域安装失败,您可以运行下列命令重启您的域:
'virsh start virsh --connect qemu:///system start centos7.9'
否则请重新开始安装。

6,设置虚拟机的启动停止等等

virsh console xxx # 进入指定的虚拟机,进入的时候还需要按一下回车
virsh start xxx # 启动虚拟机
virsh shutdown xxx # 关闭虚拟机
virsh destroy xxx # 强制停止虚拟机
virsh undefine xxx # 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
virsh autostart xxx # 设置宿主机开机时该虚拟机也开机
virsh autostart --disable xxx # 解除开机启动
virsh suspend xxx # 挂起虚拟机
virsh resume xxx # 恢复挂起的虚拟机
退出虚拟终端,按Ctrl + ]

7.克隆虚拟机

# 使用 virt-clone 克隆新的虚拟机(虚拟机需要先关闭)
virt-clone -o njvm02 -n njvm03 -f /data/kvm-img/njvm03.img

8,克隆完查看 所有的虚拟机以及状态

virsh list --all

9,删除虚拟机

virsh undefine njvm01 
virsh destroy njvm01

10,给虚拟机添加一块磁盘

qemu-img create -f qcow2 web-add.qcow2 20G  

#  临时添加磁盘
virsh attach-disk web /opt/web-add.qcow2 vdb --subdriver qcow2  

# 永久添加磁盘        
virsh attach-disk web /opt/web-add.qcow2 vdb --subdriver qcow2   --config

11,创建快照

virsh snapshot-create-as centos7 centos7_init

12,删除快照

virsh snapshot-delete centos7 centos7_init

13,查看centos7所有快照

virsh snapshot-list centos7

14,还原快照

virsh snapshot-revert centos7 centos7_init

15,扩容虚拟机内存
一般常用于修改虚拟机的内存大小。注意修改之前要关闭虚拟机。修改内存大小配置用以下命令:

virsh setmem centos7 16G --config

有时可能会报错:“错误:无效参数:无法将内存设置为高于最大内存”。这时用下面命令设置最大内存:

virsh setmaxmem centos7 16G --config

然后再执行第一个命令。