命令行模式下部署KVM
最近应公司业务需求,在一个配置比较高的虚拟机上部署KVM,分一些虚拟机出来。怕过一些坑,记录一下。之前我只在CENTOS桌面环境下用过,鼠标点点。现在在虚拟机上部署,找了不少资料
1部署KVM
yum install qemu-kvm qemu-img \
virt-manager libvirt libvirt-python virt-manager \
libvirt-client virt-install virt-viewer -y
systemctl start libvirtd
查看命令virsh list --all可以使用了
2宿主机网桥设置,不设置的话,会随机生成一个网桥,导致虚拟网卡被错误绑定到其他网桥上
在有真实IP的网卡上配置,去掉IP以及最后指定网桥即可
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
BRIDGE=br0
[root@dmstest network-scripts]# cat ifcfg-br0
TYPE=Bridge
#PROXY_METHOD=none
#BROWSER_ONLY=no
BOOTPROTO=static
#DEFROUTE=yes
#IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_FAILURE_FATAL=no
#IPV6_ADDR_GEN_MODE=stable-privacy
#NAME=em4
#UUID=6602252d-b8b5-46d2-b997-f840c8041215
DEVICE=br0
ONBOOT=yes
IPADDR=172.20.69.199
NETMASK=255.255.255.0
GATEWAY=172.20.69.1
DNS1=10.0.12.210
DNS2=172.20.70.100
systemctl restart network
3新建虚拟机
centos
qemu-img create -f qcow2 vm1-disk1.qcow2 10G
virt-install \
--name=vm2 \
--disk path=/home/vm2-disk1.qcow2 \
--vcpus=4 --ram=8096 \
--cdrom=/root/CentOS-7-x86_64-Minimal-2003.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0,,port=5910 \
--os-type=linux \
--os-variant=rhel7
windows2008 R2
qemu-img create -f qcow2 vm1-disk1.qcow2 150G
virt-install \
--name=vm1 \
--disk path=/home/vm1-disk1.qcow2 \
--vcpus=4 --ram=8096 \
--cdrom=/root/cn_windows_server_2008_r2_standard_enterprise_datacenter_web_x64_dvd_x15-50360.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0,,port=5911 \
--os-type=windows
4虚拟机初始化配置IP以及系统,找了不少方案,适合我的就是使用VNC VIEWER,百度下载即可,桌面环境下按需要点击
5宿主机上绑定网卡
brctl delif virbr0 vnet4
brctl addif br0 vnet2
虚拟网卡添加到网桥所在br0
brctl show


最后遇到了2个问题,其中是1个是虚拟机创建时没有权限
坑1
virt-install \
> --name=vm1 \
> --disk path=/home/vm1-disk1.qcow2 \
> --vcpus=1 --ram=1024 \
> --cdrom=/root/CentOS-7-x86_64-Minimal-2003.iso \
> --network network=default \
> --graphics vnc,listen=0.0.0.0 \
> --os-type=linux \
> --os-variant=rhel7
WARNING Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING No console to launch for the guest, defaulting to --wait -1
Starting install...
ERROR internal error: qemu unexpectedly closed the monitor: 2021-11-26T00:58:07.017728Z qemu-kvm: -drive file=/root/CentOS-7-x86_64-Minimal-2003.iso,format=raw,if=none,id=drive-ide0-0-0,readonly=on: could not open disk image /root/CentOS-7-x86_64-Minimal-2003.iso: Could not open '/root/CentOS-7-x86_64-Minimal-2003.iso': Permission denied
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start vm1
otherwise, please restart your installation.
引用了这个大佬的解决方法处理https://blog.csdn.net/alwaysbefine/article/details/106891390
坑2就是虚拟机创建了网关不通,找了一圈基本都是网桥没有绑定
第二步配置了网桥之后
brctl addif brx vnety
虚拟网卡添加到网桥所在br0即可
如果虚拟网卡已经绑定了其他网桥使用brctl delif brx vnety即可
kvm虚拟机管理命令
关闭虚拟机
virsh destroy master
删除虚拟机
[root@dmstest ~]# virsh undefine master --storage /home/master.qcow2
Domain master has been undefined
Volume 'vda'(/home/master.qcow2) removed.
[root@dmstest ~]# virsh list --all
Id Name State
----------------------------------------------------
5 vm2 running
7 vm1 running
.快照管理
[root@dmstest ~]# virsh snapshot-create master
Domain snapshot 1665624877 created
[root@dmstest ~]# virsh snapshot-list master
Name Creation Time State
------------------------------------------------------------
1665624877 2022-10-13 09:34:37 +0800 running
[root@dmstest ~]# virsh snapshot-delete master 1665624877
Domain snapshot 1665624877 deleted
virsh snapshot-list master
Name Creation Time State
-----------------------------------------------------------
<name>1665625588</name>
[root@dmstest ~]# virsh snapshot-list master
Name Creation Time State
------------------------------------------------------------
1665625588 2022-10-13 09:46:28 +0800 running
1665625710 2022-10-13 09:48:30 +0800 running
快照还原
[root@dmstest ~]# virsh snapshot-revert master 1665625588
[root@dmstest ~]# virsh snapshot-current master|head -5
<domainsnapshot>
<name>1665625588</name>
<state>running</state>
<creationTime>1665625588</creationTime>
<memory snapshot='internal'/>
浙公网安备 33010602011771号