烂泥:LVM学习之KVM利用LVM快照备份与恢复虚拟机
最近一段时间一直在学习有关LVM逻辑卷方面的知识,前几篇文章介绍了有关LVM的逻辑卷的基本相关知识,包括逻辑卷及卷组的扩容与缩小。今天我们再来介绍LVM快照的功能。
注意:本次实验是与虚拟化KVM进行集成测试,通过KVM虚拟机是否正常启动来检查LVM的备份与恢复。
有关LVM的快照功能,我们可以通过lvcreate –help命令,查看帮助文档。如下:

先来查看系统中逻辑卷,使用lvs命令。如下:

通过上图,我们可以看到目前系统中只有一个逻辑卷/dev/vg1/vhostdisk,现在我们来新建一个逻辑卷/dev/vg1/lvmsp,如下
lvcreate -L 30G -n lvmsp vg1

格式化新建的逻辑卷,如下:
mkfs.ext4 /dev/vg1/lvmsp

逻辑卷格式化完毕后,我们在系统中新建一个目录用来挂载刚刚新建的逻辑卷,如下:
mkdir /test

现在我们来挂载逻辑卷,如下:
mount /dev/vg1/lvmsp /test

以上操作完毕后,我们现在把KVM虚拟机的硬盘存放到/test目录下。如下:
cp -v /vhostdisk/testlvmos.img /test/

以上操作完毕后,我们先来测试下现在虚拟机是否可以正常启动。
编辑虚拟机的XML文件,修改硬盘的存放路径。如下:
virsh edit testlvmos

启动虚拟机testlvmos,如下:
virsh start testlvmos


通过上图,我们可以看到虚拟机testlvmos已经正常启动。现在我们关闭虚拟机,在这个时刻给逻辑卷/dev/vg1/lvmsp1,做一个快照。
使用如下命令:
lvcreate -L 100M -s -n lvmsp1 /dev/vg1/lvmsp
或者
lvcreate -s /dev/vg1/lvmsp -n lvmsp1 -L 100M

其中–s表示要创建快照,-n表示快照的名称,-L 表示快照的大小。
同时我们也可以很容易的看到,快照的创建也是很快的几秒钟的事情。这一点很重要,我们的备份工作也是根据这个来的,花费很少的时间却能到达备份的功能。
现在我们把逻辑卷/dev/vg1/lvmsp的快照进行挂载。如下:
mkdir /test1/
mount /dev/vg1/lvmsp1 /test1/


其实,现在我们也可以使用生成的快照来进行正常的操作。只不过这篇文章我们不在此介绍,我们主要来介绍生成快照后的备份与恢复工作。
现在我们来查看做快照之前,逻辑卷/dev/vg1/lvmsp1所挂载的目录/test/详细信息。如下:
ll -h /test/

再来查看快照所挂载的目录/test1/详细信息,如下:

快照前后对比,截图:

通过上图的对比,我们可以发现逻辑卷/dev/vg1/lvmsp的内容,与快照/dev/vg1/lvmsp1的内容是一模一样的。如果我们现在把快照中的内容进行备份的话,这样我们就可以很容易的恢复当前虚拟机的状态。这个也就是我们本篇文章的重点,通过快照来备份虚拟机。
现在我们来做实验,需要以下几个步骤:
1、 备份快照中的文件testlvmos.img
2、 卸载已经挂载的快照/dev/vg1/lvmsp1
3、 删除逻辑卷/dev/vg1/lvmsp所挂载的/test/目录中的所有内容
4、 把通过快照备份的testlvmos.img文件复制到逻辑卷/dev/vg1/lvmsp挂载的目录/test中
我们可以使用cp命令,把快照中的内容备份一份到其他目录。在此我们备份到/baklvm/目录下,如下:
cp -v /test1/testlvmos.img /baklvm/

快照备份完毕后,我们来卸载已经挂载的快照,并删除该快照。如下:
umount /test1/
lvremove /dev/vg1/lvmsp1

