本文由秀依林枫提供友情赞助,首发于烂泥行天下。
因为要做有关KVM虚拟机的实验,所以需要虚拟机生成快照。查询相关资料,说KVM可以使用两种方法生成虚拟机的快照。
方法一、使用qemu-img snapshot命令进行生成快照
方法二、使用virsh snapshot-create-as命令进行生成快照
其实经过我的测试,发现使用qemu-img snapshot命令生成快照后,即使恢复快照也是没有用的。虚拟机还是当前的状态,而不是快照之前的状态。不知道为什么,而且还不稳定,经常报错。
注意要使用KVM的快照功能,虚拟机的硬盘一定要是qcow2格式,否则无法使用快照功能。
有关硬盘的格式,可以在创建虚拟机硬盘时指定,也可以使用相关命令进行转换。这个可以参考我之前的文章《烂泥:KVM中安装Windows Server 2008 R2系统》。
在这篇文章中,我们重点介绍有关virsh snapshot-create-as命令生成快照。
不过在介绍之前,我们还是把第一种方法使用qemu-img snapshot命令生成快照的相关命令介绍下。
其实我们是可以直接通过命令的帮助查询到有关qemu-img snapshot使用方法的。
本次实验我们已虚拟机centos为例,已centos虚拟机安装ftp命令前后做快照。
我们先来创建一个快照,使用如下命令:
qemu-img snapshot -c centos_install_ftp /vhostdisk/centos.img
创建快照
qemu-img snapshot -l /vhostdisk/centos.img
查询快照
qemu-img snapshot -d centos_install_ftp /vhostdisk/centos.img
删除快照
注意,其中centos_install_ftp为快照名称,/vhostdisk/centos.img为原虚拟机。
刚刚在使用qemu-img snapshot进行相关测试发现,居然把我的虚拟机给搞坏了。唉,真是坑爹啊,怪不得网络上的资料显示使用这个有问题呢。强烈建议,还是使用第二种方法吧。
以上是qemu-img snapshot创建KVM快照的方法,现在我们来介绍使用virsh snapshot-create-as来生成虚拟机快照的方法。
Centos虚拟机未安装ftp命令,创建快照如下:
snapshot-create-as centos centos_install_ftp
为虚拟机centos创建快照,快照名称为centos_install_ftp
snapshot-list centos查看虚拟机centos所有的快照
snapshot-info centos centos_uninstall_ftp
查看虚拟机centos快照centos_uninstall_ftp详细信息
Centos虚拟机安装ftp命令,创建快照如下:
snapshot-create-as centos centos_install_ftp
为虚拟机centos创建快照,快照名称为centos_install_ftp
以上我们把centos这台虚拟机在安装FTP命令前后的快照已经做好,现在虚拟机centos处于已经安装FTP命令状态,如果我们此时要把虚拟机centos恢复到安装FTP命令之前的话,我们只需要使用virsh snapshot-revert命令即可。但是在使用virsh snapshot-revert命令恢复虚拟机centos状态之前,我们必须要把虚拟机关闭。
关闭虚拟机,我们可以使用virsh destroy命令进行强制性关机,我们也可以使用virsh shutdown命令进行关机。
注意要使用virsh shutdown命令进行关闭虚拟机的话,一定要安装acpid服务。同时经过多次测试证明如果虚拟机有快照的话,就无法使用virsh shutdown/reboot,命令进行关机或者重启。
yum -y install acpid 安装acpid服务
/etc/init.d/acpid status 查看acpid服务是否运行
destroy centos强制关闭虚拟机centos
Centos虚拟机关闭后,我们开始恢复虚拟机的状态到未安装FTP命令之前,即恢复虚拟机centos的快照。使用如下命令:
snapshot-revert centos centos_uninstall_ftp
注意:快照恢复完毕后,强烈建议把现在的虚拟机关闭重新启动下。
以上是有关KVM虚拟机的创建与恢复,如果要删除一个快照,可以使用如下命令:
snapshot-delete centos centos_uninstall_ftp
至此KVM虚拟机的快照介绍完毕。