烂泥:KVM快照的创建与恢复
因为要做有关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虚拟机的快照介绍完毕。
烂泥:KVM快照的创建与恢复的更多相关文章
- KVM虚拟机快照链创建,合并,删除及回滚研究
1 QEMU,KVM,libvirt关系 QEMU QEMU提供了一个开源的服务器全虚拟化解决方案,它可以使你在特定平台的物理机上模拟出其它平台的处理器,比如在X86 CPU上虚拟出Power的CPU ...
- KVM 介绍(7):使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照 (Nova Instances Snapshot Libvirt)
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- kvm快照
Kvm快照: 1.基于lvm的快照 2.kvm自带的快照功能(需要qcow2 磁盘文件才支持快照) 关闭kvm虚拟机: 查看磁盘文件信息: [root@super67 ~]# qemu-img inf ...
- kvm快照备份及常用命令
转载自:http://www.myjishu.com/?p=431 好文章 kvm快照备份及常用命令 kvm快照,分两种: 1种lvm快照,如果分区是lvm,可以利用lvm进行kvm的快照备份 2种由 ...
- KVM(七)使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照
本文将梳理 QEMU/KVM 快照相关的知识,以及在 OpenStack Nova 中使用 libvirt 来对 QEMU/KVM 虚机做快照的过程. 1. QEMU/KVM 快照 1.1 概念 QE ...
- 5、kvm快照相关操作
kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,不支持支持镜像,zlib磁盘压缩,AES加密等.要使用镜像功能,但是磁盘格式为qcow2就是支持. 关闭虚拟机 virsh shutdow ...
- KVM 一键批量创建虚拟机
目录 一.原理 二.基础镜像 2.1.创建基础镜像 2.2. 完善基础镜像 2.3.基础镜像设置权限 3.4 设置 title 3.5.基础镜像XML 三.批量创建机器脚本 四.挂载磁盘多种方式 4. ...
- 关于SQL Server 镜像数据库快照的创建及使用
从SQL Server 2005 SP 起,SQL 开始支持数据库镜像.它的设计目的是试图为SQL Server 提供一个具有实时性数据同步的灾难恢复技术,即能够提供数据冗余备份,切换起来比较方便.每 ...
- KVM (虚拟机创建及管理,存储管理)
创建KVM虚拟机 1.图形化界面创建 第一步:查看软件包组 yum grouplist 第二步:下载GUI界面的软件包组 yum groupinstall "Server with GUI& ...
随机推荐
- Sprint第三个冲刺(第七天)
项目基本上可以说完成了,只是还有些小bug要修复.
- What Is Seedwork
最近研究DDD,发现很多DDD的例子都有一个Seedwork的项目.从名字我没办法推断是什么作用,看代码里面是一些公共的接口跟基类.google了一会基本都是英文资料.发现两篇大作.下面是摘要: 1. ...
- ADO.NET学习系列(一)
一.ADO.NET基础 程序和数据库交互,要通过ADO.NET进行:通过ADO.NET就能在数据库中执行SQL了.ADO.NET中提供了对不同数据库的统一操作接口(ODBC).另外还有一种操作数据库的 ...
- where T : class的含义
public class Reflect<T> where T : class { 这是参数类型约束,指定T必须是Class类型. .NET支持的类型参数约束有以下五种:where T : ...
- 004_URL 路由 - URL 路由
在Web Form 情况下,每一个 ASPX页面既是一个文件,又是一个队请求自包含的响应.而在 MVC 情况下,请求是由控制器类中的动作方法处理的,而且与硬盘上的文件没有一对一的相互关系. ASP.N ...
- 【C#进阶系列】04 类型基础
关于System.Object 所有类型都从System.Object派生而来. System.Object的公共方法中ToString()一般是返回对象的类型的全名,只有Int32这些类型将其重写后 ...
- 程序设计模式 —— State 状态模式
我应该如何阅读? 本文将使用优雅的文字风格来告诉你什么是状态模式. 注意: 1.在阅读本文之前请保证你已经掌控了 面对对象的思想与 多态的基本概念,否则将难以理解. 2.本文实现将用C++实现,你不一 ...
- custom struts framework
1. Difference between stucts1 and struts2 struts1 : Servlet used as Controller , you can visit the S ...
- 搭建spring的开发环境
在eclipse中新建web项目,集成spring开发环境,把集成spring的过程描述如下, 1.从spring官网下载spring的jar包,我这里是spring4.1,下载的文件中包含了源码及文 ...
- .NET Core应用程序的2种部署方式
1. Portable 共享.NET Core运行时环境与程序集依赖,部署的目标机器上需要事先安装.NET Core SDK,这是.NET Core的默认部署方式. 2. Self-contained ...