现在我们删除逻辑卷/dev/vg1/lvmsp所挂载目录/test/的内容,如下:
rm -r /test/*

删除完毕后,再次启动虚拟机testlvmos,如下:
virsh start testlvmos

通过上图我们可以看到,目前虚拟机testlvmos是无法启动的,提示缺少testlvmos.img文件。
其实通过查看,我们也知道确实是缺少该文件。因为我们刚刚在前面已经删除该文件,如下:

现在我们再把通过快照备份的testlvmos.img文件复制到逻辑卷/dev/vg1/lvmsp所挂载的目录/test/中,如下:
cp -v /baklvm/testlvmos.img /test/

我们再次启动虚拟机testlvmos,如下:

通过上图,我们可以而很清晰的看到,通过快照备份的虚拟机文件和源文件是一模一样的。这样也就恢复了LVM。
总结:利用LVM快照来做备份,主要是两点:
1、 LVM快照数据和原数据一模一样
2、 LVM快照速度快
注意:
1、 LVM快照卷无需做格式化等步骤,可以直接对快照卷进行挂载,卸载等操作,而且操作完成之后,就应该立即删除快照,以减轻系统的I/O负担。 快照不会自动更新,长久保留是没有意义的。
2、 LVM快照在恢复数据时,一定要先删除快照。否则LVM使用的还是原来的数据。
烂泥:LVM学习之KVM利用LVM快照备份与恢复虚拟机的更多相关文章
- 烂泥:KVM利用LVM快照快速部署虚拟机
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上一篇文章介绍了有关KVM利用LVM快照备份和恢复虚拟机的功能,这篇文章我们来介绍,如何利用LVM快照功能为KVM快速部署虚拟机. 部署虚拟机需要以下几 ...
- 烂泥Linux学习笔记
把最近学习过程中所写的文章整理了下:注意:本帖会持续性更新!!! 虚拟化篇:<烂泥:虚拟化KVM安装与配置><烂泥:KVM安装centos6.5系统><烂泥:KVM中安装 ...
- 烂泥:LVM学习之逻辑卷及卷组缩小空间
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上一篇文章,我们学习了如何给LVM的逻辑卷及卷组扩容.这篇文章我们来学习,如何给LVM的逻辑卷及卷组缩小空间. 注意逻辑卷的缩小一定要离线操作,不能是在 ...
- 烂泥:LVM学习之LVM基础
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 有关LVM的好处我就不在此多介绍了,有空的话自己可以去百度百科中看看.我们在此之进行LVM的相关操作,以及命令的学习. 要想使系统支持LVM,我们必须安 ...
- Linux LVM学习总结——扩展卷组VG
Linux服务器由于应用变更或需求的缘故,有可能出现分区空间不足的情况,此时往往需要进行扩容(要增加分区的空间),而采用LVM的好处就是可以在不需停机的情况下可以方便地调整各个分区大小.如下所示,分区 ...
- Linux LVM学习总结——创建卷组VG
在Linux平台如何创建一个卷组(VG)呢?下面简单介绍一下卷组(VG)的创建步骤.本文实验平台为Red Hat Enterprise Linux Server release 6.6 (Santia ...
- 阿里云CentOS7服务器利用LVM分区挂载磁盘全记录
1.进入服务器后,首先利用fdisk -l来观察磁盘信息,可以看出红线标注处,有两块硬盘信息,分别是40G和300G 2.同时你也可以观察到分区信息,40G的硬盘已经分了一个区vda1,大小(Bloc ...
- LVM学习
LVM Logical Volume Manager Volume management creates a layer of abstraction over physical storage, a ...
- LVM学习笔记
LVM Logical Volume Manager Volume management creates a layer of abstraction over physical storage, a ...
随机推荐
- KMP算法 - 求最小覆盖子串
KMP与最小覆盖子串 最小覆盖子串:对于某个字符串s,它的最小覆盖子串指的是长度最小的子串p,p满足通过自身的多次连接得到q,最后能够使s成为q的子串. 比如: 对于s="abcab&quo ...
- C#关键字
关键字 abstract as base bool break byte case catch char checked decimal default delegate continue doubl ...
- 从P6 EPPM 8 R3 到P6 EPPM 16 R1 有哪些改变?
Product 特征 First Release for Feature P6 EPPM 通过编辑活动标识替换关系.当你需要修改一个关系,你不需要删除现有的关系,并作出一个新的,你可以简单地编辑活动的 ...
- js获取url参数的两种方法
js获取参数,在以前我都是用正在去拆分,然后获取,这种方式感觉是最简单的 方式1: function QueryString(item) { var sValue=location.search.ma ...
- Eclipse颜色主题插件:Eclipse Color Theme
一个很赞的eclipse插件,可以简单方便地实现eclipse下的代码配色.另外插件作者还专门为此插件做了一个eclipse配色网站,配色多达728个,开发者们也可以在此网站分享自己的配色方案. 插件 ...
- C#开发中可能会用到的一些小贴士(转)
转至http://www.cnblogs.com/Ebony-Ivory/p/4380106.html C#篇: 1.目标平台的选择 64位操作系统在编译VS里的程序时,根据需要设置项目属性的“目标平 ...
- json format validator
http://la5u.org/archives/542 http://stedolan.github.io/jq/download/ https://linuxtoy.org/archives/jq ...
- C++之内联函数与constexpr
inline 函数 规模小,流程直接且频繁调用 cout<<shortString(s1,s2)<<endl; = cout<<(s1.size()<s2.s ...
- C# 循环语句 for循环
循环:反复执行某段代码. 循环四要素:初始条件,循环条件,循环体,状态改变.for(初始条件;循环条件;状态改变){ 循环体} 给出初始条件,先判断是否满足循环条件,如果不满足条件则跳过for语句,如 ...
- ASP.NET MVC中将控制器分离到类库的实现
前言 在ASP.NET MVC的开发中,我们创建完项目之后,ASP.NET MVC是已Model-Controller-View的形式存在的,在创建项目自动生成的内容上Model我们很容易分离成类库, ...