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
然后再执行第一个命令。