Linux学习—LVM快照功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习—LVM快照功能相关的知识,希望对你有一定的参考价值。

LVM快照功能--我们知道LVM能够通过增减PE的数量来弹性调整文件系统的大小,除此之外,LVM还有另外一个重要的功能,LV磁盘快照,就是通过快照的功能将此时的文件系统信息记录下来,以后对该文件系统操作的时候,当该文件系统的数据变化的时候,我们可以利用快照将文件系统恢复至当时的状态。



目录

  • LV的快照原理

  • 创建快照

  • 利用快照恢复系统



一、LV的快照(snapshot)原理 

技术分享图片

    左边的图表示,LVM会在VG上预留一定的区域作为快照区,原本lv中存放着数据,同时快照区存放着lv中元数据,因此快照区大小不需要和原始lv一样的大小。在刚创建snapshot的时候,快照区中并不会真实地拷贝原始lv中的数据,只是记录了整个原始lv中的元数据,所以这个时间点快照区和原始lv共享文件系统的数据,即两边的数据一样。

    右边的图表示,当原始lv中的数据发生改变的时候,原始lv中的发生变化的PE的数据更新之前,会将数据真实地备份至快照区的一个PE中,如图中,A->new A之前,先将A备份至快照区的一个PE,然后lv中A才更新为new A,这样快照区会保存lv中PE发生变化之前的数据,这时候我们再访问快照区的内容仍然为创建snapshot那个时间点的时候lv中的数据,因此我们可以利用快照区进行备份和恢复。

    需要注意的是,由于快照区也有容量的限制,所以呢,当原始lv中发生变化的PE的数量超过快照区的PE的数量的时候,该快照就会立即失效。

    我们在创建快照区的时候,要考虑将来lv数据的变化量,以此来指定快照区的大小,一种解决办法是刚创建完快照之后,立即把快照区中的内容进行备份,这样就不用时刻考虑快照区会失效了,因为我们已经把他的数据备份走了。还有一种简单粗暴的方法就是创建一个和原始lv一样大小的快照区,这样就不用担心数据变化量的因素了。


二、创建快照

操作流程:

    原始lv为/dev/vg1/lv1,创建lv的快照为lv1snap,容量为100个PE

①查看vg1的信息中的可用PE的数量

技术分享图片

②创建lv快照

[[email protected] ~]# lvcreate -s -l 100 -n lv1snap /dev/vg1/lv1 
Logical volume "lv1snap" created.

    -s    关键选项,创建快照snap的意思    

    -l    后面跟快照包含多少个PE的数量

    -n    后面跟创建的快照的名字

    -p r  由于快照大多为只读,改选项为为修改权限位只读(r)

    命令最后记得加创建的快照的原始lv名称

③ 查看新创建的快照区

技术分享图片

③挂载原始lv和lv的快照 

[[email protected] ~]# mount /dev/vg1/lv1 /mnt/lvm/
[[email protected] ~]# mount /dev/vg1/lv1snap /mnt/snap/

技术分享图片   
之前我在/mnt/lvm中导入了一些数据,我们发现原始lv和lv快照挂载之后容量信息一模一样


三、利用快照恢复系统

    当利用快照恢复系统的时候,不能使得要复原的数据量大于快照区所能承受的最大范围

①修改原始lvm中的内容

[[email protected] ~]# dd if=/dev/zero of=/mnt/lvm/test bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 5.31399 s, 98.7 MB/s

两个目录的使用率发生变化

 技术分享图片

②对快照区的数据进行打包压缩并备份

[[email protected] snap]# tar -jcv -f /backups/lvm.tar.bz2 * #-j 支持bzip2解压文件 -c 创建新的备份文件 -f 指定备份文件
tmp
[[email protected] snap]# echo $?
0

卸载原始lv重新格式化,再挂载之后df查看

技术分享图片

③对原始lv进行数据恢复

[[email protected] ~]# tar -jxv -f /backups/lvm.tar.bz2 -C /mnt/lvm/  #-C 解压至指定目录

原始lv恢复至原来的14%

技术分享图片

我在这是用的打包压缩的方式进行备份还原,当然用cp命令的方式也一样



以上是关于Linux学习—LVM快照功能的主要内容,如果未能解决你的问题,请参考以下文章

linux学习33 运维高级技能-在Linux实现LVM逻辑卷及快照

LVM常规操作记录梳理(扩容/缩容/快照等)

Linux磁盘管理高级

LVM

lvm之创建/扩容/缩容/快照及关闭的全部流程操作记录

逻辑卷管理器(LVM)以及快照(特殊逻辑卷)的用法