kvm管理虚拟机
一、libvirt架构概述:
libvirt是用来管理虚拟机或虚拟化功能的软件集合,主要包括:libvirt API, libvirtd进程和virsh工具集三部分。
最初的目的是为不同的hypervisor提供统一的管理接口。
libvirtd该后台进程主要实现以下功能:
(1)远程代理 所有remote client发送来的命令,由该进程监测执行
(2)本地环境初始化 libvirt服务的启停,用户connection的响应等
(3)根据环境注册各种Driver(qemu, xen, storage…)的实现 不同虚拟化技术以Driver的形式实现,由于libvirt对外提供的是统一的接口, 所以各个Driver就是实现这些接口,即将Driver注册到libvirt中。
查看libvirtd服务状态: systemctl status libvirtd
如果libvirtd服务停止运行,那么你将不能管理虚拟机,也就是不能使用virt-manager 等工具来管理虚拟机。
二、kvm基础管理:
1.查看命令帮助:
virsh -h
2.查看kvm陪配置文件存放目录:
ll /etc/libvirt/qemu/
3.查看虚拟状态:
virsh list --all
4.虚拟机开机关机
virsh start testvm01 #开机
virsh shutdown testvm01 #关机
virsh destroy testvm01 强制虚拟机系统关闭 相当于拔掉电源
virsh create /etc/libvirt/qemu/testvm01.xml 通过配置文件启动虚拟机
5.挂起虚拟机
virsh suspend testvm01
6.恢复挂起虚拟机运行
virsh resume testvm01
7.配置虚拟机实例伴随宿主机自动启动/取消
virsh autostart testvm01 开启伴随宿主机开启自启动
域 testvm01标记为自动开始 上述命令将创建/etc/libvirt/qemu/autostart/目录,里面内容为开机自动启动的系统
virsh autostart --disable testvm01 取消伴随宿主机开机自启动
8.导出虚拟机配置
virsh dumpxml testvm02 > /etc/libvirt/qemu/testvm02_bak.xml
9.虚拟机删除和添加
virsh undefine testvm02 删除虚拟机
查看删除结果,vm002的配置文件被删除,但是磁盘文件不会被删除
通过备份的配置文件重新定义虚拟机:
mv /etc/libvirt/qemu/testvm02_bak.xml /etc/libvirt/qemu/testvm02.xml #把备份虚拟配置文件修改回来 virsh define /etc/libvirt/qemu/testvm02.xml 定义域 testvm02
10.修改虚拟配置信息
1.直接修改配置文件
vim /etc/libvirt/qemu/testvm02.xml
2.通过命令进入配置文件修改
virsh edit testvm02
3.查看虚拟机信息
virsh edit testvm02
11.连接虚拟机 (进入虚拟机后按 ctrl + ] 退出虚拟机)
virsh console testvm01 进入虚拟机
ctrl+] 同时摁键 退出虚拟机
三、克隆虚拟机
virt-clone -o testvm02 -n testvm03 -f /kvm-vm/testvm03.qcow2 (克隆虚拟机前提是虚拟机出于关闭状态)
启动验证:
四、虚拟机快照
快照实际上做的是虚拟机的XML配置文件,默认快照XML文件 在/var/lib/libvirt/qemu/snapshot/虚拟机名/下,快照只支持qcow2磁盘格式的系统。
1.创建快照
virsh snapshot-create testvm03 (没有创建快照名字 但会输出一段编号)
virsh snapshot-create-as testvm03 chuangjian
2.查看快照信息
virsh snapshot-list testvm03
3.查看当前快照信息
virsh snapshot-current testvm03
4.恢复到某个状态
virsh snapshot-revert testvm03 1587981799
查看快照信息是否恢复
5.删除快照
virsh snapshot-delete testvm03 1587981952
五、kvm虚拟机总结
1.libvirt的xml文件分为几个重要部分,整体结构如下:
2.查看命令帮助virsh --help,主要有以下部分管理命令:
3.常用命令总结: