1、libvirt架构概述:
libvirt是用来管理虚拟机或虚拟化功能的软件集合,主要包括:libvirtAPI,
libvirtd进程和virsh工具集三部分。最初的目的是为不同的hypervisor提供统一的管理接口。
libvirtd该后台进程主要实现以下功能:
(1)远程代理
所有remoteclient发送来的命令,由该进程监测执行
(2)本地环境初始化
libvirt服务的启停,用户connection的响应等
(3)根据环境注册各种Driver(qemu,xen,storage…)的实现
不同虚拟化技术以Driver的形式实现,由于libvirt对外提供的是统一的接口, 所以各个Driver就是实现这些接口,即将Driver注册到libvirt中。
查看libvirtd服务状态:
[root@localhost~]# systemctl status libvirtd
如果libvirtd服务停止运行,那么你将不能管理虚拟机,也就是不能使用virt-manager等工具来管理虚拟机。
虚拟机的所有配置是放置在一个xml文件中,位置在/etc/libvirt/qemu/目录中
可以看到创建的2个虚拟机,libvirt的xml文件分为几个重要部分,整体结构如下:
下面是部分截图:
具体格式可以参看http://libvirt.org/formatdomain.html
3、使用virsh来管理虚拟机
virsh是使用libvirtmanagement API构建的管理工具
virsh的名称的含义是virtualizationshell。它有两种工作模式:
立即模式
交互模式
查看命令帮助virsh--help,主要有以下部分管理命令:
常用命令总结:
一、KVM基本功能管理:
1)查看命令帮助
[root@localhost~]# virsh -h
2)查看KVM的配置文件存放目录
3)查看虚拟机状态
4)虚拟机关机与开机
5)强制虚拟机系统关闭电源
6)通过配置文件启动虚拟机系统实例
7)挂起虚拟机
8)恢复虚拟机
9)配置虚拟机实例伴随宿主机自动启动
10)导出虚拟机配置11)虚拟机的删除与添加
删除虚拟机
查看删除结果,vm002的配置文件被删除,但是磁盘文件不会被删除。
通过备份的配置文件重新定义虚拟机:
12)修改虚拟机配置信息
直接修改配置文件
[root@localhost ~]# vim /etc/libvirt/qemu/vm002.xml
通过virsh命令修改
[root@localhost~]# virsh edit vm002
13)查看虚拟机信息
14)连接虚拟机(进入虚拟机后按ctrl ] 退出虚拟机)
退出按ctrl ]
无法使用vrish console 登录虚拟机的解决方案,请参考微信公众号“kvm命令行安装”文章的内容。进行解决。
二、KVM虚拟机克隆
1)查看虚拟机状态
2)从vm002克隆到vm003
[root@kvm001 ~]# virt-clone -o vm002 -n vm003 -f /kvm-vm/vm003.qcow2
3)查看虚拟机状态
4)启动虚拟机
三、KVM虚拟机快照
快照实际上做的是虚拟机的XML配置文件,默认快照XML文件在/var/lib/libvirt/qemu/snapshot/虚拟机名/下,快照只支持qcow2磁盘格式的系统。
1)对虚拟机vm002做快照
2)查看快照信息
3)查看当前快照信息
4) 恢复虚拟机状态到1507040414
5) 删除快照