本文由秀依林枫提供友情赞助,首发于烂泥行天下

因为要做有关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快照的创建与恢复的更多相关文章

  1. KVM虚拟机快照链创建,合并,删除及回滚研究

    1 QEMU,KVM,libvirt关系 QEMU QEMU提供了一个开源的服务器全虚拟化解决方案,它可以使你在特定平台的物理机上模拟出其它平台的处理器,比如在X86 CPU上虚拟出Power的CPU ...

  2. 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设备直接分 ...

  3. kvm快照

    Kvm快照: 1.基于lvm的快照 2.kvm自带的快照功能(需要qcow2 磁盘文件才支持快照) 关闭kvm虚拟机: 查看磁盘文件信息: [root@super67 ~]# qemu-img inf ...

  4. kvm快照备份及常用命令

    转载自:http://www.myjishu.com/?p=431 好文章 kvm快照备份及常用命令 kvm快照,分两种: 1种lvm快照,如果分区是lvm,可以利用lvm进行kvm的快照备份 2种由 ...

  5. KVM(七)使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照

    本文将梳理 QEMU/KVM 快照相关的知识,以及在 OpenStack Nova 中使用 libvirt 来对 QEMU/KVM 虚机做快照的过程. 1. QEMU/KVM 快照 1.1 概念 QE ...

  6. 5、kvm快照相关操作

    kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,不支持支持镜像,zlib磁盘压缩,AES加密等.要使用镜像功能,但是磁盘格式为qcow2就是支持. 关闭虚拟机 virsh shutdow ...

  7. KVM 一键批量创建虚拟机

    目录 一.原理 二.基础镜像 2.1.创建基础镜像 2.2. 完善基础镜像 2.3.基础镜像设置权限 3.4 设置 title 3.5.基础镜像XML 三.批量创建机器脚本 四.挂载磁盘多种方式 4. ...

  8. 关于SQL Server 镜像数据库快照的创建及使用

    从SQL Server 2005 SP 起,SQL 开始支持数据库镜像.它的设计目的是试图为SQL Server 提供一个具有实时性数据同步的灾难恢复技术,即能够提供数据冗余备份,切换起来比较方便.每 ...

  9. KVM (虚拟机创建及管理,存储管理)

    创建KVM虚拟机 1.图形化界面创建 第一步:查看软件包组 yum grouplist 第二步:下载GUI界面的软件包组 yum groupinstall "Server with GUI& ...

随机推荐

  1. Java基础——事务

    一.事务 简单点说,事务就是一件事情.所有与事务相关的内容都是围绕这一件事情展开的. 二.事务的特性:ACID A:Atomicity(原子性),事务必须是一个不可分割的整体. C:Consisten ...

  2. Water --- CSU 1550: Simple String

    Simple String Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1550 Mean: 略. analy ...

  3. 在C#后端处理一些结果然传给前端Javascript或是jQuery

    在C#后端处理一些结果然传给前端Javascript或是jQuery,以前Insus.NET有做过一个例子<把CS值传给JS使用 >http://www.cnblogs.com/insus ...

  4. 树莓派配置静态ip

    #vim /etc/network/interfaces 修改为如下内容: auto eth0 iface eth0 inet static address 192.168.0.2 netmask 2 ...

  5. SQL Server 文件和文件组

    文件和文件组简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL Server通过管理逻辑上的文件组的方式来管理文件. ...

  6. extjs grid renderer用法

    extjs grid renderer用法 摘自:http://www.cnblogs.com/ljian/archive/2011/10/27/2226959.html var cm = new E ...

  7. 泛函编程(20)-泛函库设计-Further Into Parallelism

    上两节我们建了一个并行运算组件库,实现了一些基本的并行运算功能.到现在这个阶段,编写并行运算函数已经可以和数学代数解题相近了:我们了解了问题需求,然后从类型匹配入手逐步产生题解.下面我们再多做几个练习 ...

  8. [Redis] redis-cli 命令总结

    Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用.在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法.下面将R ...

  9. 在Hadoop平台跑python脚本

    1.开发IDE,我使用的是PyCharm. 2.运行原理       使用python写MapReduce的“诀窍”是利用Hadoop流的API,通过STDIN(标准输入).STDOUT(标准输出)在 ...

  10. [TypeScript] 建置输出单一JavaScript档案(.js)与Declaration档案(.d.ts)

    [TypeScript] 建置输出单一JavaScript档案(.js)与Declaration档案(.d.ts) 问题情景 开发人员使用Visual Studio来开发TypeScript,可以很方 ...