无图形界面下创建管理虚拟机
CentOS安装KVM
yum install -y qemu-kvm libvirt virt-install bridge-utilssystemctl start libvirtd
虚拟机常用管理命令
查看运行的虚拟机
[root@H230 ~]# virsh list Id Name State---------------------------------------------------- 2 centos7.0 running
查看所有的虚拟机(关闭和运行的虚拟机)
virsh list --all
虚拟机共有7种状态
- running 虚拟机正在运行
- idle 虚拟机是闲置的,没有运行,在等待IO或者休眠时虚拟机会进入这种状态
- paused 虚拟机处于暂停状态,一般情况下是被admin运行了virsh suspend才会处于这种状态,但是仍然消耗资源,只不过不被超级管理程序调度而已。
- shutdown 虚拟机在关闭过程中
- shut off 虚拟机没有运行,已经完全关闭
- crashed 虚拟机崩溃
- dying 虚拟机处于垂死的状态,但是又没完全关闭或崩溃
连接虚拟机控制台
virsh console 域名(虚拟机的名称)
退出虚拟机控制台
ctrl+]
关闭虚拟机
virsh shutdown 域名
启动虚拟机
virsh start 域名
强制关闭虚拟机
virsh destroy
[root@h230 ~]# virsh list --all Id Name State---------------------------------------------------- 1 centos7.0 running 18 CentOS8 running[root@h230 ~]# virsh destroy CentOS8Domain CentOS8 destroyed[root@h230 ~]# virsh list --all Id Name State---------------------------------------------------- 1 centos7.0 running - CentOS8 shut off
删除虚拟机
[root@h230 ~]# virsh list --all Id Name State---------------------------------------------------- 1 centos7.0 running - CentOS8 shut off[root@h230 ~]# virsh undefine CentOS8 Domain CentOS8 has been undefined[root@h230 ~]# virsh list --all Id Name State---------------------------------------------------- 1 centos7.0 running
开机自启动(宿主机启动后虚拟机自动启动)
virsh autostart 域名
修改虚拟机配置
virsh edit 域名
常见问题:
当虚拟启动后,Ping能通,但是连接任何虚拟机端口都会失败,且在虚拟机内部抓包时,未见任何连接报文
宿主机的防火墙挡住了发往虚拟机的报文,通过关闭宿主机的防火墙来快速确认是否是因为这个原因导致
systemctl stop firewalld
KVM虚拟机快照备份
快照就是将虚机在某一个时间点上的磁盘、内存和设备状态保存一下,以备将来之用
- 磁盘快照: 磁盘的内容(可能是虚机的全部磁盘或者部分磁盘)在某个时间点上被保存,然后可以被恢复
注: 若保存的磁盘状态数据不完整(如机器突然掉电时硬盘数据的状态等),机器重启后需要通过 fsck 或者别的工具来恢复到完整一致的状态(类似于 Windows 机器在断电后会执行文件检查),也可通过如下命令来做一致性检查
qemu-img check -f qcow2 --output=qcow2 -r all filename-img.qcow2
- 内存快照:只是保持内存和虚机使用的其它资源的状态。如果虚机状态快照在做和恢复之间磁盘没有被修改,那么虚机将保持一个持续的状态;如果被修改了,那么很可能导致数据corruption(类似休眠状态保存)
查询虚拟机的快照信息
virsh snapshot-list 域名
注: 虚拟机快照一般存放在'/var/lib/libvirt/qemu/snapshot/域名'下
删除虚拟机快照
virsh snapshot-delete 域名 快照名
创建快照备份(磁盘快照)
virsh snapshot-create-as --domain centos7.0 --name centos7.0-1124 --description 'new host'
恢复快照
virsh snapshot-revert 域名 快照名
恢复前,最好shutdown虚拟机(virsh shutddown 域名)
虚拟机安装方法
通过console界面进行安装
virt-install \--connect qemu:///system \--virt-type kvm \--name CentOS8 \--vcpus 2,maxvcpus=2 \--ram 4096 \--disk path=/home/admin/VM/CentOS8.qcow2,size=40,format=qcow2,bus=virtio,sparse \--network bridge=br1,model=virtio \--nographics \--location=/home/admin/Images/CentOS-7-x86_64-DVD-1810.iso \--extra-args 'console=ttyS0' \--video=cirrus
# --name 虚拟机名称
# --vcpus CPU核数, --maxvcpus最大运行核数
# --ram 内存大小(4096M)
# --disk path=磁盘位置,size=40(40G)
# --network 网卡
# --nographic 不开启图形界面
# --location镜像位置
# --extra-args 开启console口
通过vnc远程桌面安装
virt-install --name=CentOS8 \--location=/home/admin/Images/CentOS-7-x86_64-DVD-1810.iso \--ram 4096 --vcpus=2 \--disk path=/home/admin/VM/CentOS8.qcow2,size=40,format=qcow2,bus=virtio,sparse \--accelerate --vnc --vncport=5922 --vnclisten=0.0.0.0 --noautoconsole \--network bridge=br0
可通过virt-viewer,连接进入图形界面进行安装
kickstart自动安装
virt-install \--connect qemu:///system \--virt-type kvm \--name CentOS8 \--vcpus 2,maxvcpus=2 \--ram 4096 \--disk path=/home/admin/VM/CentOS8.qcow2,size=40,format=qcow2,bus=virtio,sparse \--network bridge=br1,model=virtio \--nographics \--location http://172.12.0.101:8081/CentOS8 \--extra-args 'ks=http://172.12.0.101:8081/ks.cfg console=ttyS0' \--video=cirrus
cockpit Web界面安装
访问宿主机cockpit管理界面(https://host-ip:9090)
虚拟机菜单项中新建虚拟机
在创建的虚拟机属性中,配置磁盘信息
附:Cockpit Web 控制台
管理和监视本地系统以及网络环境中的Linux服务器。
- 管理服务
- 管理用户账号
- 管理和监视系统服务
- 配置网络接口和防火墙
- 查看系统日志
- 管理虚拟机
- 创建诊断报告
- 设置内核转储配置
- 配置SELinux
- 更新软件
- 管理系统订阅
安装启用
yum install cockpit -ysystemctl start cockpit.socketsystemctl enable --now cockpit.socketsystemctl status cockpit.socketfirewall-cmd --add-service=cockpit --permanent
Web页面中登录
https://IP:9090
安装其它组件
以下是Cockpit的一些软件模块,可以根据自己的需要选择性的安装
- cockpit-docker: Managing Docker Containers
- cockpit-kubernetes: Visualizing and Configuring Kubernetes Cluster
- cockpit-machines: Manage KVM Virtual Machines
- cockpit-sosreport: Create diagnostic report with the sosreport tool
- cockpit-selinux: Troubleshoot SELinux Issues
- cockpit-kdump: Configure Kernel Crash Dumps
- cockpit-subscriptions: Manage System subscription
- cockpit-machines-ovirt: Manage oVirt Virtual Machines
- cockpit-pcp: Reading PCP metrics and Loading PCP archives
如需要安装虚拟机管理组件
yum install cockpit-machines
其它系统相关组件
yum install cockpit-dashboard.x86_64 cockpit-composer.noarch cockpit-storaged.noarch
安装后,打开管理界面